diff options
-rw-r--r-- | plugins/LV2/Template/Plugin.cpp | 2 | ||||
-rw-r--r-- | plugins/LV2/Template/Plugin.h | 2 | ||||
-rwxr-xr-x | plugins/LV2/makeplugin | 14 |
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) |