Commit graph

40677 commits

Author SHA1 Message Date
Paul Davis
7cf63d1d46 triggebox: random extra DEBUG_TRACE output
Also, if a trigger is already stopped, ::shutdown_from_fwd() now does
nothing at all
2025-04-16 12:05:59 -06:00
Paul Davis
40565b5740 pianoroll: use a larger, bolder font for ruler text 2025-04-16 10:17:32 -06:00
Paul Davis
1671b145ba pianoroll: click on (BBT) ruler now locates 2025-04-16 10:17:08 -06:00
Paul Davis
f69a18bfee pianoroll: stop using tempo and meter rulers since they are of zero use
One day when we figure out how we might use this sort of thing, they
can come back.
2025-04-16 10:15:54 -06:00
Paul Davis
ebda6bf0c5 rework PBD::Signal emission code to avoid memory allocation
We now use a stack allocator when making a copy of current connection state at
the start of the signal emission process, and when collecting results from
signal handlers in the case of a non-void return type.

These changes also include a functionally neutral reworking of how the connection
state copy is made and then used to check that a connection/handler is still
valid mid-emission.

Heap allocation will still happen if a signal has more than (currently) 512
connections. A little experimentation reveals that the maximum number of
connections is typically nroutes+1, so 512 seems like a reasonable choice
for this.
2025-04-16 09:09:57 -06:00
Paul Davis
f66f81546d fix several warnings from PBD::Signal due to a missing return call for some types 2025-04-15 22:34:49 -06:00
Robin Gareus
e26edc93d6
Fix crash when changing DPI while a marker is selected
~LocationMarkers() emits CatchDeletion, which calls
Selection::remove(ArdourMarker*) which in turn calls
Editor::marker_selection_changed(), which can cause a
heap-use-after-free.

So we first need to clear the location_markers map,
before deleting the markers.
2025-04-16 04:53:26 +02:00
Robin Gareus
95949e6267
Implement multi-touch support for ArdourKnobs 2025-04-15 21:59:40 +02:00
Robin Gareus
2a9776de5a
Revert "Linux/X11/touch: don't send duplicate mouse-up events for first touch"
This reverts commit 8eab71fef4.
2025-04-15 21:48:55 +02:00
Robin Gareus
5a90eb0776
Fix double toggle on repeat call of on_button_release_event
This can happen with touch screens.. leading to
`set_active (!get_active ());` being called twice, and effective NOOP.
2025-04-15 21:48:42 +02:00
Robin Gareus
d0a5bff06e
ACE Inline Correlation Meter (needs work, debug builds only) 2025-04-15 19:08:42 +02:00
Robin Gareus
bf6ad57083
Add Lua bindings for StereoCorrelation meter 2025-04-15 19:08:02 +02:00
Robin Gareus
5f460bd280
Add Stereo Correlation Meter DSP 2025-04-15 17:56:33 +02:00
Paul Davis
25888aeaa7 provide Editor/fit_selected_tracks as an action for ... fit selceted tracks 2025-04-14 21:39:10 -06:00
Robin Gareus
aecbe6de50
RTA: allow to zoom using shift + scroll 2025-04-15 00:27:39 +02:00
Robin Gareus
1592a4c38e
RTA: don't rotate dB labels 2025-04-15 00:27:39 +02:00
Robin Gareus
ba86a634e5
RTA: add impliciy freeze on mouse-down 2025-04-15 00:27:38 +02:00
Paul Davis
a46f2cefb4 PBD::Signal - move connection list back into private scope (amend 86c837b0e) 2025-04-14 10:45:46 -06:00
Paul Davis
e505ca82ce better handling of trigger rec-enable display mgmt
May still want blink on the trigger strip rec-toggle button
2025-04-14 10:15:03 -06:00
Paul Davis
fc31513bbe fix inappropriate signal emission patterns in Triggerbox/Trigger 2025-04-14 10:15:03 -06:00
Paul Davis
623df55653 make DEBUG_THREADED_SIGNALS use a little more efficient at runtime 2025-04-14 10:15:03 -06:00
Paul Davis
7154bbc65d fix another compiler warning about BBT_Offset time type in export format code 2025-04-14 10:15:03 -06:00
Paul Davis
86c837b0eb provide deeper debugging of PBD::Signal emission process 2025-04-14 10:10:57 -06:00
Robin Gareus
65813054d2
NO-OP: whitespace 2025-04-13 22:42:03 +02:00
Paul Davis
8619411ce6 light trigger strip rec-gtoggle button appropriately 2025-04-11 17:11:58 -06:00
Paul Davis
64d1398797 emit rec enable change signal from Triggerbox when done capturing 2025-04-11 17:11:28 -06:00
Paul Davis
1b95c02f0a show visual count-in when clip recording (if there is a count-in to be shown) 2025-04-11 11:23:36 -06:00
Paul Davis
c61efd4900 positioning and other tweaks for Pianoroll overlay text 2025-04-11 11:23:36 -06:00
Paul Davis
cf27064915 correct arithmetic used to compute a quantized trigger start/stop transition 2025-04-11 11:23:36 -06:00
Paul Davis
3486ec924d expose start time for recording into a triggerbox slot 2025-04-11 11:23:36 -06:00
Paul Davis
0e42868d35 fix arithmetic error in Meter::to_quarters 2025-04-11 11:23:36 -06:00
Paul Davis
2d1b7f6de4 expose clock signal interval from ARDOUR_UI 2025-04-11 11:23:36 -06:00
Paul Davis
8e581d0997 expose rapid and fps clock intervals for Timers:: 2025-04-11 11:23:36 -06:00
Paul Davis
e4f7571050 add overlay text to pianoroll midi view 2025-04-11 11:23:36 -06:00
Ben Loftis
c8576880e6 check whether to rename new markers before showing the rename dialog 2025-04-11 08:43:22 -05:00
Robin Gareus
7e8230c3be
Allow touch to tigger act-on-release events 2025-04-10 18:26:23 +02:00
Robin Gareus
8eab71fef4
Linux/X11/touch: don't send duplicate mouse-up events for first touch 2025-04-10 18:25:58 +02:00
Robin Gareus
11bc7a651b
RTA: fix modal grab
`gtk_add_grab()` is preferred to `gdk_pointer_grab()`, since
GTK releases the modal grab when a popup window is presented
(f.i. engine disconnected) or other grab breaking events occur.

