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);
213 L"Software\\Microsoft\\Windows\\CurrentVersion\\Multimedia\\MIDIMap",
231 static const WCHAR cs[] = {
'C',
'u',
'r',
'r',
'e',
'n',
't',
'S',
'c',
'h',
'e',
'm',
'e',0};
240 ERR(
"Wrong registry: UseScheme is active, but no CurrentScheme found\n");
245 static const WCHAR ci[] = {
'C',
'u',
'r',
'r',
'e',
'n',
't',
'I',
'n',
's',
't',
'r',
'u',
'm',
'e',
'n',
't',0};
268 for (
i = 0;
i < 16;
i++)
270 TRACE(
"chnMap[%2d] => %d\n",
303 for (
i = 0;
i < 16;
i++)
333 for (chn = 0; chn < 16; chn++)
350 WORD chn = lb & 0x0F;
390 dwParam &= ~0x0000FF00;
397 for (chn = 0; chn < 16; chn++)
404 FIXME(
"ooch %lx\n", dwParam);
426 lpMidiHdr->
dwFlags &= ~MHDR_PREPARED;
432 static const WCHAR name[] = {
'W',
'i',
'n',
'e',
' ',
'm',
'i',
'd',
'i',
' ',
'm',
'a',
'p',
'p',
'e',
'r',0};
433 lpMidiCaps->
wMid = 0x00FF;
434 lpMidiCaps->
wPid = 0x0001;
454 for (chn = 0; chn < 16; chn++)
471 TRACE(
"(%u, %04X, %08lX, %08lX, %08lX);\n",
472 wDevID, wMsg, dwUser, dwParam1, dwParam2);
497 FIXME(
"unknown message %d!\n", wMsg);
529 for (
i = 0;
i < 16;
i++)
577 return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegOpenCurrentUser(IN REGSAM samDesired, OUT PHKEY phkResult)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR 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)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
LONG WINAPI RegEnumKeyW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName)
#define HeapFree(x, y, z)
BOOL WINAPI IsBadReadPtr(IN LPCVOID lp, IN UINT_PTR ucb)
LRESULT WINAPI DefDriverProc(DWORD_PTR dwDriverIdentifier, HDRVR hDrv, UINT Msg, LPARAM lParam1, LPARAM lParam2)
GLuint GLuint GLsizei GLenum type
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
static unsigned numMidiOutPorts
static BOOL MIDIMAP_LoadSettingsScheme(MIDIMAPDATA *mom, const WCHAR *scheme)
struct tagMIDIOUTPORT MIDIOUTPORT
DWORD WINAPI MIDIMAP_modMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
static MIDIOUTPORT * midiOutPorts
static DWORD modClose(MIDIMAPDATA *mom)
static LRESULT MIDIMAP_drvClose(DWORD_PTR dwDevID)
static LRESULT MIDIMAP_drvOpen(LPSTR str)
static DWORD modPrepare(MIDIMAPDATA *mom, LPMIDIHDR lpMidiHdr, DWORD_PTR dwParam2)
struct tagMIDIMAPDATA MIDIMAPDATA
static BOOL MIDIMAP_FindPort(const WCHAR *name, unsigned *dev)
static DWORD modLongData(MIDIMAPDATA *mom, LPMIDIHDR lpMidiHdr, DWORD_PTR dwParam2)
static DWORD modUnprepare(MIDIMAPDATA *mom, LPMIDIHDR lpMidiHdr, DWORD_PTR dwParam2)
static DWORD modData(MIDIMAPDATA *mom, DWORD_PTR dwParam)
static DWORD modOpen(DWORD_PTR *lpdwUser, LPMIDIOPENDESC lpDesc, DWORD dwFlags)
static BOOL MIDIMAP_LoadSettingsDefault(MIDIMAPDATA *mom, const WCHAR *port)
static BOOL MIDIMAP_IsBadData(MIDIMAPDATA *mm)
static DWORD modGetDevCaps(UINT wDevID, MIDIMAPDATA *mom, LPMIDIOUTCAPSW lpMidiCaps, DWORD_PTR size)
static DWORD modReset(MIDIMAPDATA *mom)
static BOOL MIDIMAP_LoadSettings(MIDIMAPDATA *mom)
LRESULT CALLBACK MIDIMAP_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, LPARAM dwParam1, LPARAM dwParam2)
#define DRV_QUERYCONFIGURE
#define MMSYSERR_NOTSUPPORTED
#define MIDIERR_INVALIDSETUP
#define MMSYSERR_INVALPARAM
struct tagMIDIMAPDATA * self
MIDIOUTPORT * ChannelMap[16]
WCHAR szPname[MAXPNAMELEN]
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
UINT WINAPI midiOutReset(HMIDIOUT hMidiOut)
UINT WINAPI midiOutLongMsg(HMIDIOUT hMidiOut, MIDIHDR *lpMidiOutHdr, UINT uSize)
UINT WINAPI midiOutUnprepareHeader(HMIDIOUT hMidiOut, MIDIHDR *lpMidiOutHdr, UINT uSize)
UINT WINAPI midiOutGetNumDevs(void)
UINT WINAPI midiOutClose(HMIDIOUT hMidiOut)
UINT WINAPI midiOutShortMsg(HMIDIOUT hMidiOut, DWORD dwMsg)
MMRESULT WINAPI midiOutOpen(LPHMIDIOUT lphMidiOut, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD dwFlags)
UINT WINAPI midiOutGetDevCapsW(UINT_PTR uDeviceID, LPMIDIOUTCAPSW lpCaps, UINT uSize)
UINT WINAPI midiOutPrepareHeader(HMIDIOUT hMidiOut, MIDIHDR *lpMidiOutHdr, UINT uSize)
#define HKEY_LOCAL_MACHINE
int WINAPI MessageBoxA(_In_opt_ HWND hWnd, _In_opt_ LPCSTR lpText, _In_opt_ LPCSTR lpCaption, _In_ UINT uType)