new libardour API for Session::new_route_from_template to allow specifying insertion point

This commit is contained in:
Paul Davis 2016-08-22 09:41:08 -04:00
parent ae32f44dc9
commit 636522bd79
3 changed files with 9 additions and 8 deletions

View File

@ -245,8 +245,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
* @param pd Playlist disposition * @param pd Playlist disposition
* @return list of newly created routes * @return list of newly created routes
*/ */
RouteList new_route_from_template (uint32_t how_many, const std::string& template_path, const std::string& name, PlaylistDisposition pd = NewPlaylist); RouteList new_route_from_template (uint32_t how_many, PresentationInfo::order_t insert_at, const std::string& template_path, const std::string& name, PlaylistDisposition pd = NewPlaylist);
RouteList new_route_from_template (uint32_t how_many, XMLNode&, const std::string& name, PlaylistDisposition pd = NewPlaylist); RouteList new_route_from_template (uint32_t how_many, PresentationInfo::order_t insert_at, XMLNode&, const std::string& name, PlaylistDisposition pd = NewPlaylist);
std::vector<std::string> get_paths_for_new_sources (bool allow_replacing, const std::string& import_file_path, uint32_t channels); std::vector<std::string> get_paths_for_new_sources (bool allow_replacing, const std::string& import_file_path, uint32_t channels);
int bring_all_sources_into_session (boost::function<void(uint32_t,uint32_t,std::string)> callback); int bring_all_sources_into_session (boost::function<void(uint32_t,uint32_t,std::string)> callback);

View File

@ -1565,7 +1565,7 @@ LuaBindings::session (lua_State* L)
.addFunction ("set_dirty", &Session::set_dirty) .addFunction ("set_dirty", &Session::set_dirty)
.addFunction ("unknown_processors", &Session::unknown_processors) .addFunction ("unknown_processors", &Session::unknown_processors)
.addFunction<RouteList (Session::*)(uint32_t, const std::string&, const std::string&, PlaylistDisposition)> ("new_route_from_template", &Session::new_route_from_template) .addFunction<RouteList (Session::*)(uint32_t, PresentationInfo::order_t, const std::string&, const std::string&, PlaylistDisposition)> ("new_route_from_template", &Session::new_route_from_template)
// TODO session_add_audio_track session_add_midi_track session_add_mixed_track // TODO session_add_audio_track session_add_midi_track session_add_mixed_track
//.addFunction ("new_midi_track", &Session::new_midi_track) //.addFunction ("new_midi_track", &Session::new_midi_track)
.endClass () .endClass ()

View File

@ -3158,7 +3158,8 @@ Session::new_audio_route (int input_channels, int output_channels, RouteGroup* r
} }
RouteList RouteList
Session::new_route_from_template (uint32_t how_many, const std::string& template_path, const std::string& name_base, PlaylistDisposition pd) Session::new_route_from_template (uint32_t how_many, PresentationInfo::order_t insert_at, const std::string& template_path, const std::string& name_base,
PlaylistDisposition pd)
{ {
XMLTree tree; XMLTree tree;
@ -3166,11 +3167,11 @@ Session::new_route_from_template (uint32_t how_many, const std::string& template
return RouteList(); return RouteList();
} }
return new_route_from_template (how_many, *tree.root(), name_base, pd); return new_route_from_template (how_many, insert_at, *tree.root(), name_base, pd);
} }
RouteList RouteList
Session::new_route_from_template (uint32_t how_many, XMLNode& node, const std::string& name_base, PlaylistDisposition pd) Session::new_route_from_template (uint32_t how_many, PresentationInfo::order_t insert_at, XMLNode& node, const std::string& name_base, PlaylistDisposition pd)
{ {
RouteList ret; RouteList ret;
uint32_t number = 0; uint32_t number = 0;
@ -3340,9 +3341,9 @@ Session::new_route_from_template (uint32_t how_many, XMLNode& node, const std::s
if (!ret.empty()) { if (!ret.empty()) {
StateProtector sp (this); StateProtector sp (this);
if (Profile->get_trx()) { if (Profile->get_trx()) {
add_routes (ret, false, false, false, PresentationInfo::max_order); add_routes (ret, false, false, false, insert_at);
} else { } else {
add_routes (ret, true, true, false, PresentationInfo::max_order); add_routes (ret, true, true, false, insert_at);
} }
IO::enable_connecting (); IO::enable_connecting ();
} }