Public feed
#598259
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <al/al.h>
#include <al/alc.h>
#include <al/alut.h>
class cAudio {
ALuint Buffer;
ALuint Source;
char song[50];
public:
void a2dLoad();
void a2dPlay();
void aKill();
};
void cAudio::a2dLoad(char song)
{
alutInit(NULL, 0);
alGetError();
ALfloat SourcePos[] = { 0.0, 0.0, 0.0 };
ALfloat SourceVel[] = { 0.0, 0.0, 0.0 };
ALfloat ListenerPos[] = { 0.0, 0.0, 0.0 };
ALfloat ListenerVel[] = { 0.0, 0.0, 0.0 };
ALfloat ListenerOri[] = { 0.0, 0.0, -1.0, 0.0, 1.0, 0.0 };
ALenum format;
ALsizei size;
ALvoid* data;
ALsizei freq;
ALboolean loop;
alGenBuffers(1, &Buffer);
alutLoadWAVFile(song, &format, &data, &size, &freq, &loop);
alBufferData(Buffer, format, data, size, freq);
alutUnloadWAV(format, data, size, freq);
alGenSources(1, &Source);
alSourcei (Source, AL_BUFFER, Buffer );
alSourcef (Source, AL_PITCH, 1.0 );
alSourcef (Source, AL_GAIN, 1.0 );
alSourcefv(Source, AL_POSITION, SourcePos );
alSourcefv(Source, AL_VELOCITY, SourceVel );
alSourcei (Source, AL_LOOPING, loop );
alListenerfv(AL_POSITION, ListenerPos);
alListenerfv(AL_VELOCITY, ListenerVel);
alListenerfv(AL_ORIENTATION, ListenerOri);
}
void cAudio::a2dPlay()
{
alSourcePlay(Source);
}
void cAudio::aKill()
{
alDeleteBuffers(1, &Buffer);
alDeleteSources(1, &Source);
alutExit();
}