ardour/libs
Robin Gareus 19c44fe814
Fix restoring metronome connections (duplicate IO set_state)
When a session is loaded, click_io->set_state is called twice.
setup_click() is called when the engine re/starts, and
possibly again from Session::set_state.

During session construction, Port connections are not directly
made. Port::set_state just creates a list, which is later
applied by Port::reconnect from Session::hookup_io.

However, the second call to IO::set_state() calls IO::ensure_ports
again. Since the port already exists, this calls
Port::disconnect_all (while holding the process lock).

Even though the port is not connected at this point in time,
this triggers a ARDOUR::PortManager::connect_callback which
is emitted from the Audioengine when the process-lock is released.

While IO::set_state() continues to set Port::state, and fill
the Port::_[ext_]connections lists, this data is invalidated
moments later when the engine resumes and ::connect_callback
calls ARDOUR::Port::port_connected_or_disconnected.

The solution is to simply not call Port::disconnect_all
if the connection is not yet made (Session::InitialConnecting)
2023-06-22 13:28:18 +02:00
..
appleutility wscript: drop unnecessary trailing ";" 2022-04-09 12:16:41 +02:00
ardour Fix restoring metronome connections (duplicate IO set_state) 2023-06-22 13:28:18 +02:00
ardouralsautil ARD: shutdown message is not an error 2023-04-27 15:35:22 +02:00
audiographer Fix shaped dither (#9342) 2023-05-22 04:50:19 +02:00
auscan Change tools --help URLs to use https 2022-10-24 04:57:30 +02:00
backends Remove unused backend API 2023-06-21 23:59:49 +02:00
canvas fix measure line drawing (convert to window coords for intersection check) 2023-06-16 09:16:53 -06:00
clearlooks-newer
ctrl-interface Refactor Ctrl Surface API 2023-05-03 15:38:42 +02:00
evoral NO-OP: use Tab to indent 2023-04-01 17:21:32 +02:00
fluidsynth Fix invalid use of Doxygen "@param" command 2022-10-30 20:44:28 -04:00
fst Fix cross-compile linking (libusb - see also 5794d21a76) 2023-05-04 21:31:13 +02:00
gtkmm2ext libpbd: changes to pre-registration of signal emitting threads 2023-04-21 13:43:46 -06:00
hidapi
libltc Fix various typos 2022-08-03 12:10:01 -06:00
lua Add Lua bindings for std::list/vector clear 2023-05-13 17:38:41 +02:00
midi++2 Fix various MMC commands, set request-source 2023-06-04 01:15:02 +02:00
panners switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr 2023-03-24 14:19:15 -06:00
pbd pthread_setname_np is available with GNU/mingw 2023-06-17 23:49:47 +02:00
plugins Fix another lv2core header include 2023-05-07 01:41:01 +02:00
ptformat wscript: remove trailing whitespace 2022-04-09 12:16:37 +02:00
qm-dsp Address some Wmissing-prototypes in qm-dsp 2022-11-26 16:23:52 +01:00
surfaces temporal: hide superclock_t variant of TempoMap::metric_at() 2023-06-12 12:36:16 -06:00
temporal temporal: special case editing of the initial tempo (#9339) 2023-06-12 16:46:13 -06:00
vamp-plugins Fix EBU-R128 loudness analysis for mono signals 2023-02-02 17:58:46 +01:00
vamp-pyin Fix typos 2022-09-21 19:09:55 -06:00
vfork Fix vfork wrapper for macOS 2023-03-25 07:46:47 +01:00
vst3 Ignore Steinberg's non-virtual-d'tor 2023-02-08 02:03:54 +01:00
waveview switch from glib atomic to std::atomic (libs edition) 2023-03-24 14:19:15 -06:00
widgets Prompter: add a reset to default option 2023-05-27 15:15:42 +02:00
zita-convolver
zita-resampler zita-resampler: pass-through data if not configured 2022-05-24 20:41:59 +02:00