diff --git a/libraries/HID/src/HID.cpp b/libraries/HID/src/HID.cpp index 97b13f939..ac2fa988d 100644 --- a/libraries/HID/src/HID.cpp +++ b/libraries/HID/src/HID.cpp @@ -140,6 +140,17 @@ int HID_::SetFeature(uint16_t id, const void* data, int len) return reportCount; } +int HID_::SetStringFeature(uint8_t id, const uint8_t* index, const char* data) { + + int res = SetFeature(id, index, 1); + + if(res == 0) return 0; + + res += SetFeature(0xFF00 | *index , data, strlen_P(data)); + + return res; +} + bool HID_::LockFeature(uint16_t id, bool lock) { if(rootReport) { HIDReport* current; diff --git a/libraries/HID/src/HID.h b/libraries/HID/src/HID.h index ea1598cd0..94f958db6 100644 --- a/libraries/HID/src/HID.h +++ b/libraries/HID/src/HID.h @@ -117,6 +117,7 @@ class HID_ : public PluggableUSBModule int begin(void); int SendReport(uint16_t id, const void* data, int len); int SetFeature(uint16_t id, const void* data, int len); + int SetStringFeature(uint8_t id, const uint8_t* index, const char* data); bool LockFeature(uint16_t id, bool lock); void AppendDescriptor(HIDSubDescriptor* node);