mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 07:14:56 +01:00
Update Selection API to include all Stripables
This commit is contained in:
parent
1cbbbf6aad
commit
7009ff0300
7 changed files with 25 additions and 24 deletions
|
|
@ -5552,15 +5552,15 @@ Editor::foreach_time_axis_view (sigc::slot<void,TimeAxisView&> theslot)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Find a RouteTimeAxisView by the ID of its route */
|
/** Find a StripableTimeAxisView by the ID of its stripable */
|
||||||
RouteTimeAxisView*
|
StripableTimeAxisView*
|
||||||
Editor::get_route_view_by_route_id (const PBD::ID& id) const
|
Editor::get_stripable_time_axis_by_id (const PBD::ID& id) const
|
||||||
{
|
{
|
||||||
RouteTimeAxisView* v;
|
StripableTimeAxisView* v;
|
||||||
|
|
||||||
for (TrackViewList::const_iterator i = track_views.begin(); i != track_views.end(); ++i) {
|
for (TrackViewList::const_iterator i = track_views.begin(); i != track_views.end(); ++i) {
|
||||||
if((v = dynamic_cast<RouteTimeAxisView*>(*i)) != 0) {
|
if((v = dynamic_cast<StripableTimeAxisView*>(*i)) != 0) {
|
||||||
if(v->route()->id() == id) {
|
if(v->stripable()->id() == id) {
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@ public:
|
||||||
void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>);
|
void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>);
|
||||||
void add_to_idle_resize (TimeAxisView*, int32_t);
|
void add_to_idle_resize (TimeAxisView*, int32_t);
|
||||||
|
|
||||||
RouteTimeAxisView* get_route_view_by_route_id (const PBD::ID& id) const;
|
StripableTimeAxisView* get_stripable_time_axis_by_id (const PBD::ID& id) const;
|
||||||
|
|
||||||
void consider_auditioning (boost::shared_ptr<ARDOUR::Region>);
|
void consider_auditioning (boost::shared_ptr<ARDOUR::Region>);
|
||||||
void hide_a_region (boost::shared_ptr<ARDOUR::Region>);
|
void hide_a_region (boost::shared_ptr<ARDOUR::Region>);
|
||||||
|
|
|
||||||
|
|
@ -813,7 +813,7 @@ LuaInstance::register_classes (lua_State* L)
|
||||||
.addFunction ("drags", &PublicEditor::drags)
|
.addFunction ("drags", &PublicEditor::drags)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
.addFunction ("get_route_view_by_route_id", &PublicEditor::get_route_view_by_route_id)
|
.addFunction ("get_stripable_time_axis_by_id", &PublicEditor::get_stripable_time_axis_by_id)
|
||||||
.addFunction ("get_track_views", &PublicEditor::get_track_views)
|
.addFunction ("get_track_views", &PublicEditor::get_track_views)
|
||||||
.addFunction ("rtav_from_route", &PublicEditor::rtav_from_route)
|
.addFunction ("rtav_from_route", &PublicEditor::rtav_from_route)
|
||||||
.addFunction ("axis_views_from_routes", &PublicEditor::axis_views_from_routes)
|
.addFunction ("axis_views_from_routes", &PublicEditor::axis_views_from_routes)
|
||||||
|
|
|
||||||
|
|
@ -1750,11 +1750,11 @@ MixerStrip::build_route_ops_menu ()
|
||||||
sane thing for users anyway.
|
sane thing for users anyway.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
RouteTimeAxisView* rtav = PublicEditor::instance().get_route_view_by_route_id (_route->id());
|
StripableTimeAxisView* stav = PublicEditor::instance().get_stripable_time_axis_by_id (_route->id());
|
||||||
if (rtav) {
|
if (stav) {
|
||||||
Selection& selection (PublicEditor::instance().get_selection());
|
Selection& selection (PublicEditor::instance().get_selection());
|
||||||
if (!selection.selected (rtav)) {
|
if (!selection.selected (stav)) {
|
||||||
selection.set (rtav);
|
selection.set (stav);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_route->is_master()) {
|
if (!_route->is_master()) {
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ class PluginUIWindow;
|
||||||
class RegionView;
|
class RegionView;
|
||||||
class RouteTimeAxisView;
|
class RouteTimeAxisView;
|
||||||
class Selection;
|
class Selection;
|
||||||
|
class StripableTimeAxisView;
|
||||||
class TempoCurve;
|
class TempoCurve;
|
||||||
class TempoMarker;
|
class TempoMarker;
|
||||||
class TimeAxisView;
|
class TimeAxisView;
|
||||||
|
|
@ -354,7 +355,7 @@ public:
|
||||||
|
|
||||||
virtual bool track_selection_change_without_scroll () const = 0;
|
virtual bool track_selection_change_without_scroll () const = 0;
|
||||||
|
|
||||||
virtual RouteTimeAxisView* get_route_view_by_route_id (const PBD::ID& id) const = 0;
|
virtual StripableTimeAxisView* get_stripable_time_axis_by_id (const PBD::ID& id) const = 0;
|
||||||
|
|
||||||
virtual TimeAxisView* time_axis_view_from_stripable (boost::shared_ptr<ARDOUR::Stripable> s) const = 0;
|
virtual TimeAxisView* time_axis_view_from_stripable (boost::shared_ptr<ARDOUR::Stripable> s) const = 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2479,7 +2479,7 @@ RouteTimeAxisView::set_underlay_state()
|
||||||
if (prop) {
|
if (prop) {
|
||||||
PBD::ID id (prop->value());
|
PBD::ID id (prop->value());
|
||||||
|
|
||||||
RouteTimeAxisView* v = _editor.get_route_view_by_route_id (id);
|
StripableTimeAxisView* v = _editor.get_stripable_time_axis_by_id (id);
|
||||||
|
|
||||||
if (v) {
|
if (v) {
|
||||||
add_underlay(v->view(), false);
|
add_underlay(v->view(), false);
|
||||||
|
|
|
||||||
|
|
@ -1138,11 +1138,11 @@ Selection::get_state () const
|
||||||
XMLNode* node = new XMLNode (X_("Selection"));
|
XMLNode* node = new XMLNode (X_("Selection"));
|
||||||
|
|
||||||
for (TrackSelection::const_iterator i = tracks.begin(); i != tracks.end(); ++i) {
|
for (TrackSelection::const_iterator i = tracks.begin(); i != tracks.end(); ++i) {
|
||||||
RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*> (*i);
|
StripableTimeAxisView* stv = dynamic_cast<StripableTimeAxisView*> (*i);
|
||||||
AutomationTimeAxisView* atv = dynamic_cast<AutomationTimeAxisView*> (*i);
|
AutomationTimeAxisView* atv = dynamic_cast<AutomationTimeAxisView*> (*i);
|
||||||
if (rtv) {
|
if (stv) {
|
||||||
XMLNode* t = node->add_child (X_("RouteView"));
|
XMLNode* t = node->add_child (X_("StripableView"));
|
||||||
t->set_property (X_("id"), rtv->route()->id ());
|
t->set_property (X_("id"), stv->stripable()->id ());
|
||||||
} else if (atv) {
|
} else if (atv) {
|
||||||
XMLNode* t = node->add_child (X_("AutomationView"));
|
XMLNode* t = node->add_child (X_("AutomationView"));
|
||||||
t->set_property (X_("id"), atv->parent_stripable()->id ());
|
t->set_property (X_("id"), atv->parent_stripable()->id ());
|
||||||
|
|
@ -1317,11 +1317,11 @@ Selection::set_state (XMLNode const & node, int)
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
RouteTimeAxisView* rtv = editor->get_route_view_by_route_id (route_id); // XXX may also be VCA
|
StripableTimeAxisView* stv = editor->get_stripable_time_axis_by_id (route_id);
|
||||||
vector <ControlPoint *> cps;
|
vector <ControlPoint *> cps;
|
||||||
|
|
||||||
if (rtv) {
|
if (stv) {
|
||||||
boost::shared_ptr<AutomationTimeAxisView> atv = rtv->automation_child (EventTypeMap::instance().from_symbol (param));
|
boost::shared_ptr<AutomationTimeAxisView> atv = stv->automation_child (EventTypeMap::instance().from_symbol (param));
|
||||||
if (atv) {
|
if (atv) {
|
||||||
list<boost::shared_ptr<AutomationLine> > lines = atv->lines();
|
list<boost::shared_ptr<AutomationLine> > lines = atv->lines();
|
||||||
for (list<boost::shared_ptr<AutomationLine> > ::iterator li = lines.begin(); li != lines.end(); ++li) {
|
for (list<boost::shared_ptr<AutomationLine> > ::iterator li = lines.begin(); li != lines.end(); ++li) {
|
||||||
|
|
@ -1387,10 +1387,10 @@ Selection::set_state (XMLNode const & node, int)
|
||||||
assert (false);
|
assert (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
RouteTimeAxisView* rtv = editor->get_route_view_by_route_id (id);
|
StripableTimeAxisView* stv = editor->get_stripable_time_axis_by_id (id);
|
||||||
|
|
||||||
if (rtv) {
|
if (stv) {
|
||||||
boost::shared_ptr<AutomationTimeAxisView> atv = rtv->automation_child (EventTypeMap::instance().from_symbol (param));
|
boost::shared_ptr<AutomationTimeAxisView> atv = stv->automation_child (EventTypeMap::instance().from_symbol (param));
|
||||||
|
|
||||||
/* the automation could be for an entity that was never saved
|
/* the automation could be for an entity that was never saved
|
||||||
in the session file. Don't freak out if we can't find
|
in the session file. Don't freak out if we can't find
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue