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)) {
|
} 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) {
|
_route->set_solo_isolated (!_route->solo_isolated(), this);
|
||||||
// button 1 and shift-click: disables solo_latched for this click
|
wait_for_release = false;
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
||||||
|
|
||||||
|
@ -827,6 +818,13 @@ RouteUI::build_solo_menu (void)
|
||||||
items.push_back (CheckMenuElem(*check));
|
items.push_back (CheckMenuElem(*check));
|
||||||
check->show_all();
|
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 (SeparatorElem());
|
||||||
// items.push_back (MenuElem (_("MIDI Bind"), mem_fun (*mute_button, &BindableToggleButton::midi_learn)));
|
// 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);
|
_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
|
void
|
||||||
RouteUI::set_route_group_solo(boost::shared_ptr<Route> route, bool yn)
|
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
|
void
|
||||||
RouteUI::disconnect_input ()
|
RouteUI::disconnect_input ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -139,6 +139,9 @@ class RouteUI : public virtual AxisView
|
||||||
void solo_isolated_toggle (void*, Gtk::CheckMenuItem*);
|
void solo_isolated_toggle (void*, Gtk::CheckMenuItem*);
|
||||||
void toggle_solo_isolated (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* pre_fader_mute_check;
|
||||||
Gtk::CheckMenuItem* post_fader_mute_check;
|
Gtk::CheckMenuItem* post_fader_mute_check;
|
||||||
Gtk::CheckMenuItem* listen_mute_check;
|
Gtk::CheckMenuItem* listen_mute_check;
|
||||||
|
|
|
@ -129,14 +129,17 @@ class Route : public SessionObject, public AutomatableControls
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void set_solo (bool yn, void *src);
|
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 soloed_by_others () const { return !_solo_isolated && _soloed_by_others; }
|
||||||
bool self_soloed () const { return _self_solo; }
|
bool self_soloed () const { return _self_solo; }
|
||||||
bool soloed () const {return self_soloed () || soloed_by_others (); }
|
|
||||||
|
|
||||||
void set_solo_isolated (bool yn, void *src);
|
void set_solo_isolated (bool yn, void *src);
|
||||||
bool solo_isolated() const;
|
bool solo_isolated() const;
|
||||||
|
|
||||||
|
void set_solo_safe (bool yn, void *src);
|
||||||
|
bool solo_safe() const;
|
||||||
|
|
||||||
void set_listen (bool yn, void* src);
|
void set_listen (bool yn, void* src);
|
||||||
bool listening () const;
|
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
|
void
|
||||||
Route::set_solo (bool yn, void *src)
|
Route::set_solo (bool yn, void *src)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user