Commit Graph

41946 Commits

Author SHA1 Message Date
Paul Davis
3890eb7f0e remove some compiler warnings caused by debug/runtime error output 2026-01-09 18:00:47 -07:00
Franke Burgarino
d774535fe9 Fix reverse iterator issue caught by ASAN
This issue could be seen when dragging an arrangement marker beyond the
bottom of the list in the right edge.

IIUC, std::reverse_iterator<Iter>::operator* creates a temporary iterator
which it then dereferences. This is a problem because what we are
derefencing is a Gtk::TreeIter<Gtk::TreeRow>. gtkmm documentation for
Gtk::TreeIter< T >::operator* states, "The returned reference is
implemented by casting from *this, and so the returned reference is only
valid while this iter is." Additionally, cpp documentation for
std::reverse_iterator states, "std::reverse_iterator does not work with
iterators whose dereference returns a reference to a member of *this."

We also are not advancing this iterator at all, so whether it is reverse
or not is irrelevant (we just want the last one). Thus, *prev(rows.end ())
instead of *rows.rbegin ().
2026-01-09 14:19:29 -06:00
Robin Gareus
cb807dcb11 Update themes, make transport option button state visible
https://discourse.ardour.org/t/new-playhead-toggle-button-to-go-with-new-ones-recently-added-to-version-9/112738/5
2026-01-09 19:19:38 +01:00
Paul Davis
0d1c4ee5ed escape plugin name text in missing plugin dialog 2026-01-09 11:09:52 -07:00
Paul Davis
4232983809 temporal: write down things that I have learned 2026-01-09 11:03:18 -07:00
Paul Davis
c8ec52e707 temporal: improve/extend debugging for DEBUG::Grid 2026-01-09 10:53:18 -07:00
Paul Davis
6bc2261575 temporal: fix incorrect logic in TempoMap::fill_grid_by_walking()
If walking the grid by bar, but points are closer than that, we could end up
with the wrong TempoMetric being used to compute various time domain
conversions (which tends to leads to abort()).

This small change makes sure that we keep looking for more points if we have
not yet reached the next grid point (e.g. bar).
2026-01-09 10:53:18 -07:00
Robin Gareus
943623f027 Amend b4373dafda fix redefined macro warning 2026-01-09 18:24:19 +01:00
Robin Gareus
265018601a Lua doc: properly split std::map<> as function argument 2026-01-09 00:41:50 +01:00
Robin Gareus
663693ed11 Add missing Lua bindings for Route Import 2026-01-09 00:41:50 +01:00
Robin Gareus
b4373dafda Add missing Lua Bindings for UIConfig 2026-01-09 00:41:50 +01:00
Paul Davis
183d4741e8 do not use shared_ptr<T> to manage GUI objects
This fixes a design mistake made way back in 2009 (80e3845982) that for
reasons now unknown used std::shared_ptr<T> to manage sysex and patch change
canvas items. This is incompatible with the overall (current) design of the
canvas, and in particular the idea that a container can be told to delete
its children.

