Bläddra i källkod

AudioServer: Port threading to LibThread

Sergey Bugaev 6 år sedan
förälder
incheckning
1ac7fedefe
3 ändrade filer med 9 tillägg och 8 borttagningar
  1. 5 7
      Servers/AudioServer/ASMixer.cpp
  2. 3 0
      Servers/AudioServer/ASMixer.h
  3. 1 1
      Servers/AudioServer/Makefile

+ 5 - 7
Servers/AudioServer/ASMixer.cpp

@@ -1,23 +1,21 @@
 #include <AK/BufferStream.h>
 #include <AudioServer/ASClientConnection.h>
 #include <AudioServer/ASMixer.h>
-#include <LibCore/CThread.h>
 #include <limits>
 
 ASMixer::ASMixer()
     : m_device("/dev/audio", this)
+    , m_sound_thread([this] {
+        mix();
+        return 0;
+    })
 {
     if (!m_device.open(CIODevice::WriteOnly)) {
         dbgprintf("Can't open audio device: %s\n", m_device.error_string());
         return;
     }
 
-    CThread sound_thread([](void* context) -> int {
-        ASMixer* mixer = (ASMixer*)context;
-        mixer->mix();
-        return 0;
-    },
-        this);
+    m_sound_thread.start();
 }
 
 ASMixer::~ASMixer()

+ 3 - 0
Servers/AudioServer/ASMixer.h

@@ -8,6 +8,7 @@
 #include <LibAudio/ABuffer.h>
 #include <LibCore/CFile.h>
 #include <LibCore/CLock.h>
+#include <LibThread/Thread.h>
 
 class ASClientConnection;
 
@@ -65,6 +66,8 @@ private:
     CFile m_device;
     CLock m_lock;
 
+    LibThread::Thread m_sound_thread;
+
     int m_main_volume { 100 };
 
     void mix();

+ 1 - 1
Servers/AudioServer/Makefile

@@ -19,7 +19,7 @@ AudioServerEndpoint.h: AudioServer.ipc
 	@echo "IPC $<"; $(IPCCOMPILER) $< > $@
 
 $(APP): $(OBJS)
-	$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lc -lcore -lipc
+	$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lc -lcore -lipc -lthread
 
 .cpp.o:
 	@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<