Commit graph

22056 commits

Author SHA1 Message Date
Franke Burgarino
995de7a48c MCU: fix banking in the plugin subview
the addition of the current bank to the global strip position was just
causing the vpots to be off by the bank number, so past bank 1 the pots
were tied to the wrong plugins
2025-08-27 16:47:16 +02:00
Franke Burgarino
36cac4e5e4 MCU: remove vpot control in plugin subview
when switching to the plugin subview, vpots were still attached to
pan controls
2025-08-27 16:47:16 +02:00
Franke Burgarino
d3bbe142e6 MCU: fix plugin subview crash
fixed a crash that occurred when attempting to vselect an empty pot
in the plugin subview
2025-08-27 16:47:16 +02:00
Franke Burgarino
1a6d7b443c MCU: clear pot LEDs when pot is empty 2025-08-27 16:47:16 +02:00
Robin Gareus
cb403667f4 VST3: implement host/global IContextInfoProvider
This should fix crashes at instantiating sonible VST3
plugins.
2025-08-27 16:47:16 +02:00
Robin Gareus
5dfd6a4b29 VST3: Ardour enumerates Tracks/Busses by type
e.g. Track 1, Bus 1
2025-08-27 16:47:16 +02:00
Robin Gareus
fc2e1c0f92 VST3: fix debug message 2025-08-27 16:47:16 +02:00
Franke Burgarino
25a656b993 MCU: update pot LEDs when switching to the track/pan subview 2025-08-27 16:47:15 +02:00
Paul Davis
1f33e90ac1 remove debug message 2025-08-27 16:47:15 +02:00
Robin Gareus
a9cdf76601 Allow numeric entry with "shift" when using dbl-click to reset 2025-08-27 16:47:15 +02:00
Paul Davis
a99e4116f8 temporal: provide TempoMap::global_fetch()
This always returns a shared ptr to the global tempo map, without setting the
thread-local pointer
2025-08-27 16:47:15 +02:00
Daniel Appelt
6a0431152a Add support to create midi regions from Lua 2025-08-27 16:47:15 +02:00
Robin Gareus
34f309767c NO-OP: format comment 2025-08-27 16:47:15 +02:00
Robin Gareus
3bb4f482b6 Add preference to disable implicit grouping 2025-08-27 16:47:15 +02:00
Franke Burgarino
78bf5022d8 MCU: show surround master in global/mixer view
only if the controller doesn't have a master fader
2025-08-27 16:47:14 +02:00
Franke Burgarino
18b027d1d0 MCU: clean up MackieControlProtocol::get_sorted_stripables logic 2025-08-27 16:47:14 +02:00
Franke Burgarino
a5a8246257 MCU: add MackieControlProtocol::is_bus 2025-08-27 16:47:14 +02:00
Franke Burgarino
43a851c2b1 MCU: bring back foldbacks with correct sorting 2025-08-27 16:47:14 +02:00
Paul Davis
ec8c4e7882 several more bbt_delta() unit tests 2025-08-27 16:47:14 +02:00
Paul Davis
3f45c0bdec temporal: remove iterative bbt_delta() since unit test shows breakage 2025-08-27 16:47:14 +02:00
Paul Davis
d6e331fe6c temporal: new non-iterative implementation of Meter::bbt_delta() 2025-08-27 16:47:14 +02:00
Paul Davis
b4ca9f2f38 add unit test for Meter::bbt_delta() 2025-08-27 16:47:14 +02:00
Paul Davis
a33edcb3af Evoral: add ControlList::has_event_at (timepos_t) 2025-08-27 16:47:14 +02:00
Paul Davis
2eb1a31e16 canvas: fix enter notify event handler to work with gtk ungrabs
GTK delivers both window and root coordinates as (0,0) for GDK_CROSSING_GTK_UNGRAB
modes. We need the real coordinates of the pointer to pick the right canvas item
2025-08-27 16:47:14 +02:00
Paul Davis
b292e5191c tag regions captured inside Ardour with tempo and meter from timeline 2025-08-27 16:47:14 +02:00
Franke Burgarino
ede1055cdb MCU: fix pan values for mixbus 2025-08-27 16:47:14 +02:00
Robin Gareus
8b41d71036 Consolidate PI type flags across projects
This is to prevent future conflicts of flags..
2025-08-27 16:47:14 +02:00
Robin Gareus
c4020b22c4 Amend 28c8dbf128, unsubscribe from destroyed signal
This handles another edge case where the Frame is deleted
before the child widget.
2025-08-27 16:47:14 +02:00
Franke Burgarino
15fd52960e MCU: work around mixbus initialization issue 2025-08-27 16:47:14 +02:00
Franke Burgarino
9bb6741435 MCU: fix mcpStripableSorter 2025-08-27 16:47:14 +02:00
Paul Davis
5f7bcc55ef temporal: fix unused variable warning in TempoMap::paste() 2025-08-27 16:47:13 +02:00
Paul Davis
d4a73cf8e4 temporal: lots more DEBUG_TRACE statements for grid debugging 2025-08-27 16:47:13 +02:00
Paul Davis
96e5229ad1 temporal: in the event of the most common logic failure, provide more info
TEMPORAL_MAP_ASSERT() doesn't give us any actual values or context.
2025-08-27 16:47:13 +02:00
Paul Davis
f1606db64a in launchkey 4 code, use new Meter::bbt_delta() not ::bbt_delta 2025-08-27 16:47:13 +02:00
Paul Davis
0d6402e875 remove incorrect bbt_delta() in BBT_Time, provide Meter::bbt_delta
There are two implementations here, the more efficient one (commented out) does
not work correctly yet.
2025-08-27 16:47:13 +02:00
Paul Davis
69cc153470 check for null ActionGroup in ActionManager::drop_action_group() 2025-08-27 16:47:13 +02:00
Robin Gareus
84046ebc35 Hide debug messages in optimized builds 2025-08-27 16:47:13 +02:00
Franke Burgarino
3197c787b1 MCU: hide phase/solo controls for master 2025-08-27 16:47:13 +02:00
Robin Gareus
464303da5e Handle special case of using unmanaged widgets to Frame
This happens in in Ardour's Preference dialog with
e.g. BufferingOptions:

