Jörg Höhle : mciwave: MCI Status returns string resource when appropriate.

Alexandre Julliard julliard at winehq.org
Thu Apr 1 11:25:05 CDT 2010


Module: wine
Branch: master
Commit: f0baaff46a8a0c0f127ca2a917049a8fec52e5c1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f0baaff46a8a0c0f127ca2a917049a8fec52e5c1

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Sat Nov 21 09:24:07 2009 +0100

mciwave: MCI Status returns string resource when appropriate.

---

 dlls/mciwave/mciwave.c |   27 +++++++++++++++++++++------
 1 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/dlls/mciwave/mciwave.c b/dlls/mciwave/mciwave.c
index 85aae0d..87dc260 100644
--- a/dlls/mciwave/mciwave.c
+++ b/dlls/mciwave/mciwave.c
@@ -1518,15 +1518,34 @@ static DWORD WAVE_mciStatus(MCIDEVICEID wDevID, DWORD dwFlags, LPMCI_STATUS_PARM
 	    ret = MCI_RESOURCE_RETURNED;
 	    break;
 	case MCI_WAVE_INPUT:
-	    lpParms->dwReturn = wmw->wInput;
+	    if (wmw->wInput != (WORD)WAVE_MAPPER)
+		lpParms->dwReturn = wmw->wInput;
+	    else {
+		lpParms->dwReturn = MAKEMCIRESOURCE(WAVE_MAPPER, WAVE_MAPPER_S);
+		ret = MCI_RESOURCE_RETURNED;
+	    }
 	    TRACE("MCI_WAVE_INPUT => %d\n", (signed)wmw->wInput);
 	    break;
 	case MCI_WAVE_OUTPUT:
-	    lpParms->dwReturn = wmw->wOutput;
+	    if (wmw->wOutput != (WORD)WAVE_MAPPER)
+		lpParms->dwReturn = wmw->wOutput;
+	    else {
+		lpParms->dwReturn = MAKEMCIRESOURCE(WAVE_MAPPER, WAVE_MAPPER_S);
+		ret = MCI_RESOURCE_RETURNED;
+	    }
 	    TRACE("MCI_WAVE_OUTPUT => %d\n", (signed)wmw->wOutput);
 	    break;
 	/* It is always ok to query wave format parameters,
 	 * except on auto-open yield MCIERR_UNSUPPORTED_FUNCTION. */
+	case MCI_WAVE_STATUS_FORMATTAG:
+	    if (wmw->lpWaveFormat->wFormatTag != WAVE_FORMAT_PCM)
+		lpParms->dwReturn = wmw->lpWaveFormat->wFormatTag;
+	    else {
+		lpParms->dwReturn = MAKEMCIRESOURCE(WAVE_FORMAT_PCM, WAVE_FORMAT_PCM_S);
+		ret = MCI_RESOURCE_RETURNED;
+	    }
+	    TRACE("MCI_WAVE_FORMATTAG => %lu\n", lpParms->dwReturn);
+	    break;
 	case MCI_WAVE_STATUS_AVGBYTESPERSEC:
 	    lpParms->dwReturn = wmw->lpWaveFormat->nAvgBytesPerSec;
 	    TRACE("MCI_WAVE_STATUS_AVGBYTESPERSEC => %lu\n", lpParms->dwReturn);
@@ -1543,10 +1562,6 @@ static DWORD WAVE_mciStatus(MCIDEVICEID wDevID, DWORD dwFlags, LPMCI_STATUS_PARM
 	    lpParms->dwReturn = wmw->lpWaveFormat->nChannels;
 	    TRACE("MCI_WAVE_STATUS_CHANNELS => %lu\n", lpParms->dwReturn);
 	    break;
-	case MCI_WAVE_STATUS_FORMATTAG:
-	    lpParms->dwReturn = wmw->lpWaveFormat->wFormatTag;
-	    TRACE("MCI_WAVE_FORMATTAG => %lu\n", lpParms->dwReturn);
-	    break;
 	case MCI_WAVE_STATUS_SAMPLESPERSEC:
 	    lpParms->dwReturn = wmw->lpWaveFormat->nSamplesPerSec;
 	    TRACE("MCI_WAVE_STATUS_SAMPLESPERSEC => %lu\n", lpParms->dwReturn);




More information about the wine-cvs mailing list