Skip to content

Commit

Permalink
AudioServer: Add a 'self_muted' state to each client connection
Browse files Browse the repository at this point in the history
This new state will allow us to ignore muted clients when computing the
'output mix' in the Mixer.
  • Loading branch information
elyse0 authored and bgianfo committed Dec 24, 2021
1 parent ce5f5f5 commit bb747c4
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
2 changes: 2 additions & 0 deletions Userland/Services/AudioServer/AudioServer.ipc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ endpoint AudioServer
// Mixer functions
set_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)
set_main_mix_volume(double volume) => ()
get_self_volume() => (double volume)
Expand Down
14 changes: 14 additions & 0 deletions Userland/Services/AudioServer/ClientConnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,18 @@ void ClientConnection::set_main_mix_muted(bool 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);
}
}
2 changes: 2 additions & 0 deletions Userland/Services/AudioServer/ClientConnection.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ class ClientConnection final : public IPC::ClientConnection<AudioClientEndpoint,
virtual Messages::AudioServer::GetPlayingBufferResponse get_playing_buffer() override;
virtual Messages::AudioServer::IsMainMixMutedResponse is_main_mix_muted() 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 Messages::AudioServer::GetSampleRateResponse get_sample_rate() override;

Expand Down

0 comments on commit bb747c4

Please sign in to comment.