diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-02-11 22:44:55 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-02-11 22:44:55 +0000 |
commit | 8e79cd5610789b377d0975640a555cc45d9300cb (patch) | |
tree | bc23a75849eee38e0dd14c28718f5192b9485732 /libs | |
parent | 60d516dad6b6aa3dad954c171486eb63b112a3c6 (diff) |
This one's for oofus: optionally show solo mute status (FEATURE FREEZE my ass!)
git-svn-id: svn://localhost/ardour2/trunk@1448 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/configuration_vars.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/route.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 1 | ||||
-rw-r--r-- | libs/ardour/session.cc | 4 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/stateful_button.h | 4 | ||||
-rw-r--r-- | libs/gtkmm2ext/stateful_button.cc | 11 |
6 files changed, 15 insertions, 8 deletions
diff --git a/libs/ardour/ardour/configuration_vars.h b/libs/ardour/ardour/configuration_vars.h index 703352b305..9e69114d9f 100644 --- a/libs/ardour/ardour/configuration_vars.h +++ b/libs/ardour/ardour/configuration_vars.h @@ -62,6 +62,7 @@ CONFIG_VARIABLE (SoloModel, solo_model, "solo-model", InverseMute) CONFIG_VARIABLE (bool, solo_latched, "solo-latched", true) CONFIG_VARIABLE (bool, latched_record_enable, "latched-record-enable", false) CONFIG_VARIABLE (bool, all_safe, "all-safe", false) +CONFIG_VARIABLE (bool, show_solo_mutes, "show-solo-mutes", false) /* click */ diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index d4f94ed744..12f6dfd56a 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -121,6 +121,7 @@ class Route : public IO void set_mute (bool yn, void *src); bool muted() const { return _muted; } + bool solo_muted() const { return desired_solo_gain == 0.0; } void set_mute_config (mute_type, bool, void *src); bool get_mute_config (mute_type); @@ -256,7 +257,6 @@ class Route : public IO bool _muted : 1; bool _soloed : 1; - bool _solo_muted : 1; bool _solo_safe : 1; bool _phase_invert : 1; bool _recordable : 1; diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 92687c7dc0..66c2bc4fee 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -663,6 +663,7 @@ class Session : public PBD::StatefulDestructible void set_all_mute (bool); sigc::signal<void,bool> SoloActive; + sigc::signal<void> SoloChanged; void record_disenable_all (); void record_enable_all (); diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 9b09f45ee8..4a896d80ac 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2125,9 +2125,11 @@ Session::route_solo_changed (void* src, boost::weak_ptr<Route> wpr) modify_solo_mute (is_track, same_thing_soloed); if (signal) { - SoloActive (currently_soloing); + SoloActive (currently_soloing); /* EMIT SIGNAL */ } + SoloChanged (); /* EMIT SIGNAL */ + set_dirty(); } diff --git a/libs/gtkmm2ext/gtkmm2ext/stateful_button.h b/libs/gtkmm2ext/gtkmm2ext/stateful_button.h index fc62bd2999..00ae766645 100644 --- a/libs/gtkmm2ext/gtkmm2ext/stateful_button.h +++ b/libs/gtkmm2ext/gtkmm2ext/stateful_button.h @@ -36,13 +36,15 @@ class StateButton void set_colors (const std::vector<Gdk::Color>& colors); void set_visual_state (int); int get_visual_state () { return visual_state; } + void set_self_managed (bool yn) { _self_managed = yn; } protected: std::vector<Gdk::Color> colors; int visual_state; Gdk::Color saved_bg; bool have_saved_bg; - + bool _self_managed; + virtual void bg_modify (Gtk::StateType, Gdk::Color) = 0; }; diff --git a/libs/gtkmm2ext/stateful_button.cc b/libs/gtkmm2ext/stateful_button.cc index 6cc24de461..000b7b8ea1 100644 --- a/libs/gtkmm2ext/stateful_button.cc +++ b/libs/gtkmm2ext/stateful_button.cc @@ -95,10 +95,11 @@ StatefulButton::on_realize () void StatefulToggleButton::on_toggled () { - if (get_active()) { - set_visual_state (1); - } else { - set_visual_state (0); + if (!_self_managed) { + if (get_active()) { + set_visual_state (1); + } else { + set_visual_state (0); + } } - } |