Commit graph

323 commits

Author SHA1 Message Date
Robin Gareus
db44a58a54
Fix key-bindings after editing automation 2025-10-30 17:59:34 +01:00
Paul Davis
38cfd12bac NoCamelCase method names (gui) 2025-07-12 10:51:54 -06:00
Paul Davis
c6a49fdd50 basic implementation of Live-style kbd-driven automation editing 2025-06-17 14:03:43 -06:00
Robin Gareus
000c25edcc
Update gtkmm -> ytkmm header location (omnibus commit) 2025-02-01 15:25:14 +01:00
Robin Gareus
42f31f9f91
Remove unused TAV spacer (it was never shown) 2024-12-03 20:12:56 +01:00
Paul Davis
d2a3450e2f use nullptr in initialization instead of 0 2024-11-10 22:07:58 -07:00
Robin Gareus
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
Paul Davis
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
Paul Davis
4b8c51574d refactor the "selectables" API to allow use within separate (e.g. cue) editors 2024-10-17 07:44:32 -06:00
Paul Davis
56ce9c33c0 renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine 2024-10-17 07:44:31 -06:00
Paul Davis
90c8726c6d wideranging changes to get automation editing working in cue editor 2024-10-17 07:44:31 -06:00
Paul Davis
fb0b4d254e automation time axis should respond to base fill color changes 2024-08-31 09:03:05 -06:00
Robin Gareus
38adfdf79e
Add custom color for region effect automation 2024-04-23 21:56:26 +02:00
Paul Davis
18819a48a9 region gain and MIDI CC freehand line drawing
This involved a significant change in event handling for automation region views,
but it brings it into line with how it works for other things. On button press
we initiate a drag, then if no motion occurs, the Drag returns false during
finalization, and only then do we continue through Editor::button_release_handler()
to eventually end up in ::add_automation_event().

Although it is a substantial change, the fact that it now works the same
way for audio regions, automation regions and automation tracks seems
like a definite plus.
2023-09-30 11:09:58 -06:00
Paul Davis
944fcf251d initial refactoring of freehand line drawing
This sets the state to use it with MIDI CC and region gain.

class names LineMerger and MergeableLine need revisiting
2023-09-30 11:09:58 -06:00
Paul Davis
2b2112e303 NO-OP: fix line/whitespace 2023-09-30 11:09:58 -06:00
Paul Davis
57167dafbe use configurable thinning factor, not a hard-coded constant 2023-07-10 13:42:06 -06:00
Paul Davis
6453049c0a automation drawing: add point at grab start & use new ControlList API for speed 2023-07-10 11:20:47 -06:00
Paul Davis
c584bfd374 automation drawing: thinning does not work well with snapped-drawn lines
Also, adding points to a ControlList can fail and that's OK
2023-07-09 22:10:18 -06:00
Paul Davis
caa278ae55 fix reverse drags and a compiler warning
Not quite sure what to do if we fail to add a point, yet
2023-07-09 21:01:22 -06:00
Paul Davis
0a0a882f5a snapping, straight lines, and merge drawn points to list for auto draw 2023-07-09 20:42:09 -06:00
Paul Davis
0c8fd48d6f velocity lane: appropriately hide automation controls until we have line automation 2023-07-08 17:18:14 -06:00
Paul Davis
36769dd94c part 2 of showing region selection in MIDI CC (automation) tracks 2023-06-28 13:44:59 -06:00
Paul Davis
e54e24a7a0 no need for two raise-to-top; set_velocity_mode() will do it 2023-06-27 14:07:47 -06:00
Paul Davis
ce1ec1107c fix layering of automation views
This code is awful, and ought to be restricted only to velocity lanes by
a better design
2023-06-27 12:53:08 -06:00
Paul Davis
7dc532a646 lollis: only allow velocity editing on currently selected region 2023-06-26 14:18:18 -06:00
Paul Davis
4305ef34f8 switching between lollis and line now allows lollipop events 2023-06-26 14:18:17 -06:00
Paul Davis
5c03ffd6f5 fix assignment/comparison typo 2023-06-26 14:18:17 -06:00
Paul Davis
2de0e62695 for velocity automation lanes, make sure ghosts group is on top
otherwise, it's the streamview on top, and that prevents lollipops receiving
events.

this may have to change once the line becomes an option.
2023-06-26 14:18:17 -06:00
Paul Davis
ea6717f041 empty, useless velocity lane for MIDI tracks 2023-06-26 14:18:17 -06:00
Paul Davis
b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis
389577b1e9 automation line: use return value from (new API) model-to-view method 2022-10-26 16:56:22 -06:00
Paul Davis
a928e35efb significant overhaul of automation region/lines to update during tempo map drags etc 2022-10-25 11:10:36 -06:00
Robin Gareus
2245042b85
Fix crash when adding events to disabled MIDI event-lane
In case of MIDI CC/Bend/Pressure etc events, the underlying
data is provided by a MidiTrack (is-a Automatable) and not
an automation-control.

When directly calling AutomationControl::set_automation_state,
the AC disables automation-watch using shared_from_this().
With the Evoral::Control used for MidiTrack event-lists this
results in a tr1::bad_weak_ptr.
2022-07-22 03:38:34 +02:00
Robin Gareus
0e804be818
Fix typo in 1dafa5017e (first automation point on line) 2022-04-27 12:56:32 +02:00
Robin Gareus
1dafa5017e
Always place first automation point using the current value
This is in preparation to always show a line, which show
the current value in case there are no automation points yet.

It also unconditionally snapshots the current value without
changing automation modes to touch/write first.
2022-04-25 18:32:23 +02:00
Mads Kiilerich
7f649efd42
gtkmm: use set_can_focus() instead of deprecated Gtk::Widget::set_flags(CAN_FOCUS) 2022-04-08 21:11:06 +02:00
Mads Kiilerich
2aa72891f3
gtkmm: use ALIGN_START instead of deprecated Gtk::AlignmentEnum::ALIGN_LEFT 2022-04-08 21:11:06 +02:00
Paul Davis
a3c5db5d51 ensure that non-drag track height changes cause a call to Editor::redisplay_track_views() 2022-04-05 20:52:10 -06:00
Paul Davis
0162d3f9d6 GUI changes to *try* to adapt to a world without explicit beats<->samples converter objects (i.e. use AutomationLine::get_origin() instead 2021-08-13 12:51:34 -06:00
Paul Davis
8bd52c80dc fix paste API issue for automation list/tracks 2021-08-13 12:51:32 -06:00
Paul Davis
2a08e4bdaa continued work on timeline types conversion. in theory, just editor_ops.cc remains 2021-08-13 12:51:29 -06:00
Paul Davis
5b2a435e02 getting editor_drag.cc to compile 2021-08-13 12:51:29 -06:00
Paul Davis
9d69fa3820 another day or two's work on timeline type conversion 2021-08-13 12:51:29 -06:00
Paul Davis
04e8dbb342 another day of slow timeline type conversion 2021-08-13 12:51:29 -06:00
Paul Davis
0a469527f1 updated Temporal::Beats ... GUI edition 2021-08-13 12:51:28 -06:00
Robin Gareus
5c579ed52d
Remove unused #include<> (1/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:43:28 +02:00
Robin Gareus
e81794d878
Add preference to keep spilled automation-lanes visible 2021-03-02 19:00:23 +01:00
Robin Gareus
f31e8ede4c
Unconditionally switch Manual->Play when drawing automation 2021-02-23 22:00:27 +01:00
Robin Gareus
0becbe7f4f
Auto-touch when adding automation events to a spilled control 2021-02-11 00:29:44 +01:00