Skip to content

Add support for Named Arrays  #10

@NZSmartie

Description

@NZSmartie

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions