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.
This commit is contained in:
parent
be927f7a58
commit
1dafa5017e
@ -198,17 +198,15 @@ AutomationRegionView::add_automation_event (GdkEvent *, timepos_t const & w, dou
|
||||
|
||||
_line->view_to_model_coord_y (y);
|
||||
|
||||
if (UIConfiguration::instance().get_new_automation_points_on_lane()) {
|
||||
if (c->list()->size () == 0) {
|
||||
/* we need the MidiTrack::MidiControl, not the region's (midi model source) control */
|
||||
boost::shared_ptr<ARDOUR::MidiTrack> mt = boost::dynamic_pointer_cast<ARDOUR::MidiTrack> (view->parent_stripable ());
|
||||
assert (mt);
|
||||
boost::shared_ptr<Evoral::Control> mc = mt->control(_parameter);
|
||||
assert (mc);
|
||||
y = mc->user_double ();
|
||||
} else {
|
||||
y = c->list()->eval (when);
|
||||
}
|
||||
if (c->list()->size () == 0) {
|
||||
/* we need the MidiTrack::MidiControl, not the region's (midi model source) control */
|
||||
boost::shared_ptr<ARDOUR::MidiTrack> mt = boost::dynamic_pointer_cast<ARDOUR::MidiTrack> (view->parent_stripable ());
|
||||
assert (mt);
|
||||
boost::shared_ptr<Evoral::Control> mc = mt->control(_parameter);
|
||||
assert (mc);
|
||||
y = mc->user_double ();
|
||||
} else if (UIConfiguration::instance().get_new_automation_points_on_lane()) {
|
||||
y = c->list()->eval (when);
|
||||
}
|
||||
|
||||
XMLNode& before = _line->the_list()->get_state();
|
||||
|
@ -770,7 +770,7 @@ AutomationTimeAxisView::add_automation_event (GdkEvent* event, timepos_t const &
|
||||
timepos_t when (pos);
|
||||
_editor.snap_to_with_modifier (when, event);
|
||||
|
||||
if (UIConfiguration::instance().get_new_automation_points_on_lane()) {
|
||||
if (UIConfiguration::instance().get_new_automation_points_on_lane() || _control->list()->size ()) {
|
||||
if (_control->list()->size () == 0) {
|
||||
y = _control->get_value ();
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user