13
0
Commit Graph

311 Commits

Author SHA1 Message Date
38adfdf79e
Add custom color for region effect automation 2024-04-23 21:56:26 +02:00
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
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
2b2112e303 NO-OP: fix line/whitespace 2023-09-30 11:09:58 -06:00
57167dafbe use configurable thinning factor, not a hard-coded constant 2023-07-10 13:42:06 -06:00
6453049c0a automation drawing: add point at grab start & use new ControlList API for speed 2023-07-10 11:20:47 -06:00
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
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
0a0a882f5a snapping, straight lines, and merge drawn points to list for auto draw 2023-07-09 20:42:09 -06:00
0c8fd48d6f velocity lane: appropriately hide automation controls until we have line automation 2023-07-08 17:18:14 -06:00
36769dd94c part 2 of showing region selection in MIDI CC (automation) tracks 2023-06-28 13:44:59 -06:00
e54e24a7a0 no need for two raise-to-top; set_velocity_mode() will do it 2023-06-27 14:07:47 -06:00
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
7dc532a646 lollis: only allow velocity editing on currently selected region 2023-06-26 14:18:18 -06:00
4305ef34f8 switching between lollis and line now allows lollipop events 2023-06-26 14:18:17 -06:00
5c03ffd6f5 fix assignment/comparison typo 2023-06-26 14:18:17 -06:00
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
ea6717f041 empty, useless velocity lane for MIDI tracks 2023-06-26 14:18:17 -06:00
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
389577b1e9 automation line: use return value from (new API) model-to-view method 2022-10-26 16:56:22 -06:00
a928e35efb significant overhaul of automation region/lines to update during tempo map drags etc 2022-10-25 11:10:36 -06:00
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
0e804be818
Fix typo in 1dafa5017e (first automation point on line) 2022-04-27 12:56:32 +02:00
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
a3c5db5d51 ensure that non-drag track height changes cause a call to Editor::redisplay_track_views() 2022-04-05 20:52:10 -06:00
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
8bd52c80dc fix paste API issue for automation list/tracks 2021-08-13 12:51:32 -06:00
2a08e4bdaa continued work on timeline types conversion. in theory, just editor_ops.cc remains 2021-08-13 12:51:29 -06:00
5b2a435e02 getting editor_drag.cc to compile 2021-08-13 12:51:29 -06:00
9d69fa3820 another day or two's work on timeline type conversion 2021-08-13 12:51:29 -06:00
04e8dbb342 another day of slow timeline type conversion 2021-08-13 12:51:29 -06:00
0a469527f1 updated Temporal::Beats ... GUI edition 2021-08-13 12:51:28 -06:00
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
e81794d878
Add preference to keep spilled automation-lanes visible 2021-03-02 19:00:23 +01:00
f31e8ede4c
Unconditionally switch Manual->Play when drawing automation 2021-02-23 22:00:27 +01:00
0becbe7f4f
Auto-touch when adding automation events to a spilled control 2021-02-11 00:29:44 +01:00
7a536524db no need to compute x-axis coordinate when adding an automation event 2021-01-19 13:04:34 -07:00
21df7279d2
Prefer parameter_is_midi() API, fixes PolyKeyPressure
Previously MidiNotePressureAutomation was not assumed to be
MIDI automation.
2020-04-15 15:36:45 +02:00
a3af5e31f1
Update labels in MIDI Automation Lanes when MIDNAM changes 2020-04-15 02:38:18 +02:00
8a1f1a3005 remove border around ATAV controls table (looks better with new theme) 2020-04-03 14:25:32 -06:00
626d97b13a a better solution for automation axis name labels 2020-04-03 14:25:13 -06:00
be2322ef2b set size request for automation lane name label, to prevent it from changing tracker header width 2020-04-03 14:11:14 -06:00
a92dddda25
Fix automation dropdown menu-item active state
Extra XML/GUI has not been in use since ages.
Automation Lane visibility is saved as GUIObjectState.

This properly marks DropDown Menu items as active when a
Plugin Automation Lane is displayed
2019-12-12 03:02:48 +01:00
629289dc4a
Fix crash when selected automation-lane is removed
When a plugin is deleted, automation-lanes of the given plugin
are removed, but previously a pointed to the deleted lane remained
in the selection.

This caused crashes later when the track selection is used. e.g.
during sensitize_the_right_region_actions()

Note that ~TimeAxisView() also emits CatchDeletion (this);
however "this" fails to be dynamic_cast<AutomationTimeAxisView*>
because that d'tor has already been completed.
2019-08-24 18:24:21 +02:00
4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
ea5fa64c0b manually fix up various cases where Gtk:Frame foo_frame had been changed to foo_sample 2017-09-18 14:59:11 -04:00
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
9e256b044d GUI support for Latch 2017-09-18 11:40:52 -04:00