1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 13:17:35 +00:00

Audio: Add per-client volume

Note: While ClientAudioStream has had a volume property, it is only now
used in the mixer.
This commit is contained in:
kleines Filmröllchen 2021-08-27 23:57:02 +02:00 committed by Andreas Kling
parent 5300c9e6b4
commit bd17da9f9e
7 changed files with 33 additions and 1 deletions

View file

@ -53,6 +53,11 @@ void ClientConnection::did_change_main_mix_volume(Badge<Mixer>, double volume)
async_main_mix_volume_changed(volume);
}
void ClientConnection::did_change_client_volume(Badge<ClientAudioStream>, double volume)
{
async_client_volume_changed(volume);
}
Messages::AudioServer::GetMainMixVolumeResponse ClientConnection::get_main_mix_volume()
{
return m_mixer.main_volume();
@ -73,6 +78,17 @@ void ClientConnection::set_sample_rate(u16 sample_rate)
m_mixer.audiodevice_set_sample_rate(sample_rate);
}
Messages::AudioServer::GetSelfVolumeResponse ClientConnection::get_self_volume()
{
return m_queue->volume().target();
}
void ClientConnection::set_self_volume(double volume)
{
if (m_queue)
m_queue->set_volume(volume);
}
Messages::AudioServer::EnqueueBufferResponse ClientConnection::enqueue_buffer(Core::AnonymousBuffer const& buffer, i32 buffer_id, int sample_count)
{
if (!m_queue)