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.
This commit is contained in:
Robin Gareus 2022-07-22 03:37:57 +02:00
parent 62aae6cffb
commit 2245042b85
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
3 changed files with 5 additions and 3 deletions

View file

@ -134,6 +134,8 @@ public:
return _show_regions;
}
void set_automation_state (ARDOUR::AutoState);
protected:
/* Note that for MIDI controller "automation" (in regions), all of these
* may be set. In this case, _automatable is likely _route so the
@ -190,7 +192,6 @@ protected:
bool paste_one (Temporal::timepos_t const &, unsigned, float times, const Selection&, ItemCounts& counts, bool greedy=false);
void route_going_away ();
void set_automation_state (ARDOUR::AutoState);
bool ignore_state_request;
bool ignore_mode_request;