get "solo safe" back in action again
git-svn-id: svn://localhost/ardour2/branches/3.0@6149 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
3ef1fe2493
commit
7fdfa981b5
@ -398,19 +398,10 @@ RouteUI::solo_press(GdkEventButton* ev)
|
||||
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
|
||||
|
||||
// shift-click: set this route to solo safe
|
||||
// shift-click: toggle solo isolated status
|
||||
|
||||
if (Profile->get_sae() && ev->button == 1) {
|
||||
// button 1 and shift-click: disables solo_latched for this click
|
||||
if (!Config->get_solo_latched ()) {
|
||||
Config->set_solo_latched (true);
|
||||
reversibly_apply_route_boolean ("solo change", &Route::set_solo, !_route->soloed(), this);
|
||||
Config->set_solo_latched (false);
|
||||
}
|
||||
} else {
|
||||
_route->set_solo_isolated (!_route->solo_isolated(), this);
|
||||
wait_for_release = false;
|
||||
}
|
||||
_route->set_solo_isolated (!_route->solo_isolated(), this);
|
||||
wait_for_release = false;
|
||||
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
||||
|
||||
@ -827,6 +818,13 @@ RouteUI::build_solo_menu (void)
|
||||
items.push_back (CheckMenuElem(*check));
|
||||
check->show_all();
|
||||
|
||||
check = new CheckMenuItem(_("Solo Safe"));
|
||||
check->set_active (_route->solo_safe());
|
||||
check->signal_toggled().connect (bind (mem_fun (*this, &RouteUI::toggle_solo_safe), check));
|
||||
_route->solo_safe_changed.connect(bind (mem_fun (*this, &RouteUI::solo_safe_toggle), check));
|
||||
items.push_back (CheckMenuElem(*check));
|
||||
check->show_all();
|
||||
|
||||
//items.push_back (SeparatorElem());
|
||||
// items.push_back (MenuElem (_("MIDI Bind"), mem_fun (*mute_button, &BindableToggleButton::midi_learn)));
|
||||
|
||||
@ -927,6 +925,12 @@ RouteUI::toggle_solo_isolated (Gtk::CheckMenuItem* check)
|
||||
_route->set_solo_isolated (check->get_active(), this);
|
||||
}
|
||||
|
||||
void
|
||||
RouteUI::toggle_solo_safe (Gtk::CheckMenuItem* check)
|
||||
{
|
||||
_route->set_solo_safe (check->get_active(), this);
|
||||
}
|
||||
|
||||
void
|
||||
RouteUI::set_route_group_solo(boost::shared_ptr<Route> route, bool yn)
|
||||
{
|
||||
@ -1231,6 +1235,17 @@ RouteUI::solo_isolated_toggle(void* /*src*/, Gtk::CheckMenuItem* check)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
RouteUI::solo_safe_toggle(void* /*src*/, Gtk::CheckMenuItem* check)
|
||||
{
|
||||
bool yn = _route->solo_safe ();
|
||||
|
||||
if (check->get_active() != yn) {
|
||||
check->set_active (yn);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
RouteUI::disconnect_input ()
|
||||
{
|
||||
|
@ -139,6 +139,9 @@ class RouteUI : public virtual AxisView
|
||||
void solo_isolated_toggle (void*, Gtk::CheckMenuItem*);
|
||||
void toggle_solo_isolated (Gtk::CheckMenuItem*);
|
||||
|
||||
void solo_safe_toggle (void*, Gtk::CheckMenuItem*);
|
||||
void toggle_solo_safe (Gtk::CheckMenuItem*);
|
||||
|
||||
Gtk::CheckMenuItem* pre_fader_mute_check;
|
||||
Gtk::CheckMenuItem* post_fader_mute_check;
|
||||
Gtk::CheckMenuItem* listen_mute_check;
|
||||
|
@ -129,14 +129,17 @@ class Route : public SessionObject, public AutomatableControls
|
||||
*/
|
||||
|
||||
void set_solo (bool yn, void *src);
|
||||
bool soloed () const {return self_soloed () || soloed_by_others (); }
|
||||
|
||||
bool soloed_by_others () const { return !_solo_isolated && _soloed_by_others; }
|
||||
bool self_soloed () const { return _self_solo; }
|
||||
bool soloed () const {return self_soloed () || soloed_by_others (); }
|
||||
|
||||
void set_solo_isolated (bool yn, void *src);
|
||||
bool solo_isolated() const;
|
||||
|
||||
void set_solo_safe (bool yn, void *src);
|
||||
bool solo_safe() const;
|
||||
|
||||
void set_listen (bool yn, void* src);
|
||||
bool listening () const;
|
||||
|
||||
|
@ -521,6 +521,21 @@ Route::listening () const
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Route::set_solo_safe (bool yn, void *src)
|
||||
{
|
||||
if (_solo_safe != yn) {
|
||||
_solo_safe = yn;
|
||||
solo_safe_changed (src);
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
Route::solo_safe() const
|
||||
{
|
||||
return _solo_safe;
|
||||
}
|
||||
|
||||
void
|
||||
Route::set_solo (bool yn, void *src)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user