aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Transports
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-01-08 21:19:10 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-01-08 21:19:10 +0000
commit8beff974f784336864b408b873a92c501d60af37 (patch)
tree97d415301bdef8ec8946da6109f45114bb203c56 /src/plugins/Transports
parent2a5a7f7952021712fab3e5115e9fb51730e0e317 (diff)
downloadqmmp-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.cpp18
-rw-r--r--src/plugins/Transports/http/downloader.h1
-rw-r--r--src/plugins/Transports/http/httpinputsource.cpp1
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));
}