revert incorrect include path changes and removal of export macros for two libardour...
[ardour.git] / libs / ardour / ardour / proxy_controllable.h
index 0914f9909879cd09f1d5b6ce9413439469240c3e..066f2aac81f9266552f0871cd6c69f44b98e71f9 100644 (file)
@@ -30,24 +30,24 @@ namespace ARDOUR {
     so that it can be used like a regular Controllable, bound to MIDI, OSC etc.
 */
 
-class ProxyControllable : public PBD::Controllable {
+class LIBARDOUR_API ProxyControllable : public PBD::Controllable {
 public:
        ProxyControllable (const std::string& name, PBD::Controllable::Flag flags,
-                          boost::function1<void,double> setter,
+                          boost::function1<bool,double> setter,
                           boost::function0<double> getter)
                : PBD::Controllable (name, flags)
                , _setter (setter)
                , _getter (getter)
        {}
-       
-       void set_value (double v) { _setter (v); }
-       double get_value () const { return _getter (); }
-       
+
+        void set_value (double v) { if (_setter (v)) { Changed(); /* EMIT SIGNAL */ } }
+        double get_value () const { return _getter (); }
+
 private:
-       boost::function1<void,double> _setter;
+       boost::function1<bool,double> _setter;
        boost::function0<double> _getter;
 };
-       
+
 } // namespace
 
 #endif /* __libardour_proxy_controllable_h__ */