From ec601f8af0b09eefb1913bd1a7dfeeca1109da22 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 14 Mar 2021 14:29:26 +0100 Subject: LV2/makeplugin: ctrl ports know their name and symbol. Could possibly flesh out this to a proper class, but a hash is ok enough for now. --- plugins/LV2/lib/makeplugin/plugin_info.rb | 2 +- plugins/LV2/makeplugin | 22 +++++++++------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/plugins/LV2/lib/makeplugin/plugin_info.rb b/plugins/LV2/lib/makeplugin/plugin_info.rb index 0cbc896..f6644c8 100644 --- a/plugins/LV2/lib/makeplugin/plugin_info.rb +++ b/plugins/LV2/lib/makeplugin/plugin_info.rb @@ -91,7 +91,7 @@ module MakePlugin if line =~ /void #{@name}::(\w+)/ fun = $1 elsif fun == 'getParameterName' and line =~ /case\s+kParam([A-Z])\:\s+vst_strncpy\s*\([^,]*,\s*\"(\w+)\",/ - @ctrl_ports << $2 + @ctrl_ports << { sym: $1, name: $2 } end end end diff --git a/plugins/LV2/makeplugin b/plugins/LV2/makeplugin index 809b967..48854e0 100755 --- a/plugins/LV2/makeplugin +++ b/plugins/LV2/makeplugin @@ -1,21 +1,17 @@ #!/usr/bin/env ruby require_relative 'lib/makeplugin/plugin_info' -def param_sym(n) - ('A'.ord + n).chr -end - -def make_param_assigns(num) - (0 ... num) - .map { |n| "#{param_sym(n)} = *param[#{n}];" } +def make_param_assigns(ctrl_ports) + ctrl_ports + .map.with_index { |p, n| "#{p[:sym]} = *param[#{n}];" } .join("\n ") end -def make_ctrl_port(n, name) +def make_ctrl_port(n, ctrl_port) %Q{ a lv2:InputPort , lv2:ControlPort ; lv2:index #{n} ; - lv2:symbol "#{param_sym(n)}" ; - lv2:name "#{name}" ; + lv2:symbol "#{ctrl_port[:sym]}" ; + lv2:name "#{ctrl_port[:name]}" ; lv2:default 0.5 ; lv2:minimum 0.0 ; lv2:maximum 1.0 ;} @@ -23,8 +19,8 @@ end def make_lv2_port_defs(pi) num = pi.n_ctrl_ports - ctrlports = (0 ... num) - .map { |n| make_ctrl_port(n, pi.ctrl_ports[n]) } + ctrlports = pi.ctrl_ports + .map.with_index { |p, n| make_ctrl_port(n, p) } .join("\n ] , [\n") ctrlports + %Q{ @@ -87,7 +83,7 @@ begin .gsub('@Plugin@', pi.name) .gsub('@plugin@', plugin_slug) .gsub('@NCtrlPorts@', pi.n_ctrl_ports.to_s) - .gsub('@AssignParams@', make_param_assigns(pi.n_ctrl_ports)) + .gsub('@AssignParams@', make_param_assigns(pi.ctrl_ports)) .gsub('@TTLPortDefs@', make_lv2_port_defs(pi)) .gsub('@TTLPluginType@', pi.type) -- cgit v1.2.3