Skip to content

Commit

Permalink
use double instead of Duration for time
Browse files Browse the repository at this point in the history
  • Loading branch information
hacksdump committed Sep 26, 2020
1 parent ac82ed1 commit 31d0497
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 26 deletions.
5 changes: 2 additions & 3 deletions src/analyzer/analyzerbeats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -277,9 +277,8 @@ void AnalyzerBeats::storeResults(TrackPointer pTrack) {
pCurrentBeats->getBeatAtIndex(mixxx::kFirstBeatIndex)->framePosition();
mixxx::FramePos newFirstBeat = newBeats.getBeatAtIndex(mixxx::kFirstBeatIndex)->framePosition();
if (currentFirstBeat == mixxx::kStartFramePos && newFirstBeat > mixxx::kStartFramePos) {
const auto translateDuration = mixxx::Duration::fromSeconds(
(newFirstBeat - currentFirstBeat) / pTrack->getSampleRate());
pCurrentBeats->translate(translateDuration);
const auto translateDuration = (newFirstBeat - currentFirstBeat) / pTrack->getSampleRate();
pCurrentBeats->translateBySeconds(translateDuration);
}
}

Expand Down
15 changes: 6 additions & 9 deletions src/engine/controls/bpmcontrol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -189,9 +189,8 @@ void BpmControl::slotTranslateBeatsEarlier(double v) {
if (v > 0 && m_pBeats) {
const mixxx::FrameDiff_t translateDistFrames =
getFrameOfTrack().sampleRate * -kSmallBeatsTranslateFactor;
const auto translateDuration = mixxx::Duration::fromSeconds(
translateDistFrames / getFrameOfTrack().sampleRate);
m_pBeats->translate(translateDuration);
const auto translateDuration = translateDistFrames / getFrameOfTrack().sampleRate;
m_pBeats->translateBySeconds(translateDuration);
}
}

Expand All @@ -200,9 +199,8 @@ void BpmControl::slotTranslateBeatsLater(double v) {
// TODO(rryan): Track::getSampleRate is possibly inaccurate!
const mixxx::FrameDiff_t translateDistFrames =
getFrameOfTrack().sampleRate * kSmallBeatsTranslateFactor;
const auto translateDuration = mixxx::Duration::fromSeconds(
translateDistFrames / getFrameOfTrack().sampleRate);
m_pBeats->translate(translateDuration);
const auto translateDuration = translateDistFrames / getFrameOfTrack().sampleRate;
m_pBeats->translateBySeconds(translateDuration);
}
}

Expand Down Expand Up @@ -991,7 +989,7 @@ void BpmControl::slotBeatsTranslate(double v) {
mixxx::FramePos currentFrame = getFrameOfTrack().currentFrame;
mixxx::FramePos closestBeat = m_pBeats->findClosestBeat(currentFrame);
mixxx::FrameDiff_t delta = currentFrame - closestBeat;
m_pBeats->translate(mixxx::Duration::fromSeconds(delta / getFrameOfTrack().sampleRate));
m_pBeats->translateBySeconds(delta / getFrameOfTrack().sampleRate);
}
}

Expand All @@ -1002,8 +1000,7 @@ void BpmControl::slotBeatsTranslateMatchAlignment(double v) {
m_dUserOffset.setValue(0.0);

mixxx::FrameDiff_t offsetFrames = getPhaseOffset(getFrameOfTrack().currentFrame);
m_pBeats->translate(mixxx::Duration::fromSeconds(
-offsetFrames / getFrameOfTrack().sampleRate));
m_pBeats->translateBySeconds(-offsetFrames / getFrameOfTrack().sampleRate);
}
}

Expand Down
6 changes: 3 additions & 3 deletions src/test/beatstest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ class BeatsTest : public testing::Test {
return beats;
}

Duration framesToDuration(audio::SampleRate sampleRate, FrameDiff_t frames) {
return mixxx::Duration::fromSeconds(frames / sampleRate);
double framesToSeconds(audio::SampleRate sampleRate, FrameDiff_t frames) {
return frames / sampleRate;
}

TrackPointer m_pTrack1;
Expand Down Expand Up @@ -432,7 +432,7 @@ TEST_F(BeatsTest, Translate) {
FrameDiff_t delta = 500;

// Move the grid delta frames
pBeats1->translate(framesToDuration(m_pTrack1->getSampleRate(), delta));
pBeats1->translateBySeconds(framesToSeconds(m_pTrack1->getSampleRate(), delta));

// All beats must have been displaced by delta frames

Expand Down
12 changes: 6 additions & 6 deletions src/track/beats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ inline FrameDiff_t getBeatLengthFrames(Bpm bpm,
(4.0 / timeSignature.getNoteValue()) / bpm.getValue();
}

inline FrameDiff_t durationToFrames(audio::SampleRate sampleRate, Duration duration) {
return sampleRate * duration.toDoubleSeconds();
inline FrameDiff_t durationToFrames(audio::SampleRate sampleRate, double seconds) {
return sampleRate * seconds;
}
} // namespace

Expand Down Expand Up @@ -137,9 +137,9 @@ void Beats::setSignature(TimeSignature sig, int beatIndex) {
emit updated();
}

void Beats::translate(Duration duration) {
void Beats::translateBySeconds(double seconds) {
QMutexLocker locker(&m_mutex);
m_beatsInternal.translate(duration);
m_beatsInternal.translateBySeconds(seconds);
locker.unlock();
emit updated();
}
Expand Down Expand Up @@ -758,14 +758,14 @@ void BeatsInternal::setSignature(TimeSignature sig, int downbeatIndex) {
generateBeatsFromMarkers();
}

void BeatsInternal::translate(Duration duration) {
void BeatsInternal::translateBySeconds(double seconds) {
if (!isValid()) {
return;
}

setFirstBeatFrame(getFirstBeatFrame() +
durationToFrames(
m_streamInfo.getSignalInfo().getSampleRate(), duration));
m_streamInfo.getSignalInfo().getSampleRate(), seconds));
generateBeatsFromMarkers();
}

Expand Down
10 changes: 5 additions & 5 deletions src/track/beats.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class BeatsInternal {
FramePos findClosestBeat(FramePos frame) const;
Bpm getBpmAtPosition(FramePos curFrame) const;
void setSignature(TimeSignature sig, int downbeatIndex);
void translate(Duration duration);
void translateBySeconds(double seconds);
void setBpm(Bpm bpm, int beatIndex = kFirstBeatIndex);
int size() const;
FramePos getFirstBeatPosition() const;
Expand Down Expand Up @@ -183,10 +183,10 @@ class Beats final : public QObject {
/// Sets the track signature starting at specified bar
void setSignature(TimeSignature sig, int downbeatIndex);

/// Translate all beats in the song by a time duration. Beats that lie
/// before the start of the track or after the end of the track are not
/// removed.
void translate(Duration duration);
/// Translate all beats in the song by a time duration (can be negative).
/// Beats that lie before the start of the track or after the end of the
/// track are not removed.
void translateBySeconds(double seconds);

/// Scale the position of every beat in the track by a fraction.
void scale(BPMScale scale);
Expand Down

0 comments on commit 31d0497

Please sign in to comment.