aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/oss.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-08-15 13:20:35 -0700
committerChris Robinson <[email protected]>2009-08-15 13:20:35 -0700
commitdc26261065a7ff78657ac79accc993c78069deca (patch)
tree2b9696d7aedc196acce6f1b05409c0f8237abf13 /Alc/oss.c
parent9bea67fb1c99698ccdf9cfa695a09036846163c6 (diff)
Support 32-bit float output
Diffstat (limited to 'Alc/oss.c')
-rw-r--r--Alc/oss.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/Alc/oss.c b/Alc/oss.c
index 75710492..83f8fe55 100644
--- a/Alc/oss.c
+++ b/Alc/oss.c
@@ -203,6 +203,17 @@ static ALCboolean oss_start_context(ALCdevice *device, ALCcontext *context)
case 1:
ossFormat = AFMT_U8;
break;
+ case 4:
+ switch(aluChannelsFromFormat(device->Format))
+ {
+ case 1: device->Format = AL_FORMAT_MONO16; break;
+ case 2: device->Format = AL_FORMAT_STEREO16; break;
+ case 4: device->Format = AL_FORMAT_QUAD16; break;
+ case 6: device->Format = AL_FORMAT_51CHN16; break;
+ case 7: device->Format = AL_FORMAT_61CHN16; break;
+ case 8: device->Format = AL_FORMAT_71CHN16; break;
+ }
+ /* fall-through */
case 2:
ossFormat = AFMT_S16_NE;
break;