Open FFBoard
Open source force feedback firmware
hid_host.c File Reference

Go to the source code of this file.

Classes

struct  hidh_interface_t
 

Enumerations

enum  { CONFG_SET_IDLE , CONFIG_SET_PROTOCOL , CONFIG_GET_REPORT_DESC , CONFIG_COMPLETE }
 

Functions

static TU_ATTR_ALWAYS_INLINE hidh_interface_tget_hid_itf (uint8_t daddr, uint8_t idx)
 
static uint8_t get_idx_by_epaddr (uint8_t daddr, uint8_t ep_addr)
 
static hidh_interface_tfind_new_itf (void)
 
uint8_t tuh_hid_itf_get_count (uint8_t daddr)
 
uint8_t tuh_hid_itf_get_total_count (void)
 
bool tuh_hid_mounted (uint8_t daddr, uint8_t idx)
 
bool tuh_hid_itf_get_info (uint8_t daddr, uint8_t idx, tuh_itf_info_t *info)
 
uint8_t tuh_hid_itf_get_index (uint8_t daddr, uint8_t itf_num)
 
uint8_t tuh_hid_interface_protocol (uint8_t daddr, uint8_t idx)
 
uint8_t tuh_hid_get_protocol (uint8_t daddr, uint8_t idx)
 
static void set_protocol_complete (tuh_xfer_t *xfer)
 
void tuh_hid_set_default_protocol (uint8_t protocol)
 
static bool _hidh_set_protocol (uint8_t daddr, uint8_t itf_num, uint8_t protocol, tuh_xfer_cb_t complete_cb, uintptr_t user_data)
 
bool tuh_hid_set_protocol (uint8_t daddr, uint8_t idx, uint8_t protocol)
 
static void get_report_complete (tuh_xfer_t *xfer)
 
bool tuh_hid_get_report (uint8_t daddr, uint8_t idx, uint8_t report_id, uint8_t report_type, void *report, uint16_t len)
 
static void set_report_complete (tuh_xfer_t *xfer)
 
bool tuh_hid_set_report (uint8_t daddr, uint8_t idx, uint8_t report_id, uint8_t report_type, void *report, uint16_t len)
 
static bool _hidh_set_idle (uint8_t daddr, uint8_t itf_num, uint16_t idle_rate, tuh_xfer_cb_t complete_cb, uintptr_t user_data)
 
bool tuh_hid_receive_ready (uint8_t dev_addr, uint8_t idx)
 
bool tuh_hid_receive_report (uint8_t daddr, uint8_t idx)
 
bool tuh_hid_receive_abort (uint8_t dev_addr, uint8_t idx)
 
bool tuh_hid_send_ready (uint8_t dev_addr, uint8_t idx)
 
bool tuh_hid_send_report (uint8_t daddr, uint8_t idx, uint8_t report_id, const void *report, uint16_t len)
 
bool hidh_init (void)
 
bool hidh_deinit (void)
 
bool hidh_xfer_cb (uint8_t daddr, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes)
 
void hidh_close (uint8_t daddr)
 
bool hidh_open (uint8_t rhport, uint8_t daddr, tusb_desc_interface_t const *desc_itf, uint16_t max_len)
 
static void config_driver_mount_complete (uint8_t daddr, uint8_t idx, uint8_t const *desc_report, uint16_t desc_len)
 
static void process_set_config (tuh_xfer_t *xfer)
 
bool hidh_set_config (uint8_t daddr, uint8_t itf_num)
 
uint8_t tuh_hid_parse_report_descriptor (tuh_hid_report_info_t *report_info_arr, uint8_t arr_count, uint8_t const *desc_report, uint16_t desc_len)
 

Variables

CFG_TUH_MEM_SECTION tu_static hidh_interface_t _hidh_itf [CFG_TUH_HID]
 
tu_static uint8_t _hidh_default_protocol = HID_PROTOCOL_BOOT
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CONFG_SET_IDLE 
CONFIG_SET_PROTOCOL 
CONFIG_GET_REPORT_DESC 
CONFIG_COMPLETE 

Definition at line 527 of file hid_host.c.

Function Documentation

◆ _hidh_set_idle()

static bool _hidh_set_idle ( uint8_t  daddr,
uint8_t  itf_num,
uint16_t  idle_rate,
tuh_xfer_cb_t  complete_cb,
uintptr_t  user_data 
)
static

Definition at line 313 of file hid_host.c.

◆ _hidh_set_protocol()

static bool _hidh_set_protocol ( uint8_t  daddr,
uint8_t  itf_num,
uint8_t  protocol,
tuh_xfer_cb_t  complete_cb,
uintptr_t  user_data 
)
static

Definition at line 190 of file hid_host.c.

◆ config_driver_mount_complete()

static void config_driver_mount_complete ( uint8_t  daddr,
uint8_t  idx,
uint8_t const *  desc_report,
uint16_t  desc_len 
)
static

Definition at line 611 of file hid_host.c.

◆ find_new_itf()

static hidh_interface_t * find_new_itf ( void  )
static

Definition at line 93 of file hid_host.c.

◆ get_hid_itf()

static TU_ATTR_ALWAYS_INLINE hidh_interface_t * get_hid_itf ( uint8_t  daddr,
uint8_t  idx 
)
inlinestatic

Definition at line 75 of file hid_host.c.

◆ get_idx_by_epaddr()

static uint8_t get_idx_by_epaddr ( uint8_t  daddr,
uint8_t  ep_addr 
)
static

