Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RekordboxFeature: Use mixxx::audio::FramePos internally #4078

Merged
merged 1 commit into from
Jul 8, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 20 additions & 17 deletions src/library/rekordbox/rekordboxfeature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ constexpr mixxx::RgbColor kColorForIDPurple(0x9808F8);
constexpr mixxx::RgbColor kColorForIDNoColor(0x0);

struct memory_cue_loop_t {
double startPosition;
double endPosition;
mixxx::audio::FramePos startPosition;
mixxx::audio::FramePos endPosition;
QString comment;
mixxx::RgbColor::optional_t color;
};
Expand Down Expand Up @@ -855,8 +855,8 @@ void clearDeviceTables(QSqlDatabase& database, TreeItem* child) {
}

void setHotCue(TrackPointer track,
double startPosition,
double endPosition,
mixxx::audio::FramePos startPosition,
mixxx::audio::FramePos endPosition,
int id,
const QString& label,
mixxx::RgbColor::optional_t color) {
Expand All @@ -870,7 +870,7 @@ void setHotCue(TrackPointer track,
}

mixxx::CueType type = mixxx::CueType::HotCue;
if (endPosition != Cue::kNoPosition) {
if (endPosition.isValid()) {
type = mixxx::CueType::Loop;
}

Expand Down Expand Up @@ -905,8 +905,7 @@ void readAnalyze(TrackPointer track,

rekordbox_anlz_t anlz = rekordbox_anlz_t(&ks);

double sampleRateKhz = sampleRate / 1000.0;
double samples = sampleRateKhz * mixxx::kEngineChannelCount;
const double sampleRateKhz = sampleRate / 1000.0;

QList<memory_cue_loop_t> memoryCuesAndLoops;
int lastHotCueIndex = 0;
Expand Down Expand Up @@ -963,15 +962,16 @@ void readAnalyze(TrackPointer track,
if (time < 1) {
time = 1;
}
double position = samples * static_cast<double>(time);
const auto position = mixxx::audio::FramePos(
sampleRateKhz * static_cast<double>(time));

switch (cuesTag->type()) {
case rekordbox_anlz_t::CUE_LIST_TYPE_MEMORY_CUES: {
switch ((*cueEntry)->type()) {
case rekordbox_anlz_t::CUE_ENTRY_TYPE_MEMORY_CUE: {
memory_cue_loop_t memoryCue;
memoryCue.startPosition = position;
memoryCue.endPosition = Cue::kNoPosition;
memoryCue.endPosition = mixxx::audio::kInvalidFramePos;
memoryCue.color = mixxx::RgbColor::nullopt();
memoryCuesAndLoops << memoryCue;
} break;
Expand All @@ -984,7 +984,8 @@ void readAnalyze(TrackPointer track,

memory_cue_loop_t loop;
loop.startPosition = position;
loop.endPosition = samples * static_cast<double>(endTime);
loop.endPosition = mixxx::audio::FramePos(
sampleRateKhz * static_cast<double>(endTime));
loop.color = mixxx::RgbColor::nullopt();
memoryCuesAndLoops << loop;
} break;
Expand All @@ -998,7 +999,7 @@ void readAnalyze(TrackPointer track,
setHotCue(
track,
position,
Cue::kNoPosition,
mixxx::audio::kInvalidFramePos,
hotCueIndex,
QString(),
mixxx::RgbColor::nullopt());
Expand All @@ -1024,15 +1025,16 @@ void readAnalyze(TrackPointer track,
if (time < 1) {
time = 1;
}
double position = samples * static_cast<double>(time);
const auto position = mixxx::audio::FramePos(
sampleRateKhz * static_cast<double>(time));

switch (cuesExtendedTag->type()) {
case rekordbox_anlz_t::CUE_LIST_TYPE_MEMORY_CUES: {
switch ((*cueExtendedEntry)->type()) {
case rekordbox_anlz_t::CUE_ENTRY_TYPE_MEMORY_CUE: {
memory_cue_loop_t memoryCue;
memoryCue.startPosition = position;
memoryCue.endPosition = Cue::kNoPosition;
memoryCue.endPosition = mixxx::audio::kInvalidFramePos;
memoryCue.comment = toUnicode((*cueExtendedEntry)->comment());
memoryCue.color = colorFromID(static_cast<int>(
(*cueExtendedEntry)->color_id()));
Expand All @@ -1050,7 +1052,8 @@ void readAnalyze(TrackPointer track,

memory_cue_loop_t loop;
loop.startPosition = position;
loop.endPosition = samples * static_cast<double>(endTime);
loop.endPosition = mixxx::audio::FramePos(
sampleRateKhz * static_cast<double>(endTime));
loop.comment = toUnicode((*cueExtendedEntry)->comment());
loop.color = colorFromID(static_cast<int>((*cueExtendedEntry)->color_id()));
memoryCuesAndLoops << loop;
Expand All @@ -1064,7 +1067,7 @@ void readAnalyze(TrackPointer track,
}
setHotCue(track,
position,
Cue::kNoPosition,
mixxx::audio::kInvalidFramePos,
hotCueIndex,
toUnicode((*cueExtendedEntry)->comment()),
mixxx::RgbColor(qRgb(
Expand Down Expand Up @@ -1097,9 +1100,9 @@ void readAnalyze(TrackPointer track,
memoryCueOrLoopIndex++) {
memory_cue_loop_t memoryCueOrLoop = memoryCuesAndLoops[memoryCueOrLoopIndex];

if (!mainCueFound && memoryCueOrLoop.endPosition == Cue::kNoPosition) {
if (!mainCueFound && !memoryCueOrLoop.endPosition.isValid()) {
// Set first chronological memory cue as Mixxx MainCue
track->setCuePoint(CuePosition(memoryCueOrLoop.startPosition));
track->setMainCuePosition(memoryCueOrLoop.startPosition);
CuePointer pMainCue = track->findCueByType(mixxx::CueType::MainCue);
pMainCue->setLabel(memoryCueOrLoop.comment);
pMainCue->setColor(*memoryCueOrLoop.color);
Expand Down