view src/sdl_sound-test.c @ 1256:b6d98b5e72f6

bugfixes for sdl_sound build and test program
author Tony Theodore <tonyt@logyst.com>
date Sun, 03 Oct 2010 07:18:58 +1100
parents 59a787bcec54
children fef4b120bc3a
line wrap: on
line source

/* 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);

	return 0;
}