Mercurial > mxe-octave
changeset 1255:59a787bcec54
package sdl_sound: add test program
author | Nikos Chantziaras <realnc@arcor.de> |
---|---|
date | Sun, 03 Oct 2010 07:11:11 +1100 |
parents | 2862397343ce |
children | b6d98b5e72f6 |
files | src/sdl_sound-test.c |
diffstat | 1 files changed, 47 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/sdl_sound-test.c Sun Oct 03 07:11:11 2010 +1100 @@ -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); +}