Age | Commit message (Collapse) | Author |
|
being called as part of a callback from the backend.
If it is, do not call AudioEngine::update_latencies() to avoid JACK1-style deadlock
|
|
AudioEngine::update_latencies() from update_latency_compensation() if called from a process thread
|
|
|
|
Session::update_latency_compensation().
Only when using JACK1 is ::update_latencies() a synchronous call (ending up in Session::update_latency() which tries to take the
same lock). But the semantics of ::update_latencies() are sufficiently ill-defined that entering that call with a lock held
seems like a bad idea, so we release the lock unconditionally here.
|
|
|
|
disconnected from the engine
We use those objects unconditionally and without caching inside process(), which could be invoked by the engine during their
deletion
|
|
Remove need for explicit `initialize_latencies` call that used
to be called from GUI-thread post_engine_init(), as well as
Session::engine_running().
Further reduce calls, `graph_reordered` implies a latency-update
and fix ordering issue. update_latency_compensation() must be called
*after* resort_routes().
|
|
|
|
|
|
associated call tree)
|
|
|
|
|
|
|
|
|
|
|
|
This is in preparation for MixbusSends that are not derived from
Delivery : IOProcessor.
|
|
Still need to use boost::intrusive to managed qeued/deferred containers
|
|
This fixes some static analysis warnings:
PBD::fatal transmitter needs to be connected to a function
that aborts. This is usually the case with GUI
|
|
|
|
Retain ".pending" files until explicit save or session destruction.
Previously every transport-stop deleted them :(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rough-in: Region-Tags.
More correct implementation of tags property (libardour).
Region Tags (libardour part)
|
|
|
|
|
|
Assume the following connections
Audio -> Bus1 --aux-send--> Bus2
Prior to this commit, Audio -> Bus2 was marked as "direct feed",
even though the connection was only indirect via an aux-send.
This caused issues with implicit solo and could lead to stuck solo.
|
|
|
|
|
|
|
|
* shift event time into process cycle before calling processors
* reset note-trackers when exporting, don't allow any pending
events into the queue
|
|
This is to prepare for midi-to-audio bounce: allow to change the
data-type to be used as output.
|
|
|
|
This isn't strictly speaking needed, there are only a handful of
users (most notably generic-midi ctrl surface, and Selection)
|
|
is correct when duplicating tracks.
Confusing because orig_track_id is still being switched to the
NEW track, and shared_with refers to the OLD one
|
|
This also fixes #7674
|
|
Global variables that can written by anyone are to be avoided.
This also simplifies exposing SessionPlaylists as Lua bindings.
|
|
|
|
No need to reconfigure routes due to removal of monitor or aux
send/return. The processors will be removed with the route.
|
|
|
|
|
|
Listen positions are already correctly set when the route state
is restored. The Route directly uses the Config.
This skips duplicate calls to re-configure all processors on all Routes
during RCConfiguration::map_parameters() on session-load, twice
(pfl-position, listen-position)
|
|
This partially reverts 639dff3a7c7. When loading a session,
the monitor-bus that was saved with the session is used.
This changes semantics of the monitor-section/config.
Config::set_use_monitor_bus(bool) is used to initiate a change!
Notification about the change is sent asynchronously by
Session::MonitorBusAddedOrRemoved
It is no longer possible to directly call add/remove_monitor_section()
and leave the session + config in an inconsistent state.
|
|
|
|
|
|
available(), connected(), running() were ill-defined and
used interchangeably.
|
|
Session::new_route_from_template() unconditionally calls
IO::disable_connecting(), and needs to be reverted likewise
(no RAII here).
|