diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c index fbfb4f853fd..b3475ad9817 100644 --- a/dlls/dsound/dsound.c +++ b/dlls/dsound/dsound.c @@ -1172,7 +1172,7 @@ static HRESULT DirectSoundDevice_Create(DirectSoundDevice ** ppDevice) device->ref = 1; device->priolevel = DSSCL_NORMAL; device->state = STATE_STOPPED; - device->speaker_config = DSSPEAKER_STEREO | (DSSPEAKER_GEOMETRY_NARROW << 16); + device->speaker_config = DSSPEAKER_COMBINED(DSSPEAKER_STEREO, DSSPEAKER_GEOMETRY_WIDE); /* 3D listener initial parameters */ device->ds3dl.dwSize = sizeof(DS3DLISTENER); diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c index 8e79c6e7cac..0cb7b9b70aa 100644 --- a/dlls/winealsa.drv/mmdevdrv.c +++ b/dlls/winealsa.drv/mmdevdrv.c @@ -1206,7 +1206,7 @@ static DWORD get_channel_mask(unsigned int channels) case 7: return KSAUDIO_SPEAKER_5POINT1 | SPEAKER_BACK_CENTER; case 8: - return KSAUDIO_SPEAKER_7POINT1; /* not 7POINT1_SURROUND */ + return KSAUDIO_SPEAKER_7POINT1_SURROUND; /* Vista deprecates 7POINT1 */ } FIXME("Unknown speaker configuration: %u\n", channels); return 0; diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index 19a505c58be..5d69e3c4d0f 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -700,7 +700,7 @@ static DWORD get_channel_mask(unsigned int channels) case 7: return KSAUDIO_SPEAKER_5POINT1 | SPEAKER_BACK_CENTER; case 8: - return KSAUDIO_SPEAKER_7POINT1; /* not 7POINT1_SURROUND */ + return KSAUDIO_SPEAKER_7POINT1_SURROUND; /* Vista deprecates 7POINT1 */ } FIXME("Unknown speaker configuration: %u\n", channels); return 0; diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c index aaa94eef50b..89c9adf9c05 100644 --- a/dlls/wineoss.drv/mmdevdrv.c +++ b/dlls/wineoss.drv/mmdevdrv.c @@ -657,7 +657,7 @@ static DWORD get_channel_mask(unsigned int channels) case 7: return KSAUDIO_SPEAKER_5POINT1 | SPEAKER_BACK_CENTER; case 8: - return KSAUDIO_SPEAKER_7POINT1; /* not 7POINT1_SURROUND */ + return KSAUDIO_SPEAKER_7POINT1_SURROUND; /* Vista deprecates 7POINT1 */ } FIXME("Unknown speaker configuration: %u\n", channels); return 0; diff --git a/include/dsound.h b/include/dsound.h index 372fabf1060..cd284aa9f50 100644 --- a/include/dsound.h +++ b/include/dsound.h @@ -301,13 +301,18 @@ typedef struct _DSBPOSITIONNOTIFY } DSBPOSITIONNOTIFY,*LPDSBPOSITIONNOTIFY; typedef const DSBPOSITIONNOTIFY *LPCDSBPOSITIONNOTIFY; +#define DSSPEAKER_DIRECTOUT 0 #define DSSPEAKER_HEADPHONE 1 #define DSSPEAKER_MONO 2 #define DSSPEAKER_QUAD 3 #define DSSPEAKER_STEREO 4 #define DSSPEAKER_SURROUND 5 #define DSSPEAKER_5POINT1 6 +#define DSSPEAKER_5POINT1_BACK 6 #define DSSPEAKER_7POINT1 7 +#define DSSPEAKER_7POINT1_WIDE 7 +#define DSSPEAKER_7POINT1_SURROUND 8 +#define DSSPEAKER_5POINT1_SURROUND 9 #define DSSPEAKER_GEOMETRY_MIN 0x00000005 /* 5 degrees */ #define DSSPEAKER_GEOMETRY_NARROW 0x0000000A /* 10 degrees */ diff --git a/include/ksmedia.h b/include/ksmedia.h index 44834bb52be..dec28663ccf 100644 --- a/include/ksmedia.h +++ b/include/ksmedia.h @@ -34,8 +34,10 @@ DEFINE_GUID(KSDATAFORMAT_SUBTYPE_ALAW, 0x00000006, 0x0000, 0x0010, 0x80, 0x00, 0 #define KSAUDIO_SPEAKER_QUAD (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT) #define KSAUDIO_SPEAKER_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER) #define KSAUDIO_SPEAKER_5POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT) +/* 5:1 SIDE or BACK is not distinguished, only 0x3F shall be used (BACK) */ #define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT) #define KSAUDIO_SPEAKER_7POINT1 (KSAUDIO_SPEAKER_5POINT1 | SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER) +/* 7:1 home theater 0x63F */ #define KSAUDIO_SPEAKER_7POINT1_SURROUND (KSAUDIO_SPEAKER_5POINT1 | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT) #ifndef REFERENCE_TIME_DEFINED