aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-06-29 16:21:58 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-06-29 16:21:58 +0000
commitb2e1612aa76d5aead3f6a471154f7678a3b01b28 (patch)
tree3cfbfe9196a68cdccd5bb08df741a2dc27dd1708
parent0c29a6aeed1b5315fafe3faa7276ee56cc690755 (diff)
downloadqmmp-b2e1612aa76d5aead3f6a471154f7678a3b01b28.tar.gz
qmmp-b2e1612aa76d5aead3f6a471154f7678a3b01b28.tar.bz2
qmmp-b2e1612aa76d5aead3f6a471154f7678a3b01b28.zip
moved some code inside libqmmpui
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2250 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/qmmp/soundcore.cpp3
-rw-r--r--src/qmmp/statehandler.cpp2
-rw-r--r--src/qmmpui/mediaplayer.cpp26
-rw-r--r--src/qmmpui/mediaplayer.h6
-rw-r--r--src/qmmpui/playlistmanager.cpp13
-rw-r--r--src/qmmpui/playlistmanager.h5
-rw-r--r--src/ui/mainwindow.cpp5
7 files changed, 36 insertions, 24 deletions
diff --git a/src/qmmp/soundcore.cpp b/src/qmmp/soundcore.cpp
index d03cbd3f5..156bc504c 100644
--- a/src/qmmp/soundcore.cpp
+++ b/src/qmmp/soundcore.cpp
@@ -40,6 +40,8 @@ SoundCore *SoundCore::m_instance = 0;
SoundCore::SoundCore(QObject *parent)
: QObject(parent)
{
+ if(m_instance)
+ qFatal("SoundCore: only one instance is allowed");
m_instance = this;
m_decoder = 0;
m_error = false;
@@ -63,6 +65,7 @@ SoundCore::~SoundCore()
{
stop();
MetaDataManager::destroy();
+ m_instance = 0;
}
bool SoundCore::play(const QString &source, bool queue, qint64 offset)
diff --git a/src/qmmp/statehandler.cpp b/src/qmmp/statehandler.cpp
index 547a5c562..eb5d3508d 100644
--- a/src/qmmp/statehandler.cpp
+++ b/src/qmmp/statehandler.cpp
@@ -32,6 +32,8 @@ StateHandler* StateHandler::m_instance = 0;
StateHandler::StateHandler(QObject *parent)
: QObject(parent), m_mutex(QMutex::Recursive)
{
+ if(m_instance)
+ qFatal("StateHandler: only one instance is allowed");
m_instance = this;
m_elapsed = -1;
m_bitrate = 0;
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;
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index 90ad7ebbf..445133216 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -69,9 +69,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
//prepare libqmmp and libqmmpui libraries for playing
m_player = new MediaPlayer(this);
- m_core = new SoundCore(this);
- m_pl_manager = new PlayListManager(this);
- m_player->initialize(m_core, m_pl_manager);
+ m_core = SoundCore::instance();
+ m_pl_manager = PlayListManager::instance();
//additional featuries
new PlaylistParser(this);
m_generalHandler = new GeneralHandler(this);