add signal for VST state load
authorRobin Gareus <robin@gareus.org>
Mon, 14 Nov 2016 23:01:12 +0000 (00:01 +0100)
committerRobin Gareus <robin@gareus.org>
Mon, 14 Nov 2016 23:32:59 +0000 (00:32 +0100)
MacVST has no dedicated VST event-loop to directly handle this.

libs/ardour/ardour/vst_plugin.h
libs/ardour/vst_plugin.cc

index 2a8b4dc9a1fc83afc72c9766d3a7276b6566ac25..00bf68021701191f845116eb432054256cb2749d 100644 (file)
@@ -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; }
index 1fd8d8cd55c5be61d12110342f677377540bd03d..a3dca8b3fa2e3d1cfe2e6ba58b899e44b2cfb17e 100644 (file)
@@ -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;
                                }
                        }