#include #include #include AClientConnection::AClientConnection() : ConnectionNG("/tmp/asportal") { } void AClientConnection::handshake() { auto response = send_sync(getpid()); set_server_pid(response->server_pid()); set_my_client_id(response->client_id()); } void AClientConnection::enqueue(const ABuffer& buffer) { for (;;) { const_cast(buffer).shared_buffer().share_with(server_pid()); auto response = send_sync(buffer.shared_buffer_id()); if (response->success()) break; sleep(1); } } bool AClientConnection::try_enqueue(const ABuffer& buffer) { const_cast(buffer).shared_buffer().share_with(server_pid()); auto response = send_sync(buffer.shared_buffer_id()); return response->success(); } int AClientConnection::get_main_mix_volume() { return send_sync()->volume(); } void AClientConnection::set_main_mix_volume(int volume) { send_sync(volume); }