python-usb-protocol
python-usb-protocol copied to clipboard
Extend DescriptorField to support arrays
When trying to define a DescriptorField with name 'baInterfaceNr' (As defined in USB Audio Class, Table 4-2 for Audio Control Interface Header Descriptor) it fails as prefix ba is considered invalid.
Traceback (most recent call last):
File "/Users/twam/Source/nmigen/./usb-debug.py", line 71, in <module>
"baInterfaceNr" / DescriptorField("Number of AudioStreaming and MIDIStreaming interfaces"),
File "/usr/local/lib/python3.9/site-packages/usb_protocol/types/descriptor.py", line 236, in __rtruediv__
field_type = self._get_type_for_name(field_name)
File "/usr/local/lib/python3.9/site-packages/usb_protocol/types/descriptor.py", line 220, in _get_type_for_name
raise ValueError("field names must be formatted per the USB standard!")
ValueError: field names must be formatted per the USB standard!
Notes:
- This refers to the Audio Class 1.0 specification.
- Underlying issue is that
DescriptorField.USB_TYPESdoes not yet support array types.