54 #define MIXER_SIMPLE_SIZE(_icount) (sizeof(struct mixer_simple_s) + (_icount) * sizeof(struct mixer_control_s)) 106 unsigned mix(
float *outputs,
unsigned space)
override;
108 void groups_required(uint32_t &groups)
override;
120 unsigned set_trim(
float trim)
override;
121 unsigned get_trim(
float *trim)
override;
142 static int parse_output_scaler(
const char *buf,
unsigned &buflen,
mixer_scaler_s &scaler);
143 static int parse_control_scaler(
const char *buf,
unsigned &buflen,
mixer_scaler_s &scaler, uint8_t &control_group,
144 uint8_t &control_index);
mixer_scaler_s output_scaler
scaling for the output
Generic, programmable, procedural control signal mixers.
int(* ControlCallback)(uintptr_t handle, uint8_t control_group, uint8_t control_index, float &control)
Fetch a control value.
uint8_t control_count
number of inputs
uint8_t control_index
index within the control group
uint8_t control_group
group from which the input reads
mixer_scaler_s scaler
scaling applied to the input before use
Abstract class defining a mixer mixing zero or more inputs to one or more outputs.