16#ifndef __AUDACITY_LV2_WRAPPER__
17#define __AUDACITY_LV2_WRAPPER__
25#include "lv2/core/attributes.h"
26#include "lv2/options/options.h"
27#include "lv2/state/state.h"
28#include "lv2/worker/worker.h"
31#include <wx/msgqueue.h>
41LV2_DISABLE_DEPRECATION_WARNINGS
56 static std::unique_ptr<LV2Wrapper> Create(
70 void ConnectControlPorts(
const LV2Ports &ports,
72 void ConnectPorts(
const LV2Ports &ports,
78 LV2_Handle GetHandle()
const;
79 float GetLatency()
const;
80 void SetFreeWheeling(
bool enable);
82 void ConsumeResponses();
83 static LV2_Worker_Status schedule_work(LV2_Worker_Schedule_Handle handle,
86 LV2_Worker_Status ScheduleWork(uint32_t
size,
const void *data);
87 static LV2_Worker_Status respond(LV2_Worker_Respond_Handle handle,
90 LV2_Worker_Status Respond(uint32_t
size,
const void *data);
96 void ThreadFunction();
119 float mLatency{ 0.0 };
122 bool mFreeWheeling{
false };
126 bool mStopWorker{
false };
127 bool mActivated{
false };
std::unique_ptr< Type, Lilv_deleter< Type, f > > Lilv_ptr
Generate classes of smart pointers to lv2 resources.
Lilv_ptr< LilvInstance, lilv_instance_free > LilvInstancePtr
static Settings & settings()
Hold values to send to effect output meters.
Manager of a handle to an LV2 plug-in instantiation.
const LV2_State_Interface *const mStateInterface
const LilvInstancePtr mInstance
const LV2WrapperFeaturesList & GetFeatures() const
wxMessageQueue< LV2Work > mRequests
const LV2_Options_Interface *const mOptionsInterface
LV2WrapperFeaturesList & GetFeatures()
static LV2_Worker_Status schedule_work(LV2_Worker_Schedule_Handle handle, uint32_t size, const void *data)
LV2WrapperFeaturesList mFeaturesList
const LV2_Worker_Interface *const mWorkerInterface
wxMessageQueue< LV2Work > mResponses
constexpr auto sampleRate
FrameStatistics & GetInstance() noexcept
Storage locations to be connected to LV2 control ports.
To compel use of the factory.