Procházet zdrojové kódy

LibAudio: Add ClientConnection::async_enqueue()

async_enqueue() is a wrapper over the async_enqueue_buffer() call
to AudioServer. This allows users to asyncronously enqueue audio
samples, when the program requires non-blocking audio streaming.

This also makes ClientConnection use east-const everywhere.
kleines Filmröllchen před 4 roky
rodič
revize
9d00db618d

+ 7 - 2
Userland/Libraries/LibAudio/ClientConnection.cpp

@@ -14,7 +14,7 @@ ClientConnection::ClientConnection()
 {
 }
 
-void ClientConnection::enqueue(const Buffer& buffer)
+void ClientConnection::enqueue(Buffer const& buffer)
 {
     for (;;) {
         auto success = enqueue_buffer(buffer.anonymous_buffer(), buffer.id(), buffer.sample_count());
@@ -26,7 +26,12 @@ void ClientConnection::enqueue(const Buffer& buffer)
     }
 }
 
-bool ClientConnection::try_enqueue(const Buffer& buffer)
+void ClientConnection::async_enqueue(Buffer const& buffer)
+{
+    async_enqueue_buffer(buffer.anonymous_buffer(), buffer.id(), buffer.sample_count());
+}
+
+bool ClientConnection::try_enqueue(Buffer const& buffer)
 {
     return enqueue_buffer(buffer.anonymous_buffer(), buffer.id(), buffer.sample_count());
 }

+ 3 - 2
Userland/Libraries/LibAudio/ClientConnection.h

@@ -21,8 +21,9 @@ class ClientConnection final
 public:
     ClientConnection();
 
-    void enqueue(const Buffer&);
-    bool try_enqueue(const Buffer&);
+    void enqueue(Buffer const&);
+    bool try_enqueue(Buffer const&);
+    void async_enqueue(Buffer const&);
 
     Function<void(i32 buffer_id)> on_finish_playing_buffer;
     Function<void(bool muted)> on_muted_state_change;