http://bugs.winehq.org/show_bug.cgi?id=13241
--- Comment #2 from Free Ekanayaka free@64studio.com 2008-05-15 10:28:54 --- (From update of attachment 13070) --- dlls/winealsa.drv/midi.c.orig 2008-05-15 16:32:49.000000000 +0100 +++ dlls/winealsa.drv/midi.c 2008-05-15 16:33:53.000000000 +0100 @@ -388,8 +388,10 @@ lpMidiHdr->dwFlags &= ~MHDR_INQUEUE; lpMidiHdr->dwFlags |= MHDR_DONE; MidiInDev[wDevID].lpQueueHdr = (LPMIDIHDR)lpMidiHdr->lpNext; + LeaveCriticalSection(&crit_sect); if (MIDI_NotifyClient(wDevID, MIM_LONGDATA, (DWORD)lpMidiHdr, dwTime) != MMSYSERR_NOERROR) WARN("Couldn't notify client\n"); + break; } } else FIXME("No enough space in the buffer to store sysex!\n"); @@ -1146,7 +1148,7 @@ * not MIDICAPS_CACHE. */ MidiOutDev[MODM_NumDevs].caps.dwSupport = MIDICAPS_VOLUME|MIDICAPS_LRVOLUME; - MultiByteToWideChar(CP_ACP, 0, snd_seq_client_info_get_name(cinfo), -1, + MultiByteToWideChar(CP_ACP, 0, snd_seq_port_info_get_name(pinfo), -1, MidiOutDev[MODM_NumDevs].caps.szPname, sizeof(MidiOutDev[MODM_NumDevs].caps.szPname) / sizeof(WCHAR));
@@ -1201,7 +1203,7 @@ * not MIDICAPS_CACHE. */ MidiInDev[MIDM_NumDevs].caps.dwSupport = MIDICAPS_VOLUME|MIDICAPS_LRVOLUME; - MultiByteToWideChar(CP_ACP, 0, snd_seq_client_info_get_name(cinfo), -1, + MultiByteToWideChar(CP_ACP, 0, snd_seq_port_info_get_name(pinfo), -1, MidiInDev[MIDM_NumDevs].caps.szPname, sizeof(MidiInDev[MIDM_NumDevs].caps.szPname) / sizeof(WCHAR)); MidiInDev[MIDM_NumDevs].state = 0;