aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)