1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 12:15:06 +00:00
serenity/Userland/Services/AudioServer/ConnectionFromClient.h
kleines Filmröllchen ab49fcfb7c LibAudio+Userland: Remove Audio::LegacyBuffer
The file is now renamed to Queue.h, and the Resampler APIs with
LegacyBuffer are also removed. These changes look large because nobody
actually needs Buffer.h (or Queue.h). It was mostly transitive
dependencies on the massive list of includes in that header, which are
now almost all gone. Instead, we include common things like Sample.h
directly, which should give faster compile times as very few files
actually need Queue.h.
2022-05-03 23:09:20 +02:00

56 lines
2 KiB
C++

/*
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/HashMap.h>
#include <AudioServer/AudioClientEndpoint.h>
#include <AudioServer/AudioServerEndpoint.h>
#include <LibAudio/Queue.h>
#include <LibCore/EventLoop.h>
#include <LibIPC/ConnectionFromClient.h>
namespace AudioServer {
class ClientAudioStream;
class Mixer;
class ConnectionFromClient final : public IPC::ConnectionFromClient<AudioClientEndpoint, AudioServerEndpoint> {
C_OBJECT(ConnectionFromClient)
public:
~ConnectionFromClient() override = default;
void did_change_client_volume(Badge<ClientAudioStream>, double volume);
void did_change_main_mix_muted_state(Badge<Mixer>, bool muted);
void did_change_main_mix_volume(Badge<Mixer>, double volume);
virtual void die() override;
static void for_each(Function<void(ConnectionFromClient&)>);
private:
explicit ConnectionFromClient(NonnullOwnPtr<Core::Stream::LocalSocket>, int client_id, Mixer& mixer);
virtual Messages::AudioServer::GetMainMixVolumeResponse get_main_mix_volume() override;
virtual void set_main_mix_volume(double) override;
virtual Messages::AudioServer::GetSelfVolumeResponse get_self_volume() override;
virtual void set_self_volume(double) override;
virtual void set_buffer(Audio::AudioQueue const&) override;
virtual void clear_buffer() override;
virtual void start_playback() override;
virtual void pause_playback() 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;
Mixer& m_mixer;
RefPtr<ClientAudioStream> m_queue;
};
}