diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2020-07-16 23:35:07 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2020-07-16 23:35:07 +0200 |
commit | d5a5c482c42bd6069bf7f130fe2c3f8de71fad5e (patch) | |
tree | ef814c07ca189afebb4c853830b241406f5ca0a4 /plugins/LV2/src/Acceleration/lv2wrapper.cpp | |
parent | ed1c33f8a60b2e34c78473c2c1392fb3b809e524 (diff) | |
download | airwindows-lv2-port-d5a5c482c42bd6069bf7f130fe2c3f8de71fad5e.tar.gz airwindows-lv2-port-d5a5c482c42bd6069bf7f130fe2c3f8de71fad5e.tar.bz2 airwindows-lv2-port-d5a5c482c42bd6069bf7f130fe2c3f8de71fad5e.zip |
LV2: Split lv2 interface code and actual plugin.
Let's keep the LV2 interfacing and the actual plugin separate. For now
the actual plugin is completely independent of the plugin system, and
the wrapper code just forwards everything that's plugin specific to the
plugin proper.
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; +} |