Loading...
Searching...
No Matches
hid.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2021 Nils Ollrogge
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser General
5 * Public License v2.1. See the file LICENSE in the top level directory for
6 * more details.
7 */
8
9#pragma once
10
28
29#include <stdint.h>
30
31#include "usb/usbus.h"
32#include "usb/hid.h"
33#include "mutex.h"
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
42#ifndef CONFIG_USBUS_HID_INTERRUPT_EP_SIZE
43#define CONFIG_USBUS_HID_INTERRUPT_EP_SIZE 0x40
44#endif
45
50
60typedef void (*usbus_hid_cb_t)(usbus_hid_device_t *hid, uint8_t *data,
61 size_t len);
62
90
101 usbus_hid_cb_t cb, const uint8_t *report_desc,
102 size_t report_desc_size);
103
104#ifdef __cplusplus
105}
106#endif
107
#define usbdev_ep_buf_t
Instantiation type for usbdev endpoint buffers.
Definition usbdev.h:126
struct event event_t
event structure forward declaration
Definition event.h:135
struct usbus_endpoint usbus_endpoint_t
USBUS endpoint context.
struct usbus_descr_gen usbus_descr_gen_t
USBUS descriptor generator.
struct usbus_interface usbus_interface_t
USBUS interface.
struct usbus_handler usbus_handler_t
USBUS event handler forward declaration.
Definition usbus.h:223
struct usbus usbus_t
USBUS context forward declaration.
Definition usbus.h:218
void(* usbus_hid_cb_t)(usbus_hid_device_t *hid, uint8_t *data, size_t len)
HID data callback.
Definition hid.h:60
#define CONFIG_USBUS_HID_INTERRUPT_EP_SIZE
USB HID interrupt endpoint size.
Definition hid.h:43
struct usbus_hid_device usbus_hid_device_t
USBUS HID context struct forward declaration.
Definition hid.h:49
void usbus_hid_init(usbus_t *usbus, usbus_hid_device_t *hid, usbus_hid_cb_t cb, const uint8_t *report_desc, size_t report_desc_size)
Initialize an USBUS HID interface.
Definition for USB HID interfaces.
Mutex for thread synchronization.
Mutex structure.
Definition mutex.h:39
USBUS HID context struct.
Definition hid.h:66
usbus_descr_gen_t hid_descr
HID descriptor generator.
Definition hid.h:71
event_t tx_ready
Transmit ready event.
Definition hid.h:77
usbus_endpoint_t * ep_in
IN endpoint.
Definition hid.h:70
size_t report_desc_size
report descriptor size
Definition hid.h:73
usbus_hid_cb_t cb
Callback for data handlers.
Definition hid.h:76
usbus_handler_t handler_ctrl
control handler
Definition hid.h:67
usbus_interface_t iface
HID interface.
Definition hid.h:68
usbus_t * usbus
USBUS reference.
Definition hid.h:74
size_t occupied
Number of bytes for the host.
Definition hid.h:75
const uint8_t * report_desc
report descriptor reference
Definition hid.h:72
mutex_t in_lock
mutex used for locking hid send
Definition hid.h:78
usbus_endpoint_t * ep_out
OUT endpoint.
Definition hid.h:69
usbdev_ep_buf_t in_buf[CONFIG_USBUS_HID_INTERRUPT_EP_SIZE]
Device to host data buffer.
Definition hid.h:88
usbdev_ep_buf_t out_buf[CONFIG_USBUS_HID_INTERRUPT_EP_SIZE]
Host to device data buffer.
Definition hid.h:83
USBUS context struct.
Definition usbus.h:447
USBUS basic interface.