When I dump our device's USB descriptor via USBView.exe, I see the following somewhat ominous messages:
===>Device Descriptor<===
...
bDeviceClass: 0x00
*!*ERROR: device class should be Multi-interface Function 0xEF
When IAD descriptor is used
bDeviceSubClass: 0x00
*!*ERROR: device SubClass should be USB Common Sub Class 2
When IAD descriptor is used
bDeviceProtocol: 0x00
*!*ERROR: device Protocol should be USB IAD Protocol 1
When IAD descriptor is used
...
Looking through usb_desc.h, I see these values defined in some of the other blocks:
#define DEVICE_CLASS 0xEF
#define DEVICE_SUBCLASS 0x02
#define DEVICE_PROTOCOL 0x01
I pasted them into the USB_MIDI16_SERIAL block and rebuilt, and the net effect seems to just be that USBView is happy now? Device still enumerates properly AFAICT, MIDI messages are still coming through, etc. Does anyone know if this is a "real" error, or just an innocuous gripe from the tool? Were these values left out from USB_MIDI16_SERIAL on purpose, like is there some dire consequence of using them that I'm unaware of?
Thanks,
Blake
===>Device Descriptor<===
...
bDeviceClass: 0x00
*!*ERROR: device class should be Multi-interface Function 0xEF
When IAD descriptor is used
bDeviceSubClass: 0x00
*!*ERROR: device SubClass should be USB Common Sub Class 2
When IAD descriptor is used
bDeviceProtocol: 0x00
*!*ERROR: device Protocol should be USB IAD Protocol 1
When IAD descriptor is used
...
Looking through usb_desc.h, I see these values defined in some of the other blocks:
#define DEVICE_CLASS 0xEF
#define DEVICE_SUBCLASS 0x02
#define DEVICE_PROTOCOL 0x01
I pasted them into the USB_MIDI16_SERIAL block and rebuilt, and the net effect seems to just be that USBView is happy now? Device still enumerates properly AFAICT, MIDI messages are still coming through, etc. Does anyone know if this is a "real" error, or just an innocuous gripe from the tool? Were these values left out from USB_MIDI16_SERIAL on purpose, like is there some dire consequence of using them that I'm unaware of?
Thanks,
Blake