/usr/share/doc/libalure-dev/examples/alurestream.c is in libalure-dev 1.2-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include <stdio.h>
#include "AL/alure.h"
volatile int isdone = 0;
static void eos_callback(void *unused, ALuint unused2)
{
isdone = 1;
(void)unused;
(void)unused2;
}
#define NUM_BUFS 3
int main(int argc, char **argv)
{
alureStream *stream;
ALuint src;
if(argc < 2)
{
fprintf(stderr, "Usage %s <soundfile>\n", argv[0]);
return 1;
}
if(!alureInitDevice(NULL, NULL))
{
fprintf(stderr, "Failed to open OpenAL device: %s\n", alureGetErrorString());
return 1;
}
alGenSources(1, &src);
if(alGetError() != AL_NO_ERROR)
{
fprintf(stderr, "Failed to create OpenAL source!\n");
alureShutdownDevice();
return 1;
}
alureStreamSizeIsMicroSec(AL_TRUE);
stream = alureCreateStreamFromFile(argv[1], 250000, 0, NULL);
if(!stream)
{
fprintf(stderr, "Could not load %s: %s\n", argv[1], alureGetErrorString());
alDeleteSources(1, &src);
alureShutdownDevice();
return 1;
}
if(!alurePlaySourceStream(src, stream, NUM_BUFS, 0, eos_callback, NULL))
{
fprintf(stderr, "Failed to play stream: %s\n", alureGetErrorString());
isdone = 1;
}
while(!isdone)
{
alureSleep(0.125);
alureUpdate();
}
alureStopSource(src, AL_FALSE);
alDeleteSources(1, &src);
alureDestroyStream(stream, 0, NULL);
alureShutdownDevice();
return 0;
}
|