Fix automation processing priority

Fixes regression from 75077f6200 that caused
global automation tracks to have priority in processing.

Adds a test checking for the desired behaviour.

Fixes #4268
This commit is contained in:
Lukas W
2018-06-01 13:53:14 +02:00
parent 1349d45d72
commit d3c90a81b9
2 changed files with 25 additions and 1 deletions

View File

@@ -195,6 +195,30 @@ private slots:
QCOMPARE(song->automatedValuesAt(5)[&model], 0.5f);
QCOMPARE(song->automatedValuesAt(MidiTime::ticksPerTact() + 5)[&model], 0.5f);
}
void testGlobalAutomation()
{
// Global automation should not have priority, see https://github.com/LMMS/lmms/issues/4268
// Tests regression caused by 75077f6200a5aee3a5821aae48a3b8466ed8714a
auto song = Engine::getSong();
auto globalTrack = song->globalAutomationTrack();
AutomationPattern globalPattern(globalTrack);
AutomationTrack localTrack(song);
AutomationPattern localPattern(&localTrack);
FloatModel model;
globalPattern.setProgressionType(AutomationPattern::DiscreteProgression);
localPattern.setProgressionType(AutomationPattern::DiscreteProgression);
globalPattern.addObject(&model);
localPattern.addObject(&model);
globalPattern.putValue(0, 100.0f, false);
localPattern.putValue(0, 50.0f, false);
QCOMPARE(song->automatedValuesAt(0)[&model], 50.0f);
}
} AutomationTrackTest;
#include "AutomationTrackTest.moc"