diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-09-27 17:41:20 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-09-27 17:41:20 +0000 |
| commit | 3503bb88cdb79aa9114b88f7fe5c8478f824caf6 (patch) | |
| tree | 7ea2b0dd5066de3a53e5f108787a6bc69064eeca | |
| parent | 776b66963475b2680f4ef8f60e39aab14a55bf36 (diff) | |
| download | qmmp-3503bb88cdb79aa9114b88f7fe5c8478f824caf6.tar.gz qmmp-3503bb88cdb79aa9114b88f7fe5c8478f824caf6.tar.bz2 qmmp-3503bb88cdb79aa9114b88f7fe5c8478f824caf6.zip | |
send metadata in play state only
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@567 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmp/statehandler.cpp | 13 | ||||
| -rw-r--r-- | src/qmmp/statehandler.h | 1 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/qmmp/statehandler.cpp b/src/qmmp/statehandler.cpp index 3f2fe19b9..eceed5f76 100644 --- a/src/qmmp/statehandler.cpp +++ b/src/qmmp/statehandler.cpp @@ -34,6 +34,7 @@ StateHandler::StateHandler(QObject *parent) m_frequency = 0; m_precision = 0; m_channels = 0; + m_sendMeta = FALSE; m_state = Qmmp::Stopped; } @@ -92,7 +93,10 @@ void StateHandler::dispatch(const QMap<Qmmp::MetaData, QString> &metaData) if (m_metaData != tmp) { m_metaData = tmp; - emit metaDataChanged (); + if (m_state == Qmmp::Playing) //send metadata in play state only + emit metaDataChanged (); + else + m_sendMeta = TRUE; } m_mutex.unlock(); } @@ -108,6 +112,7 @@ void StateHandler::dispatch(const Qmmp::State &state) qPrintable(states.at(state)), qPrintable(states.at(m_state))); m_state = state; + //clear QList <Qmmp::State> clearStates; clearStates << Qmmp::Stopped << Qmmp::NormalError << Qmmp::FatalError; @@ -118,9 +123,15 @@ void StateHandler::dispatch(const Qmmp::State &state) m_frequency = 0; m_precision = 0; m_channels = 0; + m_sendMeta = FALSE; m_metaData.clear(); } emit stateChanged(state); + if(m_state == Qmmp::Playing && m_sendMeta) + { + m_sendMeta = FALSE; + emit metaDataChanged (); + } } m_mutex.unlock(); } diff --git a/src/qmmp/statehandler.h b/src/qmmp/statehandler.h index 8d755a35c..6be225b4e 100644 --- a/src/qmmp/statehandler.h +++ b/src/qmmp/statehandler.h @@ -79,6 +79,7 @@ private: QMap <Qmmp::MetaData, QString> m_metaData; Qmmp::State m_state; QMutex m_mutex; + bool m_sendMeta; }; |
