mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 12:19:49 +00:00
Set driver type properly.
This commit is contained in:
parent
2b6385671f
commit
ed2a6e4aae
1 changed files with 52 additions and 4 deletions
|
@ -1063,6 +1063,7 @@ static HRESULT WINAPI DSPROPERTY_Enumerate1(
|
|||
for (wod = 0; wod < devs; ++wod) {
|
||||
err = mmErr(waveOutMessage((HWAVEOUT)wod,DRV_QUERYDSOUNDDESC,(DWORD)&desc,0));
|
||||
if (err == DS_OK) {
|
||||
PIDSCDRIVER drv;
|
||||
ZeroMemory(&data, sizeof(data));
|
||||
data.DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_RENDER;
|
||||
data.WaveDeviceId = wod;
|
||||
|
@ -1073,6 +1074,13 @@ static HRESULT WINAPI DSPROPERTY_Enumerate1(
|
|||
MultiByteToWideChar( CP_ACP, 0, data.DescriptionA, -1, data.DescriptionW, sizeof(data.DescriptionW) );
|
||||
MultiByteToWideChar( CP_ACP, 0, data.ModuleA, -1, data.ModuleW, sizeof(data.ModuleW) );
|
||||
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_EMULATED;
|
||||
err = mmErr(waveOutMessage((HWAVEOUT)wod, DRV_QUERYDSOUNDIFACE, (DWORD)&drv, 0));
|
||||
if (err == DS_OK && drv)
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_VXD;
|
||||
else
|
||||
WARN("waveOutMessage(DRV_QUERYDSOUNDIFACE) failed\n");
|
||||
|
||||
TRACE("calling Callback(%p,%p)\n", &data, ppd->Context);
|
||||
(ppd->Callback)(&data, ppd->Context);
|
||||
}
|
||||
|
@ -1082,16 +1090,24 @@ static HRESULT WINAPI DSPROPERTY_Enumerate1(
|
|||
for (wid = 0; wid < devs; ++wid) {
|
||||
err = mmErr(waveInMessage((HWAVEIN)wid,DRV_QUERYDSOUNDDESC,(DWORD)&desc,0));
|
||||
if (err == DS_OK) {
|
||||
PIDSCDRIVER drv;
|
||||
ZeroMemory(&data, sizeof(data));
|
||||
data.DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_RENDER;
|
||||
data.WaveDeviceId = wod;
|
||||
data.DeviceId = DSOUND_renderer_guids[wod];
|
||||
data.DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE;
|
||||
data.WaveDeviceId = wid;
|
||||
data.DeviceId = DSOUND_capture_guids[wid];
|
||||
lstrcpynA(data.DescriptionA, desc.szDesc, sizeof(data.DescriptionA));
|
||||
lstrcpynA(data.ModuleA, desc.szDrvname, sizeof(data.ModuleA));
|
||||
|
||||
MultiByteToWideChar( CP_ACP, 0, data.DescriptionA, -1, data.DescriptionW, sizeof(data.DescriptionW) );
|
||||
MultiByteToWideChar( CP_ACP, 0, data.ModuleA, -1, data.ModuleW, sizeof(data.ModuleW) );
|
||||
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_EMULATED;
|
||||
err = mmErr(waveInMessage((HWAVEIN)wid, DRV_QUERYDSOUNDIFACE, (DWORD)&drv, 0));
|
||||
if (err == DS_OK && drv)
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_VXD;
|
||||
else
|
||||
WARN("waveInMessage(DRV_QUERYDSOUNDIFACE) failed\n");
|
||||
|
||||
TRACE("calling Callback(%p,%p)\n", &data, ppd->Context);
|
||||
(ppd->Callback)(&data, ppd->Context);
|
||||
}
|
||||
|
@ -1143,6 +1159,7 @@ static HRESULT WINAPI DSPROPERTY_EnumerateA(
|
|||
if (err == DS_OK) {
|
||||
CHAR * szInterface = HeapAlloc(GetProcessHeap(),0,size/sizeof(WCHAR));
|
||||
if (szInterface) {
|
||||
PIDSCDRIVER drv;
|
||||
ZeroMemory(&data, sizeof(data));
|
||||
data.DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_RENDER;
|
||||
data.WaveDeviceId = wod;
|
||||
|
@ -1152,6 +1169,13 @@ static HRESULT WINAPI DSPROPERTY_EnumerateA(
|
|||
WideCharToMultiByte( CP_ACP, 0, nameW, size/sizeof(WCHAR), szInterface, size/sizeof(WCHAR), NULL, NULL );
|
||||
data.Interface = szInterface;
|
||||
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_EMULATED;
|
||||
err = mmErr(waveOutMessage((HWAVEOUT)wod, DRV_QUERYDSOUNDIFACE, (DWORD)&drv, 0));
|
||||
if (err == DS_OK && drv)
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_VXD;
|
||||
else
|
||||
WARN("waveOutMessage(DRV_QUERYDSOUNDIFACE) failed\n");
|
||||
|
||||
TRACE("calling Callback(%p,%p)\n", &data, ppd->Context);
|
||||
(ppd->Callback)(&data, ppd->Context);
|
||||
}
|
||||
|
@ -1176,6 +1200,7 @@ static HRESULT WINAPI DSPROPERTY_EnumerateA(
|
|||
if (err == DS_OK) {
|
||||
CHAR * szInterface = HeapAlloc(GetProcessHeap(),0,size/sizeof(WCHAR));
|
||||
if (szInterface) {
|
||||
PIDSCDRIVER drv;
|
||||
ZeroMemory(&data, sizeof(data));
|
||||
data.DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE;
|
||||
data.WaveDeviceId = wid;
|
||||
|
@ -1185,6 +1210,13 @@ static HRESULT WINAPI DSPROPERTY_EnumerateA(
|
|||
WideCharToMultiByte( CP_ACP, 0, nameW, size/sizeof(WCHAR), szInterface, size/sizeof(WCHAR), NULL, NULL );
|
||||
data.Interface = szInterface;
|
||||
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_EMULATED;
|
||||
err = mmErr(waveInMessage((HWAVEIN)wid, DRV_QUERYDSOUNDIFACE, (DWORD)&drv, 0));
|
||||
if (err == DS_OK && drv)
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_VXD;
|
||||
else
|
||||
WARN("waveInMessage(DRV_QUERYDSOUNDIFACE) failed\n");
|
||||
|
||||
TRACE("calling Callback(%p,%p)\n", &data, ppd->Context);
|
||||
(ppd->Callback)(&data, ppd->Context);
|
||||
}
|
||||
|
@ -1243,6 +1275,7 @@ static HRESULT WINAPI DSPROPERTY_EnumerateW(
|
|||
if (wInterface) {
|
||||
err = mmErr(waveOutMessage((HWAVEOUT)wod, DRV_QUERYDEVICEINTERFACE, (DWORD_PTR)wInterface, size));
|
||||
if (err == DS_OK) {
|
||||
PIDSCDRIVER drv;
|
||||
ZeroMemory(&data, sizeof(data));
|
||||
data.DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_RENDER;
|
||||
data.WaveDeviceId = wod;
|
||||
|
@ -1255,6 +1288,13 @@ static HRESULT WINAPI DSPROPERTY_EnumerateW(
|
|||
data.Module = wModule;
|
||||
data.Interface = wInterface;
|
||||
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_EMULATED;
|
||||
err = mmErr(waveOutMessage((HWAVEOUT)wod, DRV_QUERYDSOUNDIFACE, (DWORD)&drv, 0));
|
||||
if (err == DS_OK && drv)
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_VXD;
|
||||
else
|
||||
WARN("waveOutMessage(DRV_QUERYDSOUNDIFACE) failed\n");
|
||||
|
||||
TRACE("calling Callback(%p,%p)\n", &data, ppd->Context);
|
||||
(ppd->Callback)(&data, ppd->Context);
|
||||
}
|
||||
|
@ -1279,8 +1319,9 @@ static HRESULT WINAPI DSPROPERTY_EnumerateW(
|
|||
if (err == DS_OK) {
|
||||
WCHAR * wInterface = HeapAlloc(GetProcessHeap(),0,size);
|
||||
if (wInterface) {
|
||||
err = mmErr(waveInMessage((HWAVEIN)wod, DRV_QUERYDEVICEINTERFACE, (DWORD_PTR)wInterface, size));
|
||||
err = mmErr(waveInMessage((HWAVEIN)wid, DRV_QUERYDEVICEINTERFACE, (DWORD_PTR)wInterface, size));
|
||||
if (err == DS_OK) {
|
||||
PIDSCDRIVER drv;
|
||||
ZeroMemory(&data, sizeof(data));
|
||||
data.DataFlow = DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE;
|
||||
data.WaveDeviceId = wid;
|
||||
|
@ -1292,6 +1333,13 @@ static HRESULT WINAPI DSPROPERTY_EnumerateW(
|
|||
data.Description = wDescription;
|
||||
data.Module = wModule;
|
||||
data.Interface = wInterface;
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_EMULATED;
|
||||
err = mmErr(waveInMessage((HWAVEIN)wid, DRV_QUERYDSOUNDIFACE, (DWORD)&drv, 0));
|
||||
if (err == DS_OK && drv)
|
||||
data.Type = DIRECTSOUNDDEVICE_TYPE_VXD;
|
||||
else
|
||||
WARN("waveInMessage(DRV_QUERYDSOUNDIFACE) failed\n");
|
||||
|
||||
TRACE("calling Callback(%p,%p)\n", &data, ppd->Context);
|
||||
(ppd->Callback)(&data, ppd->Context);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue