Skip to content
Prev Previous commit
Next Next commit
Automation: Fix empty patterns (regression from 42fcaed)
  • Loading branch information
lukas-w committed Mar 23, 2017
commit e2808837d2010091317351c5c9c54de73975f852
4 changes: 4 additions & 0 deletions src/core/Song.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -863,6 +863,10 @@ AutomatedValueMap Song::automatedValuesAt(const Track::tcoVector &tcos, MidiTime
continue;
}

if (! p->hasAutomation()) {
continue;
}

MidiTime relTime = time - p->startPosition();
float value = p->valueAt(relTime);

Expand Down
17 changes: 11 additions & 6 deletions tests/src/tracks/AutomationTrackTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,17 @@ private slots:
p2.movePosition(100);
p2.addObject(&model);

QCOMPARE(Song::automatedValuesAt({&p1, &p2}, 0)[&model], 0.0f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2}, 5)[&model], 0.5f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2}, 10)[&model], 1.0f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2}, 50)[&model], 1.0f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2}, 100)[&model], 0.0f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2}, 150)[&model], 0.5f);
AutomationPattern p3(nullptr);
p3.addObject(&model);
//XXX: Why is this even necessary?
p3.clear();

QCOMPARE(Song::automatedValuesAt({&p1, &p2, &p3}, 0)[&model], 0.0f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2, &p3}, 5)[&model], 0.5f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2, &p3}, 10)[&model], 1.0f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2, &p3}, 50)[&model], 1.0f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2, &p3}, 100)[&model], 0.0f);
QCOMPARE(Song::automatedValuesAt({&p1, &p2, &p3}, 150)[&model], 0.5f);
}
} AutomationTrackTest;

Expand Down