1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:47:35 +00:00

AudioServer: Add a 'self_muted' state to each client connection

This new state will allow us to ignore muted clients when computing the
'output mix' in the Mixer.
This commit is contained in:
Elyse 2021-11-01 19:05:05 -06:00 committed by Brian Gianforcaro
parent ce5f5f543f
commit bb747c471f
3 changed files with 18 additions and 0 deletions

View file

@ -5,6 +5,8 @@ endpoint AudioServer
// Mixer functions // Mixer functions
set_main_mix_muted(bool muted) => () set_main_mix_muted(bool muted) => ()
is_main_mix_muted() => (bool muted) is_main_mix_muted() => (bool muted)
set_self_muted(bool muted) => ()
is_self_muted() => (bool muted)
get_main_mix_volume() => (double volume) get_main_mix_volume() => (double volume)
set_main_mix_volume(double volume) => () set_main_mix_volume(double volume) => ()
get_self_volume() => (double volume) get_self_volume() => (double volume)

View file

@ -149,4 +149,18 @@ void ClientConnection::set_main_mix_muted(bool muted)
{ {
m_mixer.set_muted(muted); m_mixer.set_muted(muted);
} }
Messages::AudioServer::IsSelfMutedResponse ClientConnection::is_self_muted()
{
if (m_queue)
return m_queue->is_muted();
return false;
}
void ClientConnection::set_self_muted(bool muted)
{
if (m_queue)
m_queue->set_muted(muted);
}
} }

View file

@ -49,6 +49,8 @@ private:
virtual Messages::AudioServer::GetPlayingBufferResponse get_playing_buffer() override; virtual Messages::AudioServer::GetPlayingBufferResponse get_playing_buffer() override;
virtual Messages::AudioServer::IsMainMixMutedResponse is_main_mix_muted() override; virtual Messages::AudioServer::IsMainMixMutedResponse is_main_mix_muted() override;
virtual void set_main_mix_muted(bool) override; virtual void set_main_mix_muted(bool) override;
virtual Messages::AudioServer::IsSelfMutedResponse is_self_muted() override;
virtual void set_self_muted(bool) override;
virtual void set_sample_rate(u32 sample_rate) override; virtual void set_sample_rate(u32 sample_rate) override;
virtual Messages::AudioServer::GetSampleRateResponse get_sample_rate() override; virtual Messages::AudioServer::GetSampleRateResponse get_sample_rate() override;