picofuse

Data Structures | Macros | Typedefs | Enumerations
device.h File Reference

HID device lifecycle and polling interface. More...

#include <picofuse/hw/wifi.h>
#include <picofuse/sys.h>
#include <stdbool.h>
#include <stdint.h>
Include dependency graph for device.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  hid_device_callbacks_t
 Callback operation table for HID device backends. More...
 

Macros

#define HID_DEVICE_CAPACITY   32u
 Maximum number of HID devices tracked by one HID instance. More...
 
#define HID_DEVICE_CONTEXT_SIZE   32u
 Size in bytes of the per-device scratch context space embedded in every hid_device_t. More...
 

Typedefs

typedef struct hid_t hid_t
 Opaque HID instance handle.
 
typedef struct hid_device_t hid_device_t
 HID child-device descriptor tracked by a HID instance.
 

Enumerations

enum  hid_type_t {
  hid_type_none = 0, hid_type_gpio = 1, hid_type_timer = 2, hid_type_signal = 3,
  hid_type_evdev = 4, hid_type_usb = 5, hid_type_wifi = 6, hid_type_bluetooth = 7,
  hid_type_infrared = 8, hid_type_other = 9, hid_type_iostream = 10
}
 HID device type classification.
 
enum  hid_class_t {
  hid_class_unknown = 0, hid_class_keyboard = 1, hid_class_mouse = 2, hid_class_joystick = 3,
  hid_class_touchscreen = 4, hid_class_sensor = 5
}
 Coarse semantic classification of a HID device. More...
 

Functions

Lifecycle
hid_thid_init (sys_event_queue_t *queue)
 Initialize a HID device instance. More...
 
void hid_deinit (hid_t *instance)
 Deinitialize a HID device instance. More...
 
bool hid_poll (hid_t *instance)
 Poll a HID device for pending input. More...
 
Methods
hid_device_thid_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. More...
 
hid_device_thid_register_gpio_input (hid_t *instance, uint8_t bank, uint8_t pin, uint16_t keycode, void *userdata)
 Register a GPIO pin as HID input. More...
 
hid_device_thid_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. More...
 
hid_device_thid_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. More...
 
hid_device_thid_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. More...
 
hid_device_thid_register_temperature (hid_t *instance, uint32_t polling_interval_ms, void *userdata)
 Register the internal temperature-sensor channel as a polling HID metric source. More...
 
hid_device_thid_register_user_button (hid_t *instance, uint16_t keycode, void *userdata)
 Register a user button as a HID input source. More...
 
hid_device_thid_register_timer (hid_t *instance, uint32_t id, uint32_t interval_ms, bool repeating, void *userdata)
 Register a timer-backed HID source. More...
 
hid_device_thid_register_signal (hid_t *instance, void *userdata)
 Register an environment-signal HID source. More...
 
hid_device_thid_register_wifi (hid_t *instance, hw_wifi_t *wifi, void *userdata)
 Register a Wi-Fi connection-state observer. More...
 
hid_device_thid_register_iostream (hid_t *instance, sys_iostream_t *stream, void *userdata)
 Register a stream-readiness observer. More...
 
bool hid_deregister (hid_t *instance, hid_device_t *device)
 Deregister and remove a HID device. More...
 
Properties
hid_device_thid_device_next (hid_device_t *device)
 Enumerate registered HID devices. More...
 
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. More...
 
void * hid_device_userdata (const hid_device_t *device)
 Get the userdata pointer associated with a registered HID device. More...
 
void * hid_device_handle (const hid_device_t *device)
 Get a device's backend-owned handle, if it has one. More...
 

Detailed Description

HID device lifecycle and polling interface.

Definition in file device.h.