diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-07-15 14:39:35 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-07-15 14:39:35 +0000 |
| commit | db0834220d3c3e11c77d24de356cdd975343442d (patch) | |
| tree | 483750c572af6d8c74852f9be37adb0c1c606c02 /src/plugins/Input | |
| parent | d69b825c74552cbaa7027297782e3c2bd89901a7 (diff) | |
| download | qmmp-db0834220d3c3e11c77d24de356cdd975343442d.tar.gz qmmp-db0834220d3c3e11c77d24de356cdd975343442d.tar.bz2 qmmp-db0834220d3c3e11c77d24de356cdd975343442d.zip | |
fixed cue support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1037 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input')
| -rw-r--r-- | src/plugins/Input/cue/decoder_cue.cpp | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/src/plugins/Input/cue/decoder_cue.cpp b/src/plugins/Input/cue/decoder_cue.cpp index f65e17f79..6064025e6 100644 --- a/src/plugins/Input/cue/decoder_cue.cpp +++ b/src/plugins/Input/cue/decoder_cue.cpp @@ -122,6 +122,7 @@ bool DecoderCUE::initialize() connect(stateHandler(), SIGNAL(aboutToFinish()), SLOT(proccessFinish())); //prepare decoder and ouput objects m_decoder->initialize(); + qDebug("%lld == %lld", m_offset, m_length); m_decoder->setFragment(m_offset, m_length); //send metadata QMap<Qmmp::MetaData, QString> metaData = parser.info(track)->metaData(); @@ -257,34 +258,23 @@ void DecoderCUE::run() void DecoderCUE::proccessFinish() { - qDebug("==>%s", qPrintable(SoundCore::instance()->nextUrl())); - qDebug("==>%s", qPrintable(m_nextUrl)); - if(!SoundCore::instance()->nextUrl().isEmpty() - && !m_nextUrl.isEmpty() - && SoundCore::instance()->nextUrl() == m_nextUrl) + if(nextUrlRequest(m_nextUrl)) { - qDebug("prefinish"); - qDebug("next url: %s", qPrintable(m_nextUrl)); + qDebug("DecoderCUE: using next url"); int track = m_nextUrl.section("#", -1).toInt(); + qDebug("==%d", track); QString p = QUrl(m_nextUrl).path(); p.replace(QString(QUrl::toPercentEncoding("#")), "#"); p.replace(QString(QUrl::toPercentEncoding("%")), "%"); - + //update decoder's fragment CUEParser parser(p); m_length = parser.length(track); m_offset = parser.offset(track); m_decoder->mutex()->lock(); + qDebug("%lld == %lld", m_offset, m_length); m_decoder->setFragment(m_offset, m_length); m_output2->seek(0); m_decoder->mutex()->unlock(); - - //stateHandler()->dispatch(Qmmp::Stopped); - //stateHandler()->dispatch(Qmmp::Buffering); - //stateHandler()->dispatch(Qmmp::Playing); - //m_decoder->mutex()->lock(); - //m_output2->seek(0); - //m_decoder->mutex()->unlock(); - // find next track if(track <= parser.count() - 1) m_nextUrl = parser.info(track + 1)->path(); @@ -293,10 +283,11 @@ void DecoderCUE::proccessFinish() //is it track of another file? if(QUrl(m_nextUrl).path() != p) m_nextUrl.clear(); + //change track emit playbackFinished(); + QMap<Qmmp::MetaData, QString> metaData = parser.info(track)->metaData(); + stateHandler()->dispatch(metaData); } - else - Decoder::stop(); } CUEStateHandler::CUEStateHandler(QObject *parent): StateHandler(parent){} |
