diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-01-08 21:19:10 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-01-08 21:19:10 +0000 |
| commit | 8beff974f784336864b408b873a92c501d60af37 (patch) | |
| tree | 97d415301bdef8ec8946da6109f45114bb203c56 /src/plugins/Transports | |
| parent | 2a5a7f7952021712fab3e5115e9fb51730e0e317 (diff) | |
| download | qmmp-8beff974f784336864b408b873a92c501d60af37.tar.gz qmmp-8beff974f784336864b408b873a92c501d60af37.tar.bz2 qmmp-8beff974f784336864b408b873a92c501d60af37.zip | |
fixed receiving of shoutcast metadata
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1490 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Transports')
| -rw-r--r-- | src/plugins/Transports/http/downloader.cpp | 18 | ||||
| -rw-r--r-- | src/plugins/Transports/http/downloader.h | 1 | ||||
| -rw-r--r-- | src/plugins/Transports/http/httpinputsource.cpp | 1 |
3 files changed, 14 insertions, 6 deletions
diff --git a/src/plugins/Transports/http/downloader.cpp b/src/plugins/Transports/http/downloader.cpp index 2ac5a65a3..76f7c31ac 100644 --- a/src/plugins/Transports/http/downloader.cpp +++ b/src/plugins/Transports/http/downloader.cpp @@ -74,7 +74,7 @@ static size_t curl_header(void *data, size_t size, size_t nmemb, else { QString key = str.left(str.indexOf(":")).trimmed().toLower(); - QString value = str.right(str.size() - str.indexOf(":") - 1).trimmed().toLower(); + QString value = str.right(str.size() - str.indexOf(":") - 1).trimmed(); dl->stream()->header.insert(key, value); qDebug("Downloader: key=%s, value=%s",qPrintable(key),qPrintable(value)); @@ -115,6 +115,7 @@ Downloader::Downloader(QObject *parent, const QString &url) m_stream.icy_metaint = 0; m_handle = 0; m_metacount = 0; + m_meta_sent = FALSE; } @@ -177,10 +178,9 @@ QMutex *Downloader::mutex() QString Downloader::contentType() { - QString content; if (m_stream.header.contains("content-type")) - content = m_stream.header.value("content-type"); - return content; + return m_stream.header.value("content-type").toLower(); + return QString(); } void Downloader::abort() @@ -299,6 +299,14 @@ void Downloader::checkBuffer() { m_ready = TRUE; qDebug("Downloader: ready"); + if(!m_meta_sent && stream()->icy_meta_data) + { + QMap<Qmmp::MetaData, QString> metaData; + metaData.insert(Qmmp::TITLE, m_stream.header.value("icy-name")); + metaData.insert(Qmmp::GENRE, m_stream.header.value("icy-genre")); + metaData.insert(Qmmp::URL, m_url); + StateHandler::instance()->dispatch(metaData); + } emit readyRead(); } else if (!m_ready) @@ -306,7 +314,6 @@ void Downloader::checkBuffer() StateHandler::instance()->dispatchBuffer(100 * m_stream.buf_fill / BUFFER_SIZE); qApp->processEvents(); } - } bool Downloader::isReady() @@ -356,6 +363,7 @@ void Downloader::parseICYMetaData(char *data) metaData.insert(Qmmp::GENRE, m_stream.header.value("icy-genre")); metaData.insert(Qmmp::URL, m_url); StateHandler::instance()->dispatch(metaData); + m_meta_sent = TRUE; break; } } diff --git a/src/plugins/Transports/http/downloader.h b/src/plugins/Transports/http/downloader.h index 34f046b66..f5a78676e 100644 --- a/src/plugins/Transports/http/downloader.h +++ b/src/plugins/Transports/http/downloader.h @@ -77,6 +77,7 @@ private: int m_metacount; QString m_title; bool m_ready; + bool m_meta_sent; protected: void run(); diff --git a/src/plugins/Transports/http/httpinputsource.cpp b/src/plugins/Transports/http/httpinputsource.cpp index b8f838d83..e2b517ce2 100644 --- a/src/plugins/Transports/http/httpinputsource.cpp +++ b/src/plugins/Transports/http/httpinputsource.cpp @@ -45,7 +45,6 @@ bool HTTPInputSource::isReady() void HTTPInputSource::open() { - qDebug("open"); m_reader->open(QIODevice::ReadOnly); emit(ready(this)); } |
