Add support for varying HID descriptors
Change-Id: I8ee01045d2b4bcc98bedb615f0af1b26ebbd66f7
diff --git a/motors/usb/usb.h b/motors/usb/usb.h
index 8fd2fb3..299df59 100644
--- a/motors/usb/usb.h
+++ b/motors/usb/usb.h
@@ -214,10 +214,22 @@
memcpy(&data_[start_index], data, length);
}
+ void AddPremadeDescriptor(const UsbDescriptorList &other_list) {
+ other_list.CheckFinished();
+ AddPremadeDescriptor(
+ reinterpret_cast<const uint8_t *>(other_list.data_.data()),
+ other_list.data_.size());
+ }
+
void CheckFinished() const { assert(open_descriptors_ == 0); }
int CurrentSize() const { return data_.size(); }
+ const char *GetData() const {
+ CheckFinished();
+ return data_.data();
+ }
+
private:
::std::unique_ptr<Descriptor> CreateDescriptor(uint8_t length,
uint8_t descriptor_type) {
@@ -504,6 +516,9 @@
void AddPremadeDescriptor(const uint8_t *data, int length) {
device_->config_descriptor_list_.AddPremadeDescriptor(data, length);
}
+ void AddPremadeDescriptor(const UsbDescriptorList &other_list) {
+ device_->config_descriptor_list_.AddPremadeDescriptor(other_list);
+ }
UsbDevice *device() const { return device_; }