initial commit
[rofl0r-df-peek.git] / beep.c
blob0f9cb8c59f044a09ba7c5edd81ae4369bcac912c
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <math.h>
5 #include <AL/al.h>
6 #include <AL/alc.h>
8 int main() {
10 ALuint buffer;
11 ALuint source;
12 ALCdevice* device;
13 ALCcontext* context;
14 int bufsize = 1000;
15 unsigned char test[bufsize];
16 int z;
17 for(z = 0; z < bufsize; z++) {
18 test[z] = round(120*sin(z*(2*M_PI)/30.0)+128);
20 device = alcOpenDevice(NULL);
21 context = alcCreateContext(device, NULL);
22 alcMakeContextCurrent(context);
24 alGenBuffers(1, &buffer);
25 alBufferData(buffer, AL_FORMAT_MONO8, test, bufsize, 11024);
26 if (alGetError()) return 1;
28 alGenSources(1, &source);
30 alSourcef(source, AL_PITCH, 1.0);
31 alSourcef(source, AL_GAIN, 1.0);
32 alSourcei(source, AL_BUFFER, buffer);
33 alSourcei(source, AL_LOOPING, AL_FALSE);
34 alSourcei(source, AL_BUFFER, buffer);
35 if (alGetError()) return 1;
37 alSourcePlay(source);
38 if (alGetError()) return 1;
40 sleep(1);
41 alSourceStop(source);
43 alDeleteSources(1, &source);
44 alDeleteBuffers(1, &buffer);
46 alcMakeContextCurrent(NULL);
48 alcDestroyContext(context);
49 alcCloseDevice(device);
51 return 0;