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