aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2020-07-22 16:47:13 +0200
committerHarald Eilertsen <haraldei@anduin.net>2020-07-22 16:47:13 +0200
commit8e1de3ce53f1e61d24578379bd38a42401fa37e8 (patch)
tree9655239b75c471f823194f51f5fef82ff511c01c
parentb11ed1fabd9c6db06e7aa7d4ad046d934bd113a7 (diff)
downloadairwindows-lv2-port-8e1de3ce53f1e61d24578379bd38a42401fa37e8.tar.gz
airwindows-lv2-port-8e1de3ce53f1e61d24578379bd38a42401fa37e8.tar.bz2
airwindows-lv2-port-8e1de3ce53f1e61d24578379bd38a42401fa37e8.zip
LV2: makeplugin script not handles number of control ports.
If specified, the correct number will be put in the class declaration, and the correct number of params will be assigned to their respecive param instance variables. The ttl file is not updated with this info yet.
-rw-r--r--plugins/LV2/Template/Plugin.cpp2
-rw-r--r--plugins/LV2/Template/Plugin.h2
-rwxr-xr-xplugins/LV2/makeplugin14
3 files changed, 14 insertions, 4 deletions
diff --git a/plugins/LV2/Template/Plugin.cpp b/plugins/LV2/Template/Plugin.cpp
index c70f6ab..49d4420 100644
--- a/plugins/LV2/Template/Plugin.cpp
+++ b/plugins/LV2/Template/Plugin.cpp
@@ -9,7 +9,7 @@
void @Plugin@::run(uint32_t num_samples)
{
- A = *params[0];
+ @AssignParams@
processReplacing(const_cast<float **>(in), out, num_samples);
}
diff --git a/plugins/LV2/Template/Plugin.h b/plugins/LV2/Template/Plugin.h
index aee342d..7569955 100644
--- a/plugins/LV2/Template/Plugin.h
+++ b/plugins/LV2/Template/Plugin.h
@@ -3,7 +3,7 @@
#include <lv2plugin.h>
-class @Plugin@ : public LV2Plugin<1> {
+class @Plugin@ : public LV2Plugin<@NCtrlPorts@> {
public:
@Plugin@(double rate);
diff --git a/plugins/LV2/makeplugin b/plugins/LV2/makeplugin
index 8fc98eb..5b11a87 100755
--- a/plugins/LV2/makeplugin
+++ b/plugins/LV2/makeplugin
@@ -1,7 +1,13 @@
#!/usr/bin/env ruby
-unless ARGV[0]
- puts "Give me the name of a plugin to make."
+def make_param_assigns(num)
+ (0 ... num)
+ .map { |n| "#{('A'.ord + n).chr} = *param[#{n}];" }
+ .join("\n ")
+end
+
+if ARGV.length < 1
+ puts "Usage: #{__FILE__} <PluginName> [<NCtrlPorts>]"
exit
end
@@ -10,6 +16,8 @@ root = File.dirname(__FILE__)
plugin_name = ARGV[0]
plugin_slug = plugin_name.downcase
+n_ctrl_ports = ARGV[1] || '1'
+
target_dir = File.join(root, 'src', plugin_name)
template_dir = File.join(root, 'Template')
@@ -29,6 +37,8 @@ begin
tpl = IO.read(File.join(template_dir, t))
.gsub('@Plugin@', plugin_name)
.gsub('@plugin@', plugin_slug)
+ .gsub('@NCtrlPorts@', n_ctrl_ports)
+ .gsub('@AssignParams@', make_param_assigns(n_ctrl_ports.to_i))
fname = t.sub('Plugin', plugin_name)