Make sure a valid MP3 fmt was found before accepting the data chunk
[alure.git] / examples / alureplay.c
blob03a99ec0b8d2f908ed497de8f4004d2385d4f5a0
1 #include <stdio.h>
3 #include "AL/alure.h"
5 volatile int isdone = 0;
6 static void eos_callback(void *unused, ALuint unused2)
8 isdone = 1;
9 (void)unused;
10 (void)unused2;
13 int main( int argc, char **argv)
15 ALuint src, buf;
17 if(argc < 2)
19 fprintf(stderr, "Usage %s <soundfile>\n", argv[0]);
20 return 1;
23 if(!alureInitDevice(NULL, NULL))
25 fprintf(stderr, "Failed to open OpenAL device: %s\n", alureGetErrorString());
26 return 1;
29 alGenSources(1, &src);
30 if(alGetError() != AL_NO_ERROR)
32 fprintf(stderr, "Failed to create OpenAL source!\n");
33 alureShutdownDevice();
34 return 1;
37 buf = alureCreateBufferFromFile(argv[1]);
38 if(!buf)
40 fprintf(stderr, "Could not load %s: %s\n", argv[1], alureGetErrorString());
41 alDeleteSources(1, &src);
43 alureShutdownDevice();
44 return 1;
47 alSourcei(src, AL_BUFFER, buf);
48 if(alurePlaySource(src, eos_callback, NULL) == AL_FALSE)
50 fprintf(stderr, "Failed to start source!\n");
51 alDeleteSources(1, &src);
52 alDeleteBuffers(1, &buf);
54 alureShutdownDevice();
55 return 1;
58 while(!isdone)
60 alureSleep(0.125);
61 alureUpdate();
64 alDeleteSources(1, &src);
65 alDeleteBuffers(1, &buf);
67 alureShutdownDevice();
68 return 0;