Show a region's sources in its properties dialogue.
[ardour.git] / gtk2_ardour / monitor_section.h
index 0a8909def8440e5aaf63051cfb21aadf8402bedf..b3edb624b9862101cd24ff6f288ffe8fdc148a00 100644 (file)
@@ -38,19 +38,17 @@ class MonitorSection : public RouteUI
         MonitorSection (ARDOUR::Session*);
         ~MonitorSection ();
 
-        Gtk::Widget& pack_widget () const;
-        void fast_update ();
+        void set_session (ARDOUR::Session*);
         static void setup_knob_images ();
 
+        Gtkmm2ext::TearOff& tearoff() const { return *_tearoff; }
+
   private:
         Gtk::VBox vpacker;
         Gtk::HBox hpacker;
         Gtk::Table main_table;
         Gtk::VBox upper_packer;
         Gtk::VBox lower_packer;
-        Gtk::VBox table_knob_packer;
-        Gtk::HBox knob_packer;
-        LevelMeter meter;
         Gtkmm2ext::TearOff* _tearoff;
 
         struct ChannelButtonSet { 
@@ -71,6 +69,8 @@ class MonitorSection : public RouteUI
         VolumeController* dim_control;
         Gtk::Adjustment   solo_boost_adjustment;
         VolumeController* solo_boost_control;
+        Gtk::Adjustment   solo_cut_adjustment;
+        VolumeController* solo_cut_control;
 
         void populate_buttons ();
        void set_button_names ();
@@ -92,6 +92,8 @@ class MonitorSection : public RouteUI
         void dim_all ();
         void cut_all ();
         void mono ();
+        void toggle_exclusive_solo ();
+        void toggle_mute_overrides_solo ();
         void dim_level_changed ();
         void solo_boost_changed ();
         void gain_value_changed ();
@@ -113,7 +115,24 @@ class MonitorSection : public RouteUI
         BindableToggleButton dim_all_button;
         BindableToggleButton mono_button;
         BindableToggleButton rude_solo_button;
+        BindableToggleButton rude_iso_button;
+        BindableToggleButton rude_audition_button;
+        BindableToggleButton exclusive_solo_button;
+        BindableToggleButton solo_mute_override_button;
 
+        void do_blink (bool);
         void solo_blink (bool);
+        void audition_blink (bool);
         bool cancel_solo (GdkEventButton*);
+        bool cancel_isolate (GdkEventButton*);
+        bool cancel_audition (GdkEventButton*);
+        void solo_cut_changed ();
+        void update_solo_model ();
+        void parameter_changed (std::string);
+        void isolated_changed ();
+
+        PBD::ScopedConnection config_connection;
+        PBD::ScopedConnectionList control_connections;
+        
+        void assign_controllables ();
 };