Advertisement
pouar

sound.c

Feb 7th, 2016
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.96 KB | None | 0 0
  1. /*  gcc -o sound sound.c $(pkg-config --cflags --libs SDL2_mixer sdl2)
  2.  *  loop=0 # 0 for once, -1 for infinity
  3.  *  clock=1 # optional, in ms, default is 1, lower means it detects when the sound ends quicker, higher means less CPU usage
  4.  *  ./sound $file $loops $clock &
  5.  *  audiopid=$!
  6.  *  kill $audiopid
  7.  */
  8. #include <SDL.h>
  9. #include <SDL_mixer.h>
  10. #include <stdlib.h>
  11. int main (int argc, char *argv[])
  12. {
  13.     if (argc < 3 || argc > 4)
  14.     {
  15.         fprintf(stderr, "usage ./sound $file $loop $clock # see source\n");
  16.         exit(1);
  17.     }
  18.     if (Mix_OpenAudio(44100, AUDIO_S32SYS, 1, 4096))
  19.     {
  20.         fprintf(stderr, "SDL_Mixer Error: %s\n", Mix_GetError());
  21.         exit(1);
  22.     }
  23.     Mix_Chunk* audio = Mix_LoadWAV(argv[1]);   
  24.     if (!audio)
  25.     {
  26.         fprintf(stderr, "SDL_mixer Error: %s\n", Mix_GetError());
  27.         exit(1);
  28.     }
  29.     int channel = Mix_PlayChannel(-1, audio, atoi(argv[2]));
  30.     while(Mix_Playing(-1))
  31.     {
  32.         if(argc==3)
  33.             SDL_Delay(1);
  34.         else
  35.             SDL_Delay(atoll(argv[3]));
  36.     }
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement