/* * Copyright (c) 2023, kleines Filmröllchen * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace AudioServer { class ConnectionFromManagerClient final : public IPC::ConnectionFromClient { C_OBJECT(ConnectionFromManagerClient) public: ~ConnectionFromManagerClient() override = default; virtual void die() override; static void for_each(Function); void did_change_main_mix_muted_state(Badge, bool muted); void did_change_main_mix_volume(Badge, double volume); private: ConnectionFromManagerClient(NonnullOwnPtr client_socket, int client_id, Mixer& mixer); virtual Messages::AudioManagerServer::GetMainMixVolumeResponse get_main_mix_volume() override; virtual void set_main_mix_volume(double) override; virtual Messages::AudioManagerServer::IsMainMixMutedResponse is_main_mix_muted() override; virtual void set_main_mix_muted(bool) override; virtual void set_device_sample_rate(u32 sample_rate) override; virtual Messages::AudioManagerServer::GetDeviceSampleRateResponse get_device_sample_rate() override; Mixer& m_mixer; }; }