Files
AudioMixer/hid_mixer.h
T
2026-09-07 16:53:18 +03:00

39 lines
835 B
C

#pragma once
#include "protocol.h"
#include <stdint.h>
#include <stdbool.h>
typedef struct {
uint8_t vol;
uint8_t peak;
char name[AUSIO_NAME_CHARS + 1];
} mixer_session_t;
typedef struct {
bool host_alive;
uint8_t session_count;
uint8_t selected;
uint8_t master_vol;
uint8_t master_peak;
uint8_t page_start;
uint8_t n_visible;
mixer_session_t visible[AUSIO_MAX_VISIBLE];
bool ui_dirty;
} mixer_state_t;
void hid_mixer_init(void);
void hid_mixer_task(void);
mixer_state_t *hid_mixer_state(void);
/* Queue deltas/buttons/pot for next input report */
void hid_mixer_add_enc1(int8_t delta);
void hid_mixer_add_enc2(int8_t delta);
void hid_mixer_set_e1_sw(bool pressed);
void hid_mixer_set_e2_sw(bool pressed);
void hid_mixer_set_pot(uint8_t pot_0_100);
bool hid_mixer_mounted(void);