Unicodify wineesd
Francois Gouget
fgouget at codeweavers.com
Wed Aug 10 07:04:35 CDT 2005
winmm.dll now expects W(I|O)DM_GETDEVCAPS to take a Unicode structure as
a parameter. So this patch unicodifies wineesd, at least as far as the
caps field is concerned, to match what was done to the other sound
drivers a long time ago.
Changelog:
* dlls/winmm/wineesd/audio.c
Francois Gouget <fgouget at codeweavers.com>
Unicodify wineesd.
Fixes WIDM_GETDEVCAPS and WODM_GETDEVCAPS.
Call Unicode functions instead of their Ansi equivalent when possible.
--
Francois Gouget
fgouget at codeweavers.com
-------------- next part --------------
Index: dlls/winmm/wineesd/audio.c
===================================================================
RCS file: /var/cvs/wine/dlls/winmm/wineesd/audio.c,v
retrieving revision 1.1
diff -u -p -r1.1 audio.c
--- dlls/winmm/wineesd/audio.c 3 Aug 2005 15:53:26 -0000 1.1
+++ dlls/winmm/wineesd/audio.c 3 Aug 2005 22:06:50 -0000
@@ -32,8 +33,6 @@
*
*/
-/*#define EMULATE_SB16*/
-
#include "config.h"
#include <math.h>
@@ -126,7 +125,7 @@ typedef struct {
WAVEOPENDESC waveDesc;
WORD wFlags;
PCMWAVEFORMAT format;
- WAVEOUTCAPSA caps;
+ WAVEOUTCAPSW caps;
char interface_name[32];
DWORD dwSleepTime; /* Num of milliseconds to sleep between filling the dsp buffers */
@@ -164,7 +163,7 @@ typedef struct {
WAVEOPENDESC waveDesc;
WORD wFlags;
PCMWAVEFORMAT format;
- WAVEINCAPSA caps;
+ WAVEINCAPSW caps;
char interface_name[32];
/* esd information */
@@ -341,23 +340,14 @@ LONG ESD_WaveInit(void)
/* initialize all device handles to -1 */
for (i = 0; i < MAX_WAVEOUTDRV; ++i)
{
+ static const WCHAR ini[] = {'E','s','o','u','n','D',' ','W','a','v','e','O','u','t','D','r','i','v','e','r',0};
+
WOutDev[i].esd_fd = -1;
memset(&WOutDev[i].caps, 0, sizeof(WOutDev[i].caps)); /* zero out
caps values */
- /* FIXME: some programs compare this string against the content of the registry
- * for MM drivers. The names have to match in order for the program to work
- * (e.g. MS win9x mplayer.exe)
- */
-#ifdef EMULATE_SB16
- WOutDev[i].caps.wMid = 0x0002;
- WOutDev[i].caps.wPid = 0x0104;
- strcpy(WOutDev[i].caps.szPname, "SB16 Wave Out");
-#else
WOutDev[i].caps.wMid = 0x00FF; /* Manufac ID */
WOutDev[i].caps.wPid = 0x0001; /* Product ID */
- /* strcpy(WOutDev[i].caps.szPname, "OpenSoundSystem WAVOUT Driver");*/
- strcpy(WOutDev[i].caps.szPname, "CS4236/37/38");
-#endif
+ lstrcpyW(WOutDev[i].caps.szPname, ini);
snprintf(WOutDev[i].interface_name, sizeof(WOutDev[i].interface_name), "wineesd: %d", i);
WOutDev[i].caps.vDriverVersion = 0x0100;
@@ -383,22 +373,14 @@ LONG ESD_WaveInit(void)
for (i = 0; i < MAX_WAVEINDRV; ++i)
{
+ static const WCHAR ini[] = {'E','s','o','u','n','D',' ','W','a','v','e','I','n','D','r','i','v','e','r',0};
+
WInDev[i].esd_fd = -1;
memset(&WInDev[i].caps, 0, sizeof(WInDev[i].caps)); /* zero out
caps values */
- /* FIXME: some programs compare this string against the content of the registry
- * for MM drivers. The names have to match in order for the program to work
- * (e.g. MS win9x mplayer.exe)
- */
-#ifdef EMULATE_SB16
- WInDev[i].caps.wMid = 0x0002;
- WInDev[i].caps.wPid = 0x0104;
- strcpy(WInDev[i].caps.szPname, "SB16 Wave In");
-#else
WInDev[i].caps.wMid = 0x00FF;
WInDev[i].caps.wPid = 0x0001;
- strcpy(WInDev[i].caps.szPname,"CS4236/37/38");
-#endif
+ lstrcpyW(WInDev[i].caps.szPname, ini);
snprintf(WInDev[i].interface_name, sizeof(WInDev[i].interface_name), "wineesd: %d", i);
WInDev[i].caps.vDriverVersion = 0x0100;
@@ -434,7 +416,7 @@ static int ESD_InitRingMessage(ESD_MSG_R
{
mr->msg_toget = 0;
mr->msg_tosave = 0;
- mr->msg_event = CreateEventA(NULL, FALSE, FALSE, NULL);
+ mr->msg_event = CreateEventW(NULL, FALSE, FALSE, NULL);
mr->ring_buffer_size = ESD_RING_BUFFER_INCREMENT;
mr->messages = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,mr->ring_buffer_size * sizeof(RING_MSG));
InitializeCriticalSection(&mr->msg_crst);
@@ -485,7 +467,7 @@ static int ESD_AddRingMessage(ESD_MSG_RI
}
if (wait)
{
- hEvent = CreateEventA(NULL, FALSE, FALSE, NULL);
+ hEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
if (hEvent == INVALID_HANDLE_VALUE)
{
ERR("can't create event !?\n");
@@ -1047,7 +1029,7 @@ static DWORD CALLBACK wodPlayer(LPVOID p
/**************************************************************************
* wodGetDevCaps [internal]
*/
-static DWORD wodGetDevCaps(WORD wDevID, LPWAVEOUTCAPSA lpCaps, DWORD dwSize)
+static DWORD wodGetDevCaps(WORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize)
{
TRACE("(%u, %p, %lu);\n", wDevID, lpCaps, dwSize);
@@ -1167,7 +1149,7 @@ static DWORD wodOpen(WORD wDevID, LPWAVE
/* create player thread */
if (!(dwFlags & WAVE_DIRECTSOUND)) {
- wwo->hStartUpEvent = CreateEventA(NULL, FALSE, FALSE, NULL);
+ wwo->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
wwo->hThread = CreateThread(NULL, 0, wodPlayer, (LPVOID)(DWORD)wDevID, 0, &(wwo->dwThreadID));
WaitForSingleObject(wwo->hStartUpEvent, INFINITE);
CloseHandle(wwo->hStartUpEvent);
@@ -1532,7 +1514,7 @@ DWORD WINAPI ESD_wodMessage(UINT wDevID,
case WODM_BREAKLOOP: return wodBreakLoop (wDevID);
case WODM_PREPARE: return wodPrepare (wDevID, (LPWAVEHDR)dwParam1, dwParam2);
case WODM_UNPREPARE: return wodUnprepare (wDevID, (LPWAVEHDR)dwParam1, dwParam2);
- case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSA)dwParam1, dwParam2);
+ case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2);
case WODM_GETNUMDEVS: return wodGetNumDevs ();
case WODM_GETPITCH: return MMSYSERR_NOTSUPPORTED;
case WODM_SETPITCH: return MMSYSERR_NOTSUPPORTED;
@@ -1623,7 +1605,7 @@ static DWORD widNotifyClient(WINE_WAVEIN
/**************************************************************************
* widGetDevCaps [internal]
*/
-static DWORD widGetDevCaps(WORD wDevID, LPWAVEINCAPSA lpCaps, DWORD dwSize)
+static DWORD widGetDevCaps(WORD wDevID, LPWAVEINCAPSW lpCaps, DWORD dwSize)
{
TRACE("(%u, %p, %lu);\n", wDevID, lpCaps, dwSize);
@@ -1907,7 +1889,7 @@ static DWORD widOpen(WORD wDevID, LPWAVE
/* create recorder thread */
if (!(dwFlags & WAVE_DIRECTSOUND)) {
- wwi->hStartUpEvent = CreateEventA(NULL, FALSE, FALSE, NULL);
+ wwi->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
wwi->hThread = CreateThread(NULL, 0, widRecorder, (LPVOID)(DWORD)wDevID, 0, &(wwi->dwThreadID));
WaitForSingleObject(wwi->hStartUpEvent, INFINITE);
CloseHandle(wwi->hStartUpEvent);
@@ -2086,7 +2068,7 @@ DWORD WINAPI ESD_widMessage(UINT wDevID,
case WIDM_ADDBUFFER: return widAddBuffer (wDevID, (LPWAVEHDR)dwParam1, dwParam2);
case WIDM_PREPARE: return widPrepare (wDevID, (LPWAVEHDR)dwParam1, dwParam2);
case WIDM_UNPREPARE: return widUnprepare (wDevID, (LPWAVEHDR)dwParam1, dwParam2);
- case WIDM_GETDEVCAPS: return widGetDevCaps (wDevID, (LPWAVEINCAPSA)dwParam1, dwParam2);
+ case WIDM_GETDEVCAPS: return widGetDevCaps (wDevID, (LPWAVEINCAPSW)dwParam1, dwParam2);
case WIDM_GETNUMDEVS: return widGetNumDevs ();
case WIDM_RESET: return widReset (wDevID);
case WIDM_START: return widStart (wDevID);
More information about the wine-patches
mailing list