[PATCH] [WineOSS.drv]: be consistent for aux devices about what we actually support
Eric Pouech
eric.pouech at orange.fr
Fri Jul 16 14:12:34 CDT 2010
(fix for #8724)
A+
---
dlls/wineoss.drv/mmaux.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/wineoss.drv/mmaux.c b/dlls/wineoss.drv/mmaux.c
index 3554ffb..e48df5d 100644
--- a/dlls/wineoss.drv/mmaux.c
+++ b/dlls/wineoss.drv/mmaux.c
@@ -78,10 +78,11 @@ static LRESULT OSS_AuxExit(void)
static DWORD AUX_GetDevCaps(WORD wDevID, LPAUXCAPSW lpCaps, DWORD dwSize)
{
int mixer, volume;
- static const WCHAR ini[] = {'O','S','S',' ','A','u','x',0};
+ static const WCHAR ini[] = {'O','S','S',' ','A','u','x',' ','#','0',0};
TRACE("(%04X, %p, %u);\n", wDevID, lpCaps, dwSize);
if (lpCaps == NULL) return MMSYSERR_NOTENABLED;
+ if (wDevID >= NumDev) return MMSYSERR_BADDEVICEID;
if ((mixer = open(MIXER_DEV, O_RDWR)) < 0) {
WARN("mixer device not available !\n");
return MMSYSERR_NOTENABLED;
@@ -93,10 +94,11 @@ static DWORD AUX_GetDevCaps(WORD wDevID, LPAUXCAPSW lpCaps, DWORD dwSize)
}
close(mixer);
lpCaps->wMid = 0xAA;
- lpCaps->wPid = 0x55;
+ lpCaps->wPid = 0x55 + wDevID;
lpCaps->vDriverVersion = 0x0100;
strcpyW(lpCaps->szPname, ini);
- lpCaps->wTechnology = AUXCAPS_CDAUDIO;
+ lpCaps->szPname[9] = '0' + wDevID; /* 6 at max */
+ lpCaps->wTechnology = wDevID == 2 ? AUXCAPS_CDAUDIO : AUXCAPS_AUXIN;
lpCaps->dwSupport = AUXCAPS_VOLUME | AUXCAPS_LRVOLUME;
return MMSYSERR_NOERROR;
More information about the wine-patches
mailing list