Commit Graph

37439 Commits

Author SHA1 Message Date
Robin Gareus
766e9dc7a1 Improve MidiTracer, format MMC messages 2023-06-03 19:10:27 +02:00
Robin Gareus
db97db2513 Activate track-header context menu items with RBM
Popup menu should handle the button that was used
to show the popup menu.
2023-06-03 15:13:04 +02:00
Robin Gareus
d66b70f3a2 Distinct engine-states per sample-rate
Previously only the one engine-state per device was
saved. However systemic latency depends on the sample-rate
(and buffersize)
2023-06-02 22:31:02 +02:00
Robin Gareus
5a17ca56ea Clarify boost check
Boost may not be "too old", but simply not present.
2023-06-02 21:31:36 +02:00
Robin Gareus
8794145c9d Centralize setting undo/redo action sensitivity
This fixes undo/redo action sensitivity for non-editor
history stack changes.

Notably recording was not undoable, because the butler
thread creates the reversible "capture" command.
2023-06-02 18:11:53 +02:00
Robin Gareus
c56313cea0 Fix setting pretty-names when engine is restarted
port-meta-data depends on the audioengine backend/device
settings. Those are only available after the engine is started,
not from within the backend's _start() method.

This is is only relevant for callback based backends.

Backends with a blocking process thread explicitly emit
port-manager callbacks there before entering the main loop.
2023-06-02 00:29:03 +02:00
Ben Loftis
6640a4afb3 fix Faderport2 port name = FP2 2023-06-01 16:20:48 -05:00
Robin Gareus
921b4aaa75 Allow to drag time selection markers 2023-06-01 21:37:40 +02:00
Robin Gareus
c063be6a76 Implement Editor::abort_reversible_selection_op 2023-06-01 21:37:37 +02:00
Robin Gareus
6016c9624e Manage OptionEditor labels
Because those Widgets are added to managed frames (for search highlight)
the labels inside also need to be managed and not destroyed with the
Option (which happens first).

This fixes various GTK warnings at exit
```
gtk_widget_unparent: assertion 'GTK_IS_WIDGET (widget)' failed
```
2023-05-31 21:36:24 +02:00
Robin Gareus
c084f74fda Remove debug message 2023-05-31 18:17:28 +02:00
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