Robin Gareus
99c1f50a72
Really remove gtk+ option (see also 1e28ee9cc9)
...
After patching gtk/ytk to add touch support and macOS rendering,
upstream gtk+2 is no longer an option
2025-07-06 15:20:20 +02:00
Paul Davis
ea4616913c
cocoa: experimentally, redraw entire window after deminimization
2025-07-05 08:34:08 -06:00
Robin Gareus
a0ba6e3dfb
Cache BundleChannel nchannels, allow lock-free calls
2025-07-01 17:46:17 +02:00
Paul Davis
02abf956d7
a better way to build ArdourDropdowns from Actions
2025-06-25 22:17:53 -06:00
Paul Davis
66a8776f98
fix InternalSend (and InterntalReturn) to allow fade out/MIDI mute
...
previously, as soon as the Send is disabled, it would short-circuit ::run(),
preventing the fade to zero to take effect. Now, the send will run until the
effective gain reaches zero, and the return will collect data from it until it
is fully deactivated.
2025-06-19 13:50:37 -06:00
Paul Davis
464ea0d31f
fix Amp to send MIDI mute when the gain control is set to zero
...
Do not send MIDI mute from ::apply_gain(), which is too general and can end up
resending MIDI mute messages when the owner is muted.
2025-06-19 13:38:39 -06:00
Paul Davis
6b675bac18
for MIDI mute block in Delivery, add ALL_NOTES_OFF
2025-06-19 13:37:53 -06:00
Paul Davis
fc24c59eb9
refactor midi mute buffer sizing into a separate method for Delivery
2025-06-19 13:37:30 -06:00
Paul Davis
e45c2f616a
modify Delivery::maybe_merge_midi_mute() to allow forcing the merge
...
In an internal send, this may be called with _current_gain not yet
at zero. So provide an extra argument to force the merge.
2025-06-19 13:36:50 -06:00
Paul Davis
4bf1202493
tiny optimization tweak and auto-fication for Amp::apply_simple_gain()
2025-06-19 09:13:25 -06:00
Paul Davis
8b09becf1d
fix the way mute operates for MIDI tracks
...
our policy is that "mute works on outputs", which means that mute should have
no effect on what an instrument plugin does. However, MidiTrack::act_on_mute()
used to inject sustain=0 messages into the data flow, which would affect
the instrument plugin(s) in the track.
now, MidiTrack::act_on_mute() simply notifies all Delivery objects in the track
that a MIDI mute is needed via a channel mask. The Delivery objects notice this
during their ::run() method, and deliver the required MIDI events to their
output ports.
There is still a potential issue that Amp objects which notice they have been
muted also send a similar set of messages. This needs more investigation and
possibly other changes. But this commit allows a sustained note to return after
the track is muted midway through it.
2025-06-19 08:03:43 -06:00
Paul Davis
919ce6309c
auto-ify the main processor loop in process_output_buffers()
2025-06-19 08:03:43 -06:00
Paul Davis
fc692f5680
Fix for timepos_t::earlier() - superclock_t vs.samplepos_t confusion
2025-06-17 14:03:43 -06:00
John Emmas
b795d36cd3
Avoid using 'boost::aligned_storage' which is known to be problematic in MSVC builds
...
MS initially believed the runtime issues might be fixable in VS2015 but in fact, Boost's alignment strategy and Microsoft's alignment strategy just turned out to be incompatible:-
https://www.boost.org/doc/libs/1_65_0/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html
2025-06-17 09:02:24 +01:00
Paul Davis
1230e1258d
code refactoring and action name handling to make follow-playhead work in multiple editing contexts (libs)
2025-06-15 21:18:06 -06:00
Robin Gareus
f64627da48
Fix include order TRACE_SETSESSION_NULL is defined in session_handle.h
2025-06-13 17:01:49 +02:00
Robin Gareus
704241dec2
Fix button corner radius math
2025-06-13 02:42:26 +02:00
Paul Davis
5223cbdc18
add new NSApplicationDelegate method to deal with warning on macOS Sonoma
2025-06-12 12:09:11 -06:00
Ben Loftis
aa5685c585
Add icons for editor toolbar buttons: follow*, show_auto_on_touch
2025-06-12 18:57:56 +02:00
Ben Loftis
f644b83f3f
Add new icons for LoopMode and AutoReturn
2025-06-12 18:57:27 +02:00
Robin Gareus
72cc6a3e69
Amend 877f603d92 (clang + execstack)
2025-06-12 02:25:43 +02:00
Robin Gareus
7c476f0468
Allow for blank separators
2025-06-11 23:57:55 +02:00
Robin Gareus
31a75af243
In the case where there is no pane-divider, add space at top
2025-06-11 20:25:37 +02:00
Ben Loftis
2ac2a4fd4c
(backport) loop and config icon should obey the fg_color they are provided
2025-06-11 19:21:07 +02:00
Robin Gareus
63bab272dc
Tweak cue/trigger icon to match weight of similar icons
2025-06-11 19:20:31 +02:00
Ben Loftis
9463eabfe4
Expose corner_mask variable for ArdourButtons
2025-06-10 21:18:36 +02:00
Robin Gareus
c02a7668d7
Tweaks rounded corners
2025-06-10 21:18:36 +02:00
Ben Loftis
8272c33fb8
Expose gtkmm rounded_functions for rounded_bottom_left/right
2025-06-10 21:18:36 +02:00
Ben Loftis
b397d48a56
Remove redundant logic for calculating button rg color
2025-06-10 21:18:36 +02:00
Ben Loftis
43b48467f8
Ardour_icon: shrink the stop icon to match the weight of Play
2025-06-10 21:18:36 +02:00
Robin Gareus
ccf3addf5a
Add spacer widget to maintain size with GUI scaling
...
This is intended for the (Mixbus) Group Bar
2025-06-10 21:18:35 +02:00
Ben Loftis
41fc50898e
Allow themeing of icon colors so they can be less severe
...
Note: this breaks some themes, notably light ones.
2025-06-10 21:18:35 +02:00
Ben Loftis
d9176fd862
Button-sizing Tweak:TransportIcon alternative to ExpandToSquare
2025-06-10 21:18:32 +02:00
Paul Davis
742f654fa4
StringCompletion: allow case-folded matching
2025-06-10 12:28:33 -06:00
Robin Gareus
877f603d92
Make execstack optional, and check clang's variant with space
...
see also ec5b06e63d
and https://discourse.ardour.org/t/fyi-ardour-9-doesnt-build-on-linux-using-clang/111896
2025-06-10 16:13:44 +02:00
Paul Davis
4eb9285659
allow StringCompletion to match anywhere
2025-06-08 09:14:33 -06:00
John Emmas
23c7d564e2
The new class 'StringCompletion' needs to be visible outside of gtkmm2ext
2025-06-08 11:51:43 +01:00
Paul Davis
4a827ef7ee
remove new functions that are not actually used
2025-06-07 23:03:30 -06:00
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