AudioServer: Port threading to LibThread

This commit is contained in:
Sergey Bugaev 2019-08-25 19:27:51 +03:00 committed by Andreas Kling
parent d91efd4cd0
commit 1ac7fedefe
Notes: sideshowbarker 2024-07-19 12:31:15 +09:00
3 changed files with 9 additions and 8 deletions

View file

@ -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()

View file

@ -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();

View file

@ -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 $<