From 16be69ec348c2fe59cf1754f524ada214e65dba6 Mon Sep 17 00:00:00 2001 From: AndrewCapon Date: Sun, 12 Nov 2023 11:36:50 +0000 Subject: [PATCH] Add parseConfigEntry to IUSBEnumerator, call from parseConfDescr() --- src/USBHost/IUSBEnumerator.h | 1 + src/USBHost/USBHost.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/USBHost/IUSBEnumerator.h b/src/USBHost/IUSBEnumerator.h index 06ea430..d807c4b 100644 --- a/src/USBHost/IUSBEnumerator.h +++ b/src/USBHost/IUSBEnumerator.h @@ -30,6 +30,7 @@ class IUSBEnumerator virtual void setVidPid(uint16_t vid, uint16_t pid) = 0; virtual bool parseInterface(uint8_t intf_nb, uint8_t intf_class, uint8_t intf_subclass, uint8_t intf_protocol) = 0; //Must return true if the interface should be parsed virtual bool useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir) = 0; //Must return true if the endpoint will be used + virtual void parseConfigEntry(uint8_t type, uint8_t sub_type, uint8_t *data, uint32_t len) {}; }; #endif /*IUSBENUMERATOR_H_*/ diff --git a/src/USBHost/USBHost.cpp b/src/USBHost/USBHost.cpp index c1780f8..b21d9d3 100644 --- a/src/USBHost/USBHost.cpp +++ b/src/USBHost/USBHost.cpp @@ -1066,6 +1066,8 @@ void USBHost::parseConfDescr(USBDeviceConnected * dev, uint8_t * conf_descr, uin lenReportDescr = conf_descr[index + 7] | (conf_descr[index + 8] << 8); break; default: + if(parsing_intf) + pEnumerator->parseConfigEntry(id, conf_descr[index+2], &conf_descr[index+3], len_desc-3); break; } index += len_desc;