Commit Graph

311 Commits

Author SHA1 Message Date
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
Paul Davis 7a536524db no need to compute x-axis coordinate when adding an automation event 2021-01-19 13:04:34 -07:00
Robin Gareus 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
Robin Gareus a3af5e31f1
Update labels in MIDI Automation Lanes when MIDNAM changes 2020-04-15 02:38:18 +02:00
Paul Davis 8a1f1a3005 remove border around ATAV controls table (looks better with new theme) 2020-04-03 14:25:32 -06:00
Paul Davis 626d97b13a a better solution for automation axis name labels 2020-04-03 14:25:13 -06:00
Paul Davis 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
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Paul Davis 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
Paul Davis 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
Robin Gareus 9e256b044d GUI support for Latch 2017-09-18 11:40:52 -04:00