Go to the documentation of this file.
27 #include <usb_descriptors.h>
55 static_assert(
sizeof(
Type) == 1,
"Bad alignment");
65 template <
typename T>
const T*
as()
const
67 return reinterpret_cast<const T*
>(
this);
98 return mList !=
nullptr && mOffset < mList->
length;
103 return mList == rhs.mList && mOffset == rhs.mOffset;
117 auto ptr =
reinterpret_cast<const uint8_t*
>(mList->
desc);
149 Iterator
begin()
const
167 template <
size_t max_
chars>
struct StringDescriptor :
public Descriptor {
184 charCount = std::min(charCount, max_chars);
185 for(
unsigned i = 0; i < charCount; ++i) {
188 length = 2 + (charCount * 2);
196 static_assert(
sizeof(StringDescriptor<8>) == 18,
"Bad descriptor alignment");
uint16_t text[max_chars]
UTF16-LE encoded text (no NUL terminator)
Definition: Descriptors.h:185
Definition: Libraries/USB/src/USB/CDC/Device.h:25
bool operator==(const Iterator &rhs) const
Definition: Descriptors.h:118
const T * as() const
Less clumsy way to cast descriptor to a specific type.
Definition: Descriptors.h:82
uint8_t type
Definition: Descriptors.h:67
Template for making a USB string descriptor.
Definition: Descriptors.h:184
Structure of a USB descriptor.
Definition: Descriptors.h:62
const Descriptor * operator*() const
Definition: Descriptors.h:128
The String class.
Definition: WString.h:136
const Descriptor * desc
Definition: Descriptors.h:96
#define str(s)
Definition: testrunner.h:124
uint8_t reserved
Definition: Descriptors.h:68
Definition: Descriptors.h:103
uint8_t id
Definition: Descriptors.h:66
Iterator end() const
Definition: Descriptors.h:171
Iterator & operator++()
Definition: Descriptors.h:138
Delegate< const Descriptor *(uint8_t index)> GetDescriptorString
Application-provided callback to customise string responses.
Definition: Descriptors.h:222
uint8_t length
Total size (in bytes) including this header.
Definition: Descriptors.h:72
bool operator!=(const Iterator &rhs) const
Definition: Descriptors.h:123
void next()
Definition: Descriptors.h:151
Delegate< const tusb_desc_device_t *(const tusb_desc_device_t &desc)> GetDeviceDescriptor
Callback to support provision of dynamic device descriptors.
Definition: Descriptors.h:57
Type
Definition: Resource.h:41
Iterator const_iterator
Definition: Descriptors.h:159
Iterator begin() const
Definition: Descriptors.h:166
Provides formatted output to stream.
Definition: Print.h:36
StringDescriptor()
Construct an empty string descriptor.
Definition: Descriptors.h:190
void onGetDeviceDescriptor(GetDeviceDescriptor callback)
uint8_t value
Definition: Descriptors.h:64
size_t printTo(Print &p) const
void onGetDescriptorSting(GetDescriptorString callback)
Buffer containing list of descriptors.
Definition: Descriptors.h:95
uint8_t type
e.g. TUSB_DESC_STRING
Definition: Descriptors.h:75
Definition: Delegate.h:20
size_t length
Definition: Descriptors.h:97
size_t printTo(Print &p) const