mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-10 16:46:35 +01:00
Use StripableTAV to inform Ctrl surfaces about selection.
This commit is contained in:
parent
f1ae16fe8f
commit
031e02d9e7
1 changed files with 10 additions and 19 deletions
|
|
@ -203,36 +203,26 @@ Editor::set_selected_mixer_strip (TimeAxisView& view)
|
||||||
// if this is an automation track, then we shold the mixer strip should
|
// if this is an automation track, then we shold the mixer strip should
|
||||||
// show the parent
|
// show the parent
|
||||||
|
|
||||||
boost::shared_ptr<ARDOUR::Route> route;
|
boost::shared_ptr<ARDOUR::Stripable> stripable;
|
||||||
AutomationTimeAxisView* atv;
|
AutomationTimeAxisView* atv;
|
||||||
|
|
||||||
if ((atv = dynamic_cast<AutomationTimeAxisView*>(&view)) != 0) {
|
if ((atv = dynamic_cast<AutomationTimeAxisView*>(&view)) != 0) {
|
||||||
|
|
||||||
AudioTimeAxisView *parent = dynamic_cast<AudioTimeAxisView*>(view.get_parent());
|
AudioTimeAxisView *parent = dynamic_cast<AudioTimeAxisView*>(view.get_parent());
|
||||||
|
|
||||||
if (parent) {
|
if (parent) {
|
||||||
route = parent->route ();
|
stripable = parent->stripable ();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
StripableTimeAxisView* stav = dynamic_cast<StripableTimeAxisView*> (&view);
|
||||||
AudioTimeAxisView* at = dynamic_cast<AudioTimeAxisView*> (&view);
|
if (stav) {
|
||||||
|
stripable = stav->stripable();
|
||||||
if (at) {
|
|
||||||
route = at->route();
|
|
||||||
} else {
|
|
||||||
MidiTimeAxisView* mt = dynamic_cast<MidiTimeAxisView*> (&view);
|
|
||||||
if (mt) {
|
|
||||||
route = mt->route();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Typically this is set by changing the TAV selection but if for any
|
/* Typically this is set by changing the TAV selection but if for any
|
||||||
reason we decide to show a different strip for some reason, make
|
* reason we decide to show a different strip for some reason, make
|
||||||
sure that control surfaces can find it.
|
* sure that control surfaces can find it.
|
||||||
*/
|
*/
|
||||||
ARDOUR::ControlProtocol::set_first_selected_stripable (route);
|
ARDOUR::ControlProtocol::set_first_selected_stripable (stripable);
|
||||||
|
|
||||||
Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (X_("Editor"), X_("show-editor-mixer"));
|
Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (X_("Editor"), X_("show-editor-mixer"));
|
||||||
|
|
||||||
|
|
@ -248,6 +238,7 @@ Editor::set_selected_mixer_strip (TimeAxisView& view)
|
||||||
create_editor_mixer ();
|
create_editor_mixer ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<ARDOUR::Route> route = boost::dynamic_pointer_cast<ARDOUR::Route> (stripable);
|
||||||
if (current_mixer_strip->route() == route) {
|
if (current_mixer_strip->route() == route) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue