Commit graph

20287 commits

Author SHA1 Message Date
Robin Gareus
f3ee7fdf88
Fix crash when trying to undo region operations across source deletion
Record, move recorded region(s), delete the recorded source, undo.

Undo would undo the region-move, of a region that no longer
exists and has no source.
2023-05-31 15:46:59 +02:00
Robin Gareus
f58f5bef55
Remove region from playlist when the source is destroyed
This fixes the following issue:
1. Import a file to a new track
2. Delete the track
3. Editor Source list: select imported file,
   -> Remove the selected source
   -> Yes, remove the Regions and Sources

The Track and Region no longer exist in the Editor,
only the playlist still exists!

The sources to be deleted are found when iterating over whole-file
regions in `EditorSources::remove_selected_sources`. Also
RegionFactory::get_regions_using_source correctly returns
regions, _editor->remove_regions does nothing since there
is no RegionView for the given region(s). This then cashes in

```
libs/ardour/playlist.cc:2400: virtual XMLNode& ARDOUR::Playlist::state(bool) const: Assertion `r->sources ().size () > 0 && r->master_sources ().size () > 0' failed.
```
2023-05-31 15:39:00 +02:00
Robin Gareus
5a0531df01
Sync all_regions after region removal
The eventual goal is to keep the set of used regions
in sync, and allow to remove explicit calls to
`sync_all_regions_with_regions`.

This prevents `all_regions` to retain a reference to
a region that has been destroyed.
2023-05-31 01:20:29 +02:00
Robin Gareus
bfed3f5d42
NO-OP: white-space 2023-05-31 01:16:15 +02:00
Robin Gareus
f07361b34e
Session::add_source cannot fail 2023-05-31 01:15:28 +02:00
Robin Gareus
d7f631757a
Tweak Source removal
* Do not emit signal with source-lock mutex held
* explicitly drop references when called directly; notably from
  EditorSources::remove_selected_sources
2023-05-31 01:14:53 +02:00
Robin Gareus
331efe835f
Debug region/source removal 2023-05-30 18:19:48 +02:00
Robin Gareus
39ac0c5e19
Remove unused Region::remove_dependents API 2023-05-28 01:52:42 +02:00
Robin Gareus
58b98e8c5c
Prompter: add a reset to default option 2023-05-27 15:15:42 +02:00
Robin Gareus
10b2380b14
Fix deadlock/race introduced in aaf301321
Port::_connections_lock must not be locked when calling
port_engine.connect().
2023-05-27 14:18:31 +02:00
Robin Gareus
abd27b765e
Remove some unused variables 2023-05-27 14:14:01 +02:00
Robin Gareus
b6428b421f
Fix Region Export alignment
Session::start_audio_export correctly sets preroll offset
depending on export-mode. A later locate must not change it.
2023-05-27 02:21:40 +02:00
Robin Gareus
d5cc5b0586
Auto-connect master/monitor when switching backends 2023-05-27 00:08:48 +02:00
Robin Gareus
aaf3013211
Save I/O connections per device (#9344) 2023-05-27 00:08:25 +02:00
Robin Gareus
c11f8532ca
Add API to query backend/driver/device ID 2023-05-26 23:02:06 +02:00
Robin Gareus
42caef16bc
Delay MIDI-bypass for latent plugins 2023-05-26 19:17:56 +02:00
Robin Gareus
4c4138ff37
Optimize delaylines and implement multiple-MIDI buffers 2023-05-26 19:17:53 +02:00
Robin Gareus
28785e4fc0
Fix delayline x-fade with buffers <= 64fpp
Previously increasing the delay-time by more than FADE_LEN
while buffersize was < FADE_LEN/2 could result in garbage being
added to the buffer.
2023-05-26 19:17:46 +02:00
Robin Gareus
84e38b4c65
Fix PF16 auto-connect 2023-05-24 23:01:34 +02:00
Robin Gareus
11157d9bd9
Fix some Wunused-variable 2023-05-22 21:26:26 +02:00
Robin Gareus
d85277f532
NO-OP: clang-format, whitespace 2023-05-22 21:07:36 +02:00
Ben Loftis
c452a4816c tempo mapping: Re-implement tempo-twist with constant and ramped varieties (lib part) 2023-05-22 13:32:53 -05:00
Robin Gareus
f1f352a6e9
Fix shaped dither (#9342) 2023-05-22 04:50:19 +02:00
Robin Gareus
e9dc1335f9
NO-OP: clang-format 2023-05-22 04:50:13 +02:00
Robin Gareus
dd9f9ef19d
When synced to engine vari-speed is not possible 2023-05-19 23:28:32 +02:00
Robin Gareus
2041979f85
Add more session-archive error messages, abort if encoding fails 2023-05-19 16:15:05 +02:00
Robin Gareus
edcf850aaf
Fix Wformat 2023-05-19 06:16:49 +02:00
Robin Gareus
25f8eea162
Allow to cancel session archive process 2023-05-19 03:08:37 +02:00
Robin Gareus
c9929698ee
Implement FileArchive progress/cancel
* Use PBD::Progress API
* Allow to cancel extraction and compression
* Fix querying download size
2023-05-19 03:08:22 +02:00
Robin Gareus
2cb4e8a6ca
Remove compat header 2023-05-19 00:54:10 +02:00
Robin Gareus
92fbab32c6
Update codebase to use PBD::Progress (1/2) 2023-05-19 00:37:49 +02:00
Robin Gareus
65f2be76f6
Move Ardour::Progress to PBD::Progress
This will allow PBD::Filearchive to properly report progress.
It is also a generally useful API and deserves to be in libpbd.

Temporarily keep Ardour::Progress as alias
2023-05-19 00:35:20 +02:00
Robin Gareus
25234702fe
Prepare libardour for FileArchive progress API update 2023-05-19 00:35:14 +02:00
Robin Gareus
b3d3944451
Add session-archive error messages 2023-05-18 18:54:46 +02:00
Robin Gareus
8c861914c8
Fix copy/edit in 4cdcdb9ee7 2023-05-18 00:47:37 +02:00
Robin Gareus
4cdcdb9ee7
Add enum to configure selection after section cut/copy 2023-05-17 23:28:20 +02:00
Hoger Dehnhardt
f958b7b0e0
With larger projects, the session was not initialised at this time 2023-05-14 22:50:35 +02:00
Robin Gareus
83555ec290
Consolidate playlist block & ignore notifications
Despite the names suggesting otherwise
`block_notifications` and `ignore_state_changes` are used
for the same purpose.

The only difference is that ::freeze ::thaw explicitly
modified `ignore_state_changes` **in addition** to
`block_notifications`.
2023-05-14 20:42:32 +02:00
Robin Gareus
e79d8b00f9
Speed up playlist rendering of non-overlapping MIDI Regions 2023-05-14 20:42:31 +02:00
Ben Loftis
54969d8aab fix thinko resulting in duplicate bar-names after a tempo-mapping op 2023-05-14 09:05:08 -05:00
Robin Gareus
4192710ac8
Add Lua bindings to remove routes 2023-05-14 02:44:27 +02:00
Robin Gareus
5bbd248384
Add Lua bindings for std::list/vector clear 2023-05-13 17:38:41 +02:00
Robin Gareus
756c0a80c9
Emit Xrun in case process-lock cannot be acquired 2023-05-11 19:30:49 +02:00
Robin Gareus
1ac7f483da
VST3: set non-automatable parameters (#9321) 2023-05-11 18:50:15 +02:00
Robin Gareus
57017267cf
Prefer try-lock in process-callback 2023-05-11 18:38:02 +02:00
Robin Gareus
79e6830d21
VST3: allow to set non-automatable params (#9321) 2023-05-11 02:11:05 +02:00
Robin Gareus
b1a771d36b
Fix windows builds (type mismatch/error) 2023-05-08 22:05:56 +02:00
Robin Gareus
1940dfbb28
NO-OP: cleanup includes 2023-05-08 22:02:37 +02:00
Robin Gareus
ee2bae5aa8
Fix std::optional -> boost::optional API 2023-05-08 22:02:21 +02:00
Hoger Dehnhardt
1dc879eb8d
Softube Console1 add surface (libs) 2023-05-07 18:19:40 +02:00