MCI fixes

Eric Pouech pouech-eric at wanadoo.fr
Wed Jan 7 14:39:12 CST 2004


-------------- next part --------------
Name:          mcitf
ChangeLog:
-	applied to all MCI drivers Dmitry's fix for MCI_STATUS_TIME_FORMAT (wasn't returning string resource ID)
-	fixed mciseq when opened without a filename 
License:       LGPL
GenDate:       2004/01/07 20:35:56 UTC
ModifiedFiles: dlls/winmm/mciwave/mciwave.c dlls/winmm/mciseq/mcimidi.c dlls/winmm/mcicda/mcicda.c dlls/winmm/mcianim/mcianim.c
===================================================================
RCS file: /home/cvs/cvsroot/wine/wine/dlls/winmm/mciwave/mciwave.c,v
retrieving revision 1.28
diff -u -u -r1.28 mciwave.c
--- dlls/winmm/mciwave/mciwave.c	5 Sep 2003 23:08:27 -0000	1.28
+++ dlls/winmm/mciwave/mciwave.c	7 Jan 2004 20:32:48 -0000
@@ -1383,7 +1383,7 @@
 	    ret = MCI_RESOURCE_RETURNED;
 	    break;
 	case MCI_STATUS_TIME_FORMAT:
-	    lpParms->dwReturn = MAKEMCIRESOURCE(wmw->dwMciTimeFormat, wmw->dwMciTimeFormat);
+	    lpParms->dwReturn = MAKEMCIRESOURCE(wmw->dwMciTimeFormat, MCI_FORMAT_RETURN_BASE + wmw->dwMciTimeFormat);
 	    TRACE("MCI_STATUS_TIME_FORMAT => %lu\n", lpParms->dwReturn);
 	    ret = MCI_RESOURCE_RETURNED;
 	    break;
Index: dlls/winmm/mciseq/mcimidi.c
===================================================================
RCS file: /home/cvs/cvsroot/wine/wine/dlls/winmm/mciseq/mcimidi.c,v
retrieving revision 1.22
diff -u -u -r1.22 mcimidi.c
--- dlls/winmm/mciseq/mcimidi.c	7 Oct 2003 22:54:17 -0000	1.22
+++ dlls/winmm/mciseq/mcimidi.c	7 Jan 2004 20:33:11 -0000
@@ -67,7 +67,7 @@
     WORD		wNotifyDeviceID;    	/* MCI device ID with a pending notification */
     HANDLE 		hCallback;         	/* Callback handle for pending notification  */
     HMMIO		hFile;	            	/* mmio file handle open as Element          */
-    LPSTR		lpstrElementName;	/* Name of file */
+    LPSTR		lpstrElementName;       /* Name of file (if any)                     */
     LPSTR		lpstrCopyright;
     LPSTR		lpstrName;
     WORD		dwStatus;		/* one from MCI_MODE_xxxx */
@@ -726,6 +726,7 @@
 
     wmm->hFile = 0;
     wmm->hMidi = 0;
+    wmm->lpstrElementName = NULL;
     dwDeviceID = lpParms->wDeviceID;
 
     TRACE("wDevID=%04X (lpParams->wDeviceID=%08lX)\n", wDevID, dwDeviceID);
@@ -741,15 +742,12 @@
 		wmm->nUseCount--;
 		return MCIERR_FILE_NOT_FOUND;
 	    }
-	} else {
-	    wmm->hFile = 0;
+            wmm->lpstrElementName = HeapAlloc(GetProcessHeap(), 0, strlen(lpParms->lpstrElementName) + 1);
+            strcpy(wmm->lpstrElementName, lpParms->lpstrElementName);
 	}
     }
     TRACE("hFile=%p\n", wmm->hFile);
 
-    /* FIXME: should I get a strdup() of it instead? */
-    wmm->lpstrElementName = HeapAlloc( GetProcessHeap(), 0, strlen(lpParms->lpstrElementName)+1 );
-    strcpy( wmm->lpstrElementName, lpParms->lpstrElementName );
     wmm->lpstrCopyright = NULL;
     wmm->lpstrName = NULL;
 
