Make panner tolerate 0 audio inputs (fix #4353).
[ardour.git] / gtk2_ardour / monitor_section.h
index d543ea1acde83d9d708c78c00b71aab3473ad7f3..5d791f332099fea270b351f86a8b3b8f9b8d965a 100644 (file)
@@ -28,6 +28,7 @@
 
 namespace Gtkmm2ext {
         class TearOff;
+        class MotionFeedback;
 }
 
 class VolumeController;
@@ -43,6 +44,8 @@ class MonitorSection : public RouteUI
 
         Gtkmm2ext::TearOff& tearoff() const { return *_tearoff; }
 
+       std::string state_id() const;
+
   private:
         Gtk::VBox vpacker;
         Gtk::HBox hpacker;
@@ -51,7 +54,7 @@ class MonitorSection : public RouteUI
         Gtk::VBox lower_packer;
         Gtkmm2ext::TearOff* _tearoff;
 
-        struct ChannelButtonSet { 
+        struct ChannelButtonSet {
             BindableToggleButton cut;
             BindableToggleButton dim;
             BindableToggleButton solo;
@@ -63,13 +66,9 @@ class MonitorSection : public RouteUI
         typedef std::vector<ChannelButtonSet*> ChannelButtons;
         ChannelButtons _channel_buttons;
 
-        Gtk::Adjustment   gain_adjustment;
         VolumeController* gain_control;
-        Gtk::Adjustment   dim_adjustment;
         VolumeController* dim_control;
-        Gtk::Adjustment   solo_boost_adjustment;
         VolumeController* solo_boost_control;
-        Gtk::Adjustment   solo_cut_adjustment;
         VolumeController* solo_cut_control;
 
         void populate_buttons ();
@@ -98,9 +97,6 @@ class MonitorSection : public RouteUI
         void solo_boost_changed ();
         void gain_value_changed ();
 
-        bool nonlinear_gain_printer (Gtk::SpinButton*);
-        bool linear_gain_printer (Gtk::SpinButton*);
-
         Gtk::RadioButtonGroup solo_model_group;
         Gtk::RadioButton solo_in_place_button;
         Gtk::RadioButton afl_button;
@@ -115,6 +111,7 @@ 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;
@@ -123,13 +120,14 @@ class MonitorSection : public RouteUI
         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 ();
 };