Here is a new version of the patch bringing MIDI MTC messages handling, including the surrounding code improvements suggested by Jörg Hoehle <a href="http://wine.1045685.n5.nabble.com/winealsa-drv-midi-c-Adds-the-midi-MTC-Quarter-Frame-messages-support-td4387453.html" target="_blank">http://wine.1045685.n5.nabble.com/winealsa-drv-midi-c-Adds-the-midi-MTC-Quarter-Frame-messages-support-td4387453.html</a><br>

Corrects bug #26928<br>Tested in several ways with hardware + software<br>
Regards.<br><br>---<br> dlls/winealsa.drv/midi.c |    9 ++++++---<br> 1 files changed, 6 insertions(+), 3 deletions(-)<br><br>diff --git a/dlls/winealsa.drv/midi.c b/dlls/winealsa.drv/midi.c<br>index 8bd048e..1e5b436 100644<br>

--- a/dlls/winealsa.drv/midi.c<br>


+++ b/dlls/winealsa.drv/midi.c<br>@@ -362,14 +362,17 @@ static DWORD WINAPI midRecThread(LPVOID arg)<br>                     toSend = 0xFC;<br>                     break;<br>                 case SND_SEQ_EVENT_SONGPOS:<br>




-                    toSend = (((ev-&gt;data.control.value &gt;&gt; 7) &amp; 0x7f) &lt;&lt; 16) | ((ev-&gt;data.control.value &amp; 0x7f) &lt;&lt; 8) | 0xF2;<br>+                    toSend = (((ev-&gt;data.control.value &gt;&gt; 7) &amp; 0x7f) &lt;&lt; 16) | ((ev-&gt;data.control.value &amp; 0x7f) &lt;&lt; 8) | MIDI_CMD_COMMON_SONG_POS;<br>




                     break;<br>                 case SND_SEQ_EVENT_SONGSEL:<br>-                  toSend = ((ev-&gt;data.control.value &amp; 0x7f) &lt;&lt; 8) | 0xF3;<br>+                  toSend = ((ev-&gt;data.control.value &amp; 0x7f) &lt;&lt; 8) | MIDI_CMD_COMMON_SONG_SELECT;<br>




                     break;<br>                 case SND_SEQ_EVENT_RESET:<br>                     toSend = 0xFF;<br>                     break;<br>+                case SND_SEQ_EVENT_QFRAME:<br>+                  toSend = ((ev-&gt;data.control.value &amp; 0x7f) &lt;&lt; 8) | MIDI_CMD_COMMON_MTC_QUARTER;<br>




+                    break;<br>         case SND_SEQ_EVENT_SYSEX:<br>             {<br>             int pos = 0;<br>@@ -864,7 +867,6 @@ static DWORD modData(WORD wDevID, DWORD dwParam)<br>         switch (evt &amp; 0x0F) {<br>




         case 0x00:    /* System Exclusive, don&#39;t do it on modData,<br>                  * should require modLongData*/<br>-        case 0x01:    /* Undefined */<br>         case 0x04:    /* Undefined. */<br>         case 0x05:    /* Undefined. */<br>




         case 0x07:    /* End of Exclusive. */<br>@@ -890,6 +892,7 @@ static DWORD modData(WORD wDevID, DWORD dwParam)<br>             snd_seq_ev_set_sysex(&amp;event, sizeof(reset_sysex_seq), reset_sysex_seq);<br>             }<br>




             break;<br>+        case 0x01:    /* MTC Quarter frame */<br>         case 0x03:    /* Song Select. */<br>             {<br>             BYTE buf[2];<br>-- <br>1.7.4.1<br><br>