summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sdl_sound-test.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/sdl_sound-test.c b/src/sdl_sound-test.c
new file mode 100644
index 0000000..46794fc
--- /dev/null
+++ b/src/sdl_sound-test.c
@@ -0,0 +1,47 @@
+/* Simple test program for SDL_sound that tries to decode the file specified
+ * as the only command-line argument.
+ *
+ * This file is in the Public Domain.
+ */
+#include <stdio.h>
+#include <SDL_sound.h>
+
+int main( int argc, char** argv )
+{
+ if (argc != 2) {
+ fprintf(stderr, "usage: %s <filename>\n", argv[0]);
+ return 1;
+ }
+
+ if (SDL_Init(SDL_INIT_AUDIO) != 0) {
+ fprintf(stderr, "Error: %s\n", SDL_GetError());
+ return 1;
+ }
+
+ if (Sound_Init() == 0) {
+ fprintf(stderr, "Error: %s\n", Sound_GetError());
+ return 1;
+ }
+
+ SDL_RWops* rw = SDL_RWFromFile(argv[1], "r");
+ if (rw == NULL) {
+ fprintf(stderr, "Error: %s\n", SDL_GetError());
+ return 1;
+ }
+
+ Sound_AudioInfo wantedFormat;
+ wantedFormat.channels = 2;
+ wantedFormat.rate = 44100;
+ wantedFormat.format = AUDIO_S16LSB;
+
+ Sound_Sample* sample = Sound_NewSample(rw, 0, &wantedFormat, 8192);
+ if (sample == 0) {
+ fprintf(stderr, "Error: %s\n", Sound_GetError());
+ return 1;
+ }
+
+ Sound_DecodeAll(sample);
+ printf("Format: %s\n", sample->decoder->description);
+ printf("Decoded %d bytes of data.\n", sample->buffer_size);
+ Sound_FreeSample(sample);
+}