test/loopwave.c
changeset 1463 0394f8ebc42d
parent 1151 be9c9c8f6d53
child 1659 14717b52abc0
equal deleted inserted replaced
1462:c17d82103614 1463:0394f8ebc42d
     2 /* Program to load a wave file and loop playing it using SDL sound */
     2 /* Program to load a wave file and loop playing it using SDL sound */
     3 
     3 
     4 /* loopwaves.c is much more robust in handling WAVE files -- 
     4 /* loopwaves.c is much more robust in handling WAVE files -- 
     5 	This is only for simple WAVEs
     5 	This is only for simple WAVEs
     6 */
     6 */
       
     7 #include "SDL_config.h"
     7 
     8 
     8 #include <stdio.h>
     9 #include <stdio.h>
     9 #include <stdlib.h>
    10 #include <stdlib.h>
       
    11 
       
    12 #if HAVE_SIGNAL_H
    10 #include <signal.h>
    13 #include <signal.h>
       
    14 #endif
    11 
    15 
    12 #include "SDL.h"
    16 #include "SDL.h"
    13 #include "SDL_audio.h"
    17 #include "SDL_audio.h"
    14 
    18 
    15 struct {
    19 struct {
    63 	/* Load the SDL library */
    67 	/* Load the SDL library */
    64 	if ( SDL_Init(SDL_INIT_AUDIO) < 0 ) {
    68 	if ( SDL_Init(SDL_INIT_AUDIO) < 0 ) {
    65 		fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
    69 		fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
    66 		return(1);
    70 		return(1);
    67 	}
    71 	}
    68 
       
    69 	if ( argv[1] == NULL ) {
    72 	if ( argv[1] == NULL ) {
    70 		fprintf(stderr, "Usage: %s <wavefile>\n", argv[0]);
    73 		argv[1] = "sample.wav";
    71 		quit(1);
       
    72 	}
    74 	}
    73 
       
    74 	/* Load the wave file into memory */
    75 	/* Load the wave file into memory */
    75 	if ( SDL_LoadWAV(argv[1],
    76 	if ( SDL_LoadWAV(argv[1],
    76 			&wave.spec, &wave.sound, &wave.soundlen) == NULL ) {
    77 			&wave.spec, &wave.sound, &wave.soundlen) == NULL ) {
    77 		fprintf(stderr, "Couldn't load %s: %s\n",
    78 		fprintf(stderr, "Couldn't load %s: %s\n",
    78 						argv[1], SDL_GetError());
    79 						argv[1], SDL_GetError());
    79 		quit(1);
    80 		quit(1);
    80 	}
    81 	}
       
    82 
    81 	wave.spec.callback = fillerup;
    83 	wave.spec.callback = fillerup;
    82 
    84 #if HAVE_SIGNAL_H
    83 	/* Set the signals */
    85 	/* Set the signals */
    84 #ifdef SIGHUP
    86 #ifdef SIGHUP
    85 	signal(SIGHUP, poked);
    87 	signal(SIGHUP, poked);
    86 #endif
    88 #endif
    87 	signal(SIGINT, poked);
    89 	signal(SIGINT, poked);
    88 #ifdef SIGQUIT
    90 #ifdef SIGQUIT
    89 	signal(SIGQUIT, poked);
    91 	signal(SIGQUIT, poked);
    90 #endif
    92 #endif
    91 	signal(SIGTERM, poked);
    93 	signal(SIGTERM, poked);
       
    94 #endif /* HAVE_SIGNAL_H */
    92 
    95 
    93 	/* Initialize fillerup() variables */
    96 	/* Initialize fillerup() variables */
    94 	if ( SDL_OpenAudio(&wave.spec, NULL) < 0 ) {
    97 	if ( SDL_OpenAudio(&wave.spec, NULL) < 0 ) {
    95 		fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());
    98 		fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());
    96 		SDL_FreeWAV(wave.sound);
    99 		SDL_FreeWAV(wave.sound);