introduce the notion that note additions and property changes can cause the removal...
[ardour.git] / libs / ardour / ardour / plugin.h
index d6cdd00c39101ad61fcc2d9fb0ee9d93fc6be2fc..8731697906f9ebbf7d9170987f514d7f6284e6b4 100644 (file)
@@ -21,7 +21,6 @@
 #define __ardour_plugin_h__
 
 #include <boost/shared_ptr.hpp>
-#include <sigc++/signal.h>
 #include <glibmm/ustring.h>
 
 #include "pbd/statefuldestructible.h"
@@ -128,7 +127,7 @@ class Plugin : public PBD::StatefulDestructible, public Latent
        virtual bool parameter_is_output(uint32_t) const = 0;
 
        virtual bool save_preset (std::string) = 0;
-       virtual bool load_preset (const std::string uri);
+       virtual bool load_preset (const std::string& uri);
 
        struct PresetRecord {
                PresetRecord(const std::string& u, const std::string& l) : uri(u), label(l) {}
@@ -137,13 +136,14 @@ class Plugin : public PBD::StatefulDestructible, public Latent
        };
 
        virtual std::vector<PresetRecord> get_presets();
+       virtual std::string current_preset() const { return std::string(); }
 
        const PresetRecord* preset_by_label(const std::string& label);
        const PresetRecord* preset_by_uri(const std::string& uri);
 
        virtual bool has_editor() const = 0;
 
-       sigc::signal<void,uint32_t,float> ParameterChanged;
+       PBD::Signal2<void,uint32_t,float> ParameterChanged;
 
        /* NOTE: this block of virtual methods looks like the interface
           to a Processor, but Plugin does not inherit from Processor.