summaryrefslogtreecommitdiff
path: root/src/class/midi
diff options
context:
space:
mode:
Diffstat (limited to 'src/class/midi')
-rw-r--r--src/class/midi/midi_device.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/class/midi/midi_device.c b/src/class/midi/midi_device.c
index b278039bf..0c68f8e71 100644
--- a/src/class/midi/midi_device.c
+++ b/src/class/midi/midi_device.c
@@ -332,9 +332,15 @@ bool midid_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32
{
(void) result;
- // TODO Support multiple interfaces
- uint8_t const itf = 0;
- midid_interface_t* p_midi = &_midid_itf[itf];
+ uint8_t itf = 0;
+ midid_interface_t* p_midi = _midid_itf;
+
+ for ( ; ; itf++, p_midi++)
+ {
+ if (itf >= TU_ARRAY_SIZE(_midid_itf)) return false;
+
+ if ( ep_addr == p_midi->ep_out ) break;
+ }
// receive new data
if ( ep_addr == p_midi->ep_out )