summaryrefslogtreecommitdiff
path: root/src/class/vendor
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2020-01-11 12:23:13 +0700
committerGitHub <[email protected]>2020-01-11 12:23:13 +0700
commit744674bb2803285703449f0dc3c9b9ac42c4b8e4 (patch)
tree3ad3d1ef2acc3151eed5fc3374a4e3983117eda9 /src/class/vendor
parent2eb1edcd43e5606eafc16eb3db67c6760606a1c2 (diff)
parentff0e7d2bed64592c16e73e83cead8d76eda66f36 (diff)
Merge pull request #240 from majbthrd/master
implement multiple interfaces support
Diffstat (limited to 'src/class/vendor')
-rw-r--r--src/class/vendor/vendor_device.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/class/vendor/vendor_device.c b/src/class/vendor/vendor_device.c
index a00257476..8db5005f4 100644
--- a/src/class/vendor/vendor_device.c
+++ b/src/class/vendor/vendor_device.c
@@ -197,9 +197,15 @@ bool vendord_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint
(void) rhport;
(void) result;
- // TODO Support multiple interfaces
- uint8_t const itf = 0;
- vendord_interface_t* p_itf = &_vendord_itf[itf];
+ uint8_t itf = 0;
+ vendord_interface_t* p_itf = _vendord_itf;
+
+ for ( ; ; itf++, p_itf++)
+ {
+ if (itf >= TU_ARRAY_SIZE(_vendord_itf)) return false;
+
+ if ( ( ep_addr == p_itf->ep_out ) || ( ep_addr == p_itf->ep_in ) ) break;
+ }
if ( ep_addr == p_itf->ep_out )
{