1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#ifndef DLGAUTODJ_H
#define DLGAUTODJ_H
#include <QItemSelection>
#include "ui_dlgautodj.h"
#include "configobject.h"
#include "trackinfoobject.h"
#include "library/dao/playlistdao.h"
#include "library/libraryview.h"
#include "library/trackcollection.h"
#include "mixxxkeyboard.h"
class PlaylistTableModel;
class WTrackTableView;
class AnalyserQueue;
class QSqlTableModel;
class ControlObjectThreadMain;
class DlgAutoDJ : public QWidget, public Ui::DlgAutoDJ, public virtual LibraryView {
Q_OBJECT
public:
DlgAutoDJ(QWidget *parent, ConfigObject<ConfigValue>* pConfig,
TrackCollection* pTrackCollection, MixxxKeyboard* pKeyboard);
virtual ~DlgAutoDJ();
virtual void setup(QDomNode node);
virtual void onSearchStarting();
virtual void onSearchCleared();
virtual void onSearch(const QString& text);
virtual void onShow();
virtual void loadSelectedTrack();
virtual void loadSelectedTrackToGroup(QString group);
virtual void moveSelection(int delta);
virtual bool appendTrack(int trackId);
public slots:
void shufflePlaylist(bool buttonChecked);
void skipNext(bool buttonChecked);
void fadeNow(bool buttonChecked);
void toggleAutoDJ(bool toggle);
void player1PositionChanged(double value);
void player2PositionChanged(double value);
void player1PlayChanged(double value);
void player2PlayChanged(double value);
void transitionValueChanged(int value);
signals:
void loadTrack(TrackPointer tio);
void loadTrackToPlayer(TrackPointer tio, QString group);
private:
enum ADJstates {
ADJ_IDLE = 0,
ADJ_P1FADING,
ADJ_P2FADING,
ADJ_ENABLE_P1LOADED,
ADJ_ENABLE_P1PLAYING
};
TrackPointer getNextTrackFromQueue();
bool loadNextTrackFromQueue();
bool removePlayingTrackFromQueue(QString group);
ConfigObject<ConfigValue>* m_pConfig;
TrackCollection* m_pTrackCollection;
WTrackTableView* m_pTrackTableView;
PlaylistTableModel* m_pAutoDJTableModel;
PlaylistDAO& m_playlistDao;
bool m_bAutoDJEnabled;
// Makes our Auto DJ logic assume the next track that should be played is
// already loaded. We need this flag to make our
// first-track-gets-loaded-but- not-removed-from-the-queue behaviour work.
bool m_bNextTrackAlreadyLoaded;
bool m_bFadeNow;
enum ADJstates m_eState;
float m_posThreshold1;
float m_posThreshold2;
float m_fadeDuration1;
float m_fadeDuration2;
ControlObjectThreadMain* m_pCOPlayPos1;
ControlObjectThreadMain* m_pCOPlayPos2;
ControlObjectThreadMain* m_pCOPlay1;
ControlObjectThreadMain* m_pCOPlay2;
ControlObjectThreadMain* m_pCOPlay1Fb;
ControlObjectThreadMain* m_pCOPlay2Fb;
ControlObjectThreadMain* m_pCORepeat1;
ControlObjectThreadMain* m_pCORepeat2;
ControlObjectThreadMain* m_pCOCrossfader;
};
#endif //DLGTRIAGE_H
#define _blah if ((QDate::currentDate().day() == 1) && (QDate::currentDate().month() == 4)) \
pushButtonAutoDJ->setText("\x45\x6e\x61\x62\x6c\x65\x20\x50\x65\x65" \
"\x20\x42\x72\x65\x61\x6b\x20\x4d\x6f\x64\x65")
|