feat: implement initial cyborg multi-action button mappings

- Added support for Single, Long, and Double press actions in libazeron.
- Mapped Cyborg surgical command IDs (0x20F6, 0x20F8, 0x204A).
- Updated azeron-cli to support --long and --double mapping flags.
- Updated protocol documentation with newly discovered Cyborg commands.
- Added TODO.md for remaining joystick and timing tasks.
This commit is contained in:
2026-02-22 19:08:13 +00:00
parent db5c3505da
commit 18f84a538a
12 changed files with 37131 additions and 152 deletions

View File

@@ -44,6 +44,13 @@ enum azeron_button_type {
AZERON_BTN_LAYER_SWITCH,
};
/* Button action types (for Cyborg model) */
enum azeron_action_type {
AZERON_ACTION_SINGLE = 0,
AZERON_ACTION_LONG,
AZERON_ACTION_DOUBLE,
};
/* Analog stick modes */
enum azeron_stick_mode {
AZERON_STICK_ANALOG = 0,
@@ -67,6 +74,7 @@ struct azeron_device_info {
/* Button mapping */
struct azeron_button_mapping {
uint8_t button_id;
enum azeron_action_type action;
enum azeron_button_type type;
uint16_t key_code; /* Linux input event code */
char *macro; /* For macro type */