a few fixes for MSACM driver handling

eric pouech eric.pouech at wanadoo.fr
Fri Apr 13 15:34:05 CDT 2001


A+
-- 
---------------
Eric Pouech (http://perso.wanadoo.fr/eric.pouech/)
"The future will be better tomorrow", Vice President Dan Quayle
-------------- next part --------------
Name: msacm_drv
ChangeLog: Fixed opening of some drivers
GenDate: 2001/04/13 20:26:32 UTC
ModifiedFiles: dlls/msacm/driver.c
AddedFiles: 
===================================================================
RCS file: /usr/share/cvs/cvsroot/wine/wine/dlls/msacm/driver.c,v
retrieving revision 1.7
diff -u -u -r1.7 driver.c
--- dlls/msacm/driver.c	2000/11/28 22:40:57	1.7
+++ dlls/msacm/driver.c	2001/03/25 16:57:47
@@ -235,6 +235,7 @@
 {
     PWINE_ACMDRIVERID	padid;
     PWINE_ACMDRIVER	pad;
+    MMRESULT		ret = MMSYSERR_ERROR;
 
     TRACE("(%p, %x, %08lu)\n", phad, hadid, fdwOpen);
 
@@ -253,12 +254,24 @@
 
     pad->obj.dwType = WINE_ACMOBJ_DRIVER;
     pad->obj.pACMDriverID = padid;
-    
-    if (!(pad->hDrvr = padid->hInstModule) && padid->pszDriverAlias)
-	pad->hDrvr = OpenDriverA(padid->pszDriverAlias, NULL, 0);
-    if (!pad->hDrvr) {
-	HeapFree(MSACM_hHeap, 0, pad);
-	return MMSYSERR_ERROR;
+
+    if (!(pad->hDrvr = padid->hInstModule) && padid->pszDriverAlias) {
+	ACMDRVOPENDESCW	adod;
+
+	adod.cbStruct = sizeof(adod);
+	adod.fccType = ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC;
+	adod.fccComp = ACMDRIVERDETAILS_FCCCOMP_UNDEFINED;
+	adod.dwVersion = acmGetVersion();
+	adod.dwFlags = fdwOpen;
+	adod.dwError = 0;
+	adod.pszSectionName = (LPCWSTR)"\0"; /* FIXME */
+	adod.pszAliasName = (LPCWSTR)"\0"; /* FIXME */
+	adod.dnDevNode = 0;
+
+	if (!(pad->hDrvr = OpenDriverA(padid->pszDriverAlias, NULL, (DWORD)&adod))) {
+	    ret = adod.dwError;
+	    goto gotError;
+	}
     }
 
     /* insert new pad at beg of list */
@@ -269,6 +282,10 @@
     *phad = (HACMDRIVER)pad;
     TRACE("'%s' => %08lx\n", padid->pszDriverAlias, (DWORD)pad);
     return MMSYSERR_NOERROR;
+ gotError:
+    if (!pad->hDrvr)
+	HeapFree(MSACM_hHeap, 0, pad);
+    return ret;
 }
 
 /***********************************************************************


More information about the wine-patches mailing list