Andrew Eikum : mmdevapi: Disable sound if the user explicitly selects no driver.
Alexandre Julliard
julliard at winehq.org
Tue Aug 23 12:45:01 CDT 2011
Module: wine
Branch: master
Commit: 23c26982e9b62e4dfb9a291932ae039ffacef3ed
URL: http://source.winehq.org/git/wine.git/?a=commit;h=23c26982e9b62e4dfb9a291932ae039ffacef3ed
Author: Andrew Eikum <aeikum at 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)
More information about the wine-cvs
mailing list