-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
Milestone
Description
I didn't put enough thought into how to handle selector usages inside of a named array collection.
For example, this is pulled from HID Usage Table Review Request 39b
// ...
HID_USAGE_SENSOR_PROPERTY_REPORTING_STATE, // NAry
HID_LOGICAL_MIN_8(0),
HID_LOGICAL_MAX_8(5),
HID_REPORT_SIZE(8),
HID_REPORT_COUNT(1),
HID_COLLECTION(Logical),
HID_USAGE_SENSOR_PROPERTY_REPORTING_STATE_NO_EVENTS,
HID_USAGE_SENSOR_PROPERTY_REPORTING_STATE_ALL_EVENTS,
HID_USAGE_SENSOR_PROPERTY_REPORTING_STATE_THRESHOLD_EVENTS,
HID_USAGE_SENSOR_PROPERTY_REPORTING_STATE_NO_EVENTS_WAKE,
HID_USAGE_SENSOR_PROPERTY_REPORTING_STATE_ALL_EVENTS_WAKE,
HID_USAGE_SENSOR_PROPERTY_REPORTING_STATE_THRESHOLD_EVENTS_WAKE,
HID_FEATURE(Data_Arr_Abs),
HID_END_COLLECTION,
// ...Which effectively translates to a enum that maps from the values 0 to 5.
Something like:
class ReportingState(Enum):
NO_EVENTS = 0
ALL_EVENTS = 1
THRESHOLD_EVENTS = 2
NO_EVENTS_WAKE = 3
ALL_EVENTS_WAKE = 4
THRESHOLD_EVENTS_WAKE = 5
}An idea is to generate a Enum subclass at runtime that maps from the logical min/max range to the usage names.