Use std::string instead of PBD::sys::path in pbd/search_path.h, pbd/file_utils.h...
[ardour.git] / gtk2_ardour / automation_controller.h
index 05170b2a6bf5d45f4b4c0863ed164cea07c9d726..88e6d87e01ca7c9b8ba9160ff706f24bb124469a 100644 (file)
@@ -1,6 +1,6 @@
 /*
     Copyright (C) 2007 Paul Davis
-    Author: Dave Robillard
+    Author: David Robillard
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
 #include <boost/shared_ptr.hpp>
 #include <gtkmm.h>
-#include <gtkmm2ext/barcontroller.h>
+
+#include "gtkmm2ext/barcontroller.h"
+#include "pbd/signals.h"
+#include "evoral/Parameter.hpp"
 
 namespace ARDOUR {
        class Session;
@@ -32,7 +35,7 @@ namespace ARDOUR {
        class Automatable;
 }
 
-
+/** A BarController which displays the value and allows control of an AutomationControl */
 class AutomationController : public Gtkmm2ext::BarController {
 public:
        static boost::shared_ptr<AutomationController> create(
@@ -49,20 +52,23 @@ public:
        void display_effective_value();
        void value_adjusted();
 
+       void stop_updating ();
+
 private:
-       AutomationController (boost::shared_ptr<ARDOUR::AutomationControl> ac, Gtk::Adjustment* adj);
-       std::string get_label (int&);
+       AutomationController (boost::shared_ptr<ARDOUR::Automatable> printer, boost::shared_ptr<ARDOUR::AutomationControl> ac, Gtk::Adjustment* adj);
+       std::string get_label (double&);
 
        void start_touch();
        void end_touch();
 
        void value_changed();
-       void automation_state_changed();
 
        bool                                         _ignore_change;
+        boost::shared_ptr<ARDOUR::Automatable>       _printer;
        boost::shared_ptr<ARDOUR::AutomationControl> _controllable;
        Gtk::Adjustment*                             _adjustment;
        sigc::connection                             _screen_update_connection;
+       PBD::ScopedConnection                        _changed_connection;
 };