13
0
livetrax/libs
Robin Gareus a3a30e39df
Fix silent stem export channels (#9294)
When toggling a channel-configs the following happens:

 1. TrackExportChannelSelector::update_config
 2. ExportProfileManager::clear_channel_configs
 3. RouteExportChannel::create_from_route
[...] CriticalSelectionChanged
 4. ExportDialog::update_warnings_and_example_filename
 5. ARDOUR::ExportProfileManager::get_warnings
 6. ARDOUR::ExportProfileManager::build_filenames
 7. ARDOUR::ExportFilename::set_channel_config
[...]


Step 3 creates a RouteExportChannel, Step 7 retains a
shared-pointer to it in the config's ExportFilenamePtr.
When toggling another channel: step 2 release the reference
and step 3 creates a new RouteExportChannel.
This new channel reuses the existing Route::_capture_processor (!).

Now Step 7 releases the first RouteExportChannel in order
to get_warnings for the new one. Since ExportFilenamePtr holds the
the last reference, the d'tor of RouteExportChannel runs,
which removes the capture-processor from the route.

The newly created RouteExportChannel now has a reference
to a CaptureProcessor that is not in the signal-flow.


Note: the order of adding/removing RouteExportChannel matters.
With a two track session:
 * Disable "with track/bus processing
 * Enable Track 1
 * Enable Track 2
 * Disable Track 1
 * Enable Track 1 // << Track 2 becomes silent
2023-04-03 15:53:50 +02:00
..
appleutility
ardour Fix silent stem export channels (#9294) 2023-04-03 15:53:50 +02:00
ardouralsautil Distinct stderr messages from ARD 2022-09-12 16:15:10 +02:00
audiographer switch from glib atomic to std::atomic (libs edition) 2023-03-24 14:19:15 -06:00
auscan Change tools --help URLs to use https 2022-10-24 04:57:30 +02:00
backends std::atomic - 2nd batch of changes to convert from glib to std::atomic 2023-03-24 14:19:15 -06:00
canvas Revert "canvas: when an item is shown, potentially pick it as the current item" 2023-03-30 09:54:56 -06:00
clearlooks-newer
ctrl-interface switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr 2023-03-24 14:19:15 -06: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 Consolidate search/file-system paths (fixes vst builds) 2022-11-19 00:48:11 +01:00
gtkmm2ext gtkmm2ext Catalan file 2023-03-28 01:39:54 +02:00
hidapi
libltc Fix various typos 2022-08-03 12:10:01 -06:00
lua switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr 2023-03-24 14:19:15 -06:00
midi++2 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr 2023-03-24 14:19:15 -06:00
panners switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr 2023-03-24 14:19:15 -06:00
pbd Allow concurrent child processes 2023-03-25 06:43:46 +01:00
plugins a-eq: ifdef methods only used for inline display 2022-12-16 23:05:36 +01:00
ptformat
qm-dsp Address some Wmissing-prototypes in qm-dsp 2022-11-26 16:23:52 +01:00
surfaces Remove explicit well-known ctrl enum string functions 2023-03-29 17:32:22 +02:00
temporal Add missing include 2023-03-30 01:10:23 +02: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 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr 2023-03-24 14:19:15 -06:00
zita-convolver
zita-resampler