39 lines
835 B
C
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);
|