36 #include <wine/unicode.h> 106 TRACE(
"Bad midimap data (%p)\n", mm);
162 "System\\CurrentControlSet\\Control\\MediaProperties\\PrivateProperties\\Midi\\Schemes",
186 for (
i = 0;
i < 16;
i++)
191 ERR(
"Quirks in registry, channel %u is mapped twice\n",
i);
209 "Software\\Microsoft\\Windows\\CurrentVersion\\Multimedia\\MIDIMap", &
hKey))
222 static const WCHAR cs[] = {
'C',
'u',
'r',
'r',
'e',
'n',
't',
'S',
'c',
'h',
'e',
'm',
'e',0};
231 ERR(
"Wrong registry: UseScheme is active, but no CurrentScheme found\n");
236 static const WCHAR ci[] = {
'C',
'u',
'r',
'r',
'e',
'n',
't',
'I',
'n',
's',
't',
'r',
'u',
'm',
'e',
'n',
't',0};
259 for (
i = 0;
i < 16;
i++)
261 TRACE(
"chnMap[%2d] => %d\n",
294 for (
i = 0;
i < 16;
i++)
324 for (chn = 0; chn < 16; chn++)
341 WORD chn = lb & 0x0F;
381 dwParam &= ~0x0000FF00;
388 for (chn = 0; chn < 16; chn++)
395 FIXME(
"ooch %lu\n", dwParam);
423 static const WCHAR name[] = {
'W',
'i',
'n',
'e',
' ',
'm',
'i',
'd',
'i',
' ',
'm',
'a',
'p',
'p',
'e',
'r',0};
424 lpMidiCaps->
wMid = 0x00FF;
425 lpMidiCaps->
wPid = 0x0001;
445 for (chn = 0; chn < 16; chn++)
462 TRACE(
"(%u, %04X, %08lX, %08lX, %08lX);\n",
463 wDevID, wMsg, dwUser, dwParam1, dwParam2);
488 FIXME(
"unknown message %d!\n", wMsg);
520 for (
i = 0;
i < 16;
i++)
568 return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2);
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
static DWORD modPrepare(MIDIMAPDATA *mom, LPMIDIHDR lpMidiHdr, DWORD_PTR dwParam2)
static DWORD modReset(MIDIMAPDATA *mom)
char * wine_dbgstr_w(const wchar_t *wstr)
#define HKEY_CURRENT_USER
static DWORD modUnprepare(MIDIMAPDATA *mom, LPMIDIHDR lpMidiHdr, DWORD_PTR dwParam2)
MMRESULT WINAPI midiOutOpen(LPHMIDIOUT lphMidiOut, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD dwFlags)
MIDIOUTPORT * ChannelMap[16]
DWORD WINAPI MIDIMAP_modMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
static BOOL MIDIMAP_LoadSettingsDefault(MIDIMAPDATA *mom, const WCHAR *port)
#define DRV_QUERYCONFIGURE
UINT WINAPI midiOutShortMsg(HMIDIOUT hMidiOut, DWORD dwMsg)
int WINAPI MessageBoxA(_In_opt_ HWND, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_ UINT)
static LRESULT MIDIMAP_drvOpen(LPSTR str)
LONG WINAPI RegCloseKey(HKEY hKey)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
static LRESULT MIDIMAP_drvClose(DWORD_PTR dwDevID)
UINT WINAPI midiOutPrepareHeader(HMIDIOUT hMidiOut, MIDIHDR *lpMidiOutHdr, UINT uSize)
UINT WINAPI midiOutReset(HMIDIOUT hMidiOut)
WCHAR szPname[MAXPNAMELEN]
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
UINT WINAPI midiOutClose(HMIDIOUT hMidiOut)
LRESULT CALLBACK MIDIMAP_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, LPARAM dwParam1, LPARAM dwParam2)
static DWORD modData(MIDIMAPDATA *mom, DWORD_PTR dwParam)
#define MMSYSERR_NOTSUPPORTED
static DWORD modGetDevCaps(UINT wDevID, MIDIMAPDATA *mom, LPMIDIOUTCAPSW lpMidiCaps, DWORD_PTR size)
#define MIDIERR_INVALIDSETUP
static BOOL MIDIMAP_LoadSettings(MIDIMAPDATA *mom)
static MIDIOUTPORT * midiOutPorts
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
UINT WINAPI midiOutUnprepareHeader(HMIDIOUT hMidiOut, MIDIHDR *lpMidiOutHdr, UINT uSize)
struct tagMIDIOUTPORT MIDIOUTPORT
struct tagMIDIMAPDATA * self
LONG WINAPI RegEnumKeyW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName)
WINE_UNICODE_INLINE WCHAR * strcpyW(WCHAR *dst, const WCHAR *src)
static DWORD modOpen(DWORD_PTR *lpdwUser, LPMIDIOPENDESC lpDesc, DWORD dwFlags)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define MMSYSERR_INVALPARAM
BOOL WINAPI IsBadReadPtr(IN LPCVOID lp, IN UINT_PTR ucb)
UINT WINAPI midiOutGetDevCapsW(UINT_PTR uDeviceID, LPMIDIOUTCAPSW lpCaps, UINT uSize)
static BOOL MIDIMAP_LoadSettingsScheme(MIDIMAPDATA *mom, const WCHAR *scheme)
WINE_DEFAULT_DEBUG_CHANNEL(msacm)
static BOOL MIDIMAP_IsBadData(MIDIMAPDATA *mm)
UINT WINAPI midiOutLongMsg(HMIDIOUT hMidiOut, MIDIHDR *lpMidiOutHdr, UINT uSize)
struct tagMIDIMAPDATA MIDIMAPDATA
WINE_UNICODE_INLINE int strcmpW(const WCHAR *str1, const WCHAR *str2)
LRESULT WINAPI DefDriverProc(DWORD_PTR dwDriverIdentifier, HDRVR hDrv, UINT Msg, LPARAM lParam1, LPARAM lParam2)
static unsigned numMidiOutPorts
GLuint GLuint GLsizei GLenum type
static DWORD modClose(MIDIMAPDATA *mom)
UINT WINAPI midiOutGetNumDevs(void)
#define HeapFree(x, y, z)
static DWORD modLongData(MIDIMAPDATA *mom, LPMIDIHDR lpMidiHdr, DWORD_PTR dwParam2)
static BOOL MIDIMAP_FindPort(const WCHAR *name, unsigned *dev)
#define HKEY_LOCAL_MACHINE