diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2021-03-02 17:00:18 +0100 |
---|---|---|
committer | Daniel Schürmann <daschuer@mixxx.org> | 2021-03-02 17:00:18 +0100 |
commit | 79d58aadc86711a3dea7e7efd81c315e6d1d4608 (patch) | |
tree | fd5ba79fa0253ef5a71a23d99d1fead3b7667ed8 | |
parent | 74b0810e63a19de06735e24970df38ece94cb004 (diff) |
Remove track parameter from beats constructor
-rw-r--r-- | src/analyzer/analyzerbeats.cpp | 3 | ||||
-rw-r--r-- | src/library/banshee/bansheeplaylistmodel.cpp | 5 | ||||
-rw-r--r-- | src/library/dao/trackdao.cpp | 2 | ||||
-rw-r--r-- | src/library/dlgtrackinfo.cpp | 6 | ||||
-rw-r--r-- | src/library/rekordbox/rekordboxfeature.cpp | 2 | ||||
-rw-r--r-- | src/test/beatgridtest.cpp | 10 | ||||
-rw-r--r-- | src/test/beatmaptest.cpp | 16 | ||||
-rw-r--r-- | src/test/beatstranslatetest.cpp | 6 | ||||
-rw-r--r-- | src/test/bpmcontrol_test.cpp | 2 | ||||
-rw-r--r-- | src/test/enginesynctest.cpp | 166 | ||||
-rw-r--r-- | src/track/beatfactory.cpp | 17 | ||||
-rw-r--r-- | src/track/beatfactory.h | 8 | ||||
-rw-r--r-- | src/track/beatgrid.cpp | 23 | ||||
-rw-r--r-- | src/track/beatgrid.h | 22 | ||||
-rw-r--r-- | src/track/beatmap.cpp | 18 | ||||
-rw-r--r-- | src/track/beatmap.h | 17 | ||||
-rw-r--r-- | src/track/track.cpp | 3 |
17 files changed, 146 insertions, 180 deletions
diff --git a/src/analyzer/analyzerbeats.cpp b/src/analyzer/analyzerbeats.cpp index 2754eaa5d0..1a1ada5b16 100644 --- a/src/analyzer/analyzerbeats.cpp +++ b/src/analyzer/analyzerbeats.cpp @@ -237,7 +237,6 @@ void AnalyzerBeats::storeResults(TrackPointer tio) { QHash<QString, QString> extraVersionInfo = getExtraVersionInfo( m_pluginId, m_bPreferencesFastAnalysis); pBeats = BeatFactory::makePreferredBeats( - *tio, beats, extraVersionInfo, m_bPreferencesFixedTempo, @@ -251,7 +250,7 @@ void AnalyzerBeats::storeResults(TrackPointer tio) { } else { float bpm = m_pPlugin->getBpm(); qDebug() << "AnalyzerBeats plugin detected constant BPM: " << bpm; - pBeats = BeatFactory::makeBeatGrid(*tio, bpm, 0.0f); + pBeats = BeatFactory::makeBeatGrid(m_iSampleRate, bpm, 0.0f); } mixxx::BeatsPointer pCurrentBeats = tio->getBeats(); diff --git a/src/library/banshee/bansheeplaylistmodel.cpp b/src/library/banshee/bansheeplaylistmodel.cpp index 70aacfce9c..6590377225 100644 --- a/src/library/banshee/bansheeplaylistmodel.cpp +++ b/src/library/banshee/bansheeplaylistmodel.cpp @@ -291,11 +291,6 @@ TrackPointer BansheePlaylistModel::getTrack(const QModelIndex& index) const { pTrack->setBitrate(getFieldString(index, CLM_BITRATE).toInt()); pTrack->setComment(getFieldString(index, CLM_COMMENT)); pTrack->setComposer(getFieldString(index, CLM_COMPOSER)); - // If the track has a BPM, then give it a static beatgrid. - if (bpm > 0) { - mixxx::BeatsPointer pBeats = BeatFactory::makeBeatGrid(*pTrack, bpm, 0.0); - pTrack->setBeats(pBeats); - } } return pTrack; } diff --git a/src/library/dao/trackdao.cpp b/src/library/dao/trackdao.cpp index 9b66cb4341..ca26e8e45d 100644 --- a/src/library/dao/trackdao.cpp +++ b/src/library/dao/trackdao.cpp @@ -1088,7 +1088,7 @@ bool setTrackBeats(const QSqlRecord& record, const int column, QByteArray beatsBlob = record.value(column + 3).toByteArray(); bool bpmLocked = record.value(column + 4).toBool(); mixxx::BeatsPointer pBeats = BeatFactory::loadBeatsFromByteArray( - *pTrack, beatsVersion, beatsSubVersion, beatsBlob); + pTrack->getSampleRate(), beatsVersion, beatsSubVersion, beatsBlob); if (pBeats) { pTrack->setBeats(pBeats); } else { diff --git a/src/library/dlgtrackinfo.cpp b/src/library/dlgtrackinfo.cpp index 24f41cd203..1763ff85de 100644 --- a/src/library/dlgtrackinfo.cpp +++ b/src/library/dlgtrackinfo.cpp @@ -524,11 +524,11 @@ void DlgTrackInfo::slotBpmConstChanged(int state) { // it is hard to predict a fitting beat. We know that we // cannot use the first beat, since it is out of sync in // almost all cases. - // The cue point should be set on a beat, so this seams + // The cue point should be set on a beat, so this seems // to be a good alternative CuePosition cue = m_pLoadedTrack->getCuePoint(); m_pBeatsClone = BeatFactory::makeBeatGrid( - *m_pLoadedTrack, spinBpm->value(), cue.getPosition()); + m_pLoadedTrack->getSampleRate(), spinBpm->value(), cue.getPosition()); } else { m_pBeatsClone.clear(); } @@ -562,7 +562,7 @@ void DlgTrackInfo::slotSpinBpmValueChanged(double value) { if (!m_pBeatsClone) { CuePosition cue = m_pLoadedTrack->getCuePoint(); m_pBeatsClone = BeatFactory::makeBeatGrid( - *m_pLoadedTrack, value, cue.getPosition()); + m_pLoadedTrack->getSampleRate(), value, cue.getPosition()); } double oldValue = m_pBeatsClone->getBpm(); diff --git a/src/library/rekordbox/rekordboxfeature.cpp b/src/library/rekordbox/rekordboxfeature.cpp index a1914785c2..c15258fc47 100644 --- a/src/library/rekordbox/rekordboxfeature.cpp +++ b/src/library/rekordbox/rekordboxfeature.cpp @@ -866,7 +866,7 @@ void readAnalyze(TrackPointer track, beats << (sampleRateKhz * static_cast<double>(time)); } - auto pBeats = mixxx::BeatMap::makeBeatMap(*track, + auto pBeats = mixxx::BeatMap::makeBeatMap( static_cast<SINT>(sampleRate), mixxx::rekordboxconstants::beatsSubversion, beats); diff --git a/src/test/beatgridtest.cpp b/src/test/beatgridtest.cpp index afe01a9d33..16276e5b76 100644 --- a/src/test/beatgridtest.cpp +++ b/src/test/beatgridtest.cpp @@ -29,7 +29,7 @@ TEST(BeatGridTest, Scale) { double bpm = 60.0; pTrack->setBpm(bpm); - auto pGrid = BeatGrid::makeBeatGrid(*pTrack, 0, QString(), bpm, 0); + auto pGrid = BeatGrid::makeBeatGrid(pTrack->getSampleRate(), QString(), bpm, 0); EXPECT_DOUBLE_EQ(bpm, pGrid->getBpm()); pGrid = pGrid->scale(Beats::DOUBLE); @@ -60,7 +60,7 @@ TEST(BeatGridTest, TestNthBeatWhenOnBeat) { pTrack->setBpm(bpm); double beatLength = (60.0 * sampleRate / bpm) * kFrameSize; - auto pGrid = BeatGrid::makeBeatGrid(*pTrack, 0, QString(), bpm, 0); + auto pGrid = BeatGrid::makeBeatGrid(pTrack->getSampleRate(), QString(), bpm, 0); // Pretend we're on the 20th beat; double position = beatLength * 20; @@ -94,7 +94,7 @@ TEST(BeatGridTest, TestNthBeatWhenOnBeat_BeforeEpsilon) { pTrack->setBpm(bpm); double beatLength = (60.0 * sampleRate / bpm) * kFrameSize; - auto pGrid = BeatGrid::makeBeatGrid(*pTrack, 0, QString(), bpm, 0); + auto pGrid = BeatGrid::makeBeatGrid(pTrack->getSampleRate(), QString(), bpm, 0); // Pretend we're just before the 20th beat. const double kClosestBeat = 20 * beatLength; @@ -130,7 +130,7 @@ TEST(BeatGridTest, TestNthBeatWhenOnBeat_AfterEpsilon) { pTrack->setBpm(bpm); double beatLength = (60.0 * sampleRate / bpm) * kFrameSize; - auto pGrid = BeatGrid::makeBeatGrid(*pTrack, 0, QString(), bpm, 0); + auto pGrid = BeatGrid::makeBeatGrid(pTrack->getSampleRate(), QString(), bpm, 0); // Pretend we're just before the 20th beat. const double kClosestBeat = 20 * beatLength; @@ -166,7 +166,7 @@ TEST(BeatGridTest, TestNthBeatWhenNotOnBeat) { pTrack->setBpm(bpm); double beatLength = (60.0 * sampleRate / bpm) * kFrameSize; - auto pGrid = BeatGrid::makeBeatGrid(*pTrack, 0, QString(), bpm, 0); + auto pGrid = BeatGrid::makeBeatGrid(pTrack->getSampleRate(), QString(), bpm, 0); // Pretend we're half way between the 20th and 21st beat double previousBeat = beatLength * 20.0; diff --git a/src/test/beatmaptest.cpp b/src/test/beatmaptest.cpp index 70f61ed8f2..66abad5ae4 100644 --- a/src/test/beatmaptest.cpp +++ b/src/test/beatmaptest.cpp @@ -55,7 +55,7 @@ TEST_F(BeatMapTest, Scale) { const int numBeats = 100; // Note beats must be in frames, not samples. QVector<double> beats = createBeatVector(startOffsetFrames, numBeats, beatLengthFrames); - auto pMap = BeatMap::makeBeatMap(*m_pTrack, 0, QString(), beats); + auto pMap = BeatMap::makeBeatMap(m_pTrack->getSampleRate(), QString(), beats); EXPECT_DOUBLE_EQ(bpm, pMap->getBpm()); pMap = pMap->scale(Beats::DOUBLE); @@ -87,7 +87,7 @@ TEST_F(BeatMapTest, TestNthBeat) { const int numBeats = 100; // Note beats must be in frames, not samples. QVector<double> beats = createBeatVector(startOffsetFrames, numBeats, beatLengthFrames); - auto pMap = BeatMap::makeBeatMap(*m_pTrack, 0, QString(), beats); + auto pMap = BeatMap::makeBeatMap(m_pTrack->getSampleRate(), QString(), beats); // Check edge cases double firstBeat = startOffsetSamples + beatLengthSamples * 0; @@ -119,7 +119,7 @@ TEST_F(BeatMapTest, TestNthBeatWhenOnBeat) { const int numBeats = 100; // Note beats must be in frames, not samples. QVector<double> beats = createBeatVector(startOffsetFrames, numBeats, beatLengthFrames); - auto pMap = BeatMap::makeBeatMap(*m_pTrack, 0, QString(), beats); + auto pMap = BeatMap::makeBeatMap(m_pTrack->getSampleRate(), QString(), beats); // Pretend we're on the 20th beat; const int curBeat = 20; @@ -156,7 +156,7 @@ TEST_F(BeatMapTest, TestNthBeatWhenOnBeat_BeforeEpsilon) { const int numBeats = 100; // Note beats must be in frames, not samples. QVector<double> beats = createBeatVector(startOffsetFrames, numBeats, beatLengthFrames); - auto pMap = BeatMap::makeBeatMap(*m_pTrack, 0, QString(), beats); + auto pMap = BeatMap::makeBeatMap(m_pTrack->getSampleRate(), QString(), beats); // Pretend we're just before the 20th beat; const int curBeat = 20; @@ -195,7 +195,7 @@ TEST_F(BeatMapTest, TestNthBeatWhenOnBeat_AfterEpsilon) { const int numBeats = 100; // Note beats must be in frames, not samples. QVector<double> beats = createBeatVector(startOffsetFrames, numBeats, beatLengthFrames); - auto pMap = BeatMap::makeBeatMap(*m_pTrack, 0, QString(), beats); + auto pMap = BeatMap::makeBeatMap(m_pTrack->getSampleRate(), QString(), beats); // Pretend we're just after the 20th beat; const int curBeat = 20; @@ -235,7 +235,7 @@ TEST_F(BeatMapTest, TestNthBeatWhenNotOnBeat) { const int numBeats = 100; // Note beats must be in frames, not samples. QVector<double> beats = createBeatVector(startOffsetFrames, numBeats, beatLengthFrames); - auto pMap = BeatMap::makeBeatMap(*m_pTrack, 0, QString(), beats); + auto pMap = BeatMap::makeBeatMap(m_pTrack->getSampleRate(), QString(), beats); // Pretend we're half way between the 20th and 21st beat double previousBeat = startOffsetSamples + beatLengthSamples * 20.0; @@ -275,7 +275,7 @@ TEST_F(BeatMapTest, TestBpmAround) { beat_pos += beat_length; } - auto pMap = BeatMap::makeBeatMap(*m_pTrack, 0, QString(), beats); + auto pMap = BeatMap::makeBeatMap(m_pTrack->getSampleRate(), QString(), beats); // The average of the first 8 beats should be different than the average // of the last 8 beats. @@ -291,7 +291,7 @@ TEST_F(BeatMapTest, TestBpmAround) { // Try a really, really short track beats = createBeatVector(10, 3, getBeatLengthFrames(filebpm)); - pMap = BeatMap::makeBeatMap(*m_pTrack, 0, QString(), beats); + pMap = BeatMap::makeBeatMap(m_pTrack->getSampleRate(), QString(), beats); EXPECT_DOUBLE_EQ(filebpm, pMap->getBpmAroundPosition(1 * approx_beat_length, 4)); } diff --git a/src/test/beatstranslatetest.cpp b/src/test/beatstranslatetest.cpp index 9854b02fba..acdc5ec1d7 100644 --- a/src/test/beatstranslatetest.cpp +++ b/src/test/beatstranslatetest.cpp @@ -9,11 +9,13 @@ TEST_F(BeatsTranslateTest, SimpleTranslateMatch) { // Set up BeatGrids for decks 1 and 2. const double bpm = 60.0; const double firstBeat = 0.0; - auto grid1 = mixxx::BeatGrid::makeBeatGrid(*m_pTrack1, 0, QString(), bpm, firstBeat); + auto grid1 = mixxx::BeatGrid::makeBeatGrid( + m_pTrack1->getSampleRate(), QString(), bpm, firstBeat); m_pTrack1->setBeats(mixxx::BeatsPointer(grid1)); ASSERT_DOUBLE_EQ(firstBeat, grid1->findClosestBeat(0)); - auto grid2 = mixxx::BeatGrid::makeBeatGrid(*m_pTrack2, 0, QString(), bpm, firstBeat); + auto grid2 = mixxx::BeatGrid::makeBeatGrid( + m_pTrack2->getSampleRate(), QString(), bpm, firstBeat); m_pTrack2->setBeats(mixxx::BeatsPointer(grid2)); ASSERT_DOUBLE_EQ(firstBeat, grid2->findClosestBeat(0)); diff --git a/src/test/bpmcontrol_test.cpp b/src/test/bpmcontrol_test.cpp index d61181122e..fef84c99d7 100644 --- a/src/test/bpmcontrol_test.cpp +++ b/src/test/bpmcontrol_test.cpp @@ -37,7 +37,7 @@ TEST_F(BpmControlTest, BeatContext_BeatGrid) { const int kFrameSize = 2; const double expectedBeatLength = (60.0 * sampleRate / bpm) * kFrameSize; - mixxx::BeatsPointer pBeats = BeatFactory::makeBeatGrid(*pTrack, bpm, 0); + mixxx::BeatsPointer pBeats = BeatFactory::makeBeatGrid(pTrack->getSampleRate(), bpm, 0); // On a beat. double prevBeat, nextBeat, beatLength, beatPercentage; diff --git a/src/test/enginesynctest.cpp b/src/test/enginesynctest.cpp index ff2ffbfff3..377f39e62c 100644 --- a/src/test/enginesynctest.cpp +++ b/src/test/enginesynctest.cpp @@ -193,9 +193,9 @@ TEST_F(EngineSyncTest, SetMasterSuccess) { TEST_F(EngineSyncTest, ExplicitMasterPersists) { // If we set an explicit master, enabling sync or pressing play on other decks // doesn't cause the master to move around. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 120, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 120, 0.0); m_pTrack1->setBeats(pBeats1); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 124, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 124, 0.0); m_pTrack2->setBeats(pBeats2); auto pButtonMasterSync1 = @@ -225,11 +225,11 @@ TEST_F(EngineSyncTest, ExplicitMasterPersists) { TEST_F(EngineSyncTest, SetMasterWhilePlaying) { // Make sure we don't get two master lights if we change masters while playing. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 120, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 120, 0.0); m_pTrack1->setBeats(pBeats1); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 124, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 124, 0.0); m_pTrack2->setBeats(pBeats2); - mixxx::BeatsPointer pBeats3 = BeatFactory::makeBeatGrid(*m_pTrack3, 128, 0.0); + mixxx::BeatsPointer pBeats3 = BeatFactory::makeBeatGrid(m_pTrack3->getSampleRate(), 128, 0.0); m_pTrack3->setBeats(pBeats3); auto pButtonMasterSync1 = @@ -259,7 +259,7 @@ TEST_F(EngineSyncTest, SetMasterWhilePlaying) { TEST_F(EngineSyncTest, SetEnabledBecomesMaster) { // If we set the first channel with a valid tempo to follower, it should be master. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 80, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 80, 0.0); m_pTrack1->setBeats(pBeats1); auto pButtonMasterSync1 = std::make_unique<ControlProxy>(m_sGroup1, "sync_mode"); @@ -286,10 +286,10 @@ TEST_F(EngineSyncTest, DisableInternalMasterWhilePlaying) { ASSERT_TRUE(isSoftMaster(m_sInternalClockGroup)); // Make sure both decks are playing. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 80, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 80, 0.0); m_pTrack1->setBeats(pBeats1); ControlObject::getControl(ConfigKey(m_sGroup1, "play"))->set(1.0); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 80, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 80, 0.0); m_pTrack2->setBeats(pBeats2); ControlObject::getControl(ConfigKey(m_sGroup2, "play"))->set(1.0); ProcessBuffer(); @@ -305,13 +305,13 @@ TEST_F(EngineSyncTest, DisableInternalMasterWhilePlaying) { TEST_F(EngineSyncTest, DisableSyncOnMaster) { // Channel 1 follower, channel 2 master. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 130, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 130, 0.0); m_pTrack1->setBeats(pBeats1); auto pButtonSyncMode1 = std::make_unique<ControlProxy>(m_sGroup1, "sync_mode"); pButtonSyncMode1->slotSet(SYNC_FOLLOWER); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 130, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 130, 0.0); m_pTrack2->setBeats(pBeats2); auto pButtonSyncMaster2 = std::make_unique<ControlProxy>(m_sGroup2, "sync_master"); @@ -343,7 +343,7 @@ TEST_F(EngineSyncTest, InternalMasterSetFollowerSliderMoves) { pMasterSyncSlider->set(100.0); // Set the file bpm of channel 1 to 80 bpm. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 80, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 80, 0.0); m_pTrack1->setBeats(pBeats1); auto pButtonMasterSync1 = @@ -361,7 +361,7 @@ TEST_F(EngineSyncTest, AnySyncDeckSliderStays) { // If there exists a sync deck, even if it's not playing, don't change the // master BPM if a new deck enables sync. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 80, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 80, 0.0); m_pTrack1->setBeats(pBeats1); auto pButtonSyncEnabled1 = std::make_unique<ControlProxy>(m_sGroup1, "sync_enabled"); @@ -372,7 +372,7 @@ TEST_F(EngineSyncTest, AnySyncDeckSliderStays) { ControlObject::getControl(ConfigKey(m_sInternalClockGroup, "bpm")) ->get()); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 100, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 100, 0.0); m_pTrack2->setBeats(pBeats2); auto pButtonSyncEnabled2 = std::make_unique<ControlProxy>(m_sGroup2, "sync_enabled"); @@ -396,11 +396,11 @@ TEST_F(EngineSyncTest, InternalClockFollowsFirstPlayingDeck) { std::make_unique<ControlProxy>(m_sGroup2, "sync_enabled"); // Set up decks so they can be playing, and start deck 1. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 100, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 100, 0.0); m_pTrack1->setBeats(pBeats1); ControlObject::set(ConfigKey(m_sGroup1, "rate"), getRateSliderValue(1.0)); ControlObject::set(ConfigKey(m_sGroup1, "play"), 1.0); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 130, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 130, 0.0); m_pTrack2->setBeats(pBeats2); ControlObject::set(ConfigKey(m_sGroup2, "rate"), getRateSliderValue(1.0)); ControlObject::set(ConfigKey(m_sGroup2, "play"), 0.0); @@ -466,10 +466,10 @@ TEST_F(EngineSyncTest, SetExplicitMasterByLights) { std::make_unique<ControlProxy>(m_sGroup2, "sync_master"); // Set the file bpm of channel 1 to 160bpm. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 160, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 160, 0.0); m_pTrack1->setBeats(pBeats1); // Set the file bpm of channel 2 to 150bpm. - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack1, 150, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 150, 0.0); m_pTrack2->setBeats(pBeats2); // Set channel 1 to be explicit master. @@ -552,7 +552,7 @@ TEST_F(EngineSyncTest, RateChangeTest) { ProcessBuffer(); // Set the file bpm of channel 1 to 160bpm. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 160, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 160, 0.0); m_pTrack1->setBeats(pBeats1); EXPECT_DOUBLE_EQ( 160.0, ControlObject::get(ConfigKey(m_sGroup1, "file_bpm"))); @@ -571,7 +571,7 @@ TEST_F(EngineSyncTest, RateChangeTest) { 192.0, ControlObject::get(ConfigKey(m_sInternalClockGroup, "bpm"))); // Set the file bpm of channel 2 to 120bpm. - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 120, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 120, 0.0); m_pTrack2->setBeats(pBeats2); EXPECT_DOUBLE_EQ( 120.0, ControlObject::get(ConfigKey(m_sGroup2, "file_bpm"))); @@ -593,13 +593,13 @@ TEST_F(EngineSyncTest, RateChangeTestWeirdOrder) { ProcessBuffer(); // Set the file bpm of channel 1 to 160bpm. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 160, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 160, 0.0); m_pTrack1->setBeats(pBeats1); EXPECT_DOUBLE_EQ( 160.0, ControlObject::get(ConfigKey(m_sInternalClockGroup, "bpm"))); // Set the file bpm of channel 2 to 120bpm. - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 120, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 120, 0.0); m_pTrack2->setBeats(pBeats2); // Set the rate slider of channel 1 to 1.2. @@ -617,13 +617,13 @@ TEST_F(EngineSyncTest, RateChangeTestWeirdOrder) { TEST_F(EngineSyncTest, RateChangeTestOrder3) { // Set the file bpm of channel 1 to 160bpm. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 160, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 160, 0.0); m_pTrack1->setBeats(pBeats1); EXPECT_DOUBLE_EQ( 160.0, ControlObject::get(ConfigKey(m_sGroup1, "file_bpm"))); // Set the file bpm of channel 2 to 120bpm. - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 120, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 120, 0.0); m_pTrack2->setBeats(pBeats2); EXPECT_DOUBLE_EQ( 120.0, ControlObject::get(ConfigKey(m_sGroup2, "file_bpm"))); @@ -661,11 +661,11 @@ TEST_F(EngineSyncTest, FollowerRateChange) { ProcessBuffer(); // Set the file bpm of channel 1 to 160bpm. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 160, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 160, 0.0); m_pTrack1->setBeats(pBeats1); // Set the file bpm of channel 2 to 120bpm. - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 120, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 120, 0.0); m_pTrack2->setBeats(pBeats2); // Set the rate slider of channel 1 to 1.2. @@ -707,13 +707,13 @@ TEST_F(EngineSyncTest, InternalRateChangeTest) { ASSERT_TRUE(isFollower(m_sGroup2)); // Set the file bpm of channel 1 to 160bpm. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 160, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 160, 0.0); m_pTrack1->setBeats(pBeats1); EXPECT_DOUBLE_EQ(160.0, ControlObject::getControl(ConfigKey(m_sGroup1, "file_bpm"))->get()); // Set the file bpm of channel 2 to 120bpm. - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 120, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 120, 0.0); m_pTrack2->setBeats(pBeats2); EXPECT_DOUBLE_EQ(120.0, ControlObject::getControl(ConfigKey(m_sGroup2, "file_bpm"))->get()); @@ -761,9 +761,9 @@ TEST_F(EngineSyncTest, InternalRateChangeTest) { TEST_F(EngineSyncTest, MasterStopSliderCheck) { // If the master is playing, and stop is pushed, the sliders should stay the same. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 120, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 120, 0.0); m_pTrack1->setBeats(pBeats1); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 128, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 128, 0.0); m_pTrack2->setBeats(pBeats2); auto pButtonMasterSync1 = @@ -805,7 +805,7 @@ TEST_F(EngineSyncTest, EnableOneDeckInitsMaster) { ProcessBuffer(); // Set up the deck to play. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 130, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 130, 0.0); m_pTrack1->setBeats(pBeats1); ControlObject::getControl(ConfigKey(m_sGroup1, "rate")) ->set(getRateSliderValue(1.0)); @@ -832,7 +832,7 @@ TEST_F(EngineSyncTest, EnableOneDeckInitsMaster) { ConfigKey(m_sInternalClockGroup, "beat_distance"))); // Enable second deck, bpm and beat distance should still match original setting. - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 140, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 140, 0.0); m_pTrack2->setBeats(pBeats2); ControlObject::getControl(ConfigKey(m_sGroup2, "rate")) ->set(getRateSliderValue(1.0)); @@ -859,7 +859,7 @@ TEST_F(EngineSyncTest, EnableOneDeckInitsMaster) { TEST_F(EngineSyncTest, EnableOneDeckInitializesMaster) { // Enabling sync on a deck causes it to be master, and sets bpm and clock. // Set the deck to play. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 130, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 130, 0.0); m_pTrack1->setBeats(pBeats1); ControlObject::getControl(ConfigKey(m_sGroup1, "rate")) ->set(getRateSliderValue(1.0)); @@ -1048,7 +1048,7 @@ TEST_F(EngineSyncTest, EnableOneDeckSliderUpdates) { auto pButtonSyncEnabled1 = std::make_unique<ControlProxy>(m_sGroup1, "sync_enabled"); - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 130, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 130, 0.0); m_pTrack1->setBeats(pBeats1); ControlObject::getControl(ConfigKey(m_sGroup1, "rate")) ->set(getRateSliderValue(1.0)); @@ -1075,11 +1075,11 @@ TEST_F(EngineSyncTest, SyncToNonSyncDeck) { auto pButtonSyncEnabled2 = std::make_unique<ControlProxy>(m_sGroup2, "sync_enabled"); - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 130, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 130, 0.0); m_pTrack1->setBeats(pBeats1); ProcessBuffer(); ControlObject::set(ConfigKey(m_sGroup1, "rate"), getRateSliderValue(1.0)); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 100, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 100, 0.0); m_pTrack2->setBeats(pBeats2); ControlObject::getControl(ConfigKey(m_sGroup2, "rate")) ->set(getRateSliderValue(1.0)); @@ -1158,11 +1158,11 @@ TEST_F(EngineSyncTest, MomentarySyncDependsOnPlayingStates) { std::make_unique<ControlProxy>(m_sGroup2, "sync_enabled"); // Set up decks so they can be playing, and start deck 1. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 100, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 100, 0.0); m_pTrack1->setBeats(pBeats1); ControlObject::set(ConfigKey(m_sGroup1, "rate"), getRateSliderValue(1.0)); ControlObject::set(ConfigKey(m_sGroup1, "play"), 1.0); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 130, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 130, 0.0); m_pTrack2->setBeats(pBeats2); ControlObject::set(ConfigKey(m_sGroup2, "rate"), getRateSliderValue(1.0)); ControlObject::set(ConfigKey(m_sGroup2, "play"), 1.0); @@ -1231,7 +1231,7 @@ TEST_F(EngineSyncTest, EjectTrackSyncRemains) { std::make_unique<ControlProxy>(m_sGroup2, "sync_enabled"); auto pButtonEject1 = std::make_unique<ControlProxy>(m_sGroup1, "eject"); - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 120, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 120, 0.0); m_pTrack1->setBeats(pBeats1); pButtonSyncEnabled1->set(1.0); ProcessBuffer(); @@ -1256,7 +1256,7 @@ TEST_F(EngineSyncTest, EjectTrackSyncRemains) { m_pMixerDeck1->loadFakeTrack(false, 128.0); EXPECT_DOUBLE_EQ(128.0, ControlObject::getControl(ConfigKey(m_sGroup1, "bpm"))->get()); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 135, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 135, 0.0); m_pTrack2->setBeats(pBeats2); pButtonSyncEnabled2->set(1.0); ProcessBuffer(); @@ -1276,21 +1276,21 @@ TEST_F(EngineSyncTest, EjectTrackSyncRemains) { TEST_F(EngineSyncTest, FileBpmChangesDontAffectMaster) { // If filebpm changes, don't treat it like a rate change. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 100, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 100, 0.0); m_pTrack1->setBeats(pBeats1); auto pButtonSyncEnabled1 = std::make_unique<ControlProxy>(m_sGroup1, "sync_enabled"); pButtonSyncEnabled1->set(1.0); ProcessBuffer(); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 120, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 120, 0.0); m_pTrack2->setBeats(pBeats2); auto pButtonSyncEnabled2 = std::make_unique<ControlProxy>(m_sGroup2, "sync_enabled"); pButtonSyncEnabled2->set(1.0); ProcessBuffer(); - pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 160, 0.0); + pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 160, 0.0); m_pTrack1->setBeats(pBeats1); EXPECT_DOUBLE_EQ( 100.0, ControlObject::get(ConfigKey(m_sInternalClockGroup, "bpm"))); @@ -1302,7 +1302,7 @@ TEST_F(EngineSyncTest, ExplicitMasterPostProcessed) { auto pButtonMasterSync1 = std::make_unique<ControlProxy>(m_sGroup1, "sync_mode"); pButtonMasterSync1->slotSet(SYNC_MASTER_EXPLICIT); - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 160, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 160, 0.0); m_pTrack1->setBeats(pBeats1); ProcessBuffer(); ControlObject::getControl(ConfigKey(m_sGroup1, "play"))->set(1.0); @@ -1316,7 +1316,7 @@ TEST_F(EngineSyncTest, ExplicitMasterPostProcessed) { TEST_F(EngineSyncTest, ZeroBPMRateAdjustIgnored) { // If a track isn't loaded (0 bpm), but the deck has sync enabled, // don't pay attention to rate changes. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 0, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 0, 0.0); m_pTrack1->setBeats(pBeats1); auto pButtonSyncEnabled1 = std::make_unique<ControlProxy>(m_sGroup1, "sync_enabled"); @@ -1325,7 +1325,7 @@ TEST_F(EngineSyncTest, ZeroBPMRateAdjustIgnored) { ->set(getRateSliderValue(1.0)); ProcessBuffer(); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 120, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 120, 0.0); m_pTrack2->setBeats(pBeats2); auto pButtonSyncEnabled2 = std::make_unique<ControlProxy>(m_sGroup2, "sync_enabled"); @@ -1361,9 +1361,9 @@ TEST_F(EngineSyncTest, ZeroBPMRateAdjustIgnored) { TEST_F(EngineSyncTest, ZeroLatencyRateChangeNoQuant) { // Confirm that a rate change in an explicit master is instantly communicated // to followers. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 128, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 128, 0.0); m_pTrack1->setBeats(pBeats1); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 160, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 160, 0.0); m_pTrack2->setBeats(pBeats2); // Make Channel2 master to weed out any channel ordering issues. @@ -1409,9 +1409,9 @@ TEST_F(EngineSyncTest, ZeroLatencyRateChangeNoQuant) { TEST_F(EngineSyncTest, ZeroLatencyRateChangeQuant) { // Confirm that a rate change in an explicit master is instantly communicated // to followers. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 128, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 128, 0.0); m_pTrack1->setBeats(pBeats1); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 160, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 160, 0.0); m_pTrack2->setBeats(pBeats2); ControlObject::getControl(ConfigKey(m_sGroup1, "quantize"))->set(1.0); @@ -1460,9 +1460,9 @@ TEST_F(EngineSyncTest, ZeroLatencyRateChangeQuant) { TEST_F(EngineSyncTest, ZeroLatencyRateDiffQuant) { // Confirm that a rate change in an explicit master is instantly communicated // to followers. - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 128, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 128, 0.0); m_pTrack1->setBeats(pBeats1); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 160, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 160, 0.0); m_pTrack2->setBeats(pBeats2); ControlObject::getControl(ConfigKey(m_sGroup2, "quantize"))->set(1.0); @@ -1512,9 +1512,9 @@ TEST_F(EngineSyncTest, ZeroLatencyRateDiffQuant) { // need to check. The Sync feature is unfortunately brittle. // This test exercises https://bugs.launchpad.net/mixxx/+bug/1884324 TEST_F(EngineSyncTest, ActivatingSyncDoesNotCauseDrifting) { - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 150, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1->getSampleRate(), 150, 0.0); m_pTrack1->setBeats(pBeats1); - mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(*m_pTrack2, 150, 0.0); + mixxx::BeatsPointer pBeats2 = BeatFactory::makeBeatGrid(m_pTrack2->getSampleRate(), 150, 0.0); m_pTrack2->setBeats(pBeats2); ControlObject::getControl(ConfigKey(m_sGroup1, "quantize"))->set(0.0); @@ -1556,9 +1556,9 @@ TEST_F(EngineSyncTest, ActivatingSyncDoesNotCauseDrifting) { } TEST_F(EngineSyncTest, HalfDoubleBpmTest) { - mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(*m_pTrack1, 70, 0.0); + mixxx::BeatsPointer pBeats1 = BeatFactory::makeBeatGrid(m_pTrack1- |