Definition at line 82 of file hid_host.c.

◆ get_report_complete()

static void get_report_complete ( tuh_xfer_t xfer)
static

Definition at line 225 of file hid_host.c.

◆ hidh_close()

void hidh_close ( uint8_t  daddr)

Definition at line 451 of file hid_host.c.

◆ hidh_deinit()

bool hidh_deinit ( void  )

Definition at line 425 of file hid_host.c.

◆ hidh_init()

bool hidh_init ( void  )

Definition at line 419 of file hid_host.c.

◆ hidh_open()

bool hidh_open ( uint8_t  rhport,
uint8_t  daddr,
tusb_desc_interface_t const *  desc_itf,
uint16_t  max_len 
)

Definition at line 466 of file hid_host.c.

◆ hidh_set_config()

bool hidh_set_config ( uint8_t  daddr,
uint8_t  itf_num 
)

Definition at line 537 of file hid_host.c.

◆ hidh_xfer_cb()

bool hidh_xfer_cb ( uint8_t  daddr,
uint8_t  ep_addr,
xfer_result_t  result,
uint32_t  xferred_bytes 
)

Definition at line 429 of file hid_host.c.

◆ process_set_config()

static void process_set_config ( tuh_xfer_t xfer)
static

Definition at line 553 of file hid_host.c.

◆ set_protocol_complete()

static void set_protocol_complete ( tuh_xfer_t xfer)
static

Definition at line 169 of file hid_host.c.

◆ set_report_complete()

static void set_report_complete ( tuh_xfer_t xfer)
static

Definition at line 269 of file hid_host.c.

◆ tuh_hid_get_protocol()

uint8_t tuh_hid_get_protocol ( uint8_t  daddr,
uint8_t  idx 
)

Definition at line 164 of file hid_host.c.

◆ tuh_hid_get_report()

bool tuh_hid_get_report ( uint8_t  daddr,
uint8_t  idx,
uint8_t  report_id,
uint8_t  report_type,
void *  report,
uint16_t  len 
)

Definition at line 240 of file hid_host.c.

◆ tuh_hid_interface_protocol()

uint8_t tuh_hid_interface_protocol ( uint8_t  daddr,
uint8_t  idx 
)

Definition at line 156 of file hid_host.c.

◆ tuh_hid_itf_get_count()

uint8_t tuh_hid_itf_get_count ( uint8_t  daddr)

Definition at line 103 of file hid_host.c.

◆ tuh_hid_itf_get_index()

uint8_t tuh_hid_itf_get_index ( uint8_t  daddr,
uint8_t  itf_num 
)

Definition at line 147 of file hid_host.c.

◆ tuh_hid_itf_get_info()

bool tuh_hid_itf_get_info ( uint8_t  daddr,
uint8_t  idx,
tuh_itf_info_t info 
)

Definition at line 125 of file hid_host.c.

◆ tuh_hid_itf_get_total_count()

uint8_t tuh_hid_itf_get_total_count ( void  )

Definition at line 111 of file hid_host.c.

◆ tuh_hid_mounted()

bool tuh_hid_mounted ( uint8_t  daddr,
uint8_t  idx 
)

Definition at line 119 of file hid_host.c.

◆ tuh_hid_parse_report_descriptor()

uint8_t tuh_hid_parse_report_descriptor ( tuh_hid_report_info_t report_info_arr,
uint8_t  arr_count,
uint8_t const *  desc_report,
uint16_t  desc_len 
)

Definition at line 627 of file hid_host.c.

◆ tuh_hid_receive_abort()

bool tuh_hid_receive_abort ( uint8_t  dev_addr,
uint8_t  idx 
)

Definition at line 367 of file hid_host.c.

◆ tuh_hid_receive_ready()

bool tuh_hid_receive_ready ( uint8_t  dev_addr,
uint8_t  idx 
)

Definition at line 347 of file hid_host.c.

◆ tuh_hid_receive_report()

bool tuh_hid_receive_report ( uint8_t  daddr,
uint8_t  idx 
)

Definition at line 353 of file hid_host.c.

◆ tuh_hid_send_ready()

bool tuh_hid_send_ready ( uint8_t  dev_addr,
uint8_t  idx 
)

Definition at line 373 of file hid_host.c.

◆ tuh_hid_send_report()

bool tuh_hid_send_report ( uint8_t  daddr,
uint8_t  idx,
uint8_t  report_id,
const void *  report,
uint16_t  len 
)

Definition at line 379 of file hid_host.c.

◆ tuh_hid_set_default_protocol()

void tuh_hid_set_default_protocol ( uint8_t  protocol)

Definition at line 186 of file hid_host.c.

◆ tuh_hid_set_protocol()

bool tuh_hid_set_protocol ( uint8_t  daddr,
uint8_t  idx,
uint8_t  protocol 
)

Definition at line 218 of file hid_host.c.

◆ tuh_hid_set_report()

bool tuh_hid_set_report ( uint8_t  daddr,
uint8_t  idx,
uint8_t  report_id,
uint8_t  report_type,
void *  report,
uint16_t  len 
)

Definition at line 284 of file hid_host.c.

Variable Documentation

◆ _hidh_default_protocol

tu_static uint8_t _hidh_default_protocol = HID_PROTOCOL_BOOT

Definition at line 70 of file hid_host.c.

◆ _hidh_itf

CFG_TUH_MEM_SECTION tu_static hidh_interface_t _hidh_itf[CFG_TUH_HID]

Definition at line 68 of file hid_host.c.