18 #ifndef HID_DEVICE_CAPACITY 19 #define HID_DEVICE_CAPACITY 32u 29 #ifndef HID_DEVICE_CONTEXT_SIZE 30 #define HID_DEVICE_CONTEXT_SIZE 32u 60 hid_type_bluetooth = 7,
61 hid_type_infrared = 8,
63 hid_type_iostream = 10,
94 hid_class_unknown = 0,
95 hid_class_keyboard = 1,
97 hid_class_joystick = 3,
98 hid_class_touchscreen = 4,
157 uint32_t polling_interval_ms,
void *userdata,
173 uint8_t pin, uint16_t keycode,
188 uint8_t pin, uint16_t keycode,
203 uint8_t pin, uint16_t keycode,
235 const char *metric_name, uint16_t num_samples,
236 uint32_t polling_interval_ms,
void *userdata);
258 uint32_t polling_interval_ms,
292 uint32_t interval_ms,
bool repeating,
Callback operation table for HID device backends.
hid_device_t * hid_register(hid_t *instance, const char *name, uint32_t id, hid_type_t type, hid_class_t hid_class, uint32_t polling_interval_ms, void *userdata, hid_device_callbacks_t callbacks)
Register a generic HID device using callback operations.
bool hid_device_info(const hid_device_t *device, const char **out_name, uint32_t *out_id, hid_type_t *out_type, hid_class_t *out_class)
Get metadata for a registered HID device.
void * hid_device_userdata(const hid_device_t *device)
Get the userdata pointer associated with a registered HID device.
hid_device_t * hid_register_adc(hid_t *instance, uint8_t channel, const char *metric_name, uint16_t num_samples, uint32_t polling_interval_ms, void *userdata)
Register an ADC channel as a polling HID metric source.
hid_class_t
Coarse semantic classification of a HID device.
hid_device_t * hid_register_temperature(hid_t *instance, uint32_t polling_interval_ms, void *userdata)
Register the internal temperature-sensor channel as a polling HID metric source.
System abstraction headers and process lifecycle hooks.
hid_device_t * hid_register_gpio_input(hid_t *instance, uint8_t bank, uint8_t pin, uint16_t keycode, void *userdata)
Register a GPIO pin as HID input.
hid_device_t * hid_register_signal(hid_t *instance, void *userdata)
Register an environment-signal HID source.
void * hid_device_handle(const hid_device_t *device)
Get a device's backend-owned handle, if it has one.
hid_t * hid_init(sys_event_queue_t *queue)
Initialize a HID device instance.
hid_device_t * hid_register_user_button(hid_t *instance, uint16_t keycode, void *userdata)
Register a user button as a HID input source.
struct sys_iostream_t sys_iostream_t
An opaque byte stream.
bool hid_deregister(hid_t *instance, hid_device_t *device)
Deregister and remove a HID device.
hid_type_t
HID device type classification.
struct hw_wifi_t hw_wifi_t
Opaque Wi-Fi handle.
hid_device_t * hid_register_gpio_pulldown(hid_t *instance, uint8_t bank, uint8_t pin, uint16_t keycode, void *userdata)
Register a GPIO pin as HID input with pull-down.
hid_device_t * hid_device_next(hid_device_t *device)
Enumerate registered HID devices.
Wi-Fi management interface.
bool hid_poll(hid_t *instance)
Poll a HID device for pending input.
struct hid_device_t hid_device_t
HID child-device descriptor tracked by a HID instance.
struct sys_event_queue_t sys_event_queue_t
Opaque event queue.
hid_device_t * hid_register_wifi(hid_t *instance, hw_wifi_t *wifi, void *userdata)
Register a Wi-Fi connection-state observer.
hid_device_t * hid_register_gpio_pullup(hid_t *instance, uint8_t bank, uint8_t pin, uint16_t keycode, void *userdata)
Register a GPIO pin as HID input with pull-up.
hid_device_t * hid_register_iostream(hid_t *instance, sys_iostream_t *stream, void *userdata)
Register a stream-readiness observer.
hid_device_t * hid_register_timer(hid_t *instance, uint32_t id, uint32_t interval_ms, bool repeating, void *userdata)
Register a timer-backed HID source.
struct hid_t hid_t
Opaque HID instance handle.
void hid_deinit(hid_t *instance)
Deinitialize a HID device instance.