From 8beff974f784336864b408b873a92c501d60af37 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 8 Jan 2010 21:19:10 +0000 Subject: 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 --- src/plugins/Transports/http/downloader.cpp | 18 +++++++++++++----- src/plugins/Transports/http/downloader.h | 1 + src/plugins/Transports/http/httpinputsource.cpp | 1 - 3 files changed, 14 insertions(+), 6 deletions(-) (limited to 'src/plugins/Transports') 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 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)); } -- cgit v1.2.3-13-gbd6f