13
0
Commit Graph

17608 Commits

Author SHA1 Message Date
cdf88efeff fix crash caused by VelocityDisplay _optimization_iterator
Never use the _optimization_iterator when looking for a note to update or select
because those two conditions may be preceded by note add/delete operations (including
those via undo/redo) which would make the iterator invalid.

The _optimization_iterator only makes sense when actually iterating over the event list,
which is ironic because that's the one time we don't need it
2024-11-10 12:44:05 -07:00
96ef4d20f2 when recording MIDI, create active_notes on demand
Since the signal handler for "data recorded" is in the GUI thread, we can do
whatever we want there, including memory allocation
2024-11-09 09:20:25 -07:00
a7bd0da8ea fix missing initialization 2024-11-09 09:19:01 -07:00
a76afae0e9 use smaller ("very small") text for rulers on macOS
This fixes a years-long visual issue with the rulers on macOS, where the
text has been MUCH larger than on Linux (and maybe Windows, not sure)
2024-11-08 17:16:12 -07:00
8196734e3f change references to what was "very small text" to "smaller text";
This is more consistent with the naming of the font size for the canvas
via wscript.

Also, provide the new "very small" font size.

Also, several styles defined in clearlooks.rc.in used spaces in
font names or derived styles instead of underscores, this fixes that.
2024-11-08 17:14:33 -07:00
c08cfa8109 more work on multiple automation display 2024-11-08 12:16:09 -07:00
c8b2c0c543
Fix crash looking up smart-mode
we need to call
  get_toggle_action (char const*, char const, bool d = false)
and not
  get_toggle_action (const string& name, bool)

For whatever reason `(string, char*)` matches the latter
function's signature.
2024-11-08 19:15:46 +01:00
bbdb6b0e63 more extensive automation display design for cue editor 2024-11-07 16:10:31 -07:00
Juan Vardy
f2fc5fc0dc
Update Spanish translation 2024-11-07 17:51:11 +01:00
Alejandro Domínguez
1124e191f0
Replace boost::integer::gcd with std::gcd 2024-11-06 23:08:36 +01:00
Zabooma
1155da84dd
Add text control type for LuaDialog, based on Gtk::TextView 2024-11-06 16:39:00 +01:00
a76d4b4c82
Fix class/struct mismatch (can cause with Windows builds) 2024-11-06 05:43:25 +01:00
02fde5f1aa
Fix unlikely buffer overflow #9845
> warning: 'sscanf' may overflow; destination buffer in argument 6
> has size 32, but the corresponding specifier may require size 33
> [-Wfortify-source]
2024-11-06 04:08:19 +01:00
b3a22a024c add more buttons to midi cue editor and use Canvas::Box for packing 2024-11-05 14:59:20 -07:00
19e4063b6b add a button bar and 1 button at the bottom of the MidiCueView 2024-11-05 13:27:22 -07:00
61f1466f50 use virtual methods to get MidiRegionView to do ::set_model() correctly 2024-11-05 13:27:22 -07:00
laIK4ndPDScproJyv9ofA
f0ec6b5bda
Redraw arrangement rectangles upon tempo change
Previously, changing tempo would leave arrangement rectangles out of sync with markers.
2024-11-03 15:15:35 +01:00
1b13bf607f
Micro optimization: only queue resize when widget is realized 2024-11-03 02:49:51 +01:00
57252cd1c7 clip recording: begin/end write only happens on trigger arm/disarm 2024-11-01 17:45:00 -06:00
56c99a43d2 remove any existing data display from a MidiView when ::begin_write() happens 2024-11-01 17:45:00 -06:00
0631f99f15 add ability to change stop-on-grid from Preferences 2024-10-31 12:22:35 -06:00
8986768731 fix invisble notes in MidiRegionView after transport stopped-recording
MidiCueView needs an _active_notes array setup when it is assigned a track that is
already rec-enabled, because we can start clip recording without session record-enable
being active.

MidiRegionView does not need this; it uses session rec-enable status to create or delete
_active_notes (also transport stop, sometimes)
2024-10-31 12:22:35 -06:00
c7192b4cc0 add the concept of a length that is data-independent to MIDI files (GUI) 2024-10-31 12:22:35 -06:00
John Emmas
42602e0329 Add an alternative #include
Having removed boost::function.hpp we need to replace it with gtkmm2ext/actions.h - otherwise, glibmm/refptr.h can't make sense of the type 'Gtk::ActionGroup' (go figure...)
2024-10-26 14:50:22 +01:00
e11caf2dea various changes to get MIDI clip recording to display the post-capture region 2024-10-22 14:49:50 -06:00
Mads Kiilerich
7a4fe02d53
wscript: waf i18n is usually running pot&po&mo and should thus also run appdata_i18n_mo 2024-10-22 00:37:40 +02:00
Mads Kiilerich
6742c1e4b4
wscript: waf i18n should generate gtk2_ardour/appdata/ardour.appdata.pot when invoking appdata_i18n_pot 2024-10-22 00:37:40 +02:00
b5d6b97fd2
Keep inline control state in sync with editor-mixer 2024-10-22 00:36:50 +02:00
Mads Kiilerich
3228a61e62 wscript: the i18n worker functions do not define the i18n waf commands
Rename the worker functions to make it clear that their name in this
case isn't magic. These functions "are not" the waf commands. It is the
custom build context class definitions that define the i18n commands ...
which will invoke these top level worker functions which in turn invoke
the others recursively.

