dsound: Fix mixup between HWAVEOUT and HWAVEIN.
The code path is taken when a valid wod isn't found. The loop thus doesn't call waveInMessage() for each wid but retries the same wrong wod.
This commit is contained in:
parent
0b872e65b2
commit
7ab165a590
|
@ -543,14 +543,14 @@ static HRESULT DSPROPERTY_Description1(
|
||||||
ppd->DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE;
|
ppd->DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE;
|
||||||
ppd->WaveDeviceId = wid;
|
ppd->WaveDeviceId = wid;
|
||||||
ppd->Devnode = wid;
|
ppd->Devnode = wid;
|
||||||
err = mmErr(waveInMessage((HWAVEIN)wod,DRV_QUERYDSOUNDDESC,(DWORD_PTR)&(desc),0));
|
err = mmErr(waveInMessage((HWAVEIN)wid,DRV_QUERYDSOUNDDESC,(DWORD_PTR)&(desc),0));
|
||||||
if (err == DS_OK) {
|
if (err == DS_OK) {
|
||||||
PIDSDRIVER drv = NULL;
|
PIDSDRIVER drv = NULL;
|
||||||
lstrcpynA(ppd->DescriptionA, desc.szDesc, sizeof(ppd->DescriptionA));
|
lstrcpynA(ppd->DescriptionA, desc.szDesc, sizeof(ppd->DescriptionA));
|
||||||
lstrcpynA(ppd->ModuleA, desc.szDrvname, sizeof(ppd->ModuleA));
|
lstrcpynA(ppd->ModuleA, desc.szDrvname, sizeof(ppd->ModuleA));
|
||||||
MultiByteToWideChar( CP_ACP, 0, desc.szDesc, -1, ppd->DescriptionW, sizeof(ppd->DescriptionW)/sizeof(WCHAR) );
|
MultiByteToWideChar( CP_ACP, 0, desc.szDesc, -1, ppd->DescriptionW, sizeof(ppd->DescriptionW)/sizeof(WCHAR) );
|
||||||
MultiByteToWideChar( CP_ACP, 0, desc.szDrvname, -1, ppd->ModuleW, sizeof(ppd->ModuleW)/sizeof(WCHAR) );
|
MultiByteToWideChar( CP_ACP, 0, desc.szDrvname, -1, ppd->ModuleW, sizeof(ppd->ModuleW)/sizeof(WCHAR) );
|
||||||
err = mmErr(waveInMessage((HWAVEIN)wod, DRV_QUERYDSOUNDIFACE, (DWORD_PTR)&drv, 0));
|
err = mmErr(waveInMessage((HWAVEIN)wid, DRV_QUERYDSOUNDIFACE, (DWORD_PTR)&drv, 0));
|
||||||
if (err == DS_OK && drv)
|
if (err == DS_OK && drv)
|
||||||
ppd->Type = DIRECTSOUNDDEVICE_TYPE_VXD;
|
ppd->Type = DIRECTSOUNDDEVICE_TYPE_VXD;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue