=?UTF-8?Q?J=C3=B6rg=20H=C3=B6hle=20?=: mmdevapi: Accept up to 8 channels.
Alexandre Julliard
julliard at winehq.org
Wed Sep 7 12:35:30 CDT 2011
Module: wine
Branch: master
Commit: df201d3ef3a485ab8899de22f2c5594dfc5057ca
URL: http://source.winehq.org/git/wine.git/?a=commit;h=df201d3ef3a485ab8899de22f2c5594dfc5057ca
Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date: Fri Sep 2 22:49:20 2011 +0200
mmdevapi: Accept up to 8 channels.
---
dlls/winealsa.drv/mmdevdrv.c | 24 ++++++++++--------------
dlls/winecoreaudio.drv/mmdevdrv.c | 22 +++++++++-------------
dlls/wineoss.drv/mmdevdrv.c | 22 +++++++++-------------
3 files changed, 28 insertions(+), 40 deletions(-)
diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c
index 180dbc7..e471e2c 100644
--- a/dlls/winealsa.drv/mmdevdrv.c
+++ b/dlls/winealsa.drv/mmdevdrv.c
@@ -1139,25 +1139,21 @@ static DWORD get_channel_mask(unsigned int channels)
case 0:
return 0;
case 1:
- return SPEAKER_FRONT_CENTER;
+ return KSAUDIO_SPEAKER_MONO;
case 2:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT;
+ return KSAUDIO_SPEAKER_STEREO;
case 3:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |
- SPEAKER_LOW_FREQUENCY;
+ return KSAUDIO_SPEAKER_STEREO | SPEAKER_LOW_FREQUENCY;
case 4:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT;
+ return KSAUDIO_SPEAKER_QUAD; /* not _SURROUND */
case 5:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY;
+ return KSAUDIO_SPEAKER_QUAD | SPEAKER_LOW_FREQUENCY;
case 6:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER;
+ return KSAUDIO_SPEAKER_5POINT1; /* not 5POINT1_SURROUND */
case 7:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER |
- SPEAKER_BACK_CENTER;
+ return KSAUDIO_SPEAKER_5POINT1 | SPEAKER_BACK_CENTER;
+ case 8:
+ return KSAUDIO_SPEAKER_7POINT1; /* not 7POINT1_SURROUND */
}
FIXME("Unknown speaker configuration: %u\n", channels);
return 0;
@@ -1296,7 +1292,7 @@ static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface,
WARN("Unable to get max channels: %d (%s)\n", err, snd_strerror(err));
goto exit;
}
- if(max > 7)
+ if(max > 8)
max = 2;
if(fmt->nChannels > max){
hr = S_FALSE;
diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c
index a951673..6fd336f 100644
--- a/dlls/winecoreaudio.drv/mmdevdrv.c
+++ b/dlls/winecoreaudio.drv/mmdevdrv.c
@@ -568,25 +568,21 @@ static DWORD get_channel_mask(unsigned int channels)
case 0:
return 0;
case 1:
- return SPEAKER_FRONT_CENTER;
+ return KSAUDIO_SPEAKER_MONO;
case 2:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT;
+ return KSAUDIO_SPEAKER_STEREO;
case 3:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |
- SPEAKER_LOW_FREQUENCY;
+ return KSAUDIO_SPEAKER_STEREO | SPEAKER_LOW_FREQUENCY;
case 4:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT;
+ return KSAUDIO_SPEAKER_QUAD; /* not _SURROUND */
case 5:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY;
+ return KSAUDIO_SPEAKER_QUAD | SPEAKER_LOW_FREQUENCY;
case 6:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER;
+ return KSAUDIO_SPEAKER_5POINT1; /* not 5POINT1_SURROUND */
case 7:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER |
- SPEAKER_BACK_CENTER;
+ return KSAUDIO_SPEAKER_5POINT1 | SPEAKER_BACK_CENTER;
+ case 8:
+ return KSAUDIO_SPEAKER_7POINT1; /* not 7POINT1_SURROUND */
}
FIXME("Unknown speaker configuration: %u\n", channels);
return 0;
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c
index fe0c1d8..ed3e2ba 100644
--- a/dlls/wineoss.drv/mmdevdrv.c
+++ b/dlls/wineoss.drv/mmdevdrv.c
@@ -592,25 +592,21 @@ static DWORD get_channel_mask(unsigned int channels)
case 0:
return 0;
case 1:
- return SPEAKER_FRONT_CENTER;
+ return KSAUDIO_SPEAKER_MONO;
case 2:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT;
+ return KSAUDIO_SPEAKER_STEREO;
case 3:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |
- SPEAKER_LOW_FREQUENCY;
+ return KSAUDIO_SPEAKER_STEREO | SPEAKER_LOW_FREQUENCY;
case 4:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT;
+ return KSAUDIO_SPEAKER_QUAD; /* not _SURROUND */
case 5:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY;
+ return KSAUDIO_SPEAKER_QUAD | SPEAKER_LOW_FREQUENCY;
case 6:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER;
+ return KSAUDIO_SPEAKER_5POINT1; /* not 5POINT1_SURROUND */
case 7:
- return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT |
- SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER |
- SPEAKER_BACK_CENTER;
+ return KSAUDIO_SPEAKER_5POINT1 | SPEAKER_BACK_CENTER;
+ case 8:
+ return KSAUDIO_SPEAKER_7POINT1; /* not 7POINT1_SURROUND */
}
FIXME("Unknown speaker configuration: %u\n", channels);
return 0;
More information about the wine-cvs
mailing list