Commit Graph

37428 Commits

Author SHA1 Message Date
Robin Gareus 8f1d188bf3
NO-OP: clang-format
This addresses various indentation problems caused by
`boost::` -> `std::` and other whitespace issues.
2023-05-31 16:53:38 +02:00
Robin Gareus 193b35e885
Ignore Apple/HFS+ `._` meta-data files with statefile suffix.
Those files may otherwise show up in the Recent Session
dialog as possible states to load.
2023-05-31 16:02:39 +02:00
Robin Gareus 520b209c83
NO-OP: update comments 2023-05-31 15:53:12 +02:00
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 4bc8a3e9c7
Fix remove_selected_sources() for multi-channel sources
It is not sufficient to simply drop the first source
of a region. While destroying a whole-file region marks
all its sources as unused, only the source for 1st channel
was explicitly removed.

The session accumulated <Sources>, without corresponding
whole-file Regions. Those can prevent cleanup of unused
sources, particularly when using snapshots.
2023-05-29 21:15:50 +02:00
Robin Gareus d8349b366e
Properly repopulate Region-list after regions are deleted 2023-05-29 18:05:34 +02:00
Robin Gareus 3c17721eff
Fix SourceListBase::remove_source
* It was never called because SourceListBase::set_session
  subscribed to the signal just before SessionHandle::set_session
  dropped _session_connections
* remove_source() only checked the first source of the whole-file
  region, not all sources of a multi-channel region.
  Stereo regions with mono sources are now properly cleaned up.
2023-05-29 18:04:27 +02:00
Robin Gareus 5dd35ff86a
Fix duplicate whole-file regions when embedding sources
playlist->add_region() derives a region in case a whole-file
region is added to the playlist.
2023-05-28 04:39:06 +02:00
Robin Gareus 39ac0c5e19
Remove unused Region::remove_dependents API 2023-05-28 01:52:42 +02:00
Robin Gareus 0918f7fc09
Fix Mixbus build 2023-05-27 16:18:10 +02:00
Robin Gareus cad949eb4e
Allow to rename plugins (#9352) 2023-05-27 15:16:46 +02:00
Robin Gareus 58b98e8c5c
Prompter: add a reset to default option 2023-05-27 15:15:42 +02:00
Robin Gareus c9e13d49d4
PluginPinDialog: subscribe to processor name changes 2023-05-27 14:31:41 +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
Ben Loftis 159e677d8d user-visible action names should better match the intended shortcut mnemonic 2023-05-26 13:16:37 -05:00
Ben Loftis ce6f156bc3 Add shortcuts for 'section copy+paste' actions, moving Crop to accommodate 2023-05-26 13:16:37 -05:00
Ben Loftis 9e91c01ca8 no-op (whitespace) 2023-05-26 13:16:37 -05:00
Robin Gareus 35cca5d47b
Fix crash when adding audio-ports without replicating plugin(s) 2023-05-26 19:18:00 +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 500a0c09e8
Exclude master-bus on monitor output connector 2023-05-24 07:15:01 +02:00
Robin Gareus c9f95a1259
Amend a736ebfee, drop reference 2023-05-24 07:14:57 +02:00
Robin Gareus a736ebfee4
Use IOButton in Monitor-Section
This not only remove duplicate redundant code, but also
fixes an issue with external port-disconnection not being
caught.
2023-05-24 04:07:30 +02:00
Robin Gareus 3b8cbd7c8f
Revert "Debug xwayland blank Engine dialog, allow to resize the window"
This reverts commit bb474b1b8e.
2023-05-24 00:45:16 +02:00
Robin Gareus bb474b1b8e
Debug xwayland blank Engine dialog, allow to resize the window
Revert this before release
2023-05-23 03:19:34 +02:00
Ben Loftis c1fe193def tempo mapping: handle the special case of trying to ramp the 'first' marker 2023-05-22 15:51:38 -05:00
Ben Loftis cc630c6bbe tempo mapping: clicking on a bar line should always make a new tempo marker
* the process of tempo mapping requires/encourages you to click on the
   last-known good marker, before continuing to make tempo tweaks

* this conflicts with the idea that clicking in a ruler should start a
    playhead-drag.  TBD.   but tempo-mapping is a special and rare operation.
2023-05-22 15:51:33 -05:00
Robin Gareus c669ff58e5
Cleanup, fix Wunused-private-field 2023-05-22 22:29:42 +02:00
Robin Gareus 515e67f784
NO-OP: clang-format 2023-05-22 22:23:41 +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 ed7683d029 tempo mapping: initiating a drag on a BEAT line applies a ramped twist
as opposed to grabbing a BAR line, which explicitly creates or moves a
  tempo marker, and creates constant tempo lines when dragged
2023-05-22 13:33:03 -05:00
Ben Loftis a217c58ff5 tempo mapping: remove an unnecessary limit on tempo-drags
a) mouse-scaling is not 1:1
b) invalid tempo values are prevented internally anyway
2023-05-22 13:33:03 -05:00
Ben Loftis ca5e56f98c tempo mapping: MappingTwist drag should differentiate between ramped and constant twist
TODO:  probably break these into separate ::Drag classes
2023-05-22 13:33:03 -05: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
Ben Loftis 9fa8e257a6 tempo mapping: Mapping Drags should inhibit horizontal autoscroll 2023-05-22 13:32:38 -05:00
Robin Gareus f1f352a6e9
Fix shaped dither (#9342) 2023-05-22 04:50:19 +02:00