The bare printing of the build environment in the top level i18n command
seems to be old debug code that safely can be removed.
2024-10-20 19:52:14 -06:00
Mads Kiilerich
48fcb30608 wscript: fix whitespace formatting
No tabs and no trailing spaces.
2024-10-20 19:52:14 -06:00
Mads Kiilerich
b4ff4f356c Make header files more self-contained - add missing Ardour and lib includes 2024-10-20 03:30:46 +02:00
Mads Kiilerich
955e634371 Make header files more self-contained - add missing std includes 2024-10-20 03:11:53 +02:00
Mads Kiilerich
8a5f21d8e3 Drop some unused files - avoid trying to maintain stuff that can't be tested 2024-10-20 03:11:53 +02:00
Mads Kiilerich
140670541f Use .inc.h for #include files that not are plain headers
Regular .h files *should* be self-contained and independent of previous
includes and guarded to only include once. Make it clear which files
that *doesn't* apply for at all.
2024-10-20 03:11:53 +02:00
Mads Kiilerich
38db12c9ea Drop Frontier Tranzport surface - it has been dead for a decade 2024-10-20 03:08:03 +02:00
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
ff95d81612
Reduce reliance on boost - the easy part
* boost::unordered_map -> std::unordered_map
* BOOST_STATIC_ASSERT/static_assert
* BOOST_FOREACH -> for
* boost::tuple -> std::tuple/g
* boost::math::isnormal -> std::isnormal
* boost::container::set -> std::set
* boost::none -> std::nullopt
* boost::optional -> std::optional
2024-10-19 03:41:16 +02:00
168b917730
Prepare for std::optional 2024-10-19 03:40:04 +02:00
609b723650
Remove unused header 2024-10-19 03:39:54 +02:00
Alejandro Domínguez
56cc8557c5
Replace boost::replace_all with std::replace 2024-10-19 03:39:48 +02:00
Alejandro Domínguez
21e70d28cc
Replace boost::scoped_ptr with std::unique_ptr (2/2) 2024-10-19 01:04:14 +02:00
883a7cc65b
Remove unused include 2024-10-19 01:04:07 +02:00
2c503eab09
Remove old Coreaudio OSX 10.5 support 2024-10-18 22:52:34 +02:00
99906a2215
Drop build-system support for macOS < 10.13 (require C++17) 2024-10-18 22:52:29 +02:00
2339b4dfdc
Replace PBD::Signals (2/2) 2024-10-18 20:41:08 +02:00
Alejandro Domínguez
6e19813c9b
Adapt LuaCallback to new template variadic Signal 2024-10-18 20:41:08 +02:00
6c14a6c407 non-crashing version of previous commit 2024-10-18 09:57:43 -06:00
9f14eea88a avoid memory leak (and GUI object leak) 2024-10-18 09:55:16 -06:00
70b41d10b1 actally stop doing clip recording visual stuff when disarmed (gui) 2024-10-18 09:50:48 -06:00
a1643573be
Fix optimized builds (missing stacktrace include) 2024-10-18 15:38:54 +02:00
7c6fc78b11
Amend ca1583cdad fix windows builds 2024-10-18 15:37:23 +02:00
bf2016071d a variety of improvements related to clip recording & editing 2024-10-17 21:47:52 -06:00
229506147a playhead for MIDI clip editor during playback (first steps) 2024-10-17 15:06:33 -06:00
c5c865f589 fix potentially unset variable (thanks clang!) 2024-10-17 15:06:04 -06:00
e74f57c52b get playhead functioning during clip recording (MIDI) 2024-10-17 14:36:27 -06:00
7b88ae2466 fix initial LR sizing of midi cue editor canvas sections 2024-10-17 13:37:21 -06:00
2ff90a0557 probably fix an assert() logic error 2024-10-17 11:27:57 -06:00
05cb6197a6 return to file-conditional for pre-release dialog 2024-10-17 07:49:25 -06:00
c2094085e3 sort of get MIDI notes to extend during clip recording
Also, robustify MidiView against a missing MidiModel member variable
2024-10-17 07:44:33 -06:00
774f5f49da robustify MidiView against the condition where it has no MidiRegion 2024-10-17 07:44:33 -06:00
e390c2c3dd trigger page should respond to rec-enable changes 2024-10-17 07:44:33 -06:00
9ad08fa9a5 add input,output,rec-enable buttosn to trigger strip
With clip recording starting to function, these things now matter on the cue page
2024-10-17 07:44:33 -06:00
d7e85de7c2 first somewhat version of show-clip-capture MIDI notes as they arrive 2024-10-17 07:44:33 -06:00
bd0b5495c6 robustify MidiView so that it can be created without a MidiTrack 2024-10-17 07:44:33 -06:00
35f16f1bb6 preparations for clip data display (MIDI) while recording (GUI edition) 2024-10-17 07:44:33 -06:00
67c6a9dbf4 fix lambda warning (unused captured this) 2024-10-17 07:44:32 -06:00
01068fe306 further adventures in drag-refactoring do that LineDrag can be used in MidiCueEditor also 2024-10-17 07:44:32 -06:00
302337e8fd resurrect a slightly modified pre-release dialog in prep for merge with master 2024-10-17 07:44:32 -06:00
dfe3c48d0f use button.y and modifier state when adding a control point in the midi cue automation lane 2024-10-17 07:44:32 -06:00
2afdeb519f refactor rubberband drags to take a functor for the no-drag condition
Also move code for adding automation line control points into automation line, rather
than in AutomationTimeAxisView (some work still required to finalize this)
2024-10-17 07:44:32 -06:00
e6c0fcf98f refactor end-of-rb-selection for EditingContext
Whhat the main editor and the cue editor do with a click varies significantly
2024-10-17 07:44:32 -06:00
db30a7d040 fix sprintf overflow warning from clang on macOS 2024-10-17 07:44:32 -06:00
f3d099f83f fix unused variable warning from clang on macOS 2024-10-17 07:44:32 -06:00
dd6b2c8c7f fix several set-not-used warnings from clang on macOS 2024-10-17 07:44:32 -06:00
b8fb779fa7 allow dragging in MIDI automation line in cue editor
Note: once this is cleaned up and checked with respect to snap and more,
the same should be done for MidiRegionView
2024-10-17 07:44:32 -06:00
4b8c51574d refactor the "selectables" API to allow use within separate (e.g. cue) editors 2024-10-17 07:44:32 -06:00
83ea6e18b5 get MIDI cue editor mouse mode buttons to reflect state at startup 2024-10-17 07:44:32 -06:00
b02a930c04 remove debug output 2024-10-17 07:44:32 -06:00
1961a9207c provide a better method to decide if a trigger(slot) is occupied
This is necessary with clip recording because for some short time after recording,
a trigger may be playable despite not yet having a region.

