Ticket #4445: PortDrivers.diff

File PortDrivers.diff, 834 bytes (added by Pete, 15 years ago)
  • src/servers/midi/PortDrivers.cpp

    old new  
    114114                    sysexAlloc *= 2;
    115115                    sysexBuf = (uint8*) realloc(sysexBuf, sysexAlloc);
    116116                }
     117                continue;
    117118            } else if (next == B_SYS_EX_END) {
    118119                SpraySystemExclusive(sysexBuf, sysexSize);
    119120                haveSysEx = false;
     121                continue;
    120122            } else if ((next & 0xF8) == 0xF8) {
    121123                // System Realtime interleaved in System Exclusive byte(s)
    122124                SpraySystemRealTime(next);
     125                continue;
     126            } else {    // must be a new status byte
     127                // Terminate the sequence
     128                SpraySystemExclusive(sysexBuf, sysexSize);
     129                haveSysEx = false;
     130                // and *don't* go back for another byte
    123131            }
    124             continue;
    125132        }
    126133       
    127134        if ((next & 0xF8) == 0xF8)  // System Realtime