summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-11-15 00:01:12 +0100
committerRobin Gareus <robin@gareus.org>2016-11-15 00:32:59 +0100
commit35de5080a60fd648455557974f967f5e4090cbfb (patch)
treed44e8c75c1efffe2db69b2a239dca34b47220c43
parentc16eb83fecb6f5eda3680f3aaf4ae83947847d35 (diff)
add signal for VST state load
MacVST has no dedicated VST event-loop to directly handle this.
-rw-r--r--libs/ardour/ardour/vst_plugin.h3
-rw-r--r--libs/ardour/vst_plugin.cc2
2 files changed, 5 insertions, 0 deletions
diff --git a/libs/ardour/ardour/vst_plugin.h b/libs/ardour/ardour/vst_plugin.h
index 2a8b4dc9a1..00bf680217 100644
--- a/libs/ardour/ardour/vst_plugin.h
+++ b/libs/ardour/ardour/vst_plugin.h
@@ -20,6 +20,7 @@
#ifndef __ardour_vst_plugin_h__
#define __ardour_vst_plugin_h__
+#include <pbd/signals.h>
#include "ardour/plugin.h"
struct _AEffect;
@@ -59,6 +60,8 @@ public:
framecnt_t signal_latency() const;
std::set<Evoral::Parameter> automatable() const;
+ PBD::Signal0<void> LoadPresetProgram;
+
bool parameter_is_audio (uint32_t) const { return false; }
bool parameter_is_control (uint32_t) const { return true; }
bool parameter_is_input (uint32_t) const { return true; }
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index 1fd8d8cd55..a3dca8b3fa 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -387,6 +387,7 @@ VSTPlugin::load_plugin_preset (PresetRecord r)
sscanf (r.uri.c_str(), "VST:%d:%d", &id, &index);
#endif
_state->want_program = index;
+ LoadPresetProgram (); /* EMIT SIGNAL */ /* used for macvst */
return true;
}
@@ -429,6 +430,7 @@ VSTPlugin::load_user_preset (PresetRecord r)
_state->wanted_chunk = raw_data;
_state->wanted_chunk_size = size;
_state->want_chunk = 1;
+ LoadPresetProgram (); /* EMIT SIGNAL */ /* used for macvst */
return true;
}
}