From 8d3a8ca9136c3fb8a8bd24dd5d99c8e2e76699bd Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 21 Oct 2015 22:31:30 -0400 Subject: Add AutomationControl::set_value_unchecked() and AutomationControl::writable() and use them. Classes derived from AutomationControl now check ::writable() in their ::set_value() methods to ensure that they do not attempt to overwrite data sent to them while automation playback is underway. --- libs/ardour/midi_track.cc | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libs/ardour/midi_track.cc') diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index f3bc2c4f79..c49a2ef7f1 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -716,6 +716,14 @@ MidiTrack::set_parameter_automation_state (Evoral::Parameter param, AutoState st void MidiTrack::MidiControl::set_value(double val) +{ + if (writable()) { + set_value_unchecked (val); + } +} + +void +MidiTrack::MidiControl::set_value_unchecked(double val) { const Evoral::Parameter ¶meter = _list ? _list->parameter() : Control::parameter(); const Evoral::ParameterDescriptor &desc = EventTypeMap::instance().descriptor(parameter); -- cgit v1.2.3