Paul Davis
83d2adfd67
remove current_editing_context concept
...
All bindings, actions and members of an EditingContext are now per-EditingContext,
and have no impact on others (other than cursors).
2025-03-12 12:36:34 -06:00
John Emmas
a4ee85c4a1
Some new gtkmm2ext functions need to be visible outside of gtkmm2ext
2025-03-12 11:10:47 +00:00
Paul Davis
a9c1619410
since Pianoroll objects may be created at any time, ::associate() them
...
Bindings owned by objects created earlier in program instantiation
get associated during ARDOUR_UI::we_have_dependents().
2025-03-11 13:51:32 -06:00
Paul Davis
261b5b3732
fix spelling error in EditingContext name for in-editor pianoroll
2025-03-11 13:48:12 -06:00
Paul Davis
9405f807ec
avoid crash if get_bindings_from_widget_heiarchy() moves to top of tree
2025-03-11 13:47:36 -06:00
Paul Davis
619927d68c
avoid a dangling use of "ardour-bindings" (use ARDOUR_BINDING_KEY instead)
2025-03-11 13:47:02 -06:00
Paul Davis
7d1886b22d
provide a copy-constructor for Gtkmm2ext::Bindings
...
This copies all the binding information for an existing Bindings object,
but then mutates all the action names from foo/bar to name/bar where name
is the given name for the new Bindings object.
2025-03-11 13:45:29 -06:00
Paul Davis
e9d0085c5c
pianoroll does not have its own bindings
2025-03-11 13:44:40 -06:00
Paul Davis
ef55ff0ee7
correct behavior for Pianoroll::bindings_changed()
...
may need some attention to lifetime here.
2025-03-11 13:43:55 -06:00
Paul Davis
203f26c861
do not setup bindings twice in a Pianoroll
2025-03-11 13:42:59 -06:00
Paul Davis
b659a1e7ae
there are no pianoroll bindings
2025-03-11 13:42:42 -06:00
Paul Davis
6333b3bd3a
mouse-mode-object-range and zoom-to-selection are editor bindings
...
They do not exist for all EditingContexts and thus should not be in
the Editing namespace/group.
2025-03-11 13:41:18 -06:00
Paul Davis
50d2fbc548
add comment indicating format of group defuns in keybindings
2025-03-11 13:40:47 -06:00
Paul Davis
801099e057
use Gtkmm2ext::BindingSet for the GUI
2025-03-10 18:49:02 -06:00
Paul Davis
effe0bd879
use Gtkmm2ext::BindingSet inside libgtkmm2ext
2025-03-10 18:48:49 -06:00
Paul Davis
9472ca1a14
introduce API to set widget bindings as a vector of Bindings
2025-03-10 13:02:25 -06:00
Robin Gareus
8ac84c3ffd
Cont'd work on Editor/ing contexts
2025-03-10 17:37:35 +01:00
Robin Gareus
037d54b17f
Set mouse-object mode is for the Editor (not piano-roll)
2025-03-10 17:29:33 +01:00
Robin Gareus
769e61ee4c
Update keybindings (fix missing actions, episode 1)
2025-03-10 17:29:33 +01:00
Paul Davis
c14a8e91a7
fix start and end trim of timeline regions in a pianoroll
2025-03-10 09:42:27 -06:00
Paul Davis
53ffd61dd9
for pianoroll MidiViews, set _visible_channel to the lowest MIDI channel with notes present
2025-03-08 18:27:20 -07:00
Paul Davis
fd890b4891
evoral: add Sequence::channels_present()
2025-03-08 17:56:44 -07:00
Paul Davis
cee0b498e9
NO-OP: braces, please
2025-03-08 17:30:29 -07:00
Paul Davis
c0ed2fd9f5
fix vanishing notes during drag in a pianoroll
2025-03-08 12:14:17 -07:00
Paul Davis
881ae4b23a
use correct name for main Editor as EditingContext
...
Bindings rely on this being correct
2025-03-07 19:14:57 -07:00
Robin Gareus
9f4f684d62
Update markers when DPI changes
2025-03-07 17:23:58 +01:00
Ayan Shafqat
19e00c575a
Add optimized NEON implementations for Aarch64
...
Introduce optimized NEON implementations for audio peak detection,
buffer mixing, scaling, and copy functions on AArch64.
For benchmark results, see ardour-neon-functions [1].
Provide a dedicated `aarch64_neon_functions.cc` for Aarch64 target.
provide backwards compatibility with armhf targets with
`arm_neon_fuctions.cc`.
[1] https://github.com/ashafq/ardour-neon-functions
2025-03-07 02:52:52 +01:00
Paul Davis
8f4c10f855
subtle change in event handling for MidiViews
...
this needs more investigation but we need to return false from
scroll event handling in order for stuff to work. this should
not be the case and this will likely be reverted once the reason
it is required is uncovered
2025-03-06 18:12:40 -07:00
Paul Davis
a94bd4b7c6
rename MidiView::relative_position() to ::view_position_to_model_position()
2025-03-06 18:12:40 -07:00
Paul Davis
6d1c6bc239
slight rearrangement for MidiView::relative_position()
2025-03-06 18:12:40 -07:00
Paul Davis
3df9673b0b
If a MidiView handles a canvas event, do not propagate it to the EditingContext
2025-03-06 18:12:39 -07:00
Paul Davis
2cadaafc4f
NO-OP: follow style guide and use space in function call
2025-03-06 18:12:39 -07:00
Paul Davis
8a37279dab
return better value in MidiView::max_zoom_extents() for empty source
2025-03-06 18:12:39 -07:00
Paul Davis
b9d69d3948
take _visible_channel into account for MidiView when drawing notes
2025-03-06 18:12:39 -07:00
Paul Davis
93f1211db9
add MIdiView::show_source() method to expose _show_source value
2025-03-06 18:12:39 -07:00
Paul Davis
441cfe4e2d
Make MidiView::relative_position() return correctly for _show_source case
2025-03-06 18:12:39 -07:00
Paul Davis
eb75064909
Modify comments and variable names in MidiView::create_note_at()
...
First argument is a source-relative position, not region-relative.
2025-03-06 18:12:39 -07:00
Paul Davis
67fa5282cb
Remove Region::absolute_time_to_region_beats()
...
This method did not do what its name suggested. Replace it with
::absolute_time_to_source_beats() which already existed and
computed the same result.
Also in a NoteCreateDrag, correctly adjust note start
depending on whether we are viewing the whole source or
just the region. This part may be amended later.
2025-03-06 18:12:39 -07:00
Robin Gareus
f9e78dc128
Resize Videotimelime with DPI
2025-03-07 00:41:07 +01:00
Robin Gareus
7b9e9d7241
Resize rulers when DPI changes
2025-03-06 21:50:05 +01:00
Robin Gareus
78120d86b5
Update Gain/Meter when changing DPI
2025-03-06 20:25:56 +01:00
Robin Gareus
349a3cf039
Add API to resize Fader widgets
2025-03-06 20:10:20 +01:00
Robin Gareus
7b1157e536
Update Mixer-strip width when scaling UI
2025-03-06 19:27:18 +01:00
Robin Gareus
f3ec590eb5
Dynamically update ArdourButton indicator
...
Previously this was semi-random, on_size_request() may be called
in response to some other widget changing size, before a given
ArdourButton DPIReset handler could set _diameter = 0.
2025-03-06 17:02:33 +01:00
Robin Gareus
d8e7e24f59
Use dedicated common actions per edit context
...
Pianoroll and main editor mouse-mode/tool actions are
now separate.
2025-03-05 22:49:37 +01:00
Robin Gareus
13ee3d9fc3
Set Editor context when entering editor or main toolbar
2025-03-05 00:08:57 +01:00
Paul Davis
f1e9a8027a
Revert "Fix mouse-cursor when moving mouse over region handles"
...
This was not the correct fix for this (see b24db7cbf5 )
This reverts commit 866caab719 .
2025-03-04 14:58:00 -07:00
Paul Davis
2d13df9791
proper use of braces for if/else scoping
2025-03-04 14:57:50 -07:00
Paul Davis
b24db7cbf5
fix canvas cursor handling in MidiRegionViews
2025-03-04 14:57:50 -07:00
Paul Davis
fcf086986a
avoid logical op ambiguity
2025-03-04 14:57:50 -07:00