|
lmms
Cross-platform music production software
|
#include <Lv2Worker.h>
Public Member Functions | |
| Lv2Worker (Semaphore *commonWorkLock, bool threaded) | |
| ~Lv2Worker () | |
| void | setHandle (LV2_Handle handle) |
| void | setInterface (const LV2_Worker_Interface *newInterface) |
| LV2_Worker_Schedule * | feature () |
| void | emitResponses () |
| void | notifyPluginThatRunFinished () |
| LV2_Worker_Status | scheduleWork (uint32_t size, const void *data) |
| LV2_Worker_Status | respond (uint32_t size, const void *data) |
Private Member Functions | |
| void | workerFunc () |
| std::size_t | bufferSize () const |
| size of internal buffers | |
Private Attributes | |
| const bool | m_threaded |
| const LV2_Worker_Interface * | m_interface = nullptr |
| LV2_Handle | m_handle = nullptr |
| LV2_Worker_Schedule | m_scheduleFeature |
| std::thread | m_thread |
| std::vector< char > | m_response |
| buffer where single requests from m_requests are unpacked | |
| LocklessRingBuffer< char > | m_requests |
| LocklessRingBuffer< char > | m_responses |
| ringbuffer to queue multiple requests | |
| LocklessRingBufferReader< char > | m_requestsReader |
| LocklessRingBufferReader< char > | m_responsesReader |
| std::atomic< bool > | m_exit = false |
| Whether the worker function should keep looping. | |
| Semaphore | m_sem |
| Semaphore * | m_workLock |
Worker container
| lmms::Lv2Worker::Lv2Worker | ( | Semaphore * | commonWorkLock, |
| bool | threaded ) |
| lmms::Lv2Worker::~Lv2Worker | ( | ) |
|
private |
size of internal buffers
| void lmms::Lv2Worker::emitResponses | ( | ) |
|
inline |
|
inline |
| LV2_Worker_Status lmms::Lv2Worker::respond | ( | uint32_t | size, |
| const void * | data ) |
| LV2_Worker_Status lmms::Lv2Worker::scheduleWork | ( | uint32_t | size, |
| const void * | data ) |
| void lmms::Lv2Worker::setHandle | ( | LV2_Handle | handle | ) |
| void lmms::Lv2Worker::setInterface | ( | const LV2_Worker_Interface * | newInterface | ) |
|
private |
|
private |
Whether the worker function should keep looping.
|
private |
|
private |
|
private |
|
private |
|
private |
buffer where single requests from m_requests are unpacked
|
private |
ringbuffer to queue multiple requests
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |