Add missing snap-to actions to the main menu so that their keyboard accelerators...
[ardour.git] / gtk2_ardour / level_meter.h
index a2bbd5f4a1089873d7ecbb625216e593c504889d..6b3c33cac514ff113c6889e25801824a527f0195 100644 (file)
@@ -31,6 +31,8 @@
 #include <gtkmm/drawingarea.h>
 
 #include "ardour/types.h"
+#include "ardour/chan_count.h"
+#include "ardour/session_handle.h"
 
 #include <gtkmm2ext/click_box.h>
 #include <gtkmm2ext/focus_entry.h>
@@ -49,10 +51,10 @@ namespace Gtk {
        class Menu;
 }
 
-class LevelMeter : public Gtk::HBox
+class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 {
   public:
-       LevelMeter (ARDOUR::Session&);
+       LevelMeter (ARDOUR::Session*);
        ~LevelMeter ();
 
        virtual void set_meter (ARDOUR::PeakMeter* meter);
@@ -66,21 +68,20 @@ class LevelMeter : public Gtk::HBox
        void setup_meters (int len=0, int width=3);
 
   private:
-       ARDOUR::Session&   _session;
        ARDOUR::PeakMeter* _meter;
-
+       
        Width _width;
 
        struct MeterInfo {
            Gtkmm2ext::FastMeter *meter;
            gint16                width;
-               int                               length;   
+            int                          length;
            bool                  packed;
-           
-           MeterInfo() { 
+
+           MeterInfo() {
                    meter = 0;
                    width = 0;
-                       length = 0;
+                    length = 0;
                    packed = false;
            }
        };
@@ -91,8 +92,9 @@ class LevelMeter : public Gtk::HBox
        std::vector<MeterInfo> meters;
        float                  max_peak;
 
-       sigc::connection _configuration_connection;
-       
+       PBD::ScopedConnection _configuration_connection;
+       PBD::ScopedConnection _parameter_connection;
+
        void hide_all_meters ();
        gint meter_button_release (GdkEventButton*, uint32_t);