Prefer testing the session instead of using a global variable
[ardour.git] / gtk2_ardour / meterbridge.h
index cca31d370c21beeab21ca09892f17d4f3b83760d..b741f6fd74f9f67c31cc9c55fb503ee25ecdfd72 100644 (file)
@@ -44,7 +44,7 @@ class Meterbridge :
        public ARDOUR::SessionHandlePtr,
        public Gtkmm2ext::VisibilityTracker
 {
-  public:
+public:
        static Meterbridge* instance();
        ~Meterbridge();
 
@@ -56,7 +56,7 @@ class Meterbridge :
        void show_window ();
        bool hide_window (GdkEventAny *ev);
 
-  private:
+private:
        Meterbridge ();
        static Meterbridge* _instance;
 
@@ -80,7 +80,7 @@ class Meterbridge :
        void remove_strip (MeterStrip *);
 
        void session_going_away ();
-       void sync_order_keys (ARDOUR::RouteSortOrderKey src);
+       void sync_order_keys ();
        void resync_order ();
        mutable Glib::Threads::Mutex _resync_mutex;
 
@@ -94,7 +94,8 @@ class Meterbridge :
                }
        };
 
-       struct MeterOrderRouteSorter {
+       struct MeterOrderRouteSorter
+       {
                bool operator() (struct MeterBridgeStrip ma, struct MeterBridgeStrip mb) {
                        boost::shared_ptr<ARDOUR::Route> a = ma.s->route();
                        boost::shared_ptr<ARDOUR::Route> b = mb.s->route();
@@ -107,7 +108,7 @@ class Meterbridge :
                                /* everything comes before b */
                                return true;
                        }
-                       return a->order_key (ARDOUR::MixerSort) < b->order_key (ARDOUR::MixerSort);
+                       return ARDOUR::Stripable::Sorter (true) (a, b);
                }
        };
 
@@ -147,6 +148,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