Commit graph

22034 commits

Author SHA1 Message Date
Paul Davis
bbbedfcd1d triggerbox: use Trigger::disarm() more consistently 2025-05-13 12:16:11 -06:00
Paul Davis
b6e1846c39 temporal: fix implementation of timepos_t::operator+= (BBT_Offset const &)
TempoMap::bbtwalk_to_quarters() converts the distance of the walk into quarters, but
we need the endpoint of the walk
2025-05-13 12:16:11 -06:00
Robin Gareus
998dceb96a
Amend previous commit, fix macOS builds 2025-05-11 17:02:20 +02:00
Robin Gareus
ec5b06e63d
Set executable stack flag when linking
This is required on some modern hardneded Linux systems to allow
to dlopen executable objects (load plugins).

https://discourse.ardour.org/t/tls-1295-lea-so-linux-vers-doesnt-work/111778/20?u=x42
2025-05-11 15:58:00 +02:00
Paul Davis
1c0882ba56 PBD::Signal: do not use a StackAllocator for signals with return values 2025-05-09 14:21:05 -06:00
Robin Gareus
1e3100efbc
Stretch gain envelope and region-FX automation with region 2025-05-08 22:01:25 +02:00
Robin Gareus
a3fb3abcc5
Add API to time-stretch region-FX automation 2025-05-08 21:53:59 +02:00
Robin Gareus
5d185c5885
TimeFX: copy region Fx (if any) 2025-05-08 17:34:41 +02:00
Robin Gareus
3f1cb6c019
TimeFX: copy region gain evevelope 2025-05-08 17:34:07 +02:00
Nils Philippsen
3c63a81c1c
Don’t install test programs
Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2025-05-06 23:42:07 +02:00
Robin Gareus
d685b000c6
Use consistent duration calculation when relayering 2025-05-06 23:08:47 +02:00
Paul Davis
2a7bef47fa return immediately in a non-void Signal if there are no handlers
This allows r.begin(() to not refer to undefined memory
2025-05-05 21:51:23 -06:00
Paul Davis
9096acd3b4 change PortCountChanging to prefer handlers that return int
There are some issues with PBD::SignalWithCombiner on aarch64 when the handlers return bool. These
may arise from specializations of std::vector<bool> and std::list<bool> in stdlib, but this is
not clear. For now, to avoid an ASAN warning about calling operator delete() on stack memory,
change the only signal that does this to use int rather than bool
2025-05-04 19:21:50 -06:00
Paul Davis
cf84ed0041 use a std::vector to collect signal handler return values, not std::list 2025-05-04 19:21:50 -06:00
Robin Gareus
e3860844a6 Improve StackAllocator debug messages 2025-05-04 23:41:22 +02:00
Robin Gareus
868d8c1d51
Document and fix monitoring-states
See https://manual.ardour.org/appendix/monitor-modes/

This fixes #11, #27 (auto-in, rolling, track armed, but session
disarmed)
2025-05-01 17:15:57 +02:00
Paul Davis
52996e7a8d fix thinko when setting MIDI trigger first/last event indices
Unclear why I use this pattern when the change here uses the more normal way
of finding the upper/lower of some values. Either way, the code as it was would
skip the first event in a MIDI trigger (most of the time, anyway)
2025-04-24 16:41:49 -06:00
Paul Davis
3918fea26f provide Session::armed_triggerbox() API 2025-04-24 12:07:19 -06:00
Paul Davis
86ef6a5e59 remove debug output 2025-04-24 12:07:19 -06:00
Paul Davis
02aeb3895f NO-OP: newline/whitespace/brace 2025-04-24 12:07:19 -06:00
npt-1707
dd0de15269
Fix potential vulnerable cloned functions: Bug: Lua can generate wrong code when _ENV is <const> 2025-04-24 13:05:49 +02:00
npt-1707
edf2ce7cfe Fix potential vulnerable cloned functions: Save stack space while handling errors 2025-04-24 17:06:24 +08:00
Robin Gareus
5f1bea0b6b
Fix rec-arm disable
This broke in 91f9561958, when the condition for clip
recording was added.
2025-04-19 18:40:50 +02:00
John Emmas
d285ff365e Add a visibility specifier that's now needed
Following the introduction of 'Pianoroll::region_prop_change()' (commit #29833d75c9) the operator<< (for PBD::PropertyChange) now needs to be visible outside of libpbd
2025-04-19 13:33:36 +01:00
Paul Davis
292e722758 use bg[ACTIVE] for scrollbar troughs, like all other GTK engines 2025-04-18 15:52:07 -06:00
Paul Davis
743657e265 simplify scrollbar slider drawing code
No more pattern for the slider, brighter shade for prelight,
and keep prelight color even when widget is active
2025-04-18 15:00:55 -06:00
Paul Davis
ef0a8ba524 allow a trigger slot to use an empty region
hopefully there are no complications from this :(
2025-04-16 20:43:37 -06:00
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
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
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
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
a46f2cefb4 PBD::Signal - move connection list back into private scope (amend 86c837b0e) 2025-04-14 10:45:46 -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
86c837b0eb provide deeper debugging of PBD::Signal emission process 2025-04-14 10:10:57 -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
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
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
John Emmas
937dd4b587 Class 'MIDISceneChange' now needs to be visible outside of libardour 2025-04-09 12:01:01 +01: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
Paul Davis
fe3aadb1bc libardour: change implementation of MidiModel::insert_silence_at_start()
Use the much lighter weight ShiftCommand model introduced in 4ee709af7b.
2025-04-08 15:50:30 -06:00
Paul Davis
4ee709af7b libardour APIs for Sequence::shift (timepos_t const &)
A way to move all MIDI data in a Sequence later in time.

This is likely not finished, and may need a new signal for
notifications
2025-04-05 17:25:03 -06:00