From ff0e7d2bed64592c16e73e83cead8d76eda66f36 Mon Sep 17 00:00:00 2001 From: Peter Lawrence <12226419+majbthrd@users.noreply.github.com> Date: Sun, 22 Dec 2019 18:18:54 -0600 Subject: implement multiple interfaces support --- src/class/midi/midi_device.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/class/midi') 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 ) -- cgit v1.3.1