13
0

Merge branch 'ardour'

This commit is contained in:
Robin Gareus 2024-08-12 21:45:16 +02:00
commit af42cac8d3
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
4 changed files with 42 additions and 1 deletions

View File

@ -261,6 +261,7 @@ public:
bool cannot_save () const { return _state_of_the_state & CannotSave; }
bool in_cleanup () const { return _state_of_the_state & InCleanup; }
bool inital_connect_or_deletion_in_progress () const { return _state_of_the_state & (InitialConnecting | Deletion); }
bool have_external_connections_for_current_backend (bool tracks_only = true) const;
bool unnamed() const;
void end_unnamed_status () const;

View File

@ -1375,7 +1375,7 @@ DiskReader::playlist_ranges_moved (list<Temporal::RangeMove> const& movements, b
return;
}
/* move panner automation */
/* move panner automation (route owned control) */
std::shared_ptr<Pannable> pannable = _track.pannable ();
Evoral::ControlSet::Controls& c (pannable->controls ());
@ -1395,6 +1395,18 @@ DiskReader::playlist_ranges_moved (list<Temporal::RangeMove> const& movements, b
*alist.get (), &before, &alist->get_state ()));
}
}
/* move mute automation (route owned control) */
std::shared_ptr<AutomationList> alist = _track.mute_control ()->alist ();
if (alist->size ()) {
XMLNode& before = alist->get_state ();
bool const things_moved = alist->move_ranges (movements);
if (things_moved) {
_session.add_command (new MementoCommand<AutomationList> (
*alist.get (), &before, &alist->get_state ()));
}
}
/* move processor automation */
_track.foreach_processor (boost::bind (&DiskReader::move_processor_automation, this, _1, movements));
}

View File

@ -3442,6 +3442,9 @@ LuaBindings::session (lua_State* L)
.addFunction ("unknown_processors", &Session::unknown_processors)
.addFunction ("export_track_state", &Session::export_track_state)
.addFunction ("selection", &Session::selection)
.addFunction ("have_external_connections_for_current_backend", &Session::have_external_connections_for_current_backend)
.addFunction ("unnamed", &Session::unnamed)
.addFunction ("writable", &Session::writable)
.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

View File

@ -8413,6 +8413,31 @@ Session::foreach_route (void (Route::*method)())
}
}
bool
Session::have_external_connections_for_current_backend (bool tracks_only) const
{
std::shared_ptr<RouteList const> rl = routes.reader();
for (auto const& r : *rl) {
if (tracks_only && !std::dynamic_pointer_cast<Track> (r)) {
continue;
}
if (r->is_singleton ()) {
continue;
}
for (auto const& p : *r->input()->ports()) {
if (p->has_ext_connection ()) {
return true;
}
}
for (auto const& p : *r->output()->ports()) {
if (p->has_ext_connection ()) {
return true;
}
}
}
return false;
}
void
Session::enable_virtual_soundcheck ()
{