aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/src/Acceleration/lv2wrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/LV2/src/Acceleration/lv2wrapper.cpp')
-rw-r--r--plugins/LV2/src/Acceleration/lv2wrapper.cpp70
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;
+}