`gdk_pointer_grab()` can lock the user out, in such events.
2025-04-10 15:08:25 +02:00
Robin Gareus
7cb8140b3a
Fix export commandline tool, wait for latency updates #9915 2025-04-10 05:44:20 +02:00
Robin Gareus
6fdd603f5c
NO-OP: styleguide 2025-04-10 05:41:06 +02:00
Robin Gareus
6e7cca5cc0
Fix crashes when moving mouse over port-matrix
Beware of using float as loop/while variable.

When moving the mouse over the tilted port-label area the position p
is set to ` p - (_height - o) * tan (angle ())`.
In optimized (fast math) builds this can be come negative (-0.0).

`::type_channel_to_overall()` then returns a negative channel count,
leading to a crash.

And in some edge-cases (literally moving the mouse to the edge after
resizing the window on Intel Mac), PortMatrixColumnLabels::motion is
called and the port corresponding to the mouse-position is also
computed to be negative.
2025-04-10 03:06:57 +02:00
Robin Gareus
b2a5920971
Fix RegionFx processor selection, leave notify
This fixes "delete" keyboard shortcut when the mouse.
Previously moving the mouse from the box to the selected
processor unset the `current_rfx_box` pointer.
2025-04-09 20:18:29 +02:00
Robin Gareus
58d7189e9c
Fix "Delete" processor-box context menu
For some reason the action prefix before the slash is
irrelevant. The "RegionFxMenu/delete" action overrides
the earlier registered "ProcessorMenu/delete".

Processor Box context menu called `RegionFxBox::static_delete`.
2025-04-09 20:15:53 +02:00
Robin Gareus
3c5f8fe7ed
RTA: small fixes:
* redraw when removing all routes: clear Legend
* queue draw after changing settings
* prepare for RTA button on mixer-strip
2025-04-09 18:41:45 +02:00
Robin Gareus
1b10e0916a
NO-OP: unify codebase with Livetrax, whitespace 2025-04-09 18:40:04 +02:00
John Emmas
937dd4b587 Class 'MIDISceneChange' now needs to be visible outside of libardour 2025-04-09 12:01:01 +01:00
Paul Davis
1f4ddcd53f fix inheritance design error in MidiRegionView/MidiView
trim_front_(starting|ending) must be in a class derived from RegionView,
which MidiView is not.

This ensures that Carl's original design for this (with these two methods
called at the start and end of a front-trim drag) is still operational, and we
do not end up with MIDI regions that have a negative start value.
2025-04-08 15:50:30 -06:00
Paul Davis
0c924c3933 pianoroll: dragging start handle before zero shifts MIDI later in time 2025-04-08 15:50:30 -06:00
Paul Davis
259e878887 libardour: fix MidiRegion::fix_negative_start() to match new API 2025-04-08 15:50:30 -06:00
Paul Davis
72dd5b1258 NO-OP tiny rewording of a comment 2025-04-08 15:50:30 -06:00