aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2021-03-27 15:52:06 +0100
committerHarald Eilertsen <haraldei@anduin.net>2021-03-27 16:06:07 +0100
commit542aa2de2bd24ccc0f6413138909a97a13cd5c7f (patch)
tree72cfef8c0702be76256b3024bb89ed8a3c7c1fb2
parent14c689313ce8e5247f279cc6d7352f04cd843217 (diff)
downloadairwindows-lv2-port-542aa2de2bd24ccc0f6413138909a97a13cd5c7f.tar.gz
airwindows-lv2-port-542aa2de2bd24ccc0f6413138909a97a13cd5c7f.tar.bz2
airwindows-lv2-port-542aa2de2bd24ccc0f6413138909a97a13cd5c7f.zip
LV2/makeplugin: Pick up var init from plugin cpp file.
-rw-r--r--plugins/LV2/Template/Plugin.cpp5
-rw-r--r--plugins/LV2/lib/makeplugin/plugin_info.rb12
-rwxr-xr-xplugins/LV2/makeplugin1
3 files changed, 18 insertions, 0 deletions
diff --git a/plugins/LV2/Template/Plugin.cpp b/plugins/LV2/Template/Plugin.cpp
index 49d4420..d6a775d 100644
--- a/plugins/LV2/Template/Plugin.cpp
+++ b/plugins/LV2/Template/Plugin.cpp
@@ -7,6 +7,11 @@
{
}
+void @Plugin@::activate()
+{
+@VARINITS@
+}
+
void @Plugin@::run(uint32_t num_samples)
{
@AssignParams@
diff --git a/plugins/LV2/lib/makeplugin/plugin_info.rb b/plugins/LV2/lib/makeplugin/plugin_info.rb
index 15de9d3..5b79032 100644
--- a/plugins/LV2/lib/makeplugin/plugin_info.rb
+++ b/plugins/LV2/lib/makeplugin/plugin_info.rb
@@ -28,11 +28,13 @@ module MakePlugin
attr_reader :desc
attr_reader :comment
attr_reader :var_decls
+ attr_reader :var_inits
def initialize(root, name)
@name = name
@ctrl_ports = []
@var_decls = []
+ @var_inits = []
self.find_plugin_info(root)
if @n_ctrl_ports != @ctrl_ports.length
raise "Expected #{@n_ctrl_ports} but found #{@ctrl_ports.length}"
@@ -105,8 +107,18 @@ module MakePlugin
f.each_line do |line|
if line =~ /void #{@name}::(\w+)/
fun = $1
+ elsif line =~ /^#{@name}::#{@name}/
+ fun = 'constructor_'
elsif fun == 'getParameterName' and line =~ /case\s+kParam([A-Z])\:\s+vst_strncpy\s*\([^,]*,\s*\"(\w+)\",/
@ctrl_ports << { sym: $1, name: $2 }
+ elsif fun == 'constructor_' and line =~ /\{\s*$/
+ fun = 'constructor'
+ elsif fun == 'constructor'
+ if line =~ /^\s+_canDo\./
+ fun = ''
+ else
+ @var_inits << line.chomp
+ end
end
end
end
diff --git a/plugins/LV2/makeplugin b/plugins/LV2/makeplugin
index 061d712..98ac700 100755
--- a/plugins/LV2/makeplugin
+++ b/plugins/LV2/makeplugin
@@ -49,6 +49,7 @@ begin
.gsub('@NCtrlPorts@', pi.n_ctrl_ports.to_s)
.gsub('@AssignParams@', make_param_assigns(pi.ctrl_ports))
.gsub('@VARDECLS@', pi.var_decls.join("\n"))
+ .gsub('@VARINITS@', pi.var_inits.join("\n"))
fname = t.sub('Plugin', pi.name)