This supplements the reversion done in e664fa5e63 and fixes crashes
caused by double-free's in sessions with sysex and patch changes displayed
in pianorolls
2026-01-08 11:38:26 -07:00
Franke Burgarino
7379cec4ef Fix typos 2026-01-08 11:05:47 -06:00
Robin Gareus
62870e5c9a Add action to print keyboard shortcuts 2026-01-08 17:24:59 +01:00
Robin Gareus
c2a01645b4 Print action list using mono-space text (and proper line spacing) 2026-01-08 17:05:32 +01:00
Robin Gareus
0be808ec3c Add option to skip printing action list 2026-01-08 16:55:13 +01:00
Robin Gareus
c86bb05945 Properly match Launchkey interface/device names #10109 2026-01-08 16:15:54 +01:00
Robin Gareus
3ba1a8087e Tweak keybindings print layout
This addresses issues with US-Letter format where headings
may have line-breaks. With a line-height < 1 text overlaps.
2026-01-08 14:40:05 +01:00
Paul Davis
5d3ee78e1e pianoroll: move protection domain of method (modify bb869cc178) 2026-01-07 21:37:02 -07:00
Paul Davis
bb869cc178 pianoroll: better method structure 2026-01-07 21:32:52 -07:00
Paul Davis
68f5da6434 pianoroll: further improvements to layered/non-layered automation display + editing 2026-01-07 21:24:13 -07:00
Paul Davis
33bd9e5aad pianoroll: basics of adding a layered automation control button
This breaks string freeze with one word
2026-01-07 12:05:08 -07:00
Paul Davis
2177252463 use a theme color for pianoroll automation buttons 2026-01-07 10:55:28 -07:00
Paul Davis
51256ad7c6 pianoroll: correctly hide (etc.) automation when switching regions 2026-01-07 09:16:41 -07:00
Paul Davis
8b7c897c21 add missing break statement 2026-01-07 09:16:41 -07:00
Paul Davis
d866eb69c5 pianoroll: fix crash after switching regions and moving mouse into velocity display 2026-01-07 09:16:41 -07:00
Robin Gareus
fb0bb5aafa Editor-Summary shift rotates scroll direction #10105 2026-01-07 15:22:11 +01:00
Robin Gareus
253f883521 NO-OP: Remove unused header 2026-01-07 13:53:24 +01:00
Robin Gareus
7d7ac589e3 Add "empty" check to BasicUI 2026-01-07 13:52:51 +01:00
Franke Burgarino
8c745ff78c MCU: Fix "Disabled" option for Function Keys
Choosing some option and then trying to remove it by clicking "Disabled"
previously did nothing. Now sets it back to blank. Also fixed for Tascam
US-2400.
2026-01-06 17:07:09 -06:00
Robin Gareus
3f9fe81da9 Extend ctrl surface API to be more flexible when creating markers 2026-01-06 21:21:56 +01:00
Paul Davis
ee4d673da1 minor change in exception handling while testing issue on macOS 2026-01-06 10:13:17 -07:00
Paul Davis
f3e581be0d redesign bottom of pianoroll (automation/MIDI CC buttons)
This should hopefully disambiguate where to click and why
2026-01-05 16:23:17 -07:00
Paul Davis
7e9c73b807 gtkmm2ext: fix a bug that can arise when using ad-hoc Gtk::Actions with non-standard paths 2026-01-05 16:23:17 -07:00
Robin Gareus
e1c21bc619 Expose some Session statistics as Lua bindings 2026-01-06 00:05:09 +01:00
Robin Gareus
30d97eb92d Add method to check if Session is empty
Empty means that it contains some tracks or user-addedd
busses or VCA (not counting master, monitor, surround busses).

This is motivated by A&H control-surface.
2026-01-06 00:03:05 +01:00
Damien Zammit
dc7a95c54f import_pt: Fix for multichannel tracks and regions #9705
Also speeds up PT imports during region creation.
This is because regions are imported immediately when sources
are grouped into multichannels rather than doing it in another pass
2026-01-06 09:19:21 +11:00
Damien Zammit
d1ffeb7038 import_pt: Use new bulk create method for adding tracks #9730
Speeds up imports tremendously.
2026-01-06 09:19:03 +11:00
Damien Zammit
27653eaeba session: Add new_audio_routes_tracks_bulk() method
This allows bulk creating tracks with different name templates.
Simply call the bulk method multiple times as required and finally
call add_routes() once.
2026-01-06 09:15:27 +11:00
Colin Fletcher
f026a8acbf soundcloud, freesound: use correct curl option for progress bars
Although setting CURLOPT_PROGRESSDATA appears to work to set the pointer
passed into the new CURL_XFERINFOFUNCTION option, the documented option is
now CURLOPT_XFERINFODATA.
2026-01-05 18:09:15 +00:00
Colin Fletcher
ca437aebee freesound: fix download progress bar
Missing part of 821385eb.
2026-01-05 18:06:44 +00:00
Colin Fletcher
7cf65ec695 freesound: updated API key & client secret
New API key (client ID) & client secret from freesound.org, to change the
application name from "Ardour 7" to "Ardour".
2026-01-05 17:17:04 +00:00
Robin Gareus
821385ebfd Update curl to use new API (2/2) 2026-01-05 16:41:27 +01:00
Robin Gareus
f5e48a6bda Update curl to use new API (1/2) 2026-01-05 16:41:17 +01:00
Robin Gareus
ab724881e3 Remove unused deprecated GTimeVal in global header
This significantly reduces compiler warnings..
2026-01-05 03:33:02 +01:00
Paul Davis
f2744a9ce8 improve behavior when editing BBT markers
setting the name should now work reliably, in particular
2026-01-04 17:05:07 -07:00
Paul Davis
2bb259f6cb prevent drags on the tempo/meter markers representing a BBT marker 2026-01-03 09:55:36 -07:00
Martin Vlk
1420b67edb Czech translation updates for v9.0 2026-01-03 15:22:48 +01:00
Paul Davis
9855a23903 MIDI triggers: make sure velocity scaling is not cumulative (see comments) 2026-01-02 17:32:48 -07:00
Paul Davis
267efab6e8 remove typo from magit process 2026-01-01 20:29:06 -07:00