13
0

Directly apply MIDI automation state changes

Previously "play/off" and "discrete/linear" changes had no effect
until the MIDI playlist was edited and MIDI re-read into RAM.
This commit is contained in:
Robin Gareus 2019-12-17 17:17:27 +01:00
parent 9c6d9324bd
commit f76c897f04
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -1683,10 +1683,14 @@ MidiModel::set_midi_source (boost::shared_ptr<MidiSource> s)
*/
void
MidiModel::source_interpolation_changed (Evoral::Parameter p, Evoral::ControlList::InterpolationStyle s)
{
{
Glib::Threads::Mutex::Lock lm (_control_lock);
control(p)->list()->set_interpolation (s);
}
/* re-read MIDI */
ContentsChanged (); /* EMIT SIGNAL */
}
/** A ControlList has signalled that its interpolation style has changed. Again, in order to keep
* MidiSource and ControlList interpolation state in sync, we pass this change onto our MidiSource.
@ -1702,11 +1706,15 @@ MidiModel::control_list_interpolation_changed (Evoral::Parameter p, Evoral::Cont
void
MidiModel::source_automation_state_changed (Evoral::Parameter p, AutoState s)
{
{
Glib::Threads::Mutex::Lock lm (_control_lock);
boost::shared_ptr<AutomationList> al = boost::dynamic_pointer_cast<AutomationList> (control(p)->list ());
al->set_automation_state (s);
}
/* re-read MIDI */
ContentsChanged (); /* EMIT SIGNAL */
}
void
MidiModel::automation_list_automation_state_changed (Evoral::Parameter p, AutoState s)