diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-05-24 21:11:21 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-05-24 21:11:21 +0000 |
| commit | 9e0db5ae888a50817482dfd0ec94e8036d354399 (patch) | |
| tree | 3fc230e544ac3465ef527ddcd8c87304435535bf /src | |
| parent | d68daea62890ab3cfca558d855f0ccc85e39fb64 (diff) | |
| download | qmmp-9e0db5ae888a50817482dfd0ec94e8036d354399.tar.gz qmmp-9e0db5ae888a50817482dfd0ec94e8036d354399.tar.bz2 qmmp-9e0db5ae888a50817482dfd0ec94e8036d354399.zip | |
refactoring
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7958 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/qmmp/qmmpaudioengine.cpp | 21 | ||||
| -rw-r--r-- | src/qmmp/statehandler.cpp | 8 | ||||
| -rw-r--r-- | src/qmmp/statehandler.h | 2 |
3 files changed, 16 insertions, 15 deletions
diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp index 79421bfd0..8bb13cf24 100644 --- a/src/qmmp/qmmpaudioengine.cpp +++ b/src/qmmp/qmmpaudioengine.cpp @@ -357,7 +357,6 @@ void QmmpAudioEngine::run() addOffset(); //offset mutex()->unlock(); m_output->start(); - m_dithering->setFormats(m_decoder->audioParameters().format(), m_output->format()); StateHandler::instance()->dispatch(Qmmp::Buffering); StateHandler::instance()->dispatch(m_decoder->totalTime()); StateHandler::instance()->dispatch(Qmmp::Playing); @@ -384,7 +383,6 @@ void QmmpAudioEngine::run() info.setValues(m); StateHandler::instance()->dispatch(info); m_trackInfo = QSharedPointer<TrackInfo>(new TrackInfo(info)); - } if(m_inputs[m_decoder]->hasMetaData()) { @@ -486,16 +484,15 @@ void QmmpAudioEngine::run() addOffset(); //offset } } - if(m_output) - { - m_dithering->setFormats(m_decoder->audioParameters().format(), m_output->format()); - continue; - } + if(!m_output) + m_done = true; + + continue; } - flush(true); if (m_output) { + flush(true); m_output->recycler()->mutex()->lock (); // end of stream while (!m_output->recycler()->empty() && !m_user_stop) @@ -596,10 +593,10 @@ void QmmpAudioEngine::sendMetaData() { if(!m_decoder || m_inputs.isEmpty()) return; - QString url = m_inputs.value(m_decoder)->path(); - if (QFile::exists(url)) //send metadata for local files only + QString path = m_inputs.value(m_decoder)->path(); + if (QFileInfo(path).isFile()) //send metadata for local files only { - QList <TrackInfo *> list = MetaDataManager::instance()->createPlayList(url, TrackInfo::MetaData); + QList <TrackInfo *> list = MetaDataManager::instance()->createPlayList(path, TrackInfo::AllParts); if (!list.isEmpty()) { StateHandler::instance()->dispatch(*list.first()); @@ -705,6 +702,8 @@ void QmmpAudioEngine::prepareEffects(Decoder *d) m_effects << effect; tmp_effects.removeAll(effect); } + + m_dithering->setFormats(d->audioParameters().format(), m_ap.format()); } //static members diff --git a/src/qmmp/statehandler.cpp b/src/qmmp/statehandler.cpp index f02612f73..c5d0aa621 100644 --- a/src/qmmp/statehandler.cpp +++ b/src/qmmp/statehandler.cpp @@ -92,18 +92,18 @@ void StateHandler::dispatch(qint64 length) m_mutex.unlock(); } -void StateHandler::dispatch(const TrackInfo &info) +bool StateHandler::dispatch(const TrackInfo &info) { QMutexLocker locker(&m_mutex); if(info.isEmpty()) { qWarning("StateHandler: empty metadata"); - return; + return false; } if(m_state != Qmmp::Playing && m_state != Qmmp::Paused) { qWarning("StateHandler: metadata is ignored"); - return; + return false; } if(m_info.isEmpty() || m_info.path() == info.path()) @@ -120,8 +120,10 @@ void StateHandler::dispatch(const TrackInfo &info) { m_info = tmp; qApp->postEvent(parent(), new TrackInfoEvent(m_info)); + return true; } } + return false; } void StateHandler::dispatch(const QHash<QString, QString> &info) diff --git a/src/qmmp/statehandler.h b/src/qmmp/statehandler.h index 1a35c9755..790ee1195 100644 --- a/src/qmmp/statehandler.h +++ b/src/qmmp/statehandler.h @@ -61,7 +61,7 @@ public: */ void dispatch(qint64 duration); - void dispatch(const TrackInfo &info); + bool dispatch(const TrackInfo &info); /*! * Sends stream information \b info */ |
