X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=audio_mixer.h;fp=audio_mixer.h;h=821171037f6faf70b11e7d8518484380ecbe587f;hb=7c1bb8357495778076a47636c2c4192674034165;hp=38b98f7ce0673e025fb6c96df392281189a98fac;hpb=b4439d47997e11b6f660b99c15657d386a490ff1;p=nageru diff --git a/audio_mixer.h b/audio_mixer.h index 38b98f7..8211710 100644 --- a/audio_mixer.h +++ b/audio_mixer.h @@ -67,6 +67,9 @@ public: float get_fader_volume(unsigned bus_index) const { return fader_volume_db[bus_index]; } void set_fader_volume(unsigned bus_index, float level_db) { fader_volume_db[bus_index] = level_db; } + bool get_mute(unsigned bus_index) const { return mute[bus_index]; } + void set_mute(unsigned bus_index, bool muted) { mute[bus_index] = muted; } + // Note: This operation holds all ALSA devices (see ALSAPool::get_devices()). // You will need to call set_input_mapping() to get the hold state correctly, // or every card will be held forever. @@ -281,6 +284,7 @@ public: // or set_* functions for that bus. struct BusSettings { float fader_volume_db; + bool muted; bool locut_enabled; float eq_level_db[NUM_EQ_BANDS]; float gain_staging_db; @@ -367,6 +371,7 @@ private: MappingMode current_mapping_mode; // Under audio_mutex. InputMapping input_mapping; // Under audio_mutex. std::atomic fader_volume_db[MAX_BUSES] {{ 0.0f }}; + std::atomic mute[MAX_BUSES] {{ false }}; float last_fader_volume_db[MAX_BUSES] { 0.0f }; // Under audio_mutex. std::atomic eq_level_db[MAX_BUSES][NUM_EQ_BANDS] {{{ 0.0f }}}; float last_eq_level_db[MAX_BUSES][NUM_EQ_BANDS] {{ 0.0f }};