Module: wine Branch: master Commit: 23c26982e9b62e4dfb9a291932ae039ffacef3ed URL: http://source.winehq.org/git/wine.git/?a=commit;h=23c26982e9b62e4dfb9a291932...
Author: Andrew Eikum aeikum@codeweavers.com Date: Mon Aug 22 14:16:04 2011 -0500
mmdevapi: Disable sound if the user explicitly selects no driver.
This also tweaks the no-driver behavior to report 0 active devices instead of returning an error code.
---
dlls/mmdevapi/devenum.c | 6 +++--- dlls/mmdevapi/main.c | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/dlls/mmdevapi/devenum.c b/dlls/mmdevapi/devenum.c index 7acc3f6..8a71262 100644 --- a/dlls/mmdevapi/devenum.c +++ b/dlls/mmdevapi/devenum.c @@ -445,6 +445,9 @@ static HRESULT load_driver_devices(EDataFlow flow) UINT num, def, i; HRESULT hr;
+ if(!drvs.pGetEndpointIDs) + return S_OK; + hr = drvs.pGetEndpointIDs(flow, &ids, &keys, &num, &def); if(FAILED(hr)) return hr; @@ -824,9 +827,6 @@ HRESULT MMDevEnum_Create(REFIID riid, void **ppv) { MMDevEnumImpl *This = MMDevEnumerator;
- if(!drvs.pGetAudioEndpoint) - return AUDCLNT_E_SERVICE_NOT_RUNNING; - if (!This) { This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); diff --git a/dlls/mmdevapi/main.c b/dlls/mmdevapi/main.c index 3063a11..c694c6e 100644 --- a/dlls/mmdevapi/main.c +++ b/dlls/mmdevapi/main.c @@ -104,9 +104,12 @@ static BOOL init_driver(void) DWORD size = sizeof(driver_name);
if(RegQueryValueExW(key, drv_value, 0, NULL, (BYTE*)driver_name, - &size) == ERROR_SUCCESS && driver_name[0] != '\0'){ + &size) == ERROR_SUCCESS){ RegCloseKey(key);
+ if(driver_name[0] == '\0') + return TRUE; + for(next = p = driver_name; next; p = next + 1){ next = strchrW(p, ','); if(next)