mirror of
https://github.com/RGBCube/serenity
synced 2025-05-23 12:15:06 +00:00

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.
56 lines
2 KiB
C++
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;
|
|
};
|
|
|
|
}
|