25 #include <condition_variable> 42 volatile bool m_playback{
false};
62 std::thread m_mixingThread;
67 std::mutex m_mixingLock;
72 std::condition_variable m_mixingCondition;
88 void startMixingThread(
size_t buffersize);
93 void notifyMixingThread();
111 virtual void playing(
bool playing);
116 virtual void preMixingWork(
bool playing);
128 void stopMixingThread();
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition: Audaspace.h:116
RingBuffer & getRingBuffer()
Get ring buffer for reading.
Definition: MixingThreadDevice.h:98
virtual void playing(bool playing)=0
This function tells the device, to start or pause playback.
This class is a simple buffer in RAM which is 32 Byte aligned and provides resize functionality...
Definition: Buffer.h:33
bool isMixingThreadRunning()
Returns whether the thread is running or not.
Definition: MixingThreadDevice.h:106
This device extends the SoftwareDevice with code for running mixing in a separate thread...
Definition: MixingThreadDevice.h:36
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition: Audaspace.h:119
#define AUD_PLUGIN_API
Used for exporting symbols in the shared library.
Definition: Audaspace.h:94
The software device is a generic device with software mixing.
Definition: SoftwareDevice.h:50
#define AUD_LOCAL
Used for hiding symbols from export in the shared library.
Definition: Audaspace.h:80
This class is a simple ring buffer in RAM which is 32 Byte aligned and provides functionality for con...
Definition: RingBuffer.h:36
The SoftwareDevice class.