aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Alc/ALu.c78
-rw-r--r--OpenAL32/Include/alu.h80
2 files changed, 78 insertions, 80 deletions
diff --git a/Alc/ALu.c b/Alc/ALu.c
index a7845dc3..79a2bfc3 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -58,84 +58,6 @@ typedef long long ALint64;
ALboolean DuplicateStereo = AL_FALSE;
-/* NOTE: The AL_FORMAT_REAR* enums aren't handled here be cause they're
- * converted to AL_FORMAT_QUAD* when loaded */
-__inline ALuint aluBytesFromFormat(ALenum format)
-{
- switch(format)
- {
- case AL_FORMAT_MONO8:
- case AL_FORMAT_STEREO8:
- case AL_FORMAT_QUAD8_LOKI:
- case AL_FORMAT_QUAD8:
- case AL_FORMAT_51CHN8:
- case AL_FORMAT_61CHN8:
- case AL_FORMAT_71CHN8:
- return 1;
-
- case AL_FORMAT_MONO16:
- case AL_FORMAT_STEREO16:
- case AL_FORMAT_QUAD16_LOKI:
- case AL_FORMAT_QUAD16:
- case AL_FORMAT_51CHN16:
- case AL_FORMAT_61CHN16:
- case AL_FORMAT_71CHN16:
- return 2;
-
- case AL_FORMAT_MONO_FLOAT32:
- case AL_FORMAT_STEREO_FLOAT32:
- case AL_FORMAT_QUAD32:
- case AL_FORMAT_51CHN32:
- case AL_FORMAT_61CHN32:
- case AL_FORMAT_71CHN32:
- return 4;
-
- default:
- return 0;
- }
-}
-
-__inline ALuint aluChannelsFromFormat(ALenum format)
-{
- switch(format)
- {
- case AL_FORMAT_MONO8:
- case AL_FORMAT_MONO16:
- case AL_FORMAT_MONO_FLOAT32:
- return 1;
-
- case AL_FORMAT_STEREO8:
- case AL_FORMAT_STEREO16:
- case AL_FORMAT_STEREO_FLOAT32:
- return 2;
-
- case AL_FORMAT_QUAD8_LOKI:
- case AL_FORMAT_QUAD16_LOKI:
- case AL_FORMAT_QUAD8:
- case AL_FORMAT_QUAD16:
- case AL_FORMAT_QUAD32:
- return 4;
-
- case AL_FORMAT_51CHN8:
- case AL_FORMAT_51CHN16:
- case AL_FORMAT_51CHN32:
- return 6;
-
- case AL_FORMAT_61CHN8:
- case AL_FORMAT_61CHN16:
- case AL_FORMAT_61CHN32:
- return 7;
-
- case AL_FORMAT_71CHN8:
- case AL_FORMAT_71CHN16:
- case AL_FORMAT_71CHN32:
- return 8;
-
- default:
- return 0;
- }
-}
-
static __inline ALshort aluF2S(ALfloat Value)
{
diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h
index 9bbcc464..f2a7b023 100644
--- a/OpenAL32/Include/alu.h
+++ b/OpenAL32/Include/alu.h
@@ -3,6 +3,7 @@
#include "AL/al.h"
#include "AL/alc.h"
+#include "AL/alext.h"
#ifdef HAVE_FLOAT_H
#include <float.h>
@@ -67,8 +68,83 @@ enum {
extern ALboolean DuplicateStereo;
-__inline ALuint aluBytesFromFormat(ALenum format);
-__inline ALuint aluChannelsFromFormat(ALenum format);
+/* NOTE: The AL_FORMAT_REAR* enums aren't handled here be cause they're
+ * converted to AL_FORMAT_QUAD* when loaded */
+static __inline ALuint aluBytesFromFormat(ALenum format)
+{
+ switch(format)
+ {
+ case AL_FORMAT_MONO8:
+ case AL_FORMAT_STEREO8:
+ case AL_FORMAT_QUAD8_LOKI:
+ case AL_FORMAT_QUAD8:
+ case AL_FORMAT_51CHN8:
+ case AL_FORMAT_61CHN8:
+ case AL_FORMAT_71CHN8:
+ return 1;
+
+ case AL_FORMAT_MONO16:
+ case AL_FORMAT_STEREO16:
+ case AL_FORMAT_QUAD16_LOKI:
+ case AL_FORMAT_QUAD16:
+ case AL_FORMAT_51CHN16:
+ case AL_FORMAT_61CHN16:
+ case AL_FORMAT_71CHN16:
+ return 2;
+
+ case AL_FORMAT_MONO_FLOAT32:
+ case AL_FORMAT_STEREO_FLOAT32:
+ case AL_FORMAT_QUAD32:
+ case AL_FORMAT_51CHN32:
+ case AL_FORMAT_61CHN32:
+ case AL_FORMAT_71CHN32:
+ return 4;
+
+ default:
+ return 0;
+ }
+}
+static __inline ALuint aluChannelsFromFormat(ALenum format)
+{
+ switch(format)
+ {
+ case AL_FORMAT_MONO8:
+ case AL_FORMAT_MONO16:
+ case AL_FORMAT_MONO_FLOAT32:
+ return 1;
+
+ case AL_FORMAT_STEREO8:
+ case AL_FORMAT_STEREO16:
+ case AL_FORMAT_STEREO_FLOAT32:
+ return 2;
+
+ case AL_FORMAT_QUAD8_LOKI:
+ case AL_FORMAT_QUAD16_LOKI:
+ case AL_FORMAT_QUAD8:
+ case AL_FORMAT_QUAD16:
+ case AL_FORMAT_QUAD32:
+ return 4;
+
+ case AL_FORMAT_51CHN8:
+ case AL_FORMAT_51CHN16:
+ case AL_FORMAT_51CHN32:
+ return 6;
+
+ case AL_FORMAT_61CHN8:
+ case AL_FORMAT_61CHN16:
+ case AL_FORMAT_61CHN32:
+ return 7;
+
+ case AL_FORMAT_71CHN8:
+ case AL_FORMAT_71CHN16:
+ case AL_FORMAT_71CHN32:
+ return 8;
+
+ default:
+ return 0;
+ }
+}
+
ALvoid aluInitPanning(ALCcontext *Context);
ALvoid aluMixData(ALCcontext *context,ALvoid *buffer,ALsizei size,ALenum format);