14#ifndef __AUDACITY_LV2_FEATURES_LIST__
15#define __AUDACITY_LV2_FEATURES_LIST__
19#include "lv2/log/log.h"
20#include "lv2/uri-map/uri-map.h"
26#define DEFAULT_SEQSIZE 8192
72 void AddFeature(
const char *uri,
const void *data);
98 void AddFeature(
const char *uri,
const void *data);
105 LV2_URID
URID_Map(
const char *uri)
const;
108 static uint32_t
uri_to_id(LV2_URI_Map_Callback_Data callback_data,
109 const char *map,
const char *uri);
110 static LV2_URID
urid_map(LV2_URID_Map_Handle handle,
const char *uri);
111 static const char *
urid_unmap(LV2_URID_Unmap_Handle handle, LV2_URID urid);
115 LV2_URID type,
const char *fmt, ...);
117 LV2_URID type,
const char *fmt, va_list ap);
118 int LogVPrintf(LV2_URID type,
const char *fmt, va_list ap);
constexpr WithBase_t WithBase
Lilv_ptr< LilvNodes, lilv_nodes_free > LilvNodesPtr
Declare URI identifiers used in calls to the lv2 library and a mapping of them to integers.
std::unique_ptr< Type, Lilv_deleter< Type, f > > Lilv_ptr
Generate classes of smart pointers to lv2 resources.
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
Extends one (immutable) feature list (whose lifetime contains this one's)
virtual ~ExtendedLV2FeaturesList()
FeaturePointers GetFeaturePointers() const override
void AddFeature(const char *uri, const void *data)
const LV2FeaturesListBase & mBaseFeatures
ExtendedLV2FeaturesList(WithBase_t, const LV2FeaturesListBase &baseFeatures)
std::vector< LV2_Feature > mFeatures
LV2FeaturesListBase(const LilvPlugin &plug)
bool CheckFeatures(const LilvNode *subject, bool required)
bool ValidateFeatures(const LilvNode *subject)
std::vector< const LV2_Feature * > FeaturePointers
Get vector of pointers to features, whose .data() can be passed to lv2.
LV2FeaturesListBase & operator=(const LV2FeaturesListBase &)=delete
LV2FeaturesListBase(const LV2FeaturesListBase &)=delete
virtual ~LV2FeaturesListBase()
virtual FeaturePointers GetFeaturePointers() const =0
LV2_URID_Map * URIDMapFeature() const
~LV2FeaturesList() override
void AddFeature(const char *uri, const void *data)
const LV2_URID_Map mURIDMapFeature
LV2Symbols::URIDMap mURIDMap
Per-effect URID map allocates an ID for each URI on first lookup.
LV2_URID URID_Map(const char *uri) const
const LV2_Log_Log mLogFeature
static LV2_URID urid_map(LV2_URID_Map_Handle handle, const char *uri)
LV2FeaturesList(const LilvPlugin &plug)
const char * URID_Unmap(LV2_URID urid)
std::vector< LV2_Feature > mFeatures
const LV2_URI_Map_Feature mUriMapFeature
static uint32_t uri_to_id(LV2_URI_Map_Callback_Data callback_data, const char *map, const char *uri)
bool InitializeFeatures()
const LV2_URID_Unmap mURIDUnmapFeature
const bool mSuppliesWorkerInterface
static int log_printf(LV2_Log_Handle handle, LV2_URID type, const char *fmt,...)
static const char * urid_unmap(LV2_URID_Unmap_Handle handle, LV2_URID urid)
static ComponentInterfaceSymbol GetPluginSymbol(const LilvPlugin &plug)
FeaturePointers GetFeaturePointers() const override
static int log_vprintf(LV2_Log_Handle handle, LV2_URID type, const char *fmt, va_list ap)
int LogVPrintf(LV2_URID type, const char *fmt, va_list ap)
bool SuppliesWorkerInterface() const
std::vector< MallocString<> > URIDMap