diff test/loopwave.c @ 1895:c121d94672cb

SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 10 Jul 2006 21:04:37 +0000
parents 290b5baf2fca
children 5f6550e5184f
line wrap: on
line diff
--- a/test/loopwave.c	Thu Jul 06 18:01:37 2006 +0000
+++ b/test/loopwave.c	Mon Jul 10 21:04:37 2006 +0000
@@ -16,99 +16,117 @@
 #include "SDL.h"
 #include "SDL_audio.h"
 
-struct {
-	SDL_AudioSpec spec;
-	Uint8   *sound;			/* Pointer to wave data */
-	Uint32   soundlen;		/* Length of wave data */
-	int      soundpos;		/* Current play position */
+struct
+{
+    SDL_AudioSpec spec;
+    Uint8 *sound;               /* Pointer to wave data */
+    Uint32 soundlen;            /* Length of wave data */
+    int soundpos;               /* Current play position */
 } wave;
 
 
 /* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
-static void quit(int rc)
+static void
+quit(int rc)
 {
-	SDL_Quit();
-	exit(rc);
+    SDL_Quit();
+    exit(rc);
 }
 
 
-void SDLCALL fillerup(void *unused, Uint8 *stream, int len)
+void SDLCALL
+fillerup(void *unused, Uint8 * stream, int len)
 {
-	Uint8 *waveptr;
-	int    waveleft;
+    Uint8 *waveptr;
+    int waveleft;
 
-	/* Set up the pointers */
-	waveptr = wave.sound + wave.soundpos;
-	waveleft = wave.soundlen - wave.soundpos;
+    /* Set up the pointers */
+    waveptr = wave.sound + wave.soundpos;
+    waveleft = wave.soundlen - wave.soundpos;
 
-	/* Go! */
-	while ( waveleft <= len ) {
-		SDL_MixAudio(stream, waveptr, waveleft, SDL_MIX_MAXVOLUME);
-		stream += waveleft;
-		len -= waveleft;
-		waveptr = wave.sound;
-		waveleft = wave.soundlen;
-		wave.soundpos = 0;
-	}
-	SDL_MixAudio(stream, waveptr, len, SDL_MIX_MAXVOLUME);
-	wave.soundpos += len;
+    /* Go! */
+    while (waveleft <= len) {
+        SDL_MixAudio(stream, waveptr, waveleft, SDL_MIX_MAXVOLUME);
+        stream += waveleft;
+        len -= waveleft;
+        waveptr = wave.sound;
+        waveleft = wave.soundlen;
+        wave.soundpos = 0;
+    }
+    SDL_MixAudio(stream, waveptr, len, SDL_MIX_MAXVOLUME);
+    wave.soundpos += len;
 }
 
 static int done = 0;
-void poked(int sig)
+void
+poked(int sig)
 {
-	done = 1;
+    done = 1;
 }
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
-	char name[32];
+    int i, n;
+
+    /* Print available audio drivers */
+    n = SDL_GetNumAudioDrivers();
+    if (n == 0) {
+        printf("No built-in audio drivers\n");
+    } else {
+        printf("Built-in audio drivers:");
+        for (i = 0; i < n; ++i) {
+            if (i > 0) {
+                printf(",");
+            }
+            printf(" %s", SDL_GetAudioDriver(i));
+        }
+        printf("\n");
+    }
 
-	/* Load the SDL library */
-	if ( SDL_Init(SDL_INIT_AUDIO) < 0 ) {
-		fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
-		return(1);
-	}
-	if ( argv[1] == NULL ) {
-		argv[1] = "sample.wav";
-	}
-	/* Load the wave file into memory */
-	if ( SDL_LoadWAV(argv[1],
-			&wave.spec, &wave.sound, &wave.soundlen) == NULL ) {
-		fprintf(stderr, "Couldn't load %s: %s\n",
-						argv[1], SDL_GetError());
-		quit(1);
-	}
+    /* Load the SDL library */
+    if (SDL_Init(SDL_INIT_AUDIO) < 0) {
+        fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
+        return (1);
+    }
+    if (argv[1] == NULL) {
+        argv[1] = "sample.wav";
+    }
+    /* Load the wave file into memory */
+    if (SDL_LoadWAV(argv[1], &wave.spec, &wave.sound, &wave.soundlen) == NULL) {
+        fprintf(stderr, "Couldn't load %s: %s\n", argv[1], SDL_GetError());
+        quit(1);
+    }
 
-	wave.spec.callback = fillerup;
+    wave.spec.callback = fillerup;
 #if HAVE_SIGNAL_H
-	/* Set the signals */
+    /* Set the signals */
 #ifdef SIGHUP
-	signal(SIGHUP, poked);
+    signal(SIGHUP, poked);
 #endif
-	signal(SIGINT, poked);
+    signal(SIGINT, poked);
 #ifdef SIGQUIT
-	signal(SIGQUIT, poked);
+    signal(SIGQUIT, poked);
 #endif
-	signal(SIGTERM, poked);
+    signal(SIGTERM, poked);
 #endif /* HAVE_SIGNAL_H */
 
-	/* Initialize fillerup() variables */
-	if ( SDL_OpenAudio(&wave.spec, NULL) < 0 ) {
-		fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());
-		SDL_FreeWAV(wave.sound);
-		quit(2);
-	}
-	SDL_PauseAudio(0);
+    /* Initialize fillerup() variables */
+    if (SDL_OpenAudio(&wave.spec, NULL) < 0) {
+        fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());
+        SDL_FreeWAV(wave.sound);
+        quit(2);
+    }
+    SDL_PauseAudio(0);
 
-	/* Let the audio run */
-	printf("Using audio driver: %s\n", SDL_AudioDriverName(name, 32));
-	while ( ! done && (SDL_GetAudioStatus() == SDL_AUDIO_PLAYING) )
-		SDL_Delay(1000);
+    /* Let the audio run */
+    printf("Using audio driver: %s\n", SDL_GetCurrentAudioDriver());
+    while (!done && (SDL_GetAudioStatus() == SDL_AUDIO_PLAYING))
+        SDL_Delay(1000);
 
-	/* Clean up on signal */
-	SDL_CloseAudio();
-	SDL_FreeWAV(wave.sound);
-	SDL_Quit();
-	return(0);
+    /* Clean up on signal */
+    SDL_CloseAudio();
+    SDL_FreeWAV(wave.sound);
+    SDL_Quit();
+    return (0);
 }