<html>
<head>
<style><!--
body {background-color:#ffffff;}
.file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
.pathname {font-family:monospace; float:right;}
.fileheader {margin-bottom:.5em;}
.diff {margin:0;}
.tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
.tasklist ul {margin-top:0;margin-bottom:0;}
tr.alt {background-color:#eeeeee}
#added {background-color:#ddffdd;}
#addedchars {background-color:#99ff99;font-weight:bolder;}
tr.alt #added {background-color:#ccf7cc;}
#removed {background-color:#ffdddd;}
#removedchars {background-color:#ff9999;font-weight:bolder;}
tr.alt #removed {background-color:#f7cccc;}
#info {color:#888888;}
#context {background-color:#eeeeee;}
td {padding-left:.3em;padding-right:.3em;}
tr.head {border-bottom-width:1px;border-bottom-style:solid;}
tr.head td {padding:0;padding-top:.2em;}
.task {background-color:#ffff00;}
.comment {padding:4px;border:1px dashed #000000;background-color:#ffffdd}
.error {color:red;}
hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="4">Commit in <b><tt>reactos/lib/winmm</tt></b><span id="info"> on MAIN</span></td></tr>
<tr><td><tt><a href="#file1">lolvldrv.c</a></tt></td><td align="right" id="added">+27</td><td align="right" id="removed">-8</td><td nowrap="nowrap" align="center"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/lolvldrv.c?rev=1.5&content-type=text/x-cvsweb-markup">1.5</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/lolvldrv.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/lolvldrv.c?rev=1.6&content-type=text/x-cvsweb-markup">1.6</a></td></tr>
<tr class="alt"><td><tt><a href="#file2">playsound.c</a></tt></td><td align="right" id="added">+14</td><td align="right" id="removed">-4</td><td nowrap="nowrap" align="center"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/playsound.c?rev=1.3&content-type=text/x-cvsweb-markup">1.3</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/playsound.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/playsound.c?rev=1.4&content-type=text/x-cvsweb-markup">1.4</a></td></tr>
<tr><td><tt><a href="#file3">winehq2ros.patch</a></tt></td><td align="right" id="added">+13</td><td align="right" id="removed">-13</td><td nowrap="nowrap" align="center"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winehq2ros.patch?rev=1.3&content-type=text/x-cvsweb-markup">1.3</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winehq2ros.patch.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winehq2ros.patch?rev=1.4&content-type=text/x-cvsweb-markup">1.4</a></td></tr>
<tr class="alt"><td><tt><a href="#file4">winemm.h</a></tt></td><td align="right" id="added">+1</td><td></td><td nowrap="nowrap" align="center"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winemm.h?rev=1.3&content-type=text/x-cvsweb-markup">1.3</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winemm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winemm.h?rev=1.4&content-type=text/x-cvsweb-markup">1.4</a></td></tr>
<tr><td><tt><a href="#file5">winmm.c</a></tt></td><td align="right" id="added">+56</td><td align="right" id="removed">-11</td><td nowrap="nowrap" align="center"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm.c?rev=1.4&content-type=text/x-cvsweb-markup">1.4</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm.c?rev=1.5&content-type=text/x-cvsweb-markup">1.5</a></td></tr>
<tr class="alt"><td><tt><a href="#file6">winmm_It.rc</a></tt></td><td align="right" id="added">+1</td><td align="right" id="removed">-1</td><td nowrap="nowrap" align="center"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm_It.rc?rev=1.1&content-type=text/x-cvsweb-markup">1.1</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm_It.rc.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm_It.rc?rev=1.2&content-type=text/x-cvsweb-markup">1.2</a></td></tr>
<tr><td></td><td align="right" id="added">+112</td><td align="right" id="removed">-37</td><td></td></tr>
</table>
<small id="info">6 modified files</small><br />
<pre class="comment">
Sync to Wine-20040615:
Robert Reif <<a href="mailto:reif@earthlink.net">reif@earthlink.net</a>>
- Added some trace and debug printing.
- Fixed a problem were a trace accesses a data member that may be
outside of the actual data structure passed in.
- Added some more debug traces.
- Don't try to map the mapper device.
Mike McCormack <<a href="mailto:mike@codeweavers.com">mike@codeweavers.com</a>>
- Fix PlaySound.
Eric Pouech <<a href="mailto:pouech-eric@wanadoo.fr">pouech-eric@wanadoo.fr</a>>
- GetModuleFileName[AW] doesn't terminate the string if the buffer is
too small.
Uwe Bonnes <<a href="mailto:bon@elektron.ikp.physik.tu-darmstadt.de">bon@elektron.ikp.physik.tu-darmstadt.de</a>>
- Fixed missing inversion in bit manipulation.
Ivan Leo Puoti <<a href="mailto:puoti@inwind.it">puoti@inwind.it</a>>
- Changed my name, so update copyright info.
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos">reactos</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib">lib</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm">winmm</a><br /></span>
<div class="fileheader"><big><b>lolvldrv.c</b></big> <small id="info"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/lolvldrv.c?rev=1.5&content-type=text/x-cvsweb-markup">1.5</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/lolvldrv.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/lolvldrv.c?rev=1.6&content-type=text/x-cvsweb-markup">1.6</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.5 -r1.6
--- lolvldrv.c        8 May 2004 14:07:55 -0000        1.5
+++ lolvldrv.c        16 Jun 2004 18:48:46 -0000        1.6
@@ -95,6 +95,7 @@
</small></pre><pre class="diff" id="context"> */
BOOL MMDRV_Is32(unsigned int idx)
{
</pre><pre class="diff" id="added">+ TRACE("(%d)\n", idx);
</pre><pre class="diff" id="context"> return MMDrvs[idx].bIs32;
}
</pre><pre class="diff"><small id="info">@@ -114,6 +115,7 @@
</small></pre><pre class="diff" id="context"> FARPROC pGetFileVersionInfoA;
FARPROC pVerQueryValueA;
HMODULE hmodule = 0;
</pre><pre class="diff" id="added">+ TRACE("(%p, %p, %d)\n", fname, buf, buflen);
</pre><pre class="diff" id="context">
#define E(_x)        do {TRACE _x;goto theEnd;} while(0)
</pre><pre class="diff"><small id="info">@@ -164,6 +166,7 @@
</small></pre><pre class="diff" id="context"> */
UINT        MMDRV_GetNum(UINT type)
{
</pre><pre class="diff" id="added">+ TRACE("(%04x)\n", type);
</pre><pre class="diff" id="context"> assert(type < MMDRV_MAX);
return llTypes[type].wMaxId;
}
</pre><pre class="diff"><small id="info">@@ -218,7 +221,7 @@
</small></pre><pre class="diff" id="context">          TRACE("Calling message(dev=%u msg=%u usr=0x%08lx p1=0x%08lx p2=0x%08lx)\n",
                 mld->uDeviceID, wMsg, mld->dwDriverInstance, dwParam1, dwParam2);
ret = part->u.fnMessage32(mld->uDeviceID, wMsg, mld->dwDriverInstance, dwParam1, dwParam2);
</pre><pre class="diff" id="removed">-         TRACE("=> %lu\n", ret);
</pre><pre class="diff" id="added">+         TRACE("=> %s\n", WINMM_ErrorToString(ret));
</pre><pre class="diff" id="context">         } else {
         map = llType->Map16To32A(wMsg, &mld->dwDriverInstance, &dwParam1, &dwParam2);
         switch (map) {
</pre><pre class="diff"><small id="info">@@ -235,7 +238,7 @@
</small></pre><pre class="diff" id="context">                  mld->uDeviceID, wMsg, mld->dwDriverInstance, dwParam1, dwParam2);
                ret = part->u.fnMessage32(mld->uDeviceID, wMsg, mld->dwDriverInstance,
                                         dwParam1, dwParam2);
</pre><pre class="diff" id="removed">-                TRACE("=> %lu\n", ret);
</pre><pre class="diff" id="added">+         TRACE("=> %s\n", WINMM_ErrorToString(ret));
</pre><pre class="diff" id="context">                 if (map == WINMM_MAP_OKMEM)
                 llType->UnMap16To32A(wMsg, &mld->dwDriverInstance, &dwParam1, &dwParam2, ret);
                break;
</pre><pre class="diff"><small id="info">@@ -265,7 +268,7 @@
</small></pre><pre class="diff" id="context">                 ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16,
mld->uDeviceID, wMsg, mld->dwDriverInstance,
dwParam1, dwParam2);
</pre><pre class="diff" id="removed">-                TRACE("=> %lu\n", ret);
</pre><pre class="diff" id="added">+         TRACE("=> %s\n", WINMM_ErrorToString(ret));
</pre><pre class="diff" id="context">                 if (map == WINMM_MAP_OKMEM)
                 llType->UnMap32ATo16(wMsg, &mld->dwDriverInstance, &dwParam1, &dwParam2, ret);
                break;
</pre><pre class="diff"><small id="info">@@ -280,7 +283,7 @@
</small></pre><pre class="diff" id="context"> ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16,
mld->uDeviceID, wMsg, mld->dwDriverInstance,
dwParam1, dwParam2);
</pre><pre class="diff" id="removed">-         TRACE("=> %lu\n", ret);
</pre><pre class="diff" id="added">+         TRACE("=> %s\n", WINMM_ErrorToString(ret));
</pre><pre class="diff" id="context">         }
}
return ret;
</pre><pre class="diff"><small id="info">@@ -294,6 +297,8 @@
</small></pre><pre class="diff" id="context"> {
LPWINE_MLD        mld;
UINT i;
</pre><pre class="diff" id="added">+ TRACE("(%d, %04x, %p, %p, %p, %p, %c)\n",
+ size, type, hndl, dwFlags, dwCallback, dwInstance, bFrom32?'Y':'N');
</pre><pre class="diff" id="context">
mld = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
if (!mld)        return NULL;
</pre><pre class="diff"><small id="info">@@ -338,6 +343,8 @@
</small></pre><pre class="diff" id="context"> */
void        MMDRV_Free(HANDLE hndl, LPWINE_MLD mld)
{
</pre><pre class="diff" id="added">+ TRACE("(%p, %p)\n", hndl, mld);
+
</pre><pre class="diff" id="context"> if ((UINT)hndl & 0x8000) {
        unsigned idx = (UINT)hndl & ~0x8000;
        if (idx < sizeof(MM_MLDrvs) / sizeof(MM_MLDrvs[0])) {
</pre><pre class="diff"><small id="info">@@ -357,6 +364,7 @@
</small></pre><pre class="diff" id="context"> DWORD                dwRet = MMSYSERR_BADDEVICEID;
DWORD                dwInstance;
WINE_LLTYPE*        llType = &llTypes[mld->type];
</pre><pre class="diff" id="added">+ TRACE("(%p, %04x, 0x%08lx, 0x%08lx)\n", mld, wMsg, dwParam1, dwFlags);
</pre><pre class="diff" id="context">
mld->dwDriverInstance = (DWORD)&dwInstance;
</pre><pre class="diff"><small id="info">@@ -398,6 +406,7 @@
</small></pre><pre class="diff" id="context"> */
DWORD        MMDRV_Close(LPWINE_MLD mld, UINT wMsg)
{
</pre><pre class="diff" id="added">+ TRACE("(%p, %04x)\n", mld, wMsg);
</pre><pre class="diff" id="context"> return MMDRV_Message(mld, wMsg, 0L, 0L, TRUE);
}
</pre><pre class="diff"><small id="info">@@ -406,6 +415,7 @@
</small></pre><pre class="diff" id="context"> */
LPWINE_MLD        MMDRV_GetByID(UINT uDevID, UINT type)
{
</pre><pre class="diff" id="added">+ TRACE("(%04x, %04x)\n", uDevID, type);
</pre><pre class="diff" id="context"> if (uDevID < llTypes[type].wMaxId)
        return &llTypes[type].lpMlds[uDevID];
if ((uDevID == (UINT16)-1 || uDevID == (UINT)-1) && llTypes[type].nMapper != -1)
</pre><pre class="diff"><small id="info">@@ -420,6 +430,7 @@
</small></pre><pre class="diff" id="context"> {
LPWINE_MLD        mld = NULL;
UINT hndl = (UINT)_hndl;
</pre><pre class="diff" id="added">+ TRACE("(%p, %04x, %c)\n", _hndl, type, bCanBeID ? 'Y' : 'N');
</pre><pre class="diff" id="context">
assert(type < MMDRV_MAX);
</pre><pre class="diff"><small id="info">@@ -448,6 +459,8 @@
</small></pre><pre class="diff" id="context">                                  BOOL bSrcCanBeID, UINT dstType)
{
LPWINE_MLD                mld;
</pre><pre class="diff" id="added">+ TRACE("(%p, %04x, %c, %04x)\n",
+ hndl, srcType, bSrcCanBeID ? 'Y' : 'N', dstType);
</pre><pre class="diff" id="context">
if ((mld = MMDRV_Get(hndl, srcType, bSrcCanBeID)) != NULL) {
        WINE_MM_DRIVER_PART*        part = &MMDrvs[mld->mmdIndex].parts[dstType];
</pre><pre class="diff"><small id="info">@@ -520,6 +533,7 @@
</small></pre><pre class="diff" id="context"> DWORD                        ret;
UINT                        count = 0;
int                                i, k;
</pre><pre class="diff" id="added">+ TRACE("(%p, %04x, %04x)\n", lpDrv, type, wMsg);
</pre><pre class="diff" id="context">
part->nIDMin = part->nIDMax = 0;
</pre><pre class="diff"><small id="info">@@ -528,7 +542,7 @@
</small></pre><pre class="diff" id="context">
if (lpDrv->bIs32 && part->u.fnMessage32) {
        ret = part->u.fnMessage32(0, DRVM_INIT, 0L, 0L, 0L);
</pre><pre class="diff" id="removed">-        TRACE("DRVM_INIT => %08lx\n", ret);
</pre><pre class="diff" id="added">+        TRACE("DRVM_INIT => %s\n", WINMM_ErrorToString(ret));
</pre><pre class="diff" id="context"> #if 0
        ret = part->u.fnMessage32(0, DRVM_ENABLE, 0L, 0L, 0L);
        TRACE("DRVM_ENABLE => %08lx\n", ret);
</pre><pre class="diff"><small id="info">@@ -537,7 +551,7 @@
</small></pre><pre class="diff" id="context"> } else if (!lpDrv->bIs32 && part->u.fnMessage16 && pFnCallMMDrvFunc16) {
ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16,
0, DRVM_INIT, 0L, 0L, 0L);
</pre><pre class="diff" id="removed">-        TRACE("DRVM_INIT => %08lx\n", ret);
</pre><pre class="diff" id="added">+        TRACE("DRVM_INIT => %s\n", WINMM_ErrorToString(ret));
</pre><pre class="diff" id="context"> #if 0
        ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16,
0, DRVM_ENABLE, 0L, 0L, 0L);
</pre><pre class="diff"><small id="info">@@ -709,6 +723,7 @@
</small></pre><pre class="diff" id="context"> char*        p2;
DWORD        type, size;
BOOL        ret = FALSE;
</pre><pre class="diff" id="added">+ TRACE("()\n");
</pre><pre class="diff" id="context">
if (RegCreateKeyA(HKEY_LOCAL_MACHINE, "Software\\Wine\\Wine\\Config\\WinMM", &hKey)) {
        TRACE("Cannot open WinMM config key\n");
</pre><pre class="diff"><small id="info">@@ -744,6 +759,7 @@
</small></pre><pre class="diff" id="context"> */
static BOOL        MMDRV_InitHardcoded(void)
{
</pre><pre class="diff" id="added">+ TRACE("()\n");
</pre><pre class="diff" id="context"> /* first load hardware drivers */
#ifndef __REACTOS__
MMDRV_Install("wineoss.drv",         "wineoss.drv",        FALSE);
</pre><pre class="diff"><small id="info">@@ -766,6 +782,7 @@
</small></pre><pre class="diff" id="context"> */
BOOL        MMDRV_Init(void)
{
</pre><pre class="diff" id="added">+ TRACE("()\n");
</pre><pre class="diff" id="context"> /* FIXME: MMDRV_InitFromRegistry shall be MMDRV_Init in a near future */
return MMDRV_InitFromRegistry() || MMDRV_InitHardcoded();
}
</pre><pre class="diff"><small id="info">@@ -779,6 +796,7 @@
</small></pre><pre class="diff" id="context"> {
WINE_MM_DRIVER_PART*        part = &lpDrv->parts[type];
DWORD                        ret;
</pre><pre class="diff" id="added">+ TRACE("(%p, %04x)\n", lpDrv, type);
</pre><pre class="diff" id="context">
if (lpDrv->bIs32 && part->u.fnMessage32) {
#if 0
</pre><pre class="diff"><small id="info">@@ -786,7 +804,7 @@
</small></pre><pre class="diff" id="context">         TRACE("DRVM_DISABLE => %08lx\n", ret);
#endif
        ret = part->u.fnMessage32(0, DRVM_EXIT, 0L, 0L, 0L);
</pre><pre class="diff" id="removed">-        TRACE("DRVM_EXIT => %08lx\n", ret);
</pre><pre class="diff" id="added">+        TRACE("DRVM_EXIT => %s\n", WINMM_ErrorToString(ret));
</pre><pre class="diff" id="context"> } else if (!lpDrv->bIs32 && part->u.fnMessage16 && pFnCallMMDrvFunc16) {
#if 0
        ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16,
</pre><pre class="diff"><small id="info">@@ -795,7 +813,7 @@
</small></pre><pre class="diff" id="context"> #endif
ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16,
0, DRVM_EXIT, 0L, 0L, 0L);
</pre><pre class="diff" id="removed">-        TRACE("DRVM_EXIT => %08lx\n", ret);
</pre><pre class="diff" id="added">+        TRACE("DRVM_EXIT => %s\n", WINMM_ErrorToString(ret));
</pre><pre class="diff" id="context"> } else {
        return FALSE;
}
</pre><pre class="diff"><small id="info">@@ -811,6 +829,7 @@
</small></pre><pre class="diff" id="context"> void MMDRV_Exit(void)
{
int i;
</pre><pre class="diff" id="added">+ TRACE("()\n");
</pre><pre class="diff" id="context">
for (i = 0; i < sizeof(MM_MLDrvs) / sizeof(MM_MLDrvs[0]); i++)
{
</pre></div>
<hr /><a name="file2" /><div class="file">
<span class="pathname"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos">reactos</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib">lib</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm">winmm</a><br /></span>
<div class="fileheader"><big><b>playsound.c</b></big> <small id="info"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/playsound.c?rev=1.3&content-type=text/x-cvsweb-markup">1.3</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/playsound.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/playsound.c?rev=1.4&content-type=text/x-cvsweb-markup">1.4</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.3 -r1.4
--- playsound.c        8 May 2004 14:07:55 -0000        1.3
+++ playsound.c        16 Jun 2004 18:48:46 -0000        1.4
@@ -68,6 +68,7 @@
</small></pre><pre class="diff" id="context"> 'S','c','h','e','m','e','s','\\',
'A','p','p','s',0};
static const WCHAR wszDotDefault[] = {'.','D','e','f','a','u','l','t',0};
</pre><pre class="diff" id="added">+ static const WCHAR wszDotCurrent[] = {'.','C','u','r','r','e','n','t',0};
</pre><pre class="diff" id="context"> static const WCHAR wszNull[] = {0};
TRACE("searching in SystemSound list for %s\n", debugstr_w(lpszName));
</pre><pre class="diff"><small id="info">@@ -90,15 +91,18 @@
</small></pre><pre class="diff" id="context"> if (RegOpenKeyW(HKEY_CURRENT_USER, wszKey, &hRegSnd) != 0) goto none;
if (uFlags & SND_APPLICATION)
{
</pre><pre class="diff" id="added">+ DWORD len;
+
</pre><pre class="diff" id="context"> err = 1; /* error */
</pre><pre class="diff" id="removed">- if (GetModuleFileNameW(0, str, sizeof(str)/sizeof(str[0])))
</pre><pre class="diff" id="added">+ len = GetModuleFileNameW(0, str, sizeof(str)/sizeof(str[0]));
+ if (len > 0 && len < sizeof(str)/sizeof(str[0]))
</pre><pre class="diff" id="context"> {
for (ptr = str + lstrlenW(str) - 1; ptr >= str; ptr--)
{
if (*ptr == '.') *ptr = 0;
if (*ptr == '\\')
{
</pre><pre class="diff" id="removed">- err = RegOpenKeyW(hRegSnd, <span id="removedchars">str</span>, &hRegApp);
</pre><pre class="diff" id="added">+ err = RegOpenKeyW(hRegSnd, <span id="addedchars">ptr+1</span>, &hRegApp);
</pre><pre class="diff" id="context"> break;
}
}
</pre><pre class="diff"><small id="info">@@ -113,9 +117,15 @@
</small></pre><pre class="diff" id="context"> err = RegOpenKeyW(hRegApp, lpszName, &hScheme);
RegCloseKey(hRegApp);
if (err != 0) goto none;
</pre><pre class="diff" id="added">+ /* what's the difference between .Current and .Default ? */
</pre><pre class="diff" id="context"> err = RegOpenKeyW(hScheme, wszDotDefault, &hSnd);
</pre><pre class="diff" id="removed">- RegCloseKey(hScheme);
- if (err != 0) goto none;
</pre><pre class="diff" id="added">+ if (err != 0)
+ {
+ err = RegOpenKeyW(hScheme, wszDotCurrent, &hSnd);
+ RegCloseKey(hScheme);
+ if (err != 0)
+ goto none;
+ }
</pre><pre class="diff" id="context"> count = sizeof(str)/sizeof(str[0]);
err = RegQueryValueExW(hSnd, NULL, 0, &type, (LPBYTE)str, &count);
RegCloseKey(hSnd);
</pre></div>
<hr /><a name="file3" /><div class="file">
<span class="pathname"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos">reactos</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib">lib</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm">winmm</a><br /></span>
<div class="fileheader"><big><b>winehq2ros.patch</b></big> <small id="info"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winehq2ros.patch?rev=1.3&content-type=text/x-cvsweb-markup">1.3</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winehq2ros.patch.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winehq2ros.patch?rev=1.4&content-type=text/x-cvsweb-markup">1.4</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.3 -r1.4
--- winehq2ros.patch        8 May 2004 14:07:55 -0000        1.3
+++ winehq2ros.patch        16 Jun 2004 18:48:46 -0000        1.4
@@ -1,11 +1,11 @@
</small></pre><pre class="diff" id="context"> Index: lolvldrv.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/lolvldrv.c,v
</pre><pre class="diff" id="removed">-retrieving revision 1.56
-diff -u -r1.56 lolvldrv.c
---- lolvldrv.c        5 May 2004 01:00:54 -0000        1.56
-+++ lolvldrv.c        8 May 2004 14:17:20 -0000
-@@ -497,10 +497,12 @@
</pre><pre class="diff" id="added">+retrieving revision 1.58
+diff -u -r1.58 lolvldrv.c
+--- lolvldrv.c        1 Jun 2004 19:40:48 -0000        1.58
++++ lolvldrv.c        16 Jun 2004 18:56:14 -0000
+@@ -510,10 +510,12 @@
</pre><pre class="diff" id="context"> case DRV_QUERYDEVICEINTERFACESIZE:
return MMDRV_Message(mld, uMsg, dwParam1, dwParam2, TRUE);
</pre><pre class="diff"><small id="info">@@ -18,9 +18,9 @@
</small></pre><pre class="diff" id="context">
default:
        WARN("Unknown call %04x\n", uMsg);
</pre><pre class="diff" id="removed">-@@ -743,11 +745,18 @@
- static BOOL        MMDRV_InitHardcoded(void)
</pre><pre class="diff" id="added">+@@ -759,11 +761,18 @@
</pre><pre class="diff" id="context"> {
</pre><pre class="diff" id="added">+ TRACE("()\n");
</pre><pre class="diff" id="context"> /* first load hardware drivers */
+#ifndef __REACTOS__
MMDRV_Install("wineoss.drv",         "wineoss.drv",        FALSE);
</pre><pre class="diff"><small id="info">@@ -45,7 +45,7 @@
</small></pre><pre class="diff" id="context"> retrieving revision 1.26
diff -u -r1.26 time.c
--- time.c        12 Jan 2004 21:03:10 -0000        1.26
</pre><pre class="diff" id="removed">-+++ time.c        8 May 2004 14:17:20 -0000
</pre><pre class="diff" id="added">++++ time.c        16 Jun 2004 18:56:14 -0000
</pre><pre class="diff" id="context"> @@ -175,14 +175,19 @@
volatile HANDLE *pActive = (volatile HANDLE *)&TIME_hMMTimer;
DWORD last_time, cur_time;
</pre><pre class="diff"><small id="info">@@ -69,11 +69,11 @@
</small></pre><pre class="diff" id="context"> Index: winmm.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/winmm.c,v
</pre><pre class="diff" id="removed">-retrieving revision 1.33
-diff -u -r1.33 winmm.c
---- winmm.c        27 Feb 2004 21:29:32 -0000        1.33
-+++ winmm.c        8 May 2004 14:17:21 -0000
-@@ -125,10 +125,12 @@
</pre><pre class="diff" id="added">+retrieving revision 1.37
+diff -u -r1.37 winmm.c
+--- winmm.c        14 Jun 2004 16:53:59 -0000        1.37
++++ winmm.c        16 Jun 2004 18:56:15 -0000
+@@ -126,10 +126,12 @@
</pre><pre class="diff" id="context"> loaded = -1;
if (h)
{
</pre></div>
<hr /><a name="file4" /><div class="file">
<span class="pathname"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos">reactos</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib">lib</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm">winmm</a><br /></span>
<div class="fileheader"><big><b>winemm.h</b></big> <small id="info"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winemm.h?rev=1.3&content-type=text/x-cvsweb-markup">1.3</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winemm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winemm.h?rev=1.4&content-type=text/x-cvsweb-markup">1.4</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.3 -r1.4
--- winemm.h        25 Feb 2004 20:00:42 -0000        1.3
+++ winemm.h        16 Jun 2004 18:48:46 -0000        1.4
@@ -256,6 +256,7 @@
</small></pre><pre class="diff" id="context"> UINT                MCI_SetCommandTable(void *table, UINT uDevType);
BOOL WINMM_CheckForMMSystem(void);
</pre><pre class="diff" id="added">+const char* WINMM_ErrorToString(MMRESULT error);
</pre><pre class="diff" id="context">
UINT MIXER_Open(LPHMIXER lphMix, UINT uDeviceID, DWORD dwCallback,
DWORD dwInstance, DWORD fdwOpen, BOOL bFrom32);
</pre></div>
<hr /><a name="file5" /><div class="file">
<span class="pathname"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos">reactos</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib">lib</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm">winmm</a><br /></span>
<div class="fileheader"><big><b>winmm.c</b></big> <small id="info"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm.c?rev=1.4&content-type=text/x-cvsweb-markup">1.4</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm.c?rev=1.5&content-type=text/x-cvsweb-markup">1.5</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.4 -r1.5
--- winmm.c        12 Mar 2004 21:20:53 -0000        1.4
+++ winmm.c        16 Jun 2004 18:48:46 -0000        1.5
@@ -28,6 +28,7 @@
</small></pre><pre class="diff" id="context"> * 99/9        added support for loadable low level drivers
*/
</pre><pre class="diff" id="added">+#include <stdio.h>
</pre><pre class="diff" id="context"> #include <stdarg.h>
#include <string.h>
</pre><pre class="diff"><small id="info">@@ -137,6 +138,36 @@
</small></pre><pre class="diff" id="context"> return loaded > 0;
}
</pre><pre class="diff" id="added">+/******************************************************************
+ * WINMM_ErrorToString
+ */
+const char* WINMM_ErrorToString(MMRESULT error)
+{
+#define ERR_TO_STR(dev) case dev: return #dev
+ static char unknown[32];
+ switch (error) {
+ ERR_TO_STR(MMSYSERR_NOERROR);
+ ERR_TO_STR(MMSYSERR_ERROR);
+ ERR_TO_STR(MMSYSERR_BADDEVICEID);
+ ERR_TO_STR(MMSYSERR_NOTENABLED);
+ ERR_TO_STR(MMSYSERR_ALLOCATED);
+ ERR_TO_STR(MMSYSERR_INVALHANDLE);
+ ERR_TO_STR(MMSYSERR_NODRIVER);
+ ERR_TO_STR(MMSYSERR_NOMEM);
+ ERR_TO_STR(MMSYSERR_NOTSUPPORTED);
+ ERR_TO_STR(MMSYSERR_BADERRNUM);
+ ERR_TO_STR(MMSYSERR_INVALFLAG);
+ ERR_TO_STR(MMSYSERR_INVALPARAM);
+ ERR_TO_STR(WAVERR_BADFORMAT);
+ ERR_TO_STR(WAVERR_STILLPLAYING);
+ ERR_TO_STR(WAVERR_UNPREPARED);
+ ERR_TO_STR(WAVERR_SYNC);
+ }
+ sprintf(unknown, "Unknown(0x%08x)", error);
+ return unknown;
+#undef ERR_TO_STR
+}
+
</pre><pre class="diff" id="context"> /**************************************************************************
*                DllMain (WINMM.init)
*
</pre><pre class="diff"><small id="info">@@ -1985,7 +2016,7 @@
</small></pre><pre class="diff" id="context">         lpMidiHdr = (LPMIDIHDR)msg->lParam;
        lpMidiHdr->lpNext = 0;
        lpMidiHdr->dwFlags |= MHDR_INQUEUE;
</pre><pre class="diff" id="removed">-        lpMidiHdr->dwFlags &= MHDR_DONE;
</pre><pre class="diff" id="added">+        lpMidiHdr->dwFlags &= <span id="addedchars">~</span>MHDR_DONE;
</pre><pre class="diff" id="context">         lpMidiHdr->dwOffset = 0;
        break;
</pre><pre class="diff"><small id="info">@@ -2427,19 +2458,29 @@
</small></pre><pre class="diff" id="context">          lphndl, (int)uDeviceID, (uType==MMDRV_WAVEOUT)?"Out":"In", lpFormat, dwCallback,
         dwInstance, dwFlags, bFrom32?32:16);
</pre><pre class="diff" id="removed">- if (dwFlags & WAVE_FORMAT_QUERY)        TRACE("WAVE_FORMAT_QUERY requested !\n");
</pre><pre class="diff" id="added">+ if (dwFlags & WAVE_FORMAT_QUERY)
+ TRACE("WAVE_FORMAT_QUERY requested !\n");
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="removed">- if (lpFormat == NULL) return WAVERR_BADFORMAT;
- if ((dwFlags & WAVE_MAPPED) && (uDeviceID == (UINT)-1))
</pre><pre class="diff" id="added">+ if (lpFormat == NULL) {
+ WARN("bad format\n");
+ return WAVERR_BADFORMAT;
+ }
+
+ if ((dwFlags & WAVE_MAPPED) && (uDeviceID == (UINT)-1)) {
+ WARN("invalid parameter\n");
</pre><pre class="diff" id="context">         return MMSYSERR_INVALPARAM;
</pre><pre class="diff" id="added">+ }
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="removed">- TRACE("wFormatTag=%u, nChannels=%u, nSamplesPerSec=%lu, nAvgBytesPerSec=%lu, nBlockAlign=%u, wBitsPerSample=%u, cbSize=%u\n",
</pre><pre class="diff" id="added">+ /* may have a PCMWAVEFORMAT rather than a WAVEFORMATEX so don't read cbSize */
+ TRACE("wFormatTag=%u, nChannels=%u, nSamplesPerSec=%lu, nAvgBytesPerSec=%lu, nBlockAlign=%u, wBitsPerSample=%u\n",
</pre><pre class="diff" id="context">          lpFormat->wFormatTag, lpFormat->nChannels, lpFormat->nSamplesPerSec,
</pre><pre class="diff" id="removed">-         lpFormat->nAvgBytesPerSec, lpFormat->nBlockAlign, lpFormat->wBitsPerSample<span id="removedchars">, lpFormat->cbSize</span>);
</pre><pre class="diff" id="added">+         lpFormat->nAvgBytesPerSec, lpFormat->nBlockAlign, lpFormat->wBitsPerSample);
</pre><pre class="diff" id="context">
if ((wmld = MMDRV_Alloc(sizeof(WINE_WAVE), uType, &handle,
</pre><pre class="diff" id="removed">-                         &dwFlags, &dwCallback, &dwInstance, bFrom32)) == NULL)
</pre><pre class="diff" id="added">+                         &dwFlags, &dwCallback, &dwInstance, bFrom32)) == NULL)<span id="addedchars"> {</span>
+ WARN("no memory\n");
</pre><pre class="diff" id="context">         return MMSYSERR_NOMEM;
</pre><pre class="diff" id="added">+ }
</pre><pre class="diff" id="context">
wod.hWave = handle;
wod.lpFormat = lpFormat; /* should the struct be copied iso pointer? */
</pre><pre class="diff"><small id="info">@@ -2461,11 +2502,12 @@
</small></pre><pre class="diff" id="context"> dwRet = MMDRV_Open(wmld, (uType == MMDRV_WAVEOUT) ? WODM_OPEN : WIDM_OPEN,
(DWORD)&wod, dwFlags);
</pre><pre class="diff" id="added">+ TRACE("dwRet = %s\n", WINMM_ErrorToString(dwRet));
</pre><pre class="diff" id="context"> if (dwRet != WAVERR_BADFORMAT ||
</pre><pre class="diff" id="removed">- (dwFlags & (WAVE_MAPPED|WAVE_FORMAT_DIRECT)) != 0) break;
</pre><pre class="diff" id="added">+ ((dwFlags & (WAVE_MAPPED|WAVE_FORMAT_DIRECT)) != 0) || (uDeviceID == WAVE_MAPPER)) break;
</pre><pre class="diff" id="context"> /* if we ask for a format which isn't supported by the physical driver,
* let's try to map it through the wave mapper (except, if we already tried
</pre><pre class="diff" id="removed">- * or user didn't allow us to use acm codecs)
</pre><pre class="diff" id="added">+ * or user didn't allow us to use acm codecs or the device is already the mapper)
</pre><pre class="diff" id="context"> */
dwFlags |= WAVE_MAPPED;
/* we shall loop only one */
</pre><pre class="diff"><small id="info">@@ -2477,7 +2519,7 @@
</small></pre><pre class="diff" id="context"> }
if (lphndl != NULL) *lphndl = handle;
</pre><pre class="diff" id="removed">- TRACE("=> %ld hWave=%p\n", dwRet, handle);
</pre><pre class="diff" id="added">+ TRACE("=> %s hWave=%p\n", WINMM_ErrorToString(dwRet), handle);
</pre><pre class="diff" id="context">
return dwRet;
}
</pre><pre class="diff"><small id="info">@@ -2859,12 +2901,15 @@
</small></pre><pre class="diff" id="context">         if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, TRUE)) != NULL) {
         return MMDRV_PhysicalFeatures(wmld, uMessage, dwParam1, dwParam2);
        }
</pre><pre class="diff" id="added">+ WARN("invalid handle\n");
</pre><pre class="diff" id="context">         return MMSYSERR_INVALHANDLE;
}
/* from M$ KB */
</pre><pre class="diff" id="removed">- if (uMessage < DRVM_IOCTL || (uMessage >= DRVM_IOCTL_LAST && uMessage < DRVM_MAPPER))
</pre><pre class="diff" id="added">+ if (uMessage < DRVM_IOCTL || (uMessage >= DRVM_IOCTL_LAST && uMessage < DRVM_MAPPER))<span id="addedchars"> {</span>
+ WARN("invalid parameter\n");
</pre><pre class="diff" id="context">         return MMSYSERR_INVALPARAM;
</pre><pre class="diff" id="added">+ }
</pre><pre class="diff" id="context">
return MMDRV_Message(wmld, uMessage, dwParam1, dwParam2, TRUE);
}
</pre></div>
<hr /><a name="file6" /><div class="file">
<span class="pathname"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos">reactos</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib">lib</a>/<a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm">winmm</a><br /></span>
<div class="fileheader"><big><b>winmm_It.rc</b></big> <small id="info"><a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm_It.rc?rev=1.1&content-type=text/x-cvsweb-markup">1.1</a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm_It.rc.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&f=h">-></a> <a href="http://cvs.reactos.com/cgi-bin/cvsweb/reactos/lib/winmm/winmm_It.rc?rev=1.2&content-type=text/x-cvsweb-markup">1.2</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.1 -r1.2
--- winmm_It.rc        15 Dec 2003 20:20:34 -0000        1.1
+++ winmm_It.rc        16 Jun 2004 18:48:46 -0000        1.2
@@ -1,6 +1,6 @@
</small></pre><pre class="diff" id="context"> /*
* Copyright 1999 Eric Pouech
</pre><pre class="diff" id="removed">- * Copyright 2003 Ivan Leo <span id="removedchars">Murray-Smith</span>
</pre><pre class="diff" id="added">+ * Copyright 2003 Ivan Leo <span id="addedchars">Puoti</span>
</pre><pre class="diff" id="context"> *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
</pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -> email">CVSspam</a> 0.2.8</small></center>
</body></html>