Fix crash on windows 64bit when receiving winmme MIDI messages

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2023-10-28 14:35:08 +02:00
parent 73a759b082
commit 0d730dd356
No known key found for this signature in database
GPG Key ID: CDBAA37ABC74FBA0
3 changed files with 14 additions and 7 deletions

View File

@ -35,8 +35,9 @@ using Jack::JackWinMMEInputPort;
void CALLBACK void CALLBACK
JackWinMMEInputPort::HandleMidiInputEvent(HMIDIIN handle, UINT message, JackWinMMEInputPort::HandleMidiInputEvent(HMIDIIN handle, UINT message,
DWORD port, DWORD param1, DWORD_PTR port,
DWORD param2) DWORD_PTR param1,
DWORD_PTR param2)
{ {
((JackWinMMEInputPort *) port)->ProcessWinMME(message, param1, param2); ((JackWinMMEInputPort *) port)->ProcessWinMME(message, param1, param2);
} }
@ -201,7 +202,7 @@ JackWinMMEInputPort::ProcessJack(JackMidiBuffer *port_buffer,
} }
void void
JackWinMMEInputPort::ProcessWinMME(UINT message, DWORD param1, DWORD param2) JackWinMMEInputPort::ProcessWinMME(UINT message, DWORD_PTR param1, DWORD_PTR param2)
{ {
set_threaded_log_function(); set_threaded_log_function();
switch (message) { switch (message) {

View File

@ -33,8 +33,10 @@ namespace Jack {
private: private:
static void CALLBACK static void CALLBACK
HandleMidiInputEvent(HMIDIIN handle, UINT message, DWORD port, HandleMidiInputEvent(HMIDIIN handle, UINT message,
DWORD param1, DWORD param2); DWORD_PTR port,
DWORD_PTR param1,
DWORD_PTR param2);
void void
EnqueueMessage(DWORD timestamp, size_t length, jack_midi_data_t *data); EnqueueMessage(DWORD timestamp, size_t length, jack_midi_data_t *data);
@ -43,7 +45,7 @@ namespace Jack {
GetInErrorString(MMRESULT error, LPTSTR text); GetInErrorString(MMRESULT error, LPTSTR text);
void void
ProcessWinMME(UINT message, DWORD param1, DWORD param2); ProcessWinMME(UINT message, DWORD_PTR param1, DWORD_PTR param2);
void void
WriteInError(const char *jack_func, const char *mm_func, WriteInError(const char *jack_func, const char *mm_func,

View File

@ -31,7 +31,11 @@ using Jack::JackWinMMEPort;
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
JackWinMMEPort::JackWinMMEPort() JackWinMMEPort::JackWinMMEPort()
{} {
memset(alias, 0, sizeof(alias));
memset(name, 0, sizeof(name));
memset(device_name, 0, sizeof(device_name));
}
JackWinMMEPort::~JackWinMMEPort() JackWinMMEPort::~JackWinMMEPort()
{} {}