/* * Copyright (c) 2023, kleines Filmröllchen * * SPDX-License-Identifier: BSD-2-Clause */ #include "ConnectionFromManagerClient.h" namespace AudioServer { static HashMap> s_connections; ConnectionFromManagerClient::ConnectionFromManagerClient(NonnullOwnPtr client_socket, int client_id, Mixer& mixer) : IPC::ConnectionFromClient(*this, move(client_socket), client_id) , m_mixer(mixer) { s_connections.set(client_id, *this); } void ConnectionFromManagerClient::die() { s_connections.remove(client_id()); } void ConnectionFromManagerClient::for_each(Function callback) { Vector> connections; for (auto& it : s_connections) connections.append(*it.value); for (auto& connection : connections) callback(connection); } void ConnectionFromManagerClient::did_change_main_mix_muted_state(Badge, bool muted) { async_main_mix_muted_state_changed(muted); } void ConnectionFromManagerClient::did_change_main_mix_volume(Badge, double volume) { async_main_mix_volume_changed(volume); } Messages::AudioManagerServer::GetMainMixVolumeResponse ConnectionFromManagerClient::get_main_mix_volume() { return m_mixer.main_volume(); } void ConnectionFromManagerClient::set_main_mix_volume(double volume) { m_mixer.set_main_volume(volume); } Messages::AudioManagerServer::GetDeviceSampleRateResponse ConnectionFromManagerClient::get_device_sample_rate() { return { m_mixer.audiodevice_get_sample_rate() }; } void ConnectionFromManagerClient::set_device_sample_rate(u32 sample_rate) { m_mixer.audiodevice_set_sample_rate(sample_rate); } Messages::AudioManagerServer::IsMainMixMutedResponse ConnectionFromManagerClient::is_main_mix_muted() { return m_mixer.is_muted(); } void ConnectionFromManagerClient::set_main_mix_muted(bool muted) { m_mixer.set_muted(muted); } }