Commit graph

21858 commits

Author SHA1 Message Date
Paul Davis
3ac59dc837 some helper APIs to find things in a Session 2025-06-07 21:10:30 -06:00
Paul Davis
dbe7288dc4 new Gtkmm2ext helper class for string completions on a text entry 2025-06-07 21:10:30 -06:00
Robin Gareus
0803cac946
Fix optimized builds 2025-06-07 01:53:33 +02:00
Robin Gareus
f31df0a1d1
Announce and add last duplicated regions to the region-map
This fixes a potential issue of region being retained
at session close (no DropReferences signal).
2025-06-06 23:51:31 +02:00
Paul Davis
cc435bcd0f make connection/emission debugging of PBD::Signal more useful/informative 2025-06-06 09:07:45 -06:00
Robin Gareus
f40b64b0d5
Properly handle incomplete audio read
DiskReader::[do]refill() returns either 0, or -1 on error.
2025-06-04 17:58:51 +02:00
Paul Davis
774658e01c remove debug output 2025-06-03 17:11:45 -06:00
Paul Davis
88f35a9c09 fix thinko when drawing lines in a LineSet
self represents the bounding box of each drawn line, but not
the coordinate(s) where to draw it
2025-06-03 17:10:07 -06:00
Paul Davis
959e360dd0 fix LineSet arithmetic (again!) and reduce redundancy
The logic for "is-integral" was backwards, and the code in both
branches of the conditional was identical
2025-06-03 17:09:29 -06:00
Paul Davis
ae913acacf simplify cairo pixel alignment in Canvas::LineSet
1. do the math when we add a new coord, not at every render call
2. correctly decide whether to force an odd-width line on an integer
   coordinate to a half pixel, or an even-width line on a non-integer
   coordinate to a whole pixel.
2025-06-02 19:19:30 -06:00
Paul Davis
705fe2b52d compile RectSet code 2025-06-02 19:16:11 -06:00
Paul Davis
6a67a6bcc4 new canvas item: RectSet
a collection of rectangles, conceptually similar to LineSet

this avoids keeping around N different Canvas::Rectangles and instead
collapses a related set of them down to a single item
2025-06-02 18:30:40 -06:00
Robin Gareus
72057395eb
Fix potential use-after-free (when device in use)
An instance must not delete itself..
Here ARDOUR::SystemExec::Terminated signal handler deleted the
class that emitted the signal in the same thread.
2025-05-25 00:21:19 +02:00
Robin Gareus
b92fa1d0e4
Use PBD::CCurl for libardour HTTP/S requests 2025-05-20 00:03:21 +02:00
Robin Gareus
4f300b5474
Migrate SSL-cert setup to libpbd, so the downloader can use it 2025-05-20 00:03:21 +02:00
Paul Davis
4a6716e39c add option for a minor/micro tick font description to ArdourCanvas::Ruler 2025-05-19 14:57:19 -06:00
Robin Gareus
ba7e63f570
Ignore FLAC seek/peak-file read while recording
FLAC files are either read-only or write-only.
When recording the GUI may ask for additional data to render.
Depending on zoom level, this may require seeking in the audio
data, which in case of FLAC is not possible, and should fail silently:

ARDOUR::SndFileSource::read_unlocked()
ARDOUR::AudioRegion::read_peaks()
ArdourWaveView::WaveView::process_draw_request()
2025-05-19 22:19:54 +02:00
Robin Gareus
d537cdf60b
Fix windows build (see also e44a66287a) 2025-05-19 18:39:13 +02:00
Robin Gareus
e44a66287a
Correctly detect localtime_r 2025-05-18 20:08:27 +02:00
Paul Davis
5d34dd2f57 change error message when a PortRegistrationFailure exception is thrown, to no longer refer specifically to JACK 2025-05-16 16:43:12 -06:00
Robin Gareus
6c8a2ec05b
Fix false read-only detection of sessions on Windows with OneDrive
see https://discourse.ardour.org/t/ardour-8-4-on-win11-amd64-always-opens-session-in-read-only-mode/110063/38?u=x42
2025-05-14 20:21:44 +02:00
Paul Davis
2b1c1804c5 NO-OP: whitespace 2025-05-13 16:43:20 -06:00
Paul Davis
7ce7d2239b NO-OP: add a couple of comment-placeholders about a post-record action choice 2025-05-13 12:16:11 -06:00
Paul Davis
35c6fdb044 NO-OP: remove "STEP XXX" elements from comments
They were inaccurate and out of order anyway.
2025-05-13 12:16:11 -06:00
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