~OptionEditorContainer deletes the Option, which in turn
deletes the Widget BufferingOptions:_buffering_presets_combo
Since the widget is not managed it is not removed from its
parent.

Later ~OptionEditorContainer disposes the page layout, which
eventually also calls the Frame d'tor, causing a heap-use-after-free.
2025-08-27 16:47:13 +02:00
Franke Burgarino
f7d01ea8e9 MCU: give UF1 & UF8 seperate device configs 2025-08-27 16:47:12 +02:00
Franke Burgarino
7e57b644d6 MCU: add master/monitor to global/mixer view if device has no master fader 2025-08-27 16:47:12 +02:00
Robin Gareus
cf4eb99ed8 Handle case where a custom MenuElem is added to the dropdown 2025-08-27 16:47:12 +02:00
Paul Davis
d18ecd5084 unit tests: fix an unusual deadlock/block in TempoMap::write_copy()
this call works in other tests, no time to investigate it right now, and
technically the test doesn't require a write copy at all.
2025-08-27 16:47:12 +02:00
Paul Davis
a3cf0a1570 unit tests: use std::cout for any debug output in tempo map cut buffer test 2025-08-27 16:47:12 +02:00
Paul Davis
3d4add15bc temporal: implement TempoMap::bbt_distance() but do not use it
This was implemented to try to fix paste() but was not needed. It might be
useful in the future, or just as an expression of the logic of this. Note that
the BBT_Offset it returns only has the beats field set, which is ... odd. So
this is likely not quite finished.
2025-08-27 16:47:12 +02:00
Paul Davis
5e66f6d363 temporal: undefine macro after use 2025-08-27 16:47:12 +02:00
Paul Davis
ea00d3573d temporal: show BBT marker point names in operator<< 2025-08-27 16:47:12 +02:00
Paul Davis
af4c7cd960 temporal: fix TempoMap::paste() to pass unit test
the BBT times of the newly inserted points during paste() are meaningless until
we recompute them using ::reset_starting_at(). So don't try to compute some
sort of likely value, just use the value from the cut buffer, and call
reset_starting_at() after every point inserted.
2025-08-27 16:47:12 +02:00
Paul Davis
230f08b9fd temporal: BBT_Time cannot have any round_to_*() or round_up_to_*() methods
A meter (time signature) is required to do the math correctly for any operation that may
cross or reach the next bar boundary, which round_to_*() and round_up_to_*() may do.
2025-08-27 16:47:12 +02:00
Robin Gareus
daaa8641b5 ArdourDropdown: use action's short-label for display text 2025-08-27 16:47:11 +02:00