Increase the buffer size to 32K
[alure.git] / examples / alurestream.c
blobc191c8f8b2477c5993397ce885047431fd41762e
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 #define NUM_BUFS 3
15 int main(int argc, char **argv)
17 alureStream *stream;
18 ALuint src;
20 if(argc < 2)
22 fprintf(stderr, "Usage %s <soundfile>\n", argv[0]);
23 return 1;
26 if(!alureInitDevice(NULL, NULL))
28 fprintf(stderr, "Failed to open OpenAL device: %s\n", alureGetErrorString());
29 return 1;
32 alGenSources(1, &src);
33 if(alGetError() != AL_NO_ERROR)
35 fprintf(stderr, "Failed to create OpenAL source!\n");
36 alureShutdownDevice();
37 return 1;
40 stream = alureCreateStreamFromFile(argv[1], 32768, 0, NULL);
41 if(!stream)
43 fprintf(stderr, "Could not load %s: %s\n", argv[1], alureGetErrorString());
44 alDeleteSources(1, &src);
46 alureShutdownDevice();
47 return 1;
50 if(!alurePlaySourceStream(src, stream, NUM_BUFS, 0, eos_callback, NULL))
52 fprintf(stderr, "Failed to play stream: %s\n", alureGetErrorString());
53 isdone = 1;
56 while(!isdone)
58 alureSleep(0.125);
59 alureUpdate();
61 alureStopSource(src, AL_FALSE);
63 alDeleteSources(1, &src);
64 alureDestroyStream(stream, 0, NULL);
66 alureShutdownDevice();
67 return 0;