diff options
| -rw-r--r-- | tmk_core/protocol/chibios/main.c | 6 | ||||
| -rw-r--r-- | tmk_core/protocol/chibios/usb_main.c | 12 | 
2 files changed, 17 insertions, 1 deletions
| diff --git a/tmk_core/protocol/chibios/main.c b/tmk_core/protocol/chibios/main.c index 4b66bc5224..a61ffad12d 100644 --- a/tmk_core/protocol/chibios/main.c +++ b/tmk_core/protocol/chibios/main.c @@ -81,6 +81,9 @@ void raw_hid_task(void);  #ifdef CONSOLE_ENABLE  void console_task(void);  #endif +#ifdef MIDI_ENABLE +void midi_ep_task(void); +#endif  /* TESTING   * Amber LED blinker thread, times are in milliseconds. @@ -214,6 +217,9 @@ int main(void) {  #ifdef CONSOLE_ENABLE          console_task();  #endif +#ifdef MIDI_ENABLE +        midi_ep_task(); +#endif  #ifdef VIRTSER_ENABLE          virtser_task();  #endif diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index dd701f661e..d5eeffcbe4 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -833,7 +833,17 @@ bool recv_midi_packet(MIDI_EventPacket_t *const event) {      size_t size = chnReadTimeout(&drivers.midi_driver.driver, (uint8_t *)event, sizeof(MIDI_EventPacket_t), TIME_IMMEDIATE);      return size == sizeof(MIDI_EventPacket_t);  } - +void midi_ep_task(void) { +    uint8_t buffer[MIDI_STREAM_EPSIZE]; +    size_t  size = 0; +    do { +        size_t size = chnReadTimeout(&drivers.midi_driver.driver, buffer, sizeof(buffer), TIME_IMMEDIATE); +        if (size > 0) { +            MIDI_EventPacket_t event; +            recv_midi_packet(&event); +        } +    } while (size > 0); +}  #endif  #ifdef VIRTSER_ENABLE | 
