From 02e787f8a4a43aeef36463c68416a2b43ddf686b Mon Sep 17 00:00:00 2001 From: Till Mayer Date: Sat, 19 Oct 2019 19:15:40 +0200 Subject: [PATCH] aplay: Fixed incomplete playback of files aplay used to quit as soon as the last enqueue of new buffer data was sucessful. Because the connection closes as soon as the application quits, samples were still in the buffer of the ASBufferQueue as playback was halted. --- Userland/aplay.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Userland/aplay.cpp b/Userland/aplay.cpp index dfae016a41..b8126ad99a 100644 --- a/Userland/aplay.cpp +++ b/Userland/aplay.cpp @@ -24,12 +24,16 @@ int main(int argc, char** argv) printf("\033[34;1mProgress\033[0m: \033[s"); for (;;) { auto samples = loader.get_more_samples(); - if (!samples) + if (samples) { + printf("\033[u"); + printf("%d/%d", loader.loaded_samples(), loader.total_samples()); + fflush(stdout); + audio_client->enqueue(*samples); + } else if (audio_client->get_remaining_samples()) { + sleep(1); + } else { break; - printf("\033[u"); - printf("%d/%d", loader.loaded_samples(), loader.total_samples()); - fflush(stdout); - audio_client->enqueue(*samples); + } } printf("\n"); return 0;