dsound: Skip the sound checks on the primary module and change its driver module to "".

This commit is contained in:
Maarten Lankhorst 2008-04-19 22:01:36 -07:00 committed by Alexandre Julliard
parent 430a46fdf7
commit 6c4d9448a9
2 changed files with 14 additions and 5 deletions

View File

@ -311,8 +311,8 @@ HRESULT WINAPI DirectSoundEnumerateA(
err = mmErr(waveOutMessage((HWAVEOUT)wod,DRV_QUERYDSOUNDDESC,(DWORD_PTR)&desc,0)); err = mmErr(waveOutMessage((HWAVEOUT)wod,DRV_QUERYDSOUNDDESC,(DWORD_PTR)&desc,0));
if (err == DS_OK) { if (err == DS_OK) {
TRACE("calling lpDSEnumCallback(NULL,\"%s\",\"%s\",%p)\n", TRACE("calling lpDSEnumCallback(NULL,\"%s\",\"%s\",%p)\n",
"Primary Sound Driver",desc.szDrvname,lpContext); "Primary Sound Driver","",lpContext);
if (lpDSEnumCallback(NULL, "Primary Sound Driver", desc.szDrvname, lpContext) == FALSE) if (lpDSEnumCallback(NULL, "Primary Sound Driver", "", lpContext) == FALSE)
return DS_OK; return DS_OK;
} }
} }
@ -367,6 +367,7 @@ HRESULT WINAPI DirectSoundEnumerateW(
devs = waveOutGetNumDevs(); devs = waveOutGetNumDevs();
if (devs > 0) { if (devs > 0) {
if (GetDeviceID(&DSDEVID_DefaultPlayback, &guid) == DS_OK) { if (GetDeviceID(&DSDEVID_DefaultPlayback, &guid) == DS_OK) {
static const WCHAR empty[] = { 0 };
for (wod = 0; wod < devs; ++wod) { for (wod = 0; wod < devs; ++wod) {
if (IsEqualGUID( &guid, &DSOUND_renderer_guids[wod] ) ) { if (IsEqualGUID( &guid, &DSOUND_renderer_guids[wod] ) ) {
err = mmErr(waveOutMessage((HWAVEOUT)wod,DRV_QUERYDSOUNDDESC,(DWORD_PTR)&desc,0)); err = mmErr(waveOutMessage((HWAVEOUT)wod,DRV_QUERYDSOUNDDESC,(DWORD_PTR)&desc,0));
@ -375,9 +376,7 @@ HRESULT WINAPI DirectSoundEnumerateW(
"Primary Sound Driver",desc.szDrvname,lpContext); "Primary Sound Driver",desc.szDrvname,lpContext);
MultiByteToWideChar( CP_ACP, 0, "Primary Sound Driver", -1, MultiByteToWideChar( CP_ACP, 0, "Primary Sound Driver", -1,
wDesc, sizeof(wDesc)/sizeof(WCHAR) ); wDesc, sizeof(wDesc)/sizeof(WCHAR) );
MultiByteToWideChar( CP_ACP, 0, desc.szDrvname, -1, if (lpDSEnumCallback(NULL, wDesc, empty, lpContext) == FALSE)
wName, sizeof(wName)/sizeof(WCHAR) );
if (lpDSEnumCallback(NULL, wDesc, wName, lpContext) == FALSE)
return DS_OK; return DS_OK;
} }
} }

View File

@ -1002,11 +1002,21 @@ EXIT:
return rc; return rc;
} }
static unsigned int number;
static BOOL WINAPI dsenum_callback(LPGUID lpGuid, LPCSTR lpcstrDescription, static BOOL WINAPI dsenum_callback(LPGUID lpGuid, LPCSTR lpcstrDescription,
LPCSTR lpcstrModule, LPVOID lpContext) LPCSTR lpcstrModule, LPVOID lpContext)
{ {
HRESULT rc; HRESULT rc;
trace("*** Testing %s - %s ***\n",lpcstrDescription,lpcstrModule); trace("*** Testing %s - %s ***\n",lpcstrDescription,lpcstrModule);
/* Don't test the primary device */
if (!number++)
{
ok (!lpcstrModule[0], "lpcstrModule(%s) != NULL\n", lpcstrModule);
return 1;
}
rc = test_dsound(lpGuid); rc = test_dsound(lpGuid);
if (rc == DSERR_NODRIVER) if (rc == DSERR_NODRIVER)
trace(" No Driver\n"); trace(" No Driver\n");