Bladeren bron

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.
Till Mayer 5 jaren geleden
bovenliggende
commit
02e787f8a4
1 gewijzigde bestanden met toevoegingen van 9 en 5 verwijderingen
  1. 9 5
      Userland/aplay.cpp

+ 9 - 5
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;