OpenAL channels now use their own sound buffers

# Conflicts:
#	src/audio/sampman_oal.cpp
This commit is contained in:
Sergeanur 2020-10-27 09:35:09 +02:00
commit 86b1d9aea5
4 changed files with 96 additions and 166 deletions

View file

@ -9,22 +9,24 @@
class CChannel
{
ALuint alSource;
ALuint alFilter;
ALuint alBuffer;
uint32 id;
float Pitch, Gain;
float Mix;
void *Data;
size_t DataSize;
int32 Frequency;
float Position[3];
float Distances[2];
int32 LoopCount;
ALint LoopPoints[2];
uint32 Sample;
public:
static void InitChannels();
static void DestroyChannels();
CChannel();
void SetDefault();
void Reset();
void Init(bool Is2D = false);
void Init(uint32 _id, bool Is2D = false);
void Term();
void Start();
void Stop();
@ -33,15 +35,13 @@ public:
void SetPitch(float pitch);
void SetGain(float gain);
void SetVolume(int32 vol);
void SetSampleID(uint32 nSfx);
void SetFreq(int32 freq);
void SetSampleData(void *_data, size_t _DataSize, int32 freq);
void SetCurrentFreq(uint32 freq);
void SetLoopCount(int32 loopCount); // fake
void SetLoopPoints(ALint start, ALint end);
void SetPosition(float x, float y, float z);
void SetDistances(float max, float min);
void SetPan(uint32 pan);
void SetBuffer(ALuint buffer);
void SetPan(int32 pan);
void ClearBuffer();
void SetReverbMix(ALuint slot, float mix);
void UpdateReverb(ALuint slot);