add new clear-gray color theme
[ardour.git] / gtk2_ardour / meterbridge.h
index e8ab97d93bbec10f984fd2ea91fa87bd5c94322f..a1715b2633941499082b2850a72386d1fe05e1ec 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef __ardour_meterbridge_h__
 #define __ardour_meterbridge_h__
 
+#include <glibmm/thread.h>
+
 #include <gtkmm/box.h>
 #include <gtkmm/scrolledwindow.h>
 #include <gtkmm/label.h>
@@ -76,11 +78,11 @@ class Meterbridge :
 
        void add_strips (ARDOUR::RouteList&);
        void remove_strip (MeterStrip *);
-       void update_metrics ();
 
        void session_going_away ();
-       void sync_order_keys (ARDOUR::RouteSortOrderKey src);
+       void sync_order_keys ();
        void resync_order ();
+       mutable Glib::Threads::Mutex _resync_mutex;
 
        struct MeterBridgeStrip {
                MeterStrip *s;
@@ -105,7 +107,7 @@ class Meterbridge :
                                /* everything comes before b */
                                return true;
                        }
-                       return a->order_key (ARDOUR::MixerSort) < b->order_key (ARDOUR::MixerSort);
+                       return a->presentation_info().order() < b->presentation_info().order();
                }
        };
 
@@ -113,6 +115,7 @@ class Meterbridge :
 
        MeterStrip metrics_left;
        MeterStrip metrics_right;
+       std::vector<MeterStrip *> _metrics;
 
        Gtk::VBox metrics_vpacker_left;
        Gtk::VBox metrics_vpacker_right;
@@ -144,6 +147,12 @@ class Meterbridge :
 
        void parameter_changed (std::string const & p);
        void on_theme_changed ();
+
+       void on_scroll ();
+       sigc::connection scroll_connection;
+
+       int _mm_left, _mm_right;
+       ARDOUR::MeterType _mt_left, _mt_right;
 };
 
 #endif