Files
blinky/inc/keyboard_core.h
skiinder 70381192d9 feat: 添加HID流控制模块和相关事件处理
- 添加hid_flowctrl_module.c实现HID报告流控制功能,包括FIFO队列管理和
  报告发送控制
- 新增hid_report_sent_event、hid_transport_state_event和
  hid_tx_report_event事件类型及其对应的头文件和实现
- 在CMakeLists.txt中注册新模块和事件源文件
- 修改keyboard_core_module.c以支持队列策略,并添加编码器事件处理逻辑
- 更新usb_hid_module.c将直接的键盘HID报告事件改为通过
  hid_tx_report_event进行传输,并添加状态报告事件
- 在keyboard_hid_report_event中增加queue_policy字段以支持不同
  队列策略
2026-04-10 13:46:50 +08:00

50 lines
1.0 KiB
C

#ifndef BLINKY_KEYBOARD_CORE_H_
#define BLINKY_KEYBOARD_CORE_H_
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#define KEYBOARD_BOOT_REPORT_SIZE 8U
#define KEYBOARD_NKRO_USAGE_MAX 0xDFU
#define KEYBOARD_NKRO_BITMAP_BYTES ((KEYBOARD_NKRO_USAGE_MAX + 8U) / 8U)
#define KEYBOARD_NKRO_REPORT_SIZE (1U + KEYBOARD_NKRO_BITMAP_BYTES)
#define KEYBOARD_CONSUMER_REPORT_SIZE 2U
enum keyboard_protocol_mode {
KEYBOARD_PROTOCOL_MODE_BOOT,
KEYBOARD_PROTOCOL_MODE_REPORT,
};
enum keyboard_report_type {
KEYBOARD_REPORT_TYPE_KEYS,
KEYBOARD_REPORT_TYPE_CONSUMER,
};
enum hid_queue_policy {
HID_QUEUE_POLICY_LATEST,
HID_QUEUE_POLICY_FIFO,
};
enum hid_transport {
HID_TRANSPORT_USB,
};
enum keyboard_consumer_control {
KEYBOARD_CONSUMER_CTRL_MUTE,
KEYBOARD_CONSUMER_CTRL_VOLUME_UP,
KEYBOARD_CONSUMER_CTRL_VOLUME_DOWN,
KEYBOARD_CONSUMER_CTRL_PLAY_PAUSE,
KEYBOARD_CONSUMER_CTRL_NEXT_TRACK,
KEYBOARD_CONSUMER_CTRL_PREV_TRACK,
KEYBOARD_CONSUMER_CTRL_COUNT,
};
#ifdef __cplusplus
}
#endif
#endif /* BLINKY_KEYBOARD_CORE_H_ */