diff options
Diffstat (limited to 'plugins/LV2/src/Acceleration/lv2wrapper.cpp')
-rw-r--r-- | plugins/LV2/src/Acceleration/lv2wrapper.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/plugins/LV2/src/Acceleration/lv2wrapper.cpp b/plugins/LV2/src/Acceleration/lv2wrapper.cpp new file mode 100644 index 0000000..3b1c04c --- /dev/null +++ b/plugins/LV2/src/Acceleration/lv2wrapper.cpp @@ -0,0 +1,70 @@ +#include "lv2/core/lv2.h" +#include "Acceleration.h" + +namespace { + +const char * ACCELERATION_URI = "https://www.airwindows.com/acceleration"; + +LV2_Handle instantiate( + const LV2_Descriptor * d, + double rate, + const char * path, + const LV2_Feature * const * features) +{ + return new Acceleration{rate}; +} + +void connect_port( + LV2_Handle instance, + uint32_t port, + void * data) +{ + auto accel = static_cast<Acceleration *>(instance); + accel->connect_port(port, data); +} + +void activate(LV2_Handle instance) +{ +} + +void run(LV2_Handle instance, uint32_t num_samples) +{ + auto accel = static_cast<Acceleration *>(instance); + accel->run(num_samples); +} + +void deactivate(LV2_Handle) +{ +} + +void destroy(LV2_Handle instance) +{ + delete static_cast<Acceleration *>(instance); +} + +const void * extension_data(const char * uri) +{ + return nullptr; +} + +const LV2_Descriptor descriptor = { + ACCELERATION_URI, + instantiate, + connect_port, + activate, + run, + deactivate, + destroy, + extension_data +}; + +} // anon namespace + +LV2_SYMBOL_EXPORT +const LV2_Descriptor * lv2_descriptor(uint32_t idx) +{ + if (idx == 0) + return &descriptor; + + return nullptr; +} |