diff options
Diffstat (limited to 'src/qmmpui')
| -rw-r--r-- | src/qmmpui/mediaplayer.cpp | 26 | ||||
| -rw-r--r-- | src/qmmpui/mediaplayer.h | 6 | ||||
| -rw-r--r-- | src/qmmpui/playlistmanager.cpp | 13 | ||||
| -rw-r--r-- | src/qmmpui/playlistmanager.h | 5 |
4 files changed, 29 insertions, 21 deletions
diff --git a/src/qmmpui/mediaplayer.cpp b/src/qmmpui/mediaplayer.cpp index 9b1636697..1bdac91f4 100644 --- a/src/qmmpui/mediaplayer.cpp +++ b/src/qmmpui/mediaplayer.cpp @@ -32,6 +32,8 @@ MediaPlayer *MediaPlayer::m_instance = 0; MediaPlayer::MediaPlayer(QObject *parent) : QObject(parent) { + if(m_instance) + qFatal("StateHandler: only one instance is allowed"); m_instance = this; m_pl_manager = 0; m_core = 0; @@ -42,28 +44,22 @@ MediaPlayer::MediaPlayer(QObject *parent) QString locale = Qmmp::systemLanguageID(); translator->load(QString(":/libqmmpui_") + locale); qApp->installTranslator(translator); + m_core = new SoundCore(this); + m_pl_manager = new PlayListManager(this); + connect(m_core, SIGNAL(nextTrackRequest()), SLOT(updateNextUrl())); + connect(m_core, SIGNAL(finished()), SLOT(playNext())); + connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(processState(Qmmp::State))); + connect(m_core, SIGNAL(metaDataChanged()),SLOT(showMetaData())); } MediaPlayer::~MediaPlayer() -{} - -MediaPlayer* MediaPlayer::instance() { - return m_instance; + m_instance = 0; } -void MediaPlayer::initialize(SoundCore *core, PlayListManager *pl_manager) +MediaPlayer* MediaPlayer::instance() { - Q_CHECK_PTR(core); - Q_CHECK_PTR(pl_manager); - m_core = core; - m_pl_manager = pl_manager; - m_repeat = false; - m_noPlaylistAdvance = false; - connect(m_core, SIGNAL(nextTrackRequest()), SLOT(updateNextUrl())); - connect(m_core, SIGNAL(finished()), SLOT(playNext())); - connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(processState(Qmmp::State))); - connect(m_core, SIGNAL(metaDataChanged()),SLOT(showMetaData())); + return m_instance; } PlayListManager *MediaPlayer::playListManager() diff --git a/src/qmmpui/mediaplayer.h b/src/qmmpui/mediaplayer.h index 8c8a97e5a..941295d1a 100644 --- a/src/qmmpui/mediaplayer.h +++ b/src/qmmpui/mediaplayer.h @@ -46,12 +46,6 @@ public: */ static MediaPlayer* instance(); /*! - * Prepares object for usage. - * @param core Pointer to the SoundCore object. - * @param pl_mamager Playlist manager. - */ - void initialize(SoundCore *core, PlayListManager *pl_mamager); - /*! * Returns playlist manager pointer */ PlayListManager *playListManager(); diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp index 85ec93855..02b82c07d 100644 --- a/src/qmmpui/playlistmanager.cpp +++ b/src/qmmpui/playlistmanager.cpp @@ -27,8 +27,14 @@ #include "playlistsettings_p.h" #include "playlistmanager.h" + +PlayListManager *PlayListManager::m_instance = 0; + PlayListManager::PlayListManager(QObject *parent) : QObject(parent) { + if(m_instance) + qFatal("PlayListManager: only one instance is allowed"); + m_instance = this; m_current = 0; m_selected = 0; m_repeatable = false; @@ -40,8 +46,15 @@ PlayListManager::~PlayListManager() { writePlayLists(); delete PlaylistSettings::instance(); + m_instance = 0; +} + +PlayListManager* PlayListManager::instance() +{ + return m_instance; } + PlayListModel *PlayListManager::selectedPlayList() const { return m_selected; diff --git a/src/qmmpui/playlistmanager.h b/src/qmmpui/playlistmanager.h index b8559b05b..fde5f4270 100644 --- a/src/qmmpui/playlistmanager.h +++ b/src/qmmpui/playlistmanager.h @@ -40,6 +40,10 @@ public: */ ~PlayListManager(); /*! + * Returns a pointer to the object's instance. + */ + static PlayListManager* instance(); + /*! * Returns a list of all playlists. */ QList <PlayListModel *> playLists() const; @@ -293,6 +297,7 @@ public slots: private: void readPlayLists(); void writePlayLists(); + static PlayListManager* m_instance; QList <PlayListModel *> m_models; PlayListModel *m_current; PlayListModel *m_selected; |
