Commit Graph

37534 Commits

Author SHA1 Message Date
Paul Davis de334c14b1 drop use of Editor::sample_to_pixel_unrounded() in some cases
We want things rounded to the nearest pixel in these (and perhaps all) cases.
2023-06-15 20:10:32 -06:00
Robin Gareus a7c21de229
Update Link to VST3 location spec 2023-06-16 01:38:59 +02:00
Robin Gareus 3e27df9040
Utils: Fix crash at exit due to engine destruction
Ardour::cleanup destroys the TransportMasterManager instance
which unregisters TransportMaster ports. This will crash
if the engine was already destroyed.

See also 7c7bf6c88b
2023-06-15 16:22:23 +02:00
Paul Davis 73ed3bc7e0 midi copy drag: select all new notes after drag
Cut-n-paste worked before, but Primary-drag only selected the dragged note.

This also contains several code changes to use for (auto ...) syntax.
2023-06-14 21:42:23 -06:00
Robin Gareus b516d6abf9
Add keyboard shortcut for delete-section 2023-06-14 20:10:33 +02:00
Robin Gareus f602618170
Expose delete-section function
(insert-section still remains hidden, it inserts the length
of the selection at the edit-point, it should perhaps insert
at the start of the selection instead)
2023-06-14 19:43:58 +02:00
Robin Gareus a2975bb4b7
Fix opaque MIDI region rendering
This issue was introduced in e79d8b00f9.
2023-06-14 19:42:00 +02:00
Robin Gareus 6319980746
Fix TempoDialog port-list when devices are hotplugged 2023-06-13 17:03:27 +02:00
Robin Gareus 7aad0bbe15
CoreMIDI: use dedicated packet buffer on stack 2023-06-13 16:50:53 +02:00
Paul Davis 05c29e25f9 reorder tempo dialog contents, provide non-presented var to control focus behavior 2023-06-12 18:00:21 -06:00
Paul Davis bb97ade440 temporal: special case editing of the initial tempo (#9339) 2023-06-12 16:46:13 -06:00
Paul Davis d742e876d1 region/source lists: try to allow primary-(cxv) functionality when editing name/tag fields 2023-06-12 15:34:54 -06:00
Paul Davis a8fdf7315b keyboard: if a magic widget has focus, handle Primary-(x,c,v) specially
propagate first, so that the magic widget can handle things, then activate.

This fixes cut/copy/paste bindings within a "magic" widget.
2023-06-12 14:42:08 -06:00
Paul Davis 66e714b476 fix crash when using -D accelerators 2023-06-12 14:41:41 -06:00
Paul Davis 04b728fb38 MIDI: fix list editor display of note length (names) (#9371)
Triplets are still not handled well.
2023-06-12 14:01:06 -06:00
Paul Davis 50232a23a7 temporal: hide superclock_t variant of TempoMap::metric_at()
This fixes several callsites that were passing samplepos_t to get a TempoMetric,
some of them somewhat significant (e.g. VST plugins that want tempo information).

Bad API design on my part, apologies.

This commit combines libs/ and gtk2_ardour because the new private status
of the ::metric_at() call would be a blocking point for git bisect
2023-06-12 12:36:16 -06:00
Paul Davis 12c3daa46b JACK: fix reported tempo & meter when functioning as JACK timebase master
TempoMap::metric_at() has a superclock_t variant that was being called
with a samplepos_t value. Full check (and removal, hopefully) coming up.
2023-06-12 12:10:26 -06:00
Mathias Sterle b6de118fd9
Add Roland SonicCell MIDNAM 2023-06-11 21:27:50 +02:00
Robin Gareus ac2ed95677
Keep Script-Dialog on top of Script-Manager Window 2023-06-10 21:37:09 +02:00
Robin Gareus 16030f63a1
Keep Ardour dialog on top of parent 2023-06-10 21:36:31 +02:00
Robin Gareus b3f9b38088
Make it convenient to use ASAN 2023-06-10 16:47:38 +02:00
Robin Gareus 6ac0aae35f
Implement playlist switch undo/redo 2023-06-10 15:03:46 +02:00
Robin Gareus 3a60de5d54
Add track playlist-state function for undo/redo 2023-06-10 15:03:46 +02:00
Robin Gareus 322e7c328e
Vkeybd: Bind F5 to F8 keys to velocity 2023-06-10 15:03:09 +02:00
Robin Gareus a3e64445de
Amend bb54bc0d (prevent bad_weak_ptr) 2023-06-10 04:00:46 +02:00
Robin Gareus 884b4f3046
Playlist cut/copy always produces hidden playlists 2023-06-10 03:33:51 +02:00
Robin Gareus f95c9216b1
Fix playlist use-count 2/2
* Use an atomic reference count since the freeze-thread
  can call use_playlist.
* Remove explicit argument to construct unused playlist
  because playlists are unused by default. This also
  lead to use-count becoming negative (or rather UINT32_MAX)
2023-06-10 03:33:51 +02:00
Robin Gareus fbce94d55d
Fix playlist use-count 1/2 2023-06-10 03:33:51 +02:00
Robin Gareus 8489810cfb
NO-OP: whitespace 2023-06-10 03:33:51 +02:00
Robin Gareus bb54bc0d40
Yet another attempt at fixing #9361 2023-06-10 03:33:51 +02:00
Robin Gareus 3fbc89e4ee
Remove unused overloaded method 2023-06-10 03:33:51 +02:00
Robin Gareus 4abdb09c00
Remove unused API 2023-06-10 03:33:50 +02:00
Robin Gareus 5965fd15e5
Fix tiny memory leak 2023-06-10 03:33:39 +02:00
Robin Gareus 9486b4e6cb
Fix port-disconnection label w/pipewire (#9355, #9364) 2023-06-09 19:19:41 +02:00
Colin Fletcher 72850d456f implement time-stretch from left of region
Make click & drag in the left-hand half of a region with the Timestretch
tool stretch the region on its left, leaving the end position of the new
time-stretched region in the same place as the end of the original.
2023-06-09 17:57:52 +01:00
Colin Fletcher 96eb7652c9 fix warning from fallthrough comment typo
Fix "warning: this statement may fall through [-Wimplicit-fallthrough=]",
caused by the misspelling of "fallthrough" as "fallthough" in
editor_ops.cc.

Note that if you use ccache, you'll need to clear its cache to actually
get rid of the warning, because the pre-processed file (with comments
removed) is identical before & after this change, and thus won't get
recompiled otherwise.

Fix the equivalent typos in marker.cc too, though in those cases there's
no actual warning, because presently all the fall-throughs are from empty
cases.
2023-06-09 16:45:31 +01:00
Robin Gareus 55afdc2aa4
amend 7c7bf6c88b, do not notify UI during cleanup
This fixes a rare crash where the signal causes a
cxa_pure_virtual in PBD::Signal1 during destruction.
2023-06-09 16:17:40 +02:00
Robin Gareus ad49de022a
Too many drop-references handlers (#9363)
This fixes a random crash with stop-and-forget capture.

When aborting capture, the disk-writer can emit
 midi_write_source->drop_references ()
in the butler thread, which leads to a direct call to
Session::remove_source.

This can happen before or after Region::source_deleted
is called which is initiated from the same signal.

Furthermore it was possible that Region::source deleted
was called concurrently from the UI thread via SourceRemoved
for whole file regions, which lead to memory corruption.
2023-06-09 16:17:37 +02:00
Robin Gareus 03e0eea744
Playlist paste, always pastes on top 2023-06-09 00:48:42 +02:00
Robin Gareus c61fc45689
Retain region layering for cut/copy/paste 2023-06-09 00:03:49 +02:00
Robin Gareus 586b109f9e
Remove unused variable, fix small memory leak 2023-06-08 23:14:33 +02:00
Robin Gareus 7c7bf6c88b
Fix TransportMasterManager crash at exit
TransportMasterManager::destroy () destroys any remaining
TransportMasters which in turn unregister their ports.
However the PortEngine was already destroyed.
2023-06-08 22:50:15 +02:00
Robin Gareus a5946ba2e2
Fix heap-use-after-free at exit
Deleting _track_canvas_viewport automatically destroys
any child Items. The LocationMarker's group was already destroyed
when ~ArdourMarker() runs and calls `delete group`.

So first delete the marker, then the canvas
2023-06-08 22:50:15 +02:00
Paul Davis 733d59c65b temporal: unit testing more like unit testing
But still not really.
2023-06-08 14:01:17 -06:00
Paul Davis 01b8187cd3 temporal: add rudimentary paste test 2023-06-08 14:01:17 -06:00
Paul Davis 1cf4f9293c temporal: paste needs to add to _points 2023-06-08 14:01:17 -06:00
Paul Davis 24f6c51de6 temporal: more nuances for ::cut_copy() 2023-06-08 14:01:17 -06:00
Paul Davis a09a37049b temporal: get guard point values before altering the tempo map 2023-06-08 14:01:17 -06:00
Paul Davis 6039cea3dc temporal: improve cut buffer slightly by using different meters 2023-06-08 14:01:17 -06:00
Robin Gareus d0f5fdb224
Fix deadlock and remove debug message
get_extent() takes a RegionReadLock, but ::partition_internal
already holds a RegionWriteLock (use ::_get_extent)
2023-06-08 21:32:53 +02:00