Commit graph

293 commits

Author SHA1 Message Date
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
Robin Gareus
1545c426d9 Revert "Temporary session-format compatibility (revert before release)"
This reverts commit 8cd8cb1650.
2017-09-18 11:40:52 -04:00
Paul Davis
a1143a0ed6 expose automation state controls in AutomationTimeAxisView when used for MIDI CC 2017-08-12 14:40:21 -04:00
Paul Davis
b98969be94 do not set automation to off/manual for MIDI CC data when clearing such data 2017-08-12 14:40:21 -04:00
Robin Gareus
df76e4417d Fix ATAV GUI property cleanup
AutomationTimeAxisView::state_id() requires a stripable
(stripable == automatable + parameter OR  stripable + control)
2017-08-01 16:56:20 +02:00
Robin Gareus
97e3168466 Fix ATAV hide button for VCA lanes 2017-07-27 01:34:16 +02:00
Robin Gareus
3d50563620 Properly propagate TAV TimeSelection 2017-07-21 15:49:28 +02:00
Robin Gareus
8400ebd175 Amend c242cbc318 (VCA automation button) 2017-07-21 13:01:43 +02:00
Robin Gareus
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
Robin Gareus
f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
Robin Gareus
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
Robin Gareus
8cd8cb1650 Temporary session-format compatibility (revert before release)
Saving the new ControlList interpolation methods (enum) breaks loading
the session in older version. The session-format version will
need to be increased.

Until then:
 * Fader automation + region gain envelope uses linear fades
 * The automation-line visible in the GUI does not match the actual fade
   (the y-axis is log/exp-scale, the fade is linear)
 * Adding new points on the line is not using the correct initial value
 * Custom changes of interpolation mode are not available

Neither of these issues is a regression.
2017-06-21 18:13:36 +02:00
Robin Gareus
df6655ac68 Add interpolation-mode menu to ATAV. 2017-06-21 18:13:06 +02:00
Robin Gareus
973d58e8f9 Add option add automation-lane points on the line -- #7397 2017-06-18 22:13:02 +02:00
Robin Gareus
af6941ac34 Prepare VCA Automation Lanes -- refactor TAV
* add an abstract StripableTimeAxisView (Route TAV + VCA TAV)
* move common strip-methods into STAV
* Add Automation Lanes to VCA TAV
* Allow ATAV without Automatable for VCA Controls
2017-06-15 16:06:32 +02:00
Robin Gareus
99b064274f Update GUI, drop Automatable::value_as_string() API 2017-06-09 16:54:21 +02:00
Robin Gareus
b0f68a0f5c Prepare AutomationTimeAxisView for non-route (VCA) automation 2017-06-09 16:54:21 +02:00
Paul Davis
dc0139d4af use CoreSelection for track selection 2017-05-05 18:56:25 +01:00
Robin Gareus
0b5db91ee9 AutomationLine time-unit conversion and paste API update
This fixes copy/paste of MIDI automation (time-unit: beat) from/to
Parameter automation (time-unit: samples).

It also fixes repeatedly pasting with tempo-ramps: pre-multiply length
before converting to samples.
2017-04-26 23:37:27 +02:00