GUI edition.
2024-10-17 07:44:32 -06:00
e089953e78 get blinking rec status closer to correct for clip recording 2024-10-17 07:44:32 -06:00
1146a4ad07 move RecordState enum from ARDOUR::Session to ARDOUR so we can use it in TriggerBox (GUI) 2024-10-17 07:44:32 -06:00
90858279bc tweak drawing of clip recording rec-enable icon 2024-10-17 07:44:32 -06:00
1e193d0363 GUI side of clip recording (recording indicators etc.) 2024-10-17 07:44:32 -06:00
8069a4a514 remove some debug output 2024-10-17 07:44:32 -06:00
fa6da8818f first functioning MIDI clip recording (GUI) 2024-10-17 07:44:32 -06:00
ca1583cdad the great onceification (gui)
Replace use of #ifndef header guards with #pragma once

Modern C++, baby!
2024-10-17 07:44:31 -06:00
56ce9c33c0 renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine 2024-10-17 07:44:31 -06:00
90c8726c6d wideranging changes to get automation editing working in cue editor 2024-10-17 07:44:31 -06:00
4169f11ddd cue automation lines: take height into consideration 2024-10-17 07:44:31 -06:00
71d5b50a94 kinda-sorta get an automation line for modwheel in the cue editor 2024-10-17 07:44:31 -06:00
afa15a0061 get velocity editing working in both the cue editor and MIDI region views
Quite a bit of hairy coordinate system stuff in here that ought to be commented more
clearly
2024-10-17 07:44:31 -06:00
ee305a7169 catch up on TriggerReference API changes in GUI 2024-10-17 07:44:31 -06:00
a72bde5d3c add the final virtual GhostRegion method to VelocityGhostRegion 2024-10-17 07:44:31 -06:00
76104f994b velocity display: clear must invalidate optimization iterator 2024-10-17 07:44:31 -06:00
a44e8ac088 fix drawing of lollipops.
There may be more virtual GhostRegion methods that VelocityGhostRegion has to proxy
to VelocityDisplay
2024-10-17 07:44:31 -06:00
54fdf90cc2 lots of detailed fixes to get lollipops in tracks working again, post re-factor 2024-10-17 07:44:31 -06:00
739d58840f manually reimplement 3766b22e06 from master (sysex deletion)
Things have changed
2024-10-17 07:44:31 -06:00
15258b9aa4 new base class for automation lines 2024-10-17 07:44:31 -06:00
fa993ec9f4 various fixes to get lollipops to display (cue editor only so far) 2024-10-17 07:44:31 -06:00
0399cd9d02 initial use of refactored VelocityDisplay 2024-10-17 07:44:31 -06:00