summaryrefslogtreecommitdiffstats
path: root/src/audio/oal/channel.h
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2020-05-11 20:07:12 +0200
committerSergeanur <s.anureev@yandex.ua>2020-05-11 20:07:12 +0200
commit0aa7f13c32ea1991f4663f5eff1c37478fdf736f (patch)
treea994ac3a72f9b65dfe6648d3086d4415fe2b1234 /src/audio/oal/channel.h
parentlittle fix for cam (diff)
parentremove aps from premake (diff)
downloadre3-0aa7f13c32ea1991f4663f5eff1c37478fdf736f.tar
re3-0aa7f13c32ea1991f4663f5eff1c37478fdf736f.tar.gz
re3-0aa7f13c32ea1991f4663f5eff1c37478fdf736f.tar.bz2
re3-0aa7f13c32ea1991f4663f5eff1c37478fdf736f.tar.lz
re3-0aa7f13c32ea1991f4663f5eff1c37478fdf736f.tar.xz
re3-0aa7f13c32ea1991f4663f5eff1c37478fdf736f.tar.zst
re3-0aa7f13c32ea1991f4663f5eff1c37478fdf736f.zip
Diffstat (limited to 'src/audio/oal/channel.h')
-rw-r--r--src/audio/oal/channel.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/audio/oal/channel.h b/src/audio/oal/channel.h
new file mode 100644
index 00000000..4dd09ca1
--- /dev/null
+++ b/src/audio/oal/channel.h
@@ -0,0 +1,51 @@
+#pragma once
+#include "common.h"
+
+#ifdef AUDIO_OAL
+#include "oal/oal_utils.h"
+#include <AL/al.h>
+#include <AL/alext.h>
+#include <AL/efx.h>
+
+
+class CChannel
+{
+ ALuint alSource;
+ ALuint alFilter;
+ ALuint alBuffer;
+ float Pitch, Gain;
+ float Mix;
+ int32 Frequency;
+ float Position[3];
+ float Distances[2];
+ int32 LoopCount;
+ ALint LoopPoints[2];
+ uint32 Sample;
+public:
+ CChannel();
+ void SetDefault();
+ void Reset();
+ void Init(bool Is2D = false);
+ void Term();
+ void Start();
+ void Stop();
+ bool HasSource();
+ bool IsUsed();
+ void SetPitch(float pitch);
+ void SetGain(float gain);
+ void SetVolume(int32 vol);
+ void SetSampleID(uint32 nSfx);
+ void SetFreq(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 ClearBuffer();
+ void SetReverbMix(ALuint slot, float mix);
+ void UpdateReverb(ALuint slot);
+};
+
+#endif \ No newline at end of file