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;
108 return !operator==(rhs);
117 auto ptr =
reinterpret_cast<const uint8_t*
>(mList->desc);
118 return reinterpret_cast<const Descriptor*
>(ptr + mOffset);
184 charCount = std::min(charCount, max_chars);
185 for(
unsigned i = 0; i < charCount; ++i) {
188 length = 2 + (charCount * 2);
uint8_t length
Total size (in bytes) including this header.
Definition: Descriptors.h:55
bool operator==(const Iterator &rhs) const
Definition: Descriptors.h:101
const T * as() const
Less clumsy way to cast descriptor to a specific type.
Definition: Descriptors.h:65
Definition: Descriptors.h:86
#define str(s)
Definition: testrunner.h:124
Iterator & operator++()
Definition: Descriptors.h:121
Buffer containing list of descriptors.
Definition: Descriptors.h:78
const Descriptor * operator*() const
Definition: Descriptors.h:111
constexpr TPoint< T > operator*(TPoint< T > pt, const Q &other)
Definition: Libraries/Graphics/src/include/Graphics/Types.h:252
StringDescriptor(const String &s)
Definition: Descriptors.h:191
The String class.
Definition: WString.h:136
uint8_t reserved
Definition: Descriptors.h:51
Provides formatted output to stream.
Definition: Print.h:36
Definition: Delegate.h:20
void onGetDeviceDescriptor(GetDeviceDescriptor callback)
Definition: Descriptors.h:46
Structure of a USB descriptor.
Definition: Descriptors.h:45
Template for making a USB string descriptor.
Definition: Descriptors.h:167
void onGetDescriptorSting(GetDescriptorString callback)
uint8_t value
Definition: Descriptors.h:47
StringDescriptor(const char *str, size_t charCount)
Construct a string descriptor containing text.
Definition: Descriptors.h:182
uint8_t type
e.g. TUSB_DESC_STRING
Definition: Descriptors.h:58
uint8_t id
Definition: Descriptors.h:49
StringDescriptor()
Construct an empty string descriptor.
Definition: Descriptors.h:173
Iterator(const DescriptorList *list, uint16_t offset)
Definition: Descriptors.h:92
uint8_t type
Definition: Descriptors.h:50
size_t length
Definition: Descriptors.h:80
Iterator operator++(int)
Definition: Descriptors.h:127
size_t printTo(Print &p) const
void next()
Definition: Descriptors.h:134
bool operator!=(const Iterator &rhs) const
Definition: Descriptors.h:106
Iterator begin() const
Definition: Descriptors.h:149
const Descriptor * desc
Definition: Descriptors.h:79
Iterator end() const
Definition: Descriptors.h:154