summaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include/alMain.h
diff options
context:
space:
mode:
Diffstat (limited to 'OpenAL32/Include/alMain.h')
-rw-r--r--OpenAL32/Include/alMain.h44
1 files changed, 43 insertions, 1 deletions
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 49241eca..a18da7e4 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -377,7 +377,6 @@ static __inline void UnlockUIntMapWrite(UIntMap *map)
{ WriteUnlock(&map->lock); }
#include "alListener.h"
-#include "alu.h"
#ifdef __cplusplus
extern "C" {
@@ -515,6 +514,20 @@ void alc_loopback_deinit(void);
void alc_loopback_probe(enum DevProbe type);
+enum Channel {
+ FrontLeft = 0,
+ FrontRight,
+ FrontCenter,
+ LFE,
+ BackLeft,
+ BackRight,
+ BackCenter,
+ SideLeft,
+ SideRight,
+
+ MaxChannels,
+};
+
/* Device formats */
enum DevFmtType {
DevFmtByte = ALC_BYTE_SOFT,
@@ -564,6 +577,22 @@ enum DeviceType {
Loopback
};
+
+/* Size for temporary storage of buffer data, in ALfloats. Larger values need
+ * more stack, while smaller values may need more iterations. The value needs
+ * to be a sensible size, however, as it constrains the max stepping value used
+ * for mixing, as well as the maximum number of samples per mixing iteration.
+ * The mixer requires being able to do two samplings per mixing loop. A 16KB
+ * buffer can hold 512 sample frames for a 7.1 float buffer. With the cubic
+ * resampler (which requires 3 padding sample frames), this limits the maximum
+ * step to about 508. This means that buffer_freq*source_pitch cannot exceed
+ * device_freq*508 for an 8-channel 32-bit buffer.
+ */
+#ifndef BUFFERSIZE
+#define BUFFERSIZE 4096
+#endif
+
+
struct ALCdevice_struct
{
volatile RefCount ref;
@@ -671,6 +700,19 @@ struct ALCdevice_struct
#define RemoveFilter(m, k) ((struct ALfilter*)RemoveUIntMapKey(&(m)->FilterMap, (k)))
+enum DistanceModel {
+ InverseDistanceClamped = AL_INVERSE_DISTANCE_CLAMPED,
+ LinearDistanceClamped = AL_LINEAR_DISTANCE_CLAMPED,
+ ExponentDistanceClamped = AL_EXPONENT_DISTANCE_CLAMPED,
+ InverseDistance = AL_INVERSE_DISTANCE,
+ LinearDistance = AL_LINEAR_DISTANCE,
+ ExponentDistance = AL_EXPONENT_DISTANCE,
+ DisableDistance = AL_NONE,
+
+ DefaultDistanceModel = InverseDistanceClamped
+};
+
+
struct ALCcontext_struct
{
volatile RefCount ref;