mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 06:47:35 +00:00
AudioServer: Port threading to LibThread
This commit is contained in:
parent
d91efd4cd0
commit
1ac7fedefe
3 changed files with 9 additions and 8 deletions
|
@ -1,23 +1,21 @@
|
||||||
#include <AK/BufferStream.h>
|
#include <AK/BufferStream.h>
|
||||||
#include <AudioServer/ASClientConnection.h>
|
#include <AudioServer/ASClientConnection.h>
|
||||||
#include <AudioServer/ASMixer.h>
|
#include <AudioServer/ASMixer.h>
|
||||||
#include <LibCore/CThread.h>
|
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
|
||||||
ASMixer::ASMixer()
|
ASMixer::ASMixer()
|
||||||
: m_device("/dev/audio", this)
|
: m_device("/dev/audio", this)
|
||||||
|
, m_sound_thread([this] {
|
||||||
|
mix();
|
||||||
|
return 0;
|
||||||
|
})
|
||||||
{
|
{
|
||||||
if (!m_device.open(CIODevice::WriteOnly)) {
|
if (!m_device.open(CIODevice::WriteOnly)) {
|
||||||
dbgprintf("Can't open audio device: %s\n", m_device.error_string());
|
dbgprintf("Can't open audio device: %s\n", m_device.error_string());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CThread sound_thread([](void* context) -> int {
|
m_sound_thread.start();
|
||||||
ASMixer* mixer = (ASMixer*)context;
|
|
||||||
mixer->mix();
|
|
||||||
return 0;
|
|
||||||
},
|
|
||||||
this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASMixer::~ASMixer()
|
ASMixer::~ASMixer()
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <LibAudio/ABuffer.h>
|
#include <LibAudio/ABuffer.h>
|
||||||
#include <LibCore/CFile.h>
|
#include <LibCore/CFile.h>
|
||||||
#include <LibCore/CLock.h>
|
#include <LibCore/CLock.h>
|
||||||
|
#include <LibThread/Thread.h>
|
||||||
|
|
||||||
class ASClientConnection;
|
class ASClientConnection;
|
||||||
|
|
||||||
|
@ -65,6 +66,8 @@ private:
|
||||||
CFile m_device;
|
CFile m_device;
|
||||||
CLock m_lock;
|
CLock m_lock;
|
||||||
|
|
||||||
|
LibThread::Thread m_sound_thread;
|
||||||
|
|
||||||
int m_main_volume { 100 };
|
int m_main_volume { 100 };
|
||||||
|
|
||||||
void mix();
|
void mix();
|
||||||
|
|
|
@ -19,7 +19,7 @@ AudioServerEndpoint.h: AudioServer.ipc
|
||||||
@echo "IPC $<"; $(IPCCOMPILER) $< > $@
|
@echo "IPC $<"; $(IPCCOMPILER) $< > $@
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lc -lcore -lipc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lc -lcore -lipc -lthread
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue