winealsa.drv/midi.c: Adds the midi MTC Quarter Frame messages support

BACRI Stephane stephanebacri at gmail.com
Sun Jun 12 05:53:05 CDT 2011


Here is a new version of the patch bringing MIDI MTC messages handling,
including the surrounding code improvements suggested by Jörg Hoehle
http://wine.1045685.n5.nabble.com/winealsa-drv-midi-c-Adds-the-midi-MTC-Quarter-Frame-messages-support-td4387453.html
Corrects bug #26928
Tested in several ways with hardware + software
Regards.

---
 dlls/winealsa.drv/midi.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/winealsa.drv/midi.c b/dlls/winealsa.drv/midi.c
index 8bd048e..1e5b436 100644
--- a/dlls/winealsa.drv/midi.c
+++ b/dlls/winealsa.drv/midi.c
@@ -362,14 +362,17 @@ static DWORD WINAPI midRecThread(LPVOID arg)
                     toSend = 0xFC;
                     break;
                 case SND_SEQ_EVENT_SONGPOS:
-                    toSend = (((ev->data.control.value >> 7) & 0x7f) << 16)
| ((ev->data.control.value & 0x7f) << 8) | 0xF2;
+                    toSend = (((ev->data.control.value >> 7) & 0x7f) << 16)
| ((ev->data.control.value & 0x7f) << 8) | MIDI_CMD_COMMON_SONG_POS;
                     break;
                 case SND_SEQ_EVENT_SONGSEL:
-                  toSend = ((ev->data.control.value & 0x7f) << 8) | 0xF3;
+                  toSend = ((ev->data.control.value & 0x7f) << 8) |
MIDI_CMD_COMMON_SONG_SELECT;
                     break;
                 case SND_SEQ_EVENT_RESET:
                     toSend = 0xFF;
                     break;
+                case SND_SEQ_EVENT_QFRAME:
+                  toSend = ((ev->data.control.value & 0x7f) << 8) |
MIDI_CMD_COMMON_MTC_QUARTER;
+                    break;
         case SND_SEQ_EVENT_SYSEX:
             {
             int pos = 0;
@@ -864,7 +867,6 @@ static DWORD modData(WORD wDevID, DWORD dwParam)
         switch (evt & 0x0F) {
         case 0x00:    /* System Exclusive, don't do it on modData,
                  * should require modLongData*/
-        case 0x01:    /* Undefined */
         case 0x04:    /* Undefined. */
         case 0x05:    /* Undefined. */
         case 0x07:    /* End of Exclusive. */
@@ -890,6 +892,7 @@ static DWORD modData(WORD wDevID, DWORD dwParam)
             snd_seq_ev_set_sysex(&event, sizeof(reset_sysex_seq),
reset_sysex_seq);
             }
             break;
+        case 0x01:    /* MTC Quarter frame */
         case 0x03:    /* Song Select. */
             {
             BYTE buf[2];
-- 
1.7.4.1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20110612/2edc3e34/attachment.htm>


More information about the wine-patches mailing list