aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-09-27 17:41:20 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-09-27 17:41:20 +0000
commit3503bb88cdb79aa9114b88f7fe5c8478f824caf6 (patch)
tree7ea2b0dd5066de3a53e5f108787a6bc69064eeca
parent776b66963475b2680f4ef8f60e39aab14a55bf36 (diff)
downloadqmmp-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.cpp13
-rw-r--r--src/qmmp/statehandler.h1
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;
};