@@ -918,7 +916,7 @@
     if (wmm == NULL)	return MCIERR_INVALID_DEVICE_ID;
 
     if (wmm->hFile == 0) {
-	WARN("Can't play: no file '%s' !\n", wmm->lpstrElementName);
+	WARN("Can't play: no file '%s' !\n", debugstr_a(wmm->lpstrElementName));
 	return MCIERR_FILE_NOT_FOUND;
     }
 
@@ -1196,7 +1194,7 @@
     if (wmm == 0)	return MCIERR_INVALID_DEVICE_ID;
 
     if (wmm->hFile == 0) {
-	WARN("Can't find file='%s' !\n", wmm->lpstrElementName);
+	WARN("Can't find file='%s' !\n", debugstr_a(wmm->lpstrElementName));
 	return MCIERR_FILE_NOT_FOUND;
     }
     start = 1; 		end = 99999;
@@ -1430,7 +1428,7 @@
 	    TRACE("MCI_STATUS_READY = %u\n", LOWORD(lpParms->dwReturn));
 	    break;
 	case MCI_STATUS_TIME_FORMAT:
-	    lpParms->dwReturn = MAKEMCIRESOURCE(wmm->dwMciTimeFormat, wmm->dwMciTimeFormat);
+	    lpParms->dwReturn = MAKEMCIRESOURCE(wmm->dwMciTimeFormat, MCI_FORMAT_RETURN_BASE + wmm->dwMciTimeFormat);
 	    TRACE("MCI_STATUS_TIME_FORMAT => %u\n", LOWORD(lpParms->dwReturn));
 	    ret = MCI_RESOURCE_RETURNED;
 	    break;
Index: dlls/winmm/mcicda/mcicda.c
===================================================================
RCS file: /home/cvs/cvsroot/wine/wine/dlls/winmm/mcicda/mcicda.c,v
retrieving revision 1.29
diff -u -u -r1.29 mcicda.c
--- dlls/winmm/mcicda/mcicda.c	7 Oct 2003 22:54:17 -0000	1.29
+++ dlls/winmm/mcicda/mcicda.c	7 Jan 2004 20:33:51 -0000
@@ -647,7 +647,7 @@
 	    ret = MCI_RESOURCE_RETURNED;
 	    break;
 	case MCI_STATUS_TIME_FORMAT:
-	    lpParms->dwReturn = MAKEMCIRESOURCE(wmcda->dwTimeFormat, wmcda->dwTimeFormat);
+	    lpParms->dwReturn = MAKEMCIRESOURCE(wmcda->dwTimeFormat, MCI_FORMAT_RETURN_BASE + wmcda->dwTimeFormat);
 	    TRACE("MCI_STATUS_TIME_FORMAT=%08x!\n", LOWORD(lpParms->dwReturn));
 	    ret = MCI_RESOURCE_RETURNED;
 	    break;
Index: dlls/winmm/mcianim/mcianim.c
===================================================================
RCS file: /home/cvs/cvsroot/wine/wine/dlls/winmm/mcianim/mcianim.c,v
retrieving revision 1.18
diff -u -u -r1.18 mcianim.c
--- dlls/winmm/mcianim/mcianim.c	7 Oct 2003 22:54:17 -0000	1.18
+++ dlls/winmm/mcianim/mcianim.c	7 Jan 2004 20:33:32 -0000
@@ -460,7 +460,7 @@
 	    return 0;
 	case MCI_STATUS_TIME_FORMAT:
 	    TRACE("MCI_STATUS_TIME_FORMAT !\n");
-	    lpParms->dwReturn = MAKEMCIRESOURCE(MCI_FORMAT_MILLISECONDS, MCI_FORMAT_MILLISECONDS);
+	    lpParms->dwReturn = MAKEMCIRESOURCE(MCI_FORMAT_MILLISECONDS, MCI_FORMAT_MILLISECONDS_S);
 	    TRACE("MCI_STATUS_TIME_FORMAT => %u\n", LOWORD(lpParms->dwReturn));
 	    ret = MCI_RESOURCE_RETURNED;
 	    return 0;


More information about the wine-patches mailing list