Files
AudioMixer/protocol.h
T
2026-09-07 14:40:16 +03:00

44 lines
1.1 KiB
C

#pragma once
/* Shared HID mixer protocol (firmware + host) */
#define AUSIO_USB_VID 0x2E8Au
#define AUSIO_USB_PID 0xA541u
#define AUSIO_REPORT_ID_INPUT 1
#define AUSIO_REPORT_ID_OUTPUT 2
#define AUSIO_INPUT_SIZE 8 /* including report id */
#define AUSIO_OUTPUT_SIZE 64 /* including report id */
#define AUSIO_FLAG_E1_SW 0x01u
#define AUSIO_FLAG_E2_SW 0x02u
#define AUSIO_NAME_CHARS 12
#define AUSIO_SLOT_SIZE (1 + AUSIO_NAME_CHARS + 1) /* vol + name + NUL */
#define AUSIO_MAX_VISIBLE 4
#define AUSIO_HDR_SIZE 6
#if (AUSIO_HDR_SIZE + AUSIO_MAX_VISIBLE * AUSIO_SLOT_SIZE) > AUSIO_OUTPUT_SIZE
#error protocol packing overflow
#endif
/*
* Input report (device -> host), 8 bytes:
* [0] report_id = 1
* [1] enc1_delta int8
* [2] enc2_delta int8
* [3] flags
* [4] pot 0..100
* [5..7] reserved
*
* Output report (host -> device), 64 bytes:
* [0] report_id = 2
* [1] session_count
* [2] selected_index
* [3] master_vol 0..100
* [4] page_start
* [5] n_visible (0..4)
* [6..] slots: { uint8 vol; char name[9]; char nul; } * n_visible
*/