28#include "lmmsconfig.h"
A convenience layer for a realtime-safe and thread-safe multi-reader ringbuffer.
Definition LocklessRingBuffer.h:41
Wrapper for lockless ringbuffer reader.
Definition LocklessRingBuffer.h:72
LocklessRingBufferReader< char > m_responsesReader
Definition Lv2Worker.h:81
void setHandle(LV2_Handle handle)
Definition Lv2Worker.cpp:88
const LV2_Worker_Interface * m_interface
Definition Lv2Worker.h:73
LocklessRingBuffer< char > m_responses
ringbuffer to queue multiple requests
Definition Lv2Worker.h:80
LV2_Worker_Schedule m_scheduleFeature
Definition Lv2Worker.h:75
Semaphore * m_workLock
Definition Lv2Worker.h:84
void emitResponses()
Definition Lv2Worker.cpp:207
std::size_t bufferSize() const
size of internal buffers
Definition Lv2Worker.cpp:50
std::vector< char > m_response
buffer where single requests from m_requests are unpacked
Definition Lv2Worker.h:79
void notifyPluginThatRunFinished()
Definition Lv2Worker.h:57
LV2_Worker_Schedule * feature()
Definition Lv2Worker.h:53
LocklessRingBufferReader< char > m_requestsReader
Definition Lv2Worker.h:81
std::thread m_thread
Definition Lv2Worker.h:78
void setInterface(const LV2_Worker_Interface *newInterface)
Definition Lv2Worker.cpp:97
Lv2Worker(Semaphore *commonWorkLock, bool threaded)
Definition Lv2Worker.cpp:61
~Lv2Worker()
Definition Lv2Worker.cpp:106
const bool m_threaded
Definition Lv2Worker.h:72
LV2_Worker_Status respond(uint32_t size, const void *data)
Definition Lv2Worker.cpp:119
LocklessRingBuffer< char > m_requests
Definition Lv2Worker.h:80
void workerFunc()
Definition Lv2Worker.cpp:146
std::atomic< bool > m_exit
Whether the worker function should keep looping.
Definition Lv2Worker.h:82
LV2_Handle m_handle
Definition Lv2Worker.h:74
Semaphore m_sem
Definition Lv2Worker.h:83
LV2_Worker_Status scheduleWork(uint32_t size, const void *data)
Definition Lv2Worker.cpp:174
Definition LmmsSemaphore.h:67
void * LV2_Handle
Definition lv2.h:133
LV2_Worker_Status
Definition worker.h:46
JSAMPIMAGE data
Definition jpeglib.h:945
unsigned int uint32_t
Definition mid.cpp:100
Definition AudioAlsa.cpp:35