Skip to content

Commit 0c1fd9a

Browse files
committed
feat: refactor player proxy and create separated track proxy
1 parent fc07d32 commit 0c1fd9a

12 files changed

+515
-529
lines changed

CMakeLists.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3436,24 +3436,25 @@ if(QML)
34363436
src/qml/qmlapplication.cpp
34373437
src/qml/qmlautoreload.cpp
34383438
src/qml/qmlbeatsmodel.cpp
3439-
src/qml/qmlcuesmodel.cpp
3440-
src/qml/qmlcontrolproxy.cpp
3439+
src/qml/qmlchainpresetmodel.cpp
34413440
src/qml/qmlconfigproxy.cpp
3441+
src/qml/qmlcontrolproxy.cpp
3442+
src/qml/qmlcuesmodel.cpp
34423443
src/qml/qmldlgpreferencesproxy.cpp
34433444
src/qml/qmleffectmanifestparametersmodel.cpp
3444-
src/qml/qmleffectsmanagerproxy.cpp
34453445
src/qml/qmleffectslotproxy.cpp
3446+
src/qml/qmleffectsmanagerproxy.cpp
34463447
src/qml/qmllibraryproxy.cpp
34473448
src/qml/qmllibrarytracklistmodel.cpp
3449+
src/qml/qmlmixxxcontrollerscreen.cpp
34483450
src/qml/qmlplayermanagerproxy.cpp
34493451
src/qml/qmlplayerproxy.cpp
34503452
src/qml/qmlvisibleeffectsmodel.cpp
3451-
src/qml/qmlchainpresetmodel.cpp
3452-
src/qml/qmlwaveformoverview.cpp
3453-
src/qml/qmlmixxxcontrollerscreen.cpp
34543453
src/qml/qmlwaveformdisplay.cpp
3454+
src/qml/qmlwaveformoverview.cpp
34553455
src/qml/qmlwaveformrenderer.cpp
34563456
src/qml/qmlsettingparameter.cpp
3457+
src/qml/qmltrackproxy.cpp
34573458
src/waveform/renderers/allshader/digitsrenderer.cpp
34583459
src/waveform/renderers/allshader/waveformrenderbeat.cpp
34593460
src/waveform/renderers/allshader/waveformrenderer.cpp

res/qml/Mixxx/Controls/WaveformOverview.qml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ Mixxx.WaveformOverview {
66
id: root
77

88
required property string group
9+
readonly property var player: Mixxx.PlayerManager.getPlayer(root.group)
910

10-
player: Mixxx.PlayerManager.getPlayer(root.group)
11+
track: player.currentTrack
1112

1213
Mixxx.ControlProxy {
1314
id: trackLoadedControl

src/coreservices.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,9 @@
4040

4141
#include "controllers/scripting/controllerscriptenginebase.h"
4242
#include "qml/qmlconfigproxy.h"
43-
#include "qml/qmlcontrolproxy.h"
44-
#include "qml/qmldlgpreferencesproxy.h"
45-
#include "qml/qmleffectslotproxy.h"
4643
#include "qml/qmleffectsmanagerproxy.h"
4744
#include "qml/qmllibraryproxy.h"
4845
#include "qml/qmlplayermanagerproxy.h"
49-
#include "qml/qmlplayerproxy.h"
5046
#endif
5147
#include "soundio/soundmanager.h"
5248
#include "sources/soundsourceproxy.h"

src/qml/qmlplayermanagerproxy.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "mixer/playermanager.h"
66
#include "moc_qmlplayermanagerproxy.cpp"
77
#include "qml/qmlplayerproxy.h"
8+
#include "track/track_decl.h"
89

910
namespace mixxx {
1011
namespace qml {
@@ -31,6 +32,20 @@ QmlPlayerProxy* QmlPlayerManagerProxy::getPlayer(const QString& group) {
3132
[this, group](const QString& trackLocation, bool play) {
3233
loadLocationToPlayer(trackLocation, group, play);
3334
});
35+
connect(pPlayerProxy,
36+
&QmlPlayerProxy::loadTrackRequested,
37+
this,
38+
[this, group](TrackPointer track,
39+
#ifdef __STEM__
40+
mixxx::StemChannelSelection stemSelection,
41+
#endif
42+
bool play) {
43+
loadTrackToPlayer(track, group,
44+
#ifdef __STEM__
45+
stemSelection,
46+
#endif
47+
play);
48+
});
3449
connect(pPlayerProxy,
3550
&QmlPlayerProxy::cloneFromGroup,
3651
this,
@@ -59,6 +74,19 @@ void QmlPlayerManagerProxy::loadLocationToPlayer(
5974
m_pPlayerManager->slotLoadLocationToPlayer(location, group, play);
6075
}
6176

77+
void QmlPlayerManagerProxy::loadTrackToPlayer(TrackPointer track,
78+
const QString& group,
79+
#ifdef __STEM__
80+
mixxx::StemChannelSelection stemSelection,
81+
#endif
82+
bool play) {
83+
m_pPlayerManager->slotLoadTrackToPlayer(track, group,
84+
#ifdef __STEM__
85+
stemSelection,
86+
#endif
87+
play);
88+
}
89+
6290
// static
6391
QmlPlayerManagerProxy* QmlPlayerManagerProxy::create(QQmlEngine* pQmlEngine, QJSEngine* pJsEngine) {
6492
// The implementation of this method is mostly taken from the code example

src/qml/qmlplayermanagerproxy.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ class QmlPlayerManagerProxy : public QObject {
2424
const QUrl& locationUrl, bool play = false);
2525
Q_INVOKABLE void loadLocationToPlayer(
2626
const QString& location, const QString& group, bool play = false);
27+
Q_INVOKABLE void loadTrackToPlayer(TrackPointer track,
28+
const QString& group,
29+
#ifdef __STEM__
30+
mixxx::StemChannelSelection stemSelection,
31+
#endif
32+
bool play);
2733

2834
static QmlPlayerManagerProxy* create(QQmlEngine* pQmlEngine, QJSEngine* pJsEngine);
2935
static void registerPlayerManager(std::shared_ptr<PlayerManager> pPlayerManager) {

0 commit comments

Comments
 (0)