Skip to content

Commit 686eb17

Browse files
committed
DeckAttributes: Add TrackOrDeckAttributes as base class of DeckAttributes
1 parent e65b1f7 commit 686eb17

5 files changed

Lines changed: 49 additions & 13 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1389,6 +1389,7 @@ add_library(
13891389
src/library/autodj/dlgautodj.cpp
13901390
src/library/autodj/dlgautodj.ui
13911391
src/library/autodj/track/deckattributes.cpp
1392+
src/library/autodj/track/trackordeckattributes.cpp
13921393
src/library/banshee/bansheedbconnection.cpp
13931394
src/library/banshee/bansheefeature.cpp
13941395
src/library/banshee/bansheeplaylistmodel.cpp

src/library/autodj/autodjprocessor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "control/controlpushbutton.h"
1111
#include "control/pollingcontrolproxy.h"
1212
#include "library/autodj/track/deckattributes.h"
13+
#include "library/autodj/track/trackordeckattributes.h"
1314
#include "library/playlisttablemodel.h"
1415
#include "preferences/usersettings.h"
1516
#include "track/track_decl.h"

src/library/autodj/track/deckattributes.h

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
#pragma once
22

3-
#include "audio/frame.h"
4-
#include "audio/types.h"
53
#include "control/controlproxy.h"
64
#include "engine/channels/enginechannel.h"
7-
#include "track/track_decl.h"
5+
#include "library/autodj/track/trackordeckattributes.h"
86

97
class BaseTrackPlayer;
108

119
/// Exposes the attributes of the track loaded in a certain player deck.
12-
class DeckAttributes : public QObject {
10+
class DeckAttributes : public TrackOrDeckAttributes {
1311
Q_OBJECT
1412
public:
1513
/// Special value for startPos that indicates the deck
@@ -44,7 +42,7 @@ class DeckAttributes : public QObject {
4442
m_play.set(1.0);
4543
}
4644

47-
double playPosition() const {
45+
double playPosition() const override {
4846
return m_playPos.get();
4947
}
5048

@@ -60,35 +58,35 @@ class DeckAttributes : public QObject {
6058
m_repeat.set(enabled ? 1.0 : 0.0);
6159
}
6260

63-
mixxx::audio::FramePos introStartPosition() const {
61+
mixxx::audio::FramePos introStartPosition() const override {
6462
return mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid(m_introStartPos.get());
6563
}
6664

67-
mixxx::audio::FramePos introEndPosition() const {
65+
mixxx::audio::FramePos introEndPosition() const override {
6866
return mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid(m_introEndPos.get());
6967
}
7068

71-
mixxx::audio::FramePos outroStartPosition() const {
69+
mixxx::audio::FramePos outroStartPosition() const override {
7270
return mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid(m_outroStartPos.get());
7371
}
7472

75-
mixxx::audio::FramePos outroEndPosition() const {
73+
mixxx::audio::FramePos outroEndPosition() const override {
7674
return mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid(m_outroEndPos.get());
7775
}
7876

79-
mixxx::audio::SampleRate sampleRate() const {
77+
mixxx::audio::SampleRate sampleRate() const override {
8078
return mixxx::audio::SampleRate::fromDouble(m_sampleRate.get());
8179
}
8280

83-
mixxx::audio::FramePos trackEndPosition() const {
81+
mixxx::audio::FramePos trackEndPosition() const override {
8482
return mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid(m_trackSamples.get());
8583
}
8684

87-
double rateRatio() const {
85+
double rateRatio() const override {
8886
return m_rateRatio.get();
8987
}
9088

91-
TrackPointer getLoadedTrack() const;
89+
TrackPointer getLoadedTrack() const override;
9290

9391
signals:
9492
void playChanged(DeckAttributes* pDeck, bool playing);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include "library/autodj/track/trackordeckattributes.h"
2+
3+
#include "moc_trackordeckattributes.cpp"
4+
5+
TrackOrDeckAttributes::~TrackOrDeckAttributes() {
6+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#pragma once
2+
3+
#include <QObject>
4+
5+
#include "audio/frame.h"
6+
#include "audio/types.h"
7+
#include "track/track_decl.h"
8+
9+
/// Represents either a track in the Auto DJ queue,
10+
/// or a player deck controlled by the Auto DJ processor.
11+
class TrackOrDeckAttributes : public QObject {
12+
Q_OBJECT
13+
public:
14+
virtual ~TrackOrDeckAttributes();
15+
16+
virtual mixxx::audio::FramePos introStartPosition() const = 0;
17+
virtual mixxx::audio::FramePos introEndPosition() const = 0;
18+
virtual mixxx::audio::FramePos outroStartPosition() const = 0;
19+
virtual mixxx::audio::FramePos outroEndPosition() const = 0;
20+
virtual mixxx::audio::SampleRate sampleRate() const = 0;
21+
virtual mixxx::audio::FramePos trackEndPosition() const = 0;
22+
virtual double playPosition() const = 0;
23+
virtual double rateRatio() const = 0;
24+
25+
virtual TrackPointer getLoadedTrack() const = 0;
26+
27+
inline bool isEmpty() const {
28+
return !getLoadedTrack();
29+
}
30+
};

0 commit comments

Comments
 (0)