GenericUI: subscribe to property changes before querying values
[ardour.git] / gtk2_ardour / automation_controller.h
index 170e49ae0776451962617a95bff946128972d8a0..12b31f6d86a067cafa4b7f937b53189dd3685062 100644 (file)
 #endif
 
 #include <boost/shared_ptr.hpp>
-#include <gtkmm.h>
 
-#include "gtkmm2ext/barcontroller.h"
+#include <gtkmm/alignment.h>
+
 #include "pbd/signals.h"
 #include "evoral/Parameter.hpp"
+#include "widgets/barcontroller.h"
 
 namespace ARDOUR {
        class Session;
@@ -41,7 +42,12 @@ namespace ARDOUR {
        class AutomationControl;
 }
 
-class AutomationBarController : public Gtkmm2ext::BarController {
+namespace Gtk {
+       class Adjustment;
+       class Widget;
+}
+
+class AutomationBarController : public ArdourWidgets::BarController {
 public:
        AutomationBarController(boost::shared_ptr<ARDOUR::AutomationControl> ac,
                                Gtk::Adjustment*                             adj);
@@ -69,7 +75,8 @@ public:
        Gtk::Adjustment* adjustment() { return _adjustment; }
        Gtk::Widget*     widget()     { return _widget; }
 
-       void display_effective_value();
+       void display_effective_value ();
+       void automation_state_changed ();
        void value_adjusted();
 
        void stop_updating ();
@@ -93,7 +100,7 @@ private:
        boost::shared_ptr<ARDOUR::AutomationControl> _controllable;
        Gtk::Adjustment*                             _adjustment;
        sigc::connection                             _screen_update_connection;
-       PBD::ScopedConnection                        _changed_connection;
+       PBD::ScopedConnectionList                    _changed_connections;
        bool                                         _ignore_change;
 };