diff --git a/Servers/AudioServer/ASClientConnection.cpp b/Servers/AudioServer/ASClientConnection.cpp index 23d0c2f018a..96cf328fcc2 100644 --- a/Servers/AudioServer/ASClientConnection.cpp +++ b/Servers/AudioServer/ASClientConnection.cpp @@ -1,17 +1,17 @@ #include "ASClientConnection.h" #include "ASMixer.h" -#include -#include #include +#include +#include #include #include -#include -#include -#include -#include #include +#include +#include +#include +#include ASClientConnection::ASClientConnection(CLocalSocket& client_socket, int client_id, ASMixer& mixer) : Connection(client_socket, client_id) @@ -63,3 +63,10 @@ bool ASClientConnection::handle_message(const ASAPI_ClientMessage& message, cons return true; } +void ASClientConnection::did_finish_playing_buffer(Badge, int buffer_id) +{ + ASAPI_ServerMessage reply; + reply.type = ASAPI_ServerMessage::Type::FinishedPlayingBuffer; + reply.playing_buffer.buffer_id = buffer_id; + post_message(reply); +} diff --git a/Servers/AudioServer/ASClientConnection.h b/Servers/AudioServer/ASClientConnection.h index 78a9d19e7a0..295adfc2219 100644 --- a/Servers/AudioServer/ASClientConnection.h +++ b/Servers/AudioServer/ASClientConnection.h @@ -13,6 +13,8 @@ public: void send_greeting() override; bool handle_message(const ASAPI_ClientMessage&, const ByteBuffer&& = {}) override; + void did_finish_playing_buffer(Badge, int buffer_id); + private: ASMixer& m_mixer; }; diff --git a/Servers/AudioServer/ASMixer.cpp b/Servers/AudioServer/ASMixer.cpp index e4b618adc02..1c9dcf7ed5c 100644 --- a/Servers/AudioServer/ASMixer.cpp +++ b/Servers/AudioServer/ASMixer.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include @@ -78,12 +77,8 @@ void ASMixer::mix() // clear it later if (buffer.pos == sample_count) { - if (buffer.m_client) { - ASAPI_ServerMessage reply; - reply.type = ASAPI_ServerMessage::Type::FinishedPlayingBuffer; - reply.playing_buffer.buffer_id = buffer.buffer->shared_buffer_id(); - buffer.m_client->post_message(reply); - } + if (buffer.m_client) + buffer.m_client->did_finish_playing_buffer({}, buffer.buffer->shared_buffer_id()); buffer.done = true; } }