aboutsummaryrefslogtreecommitdiff
path: root/lib/downloader.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2007-08-21 19:13:47 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2007-08-21 19:13:47 +0000
commited3828f0df1bcef66b036ce1831a0aed87ed5482 (patch)
tree33c21269d4c2556c67a7db22b71c55cb604950db /lib/downloader.cpp
parentf19a1f3ea9aa8080b15b384bbe73896e4407ac41 (diff)
downloadqmmp-ed3828f0df1bcef66b036ce1831a0aed87ed5482.tar.gz
qmmp-ed3828f0df1bcef66b036ce1831a0aed87ed5482.tar.bz2
qmmp-ed3828f0df1bcef66b036ce1831a0aed87ed5482.zip
added shoutcast title update
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@119 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'lib/downloader.cpp')
-rw-r--r--lib/downloader.cpp31
1 files changed, 25 insertions, 6 deletions
diff --git a/lib/downloader.cpp b/lib/downloader.cpp
index 56564419c..e025e4f52 100644
--- a/lib/downloader.cpp
+++ b/lib/downloader.cpp
@@ -19,7 +19,7 @@
***************************************************************************/
#include <QApplication>
-
+#include <QStringList>
#include "downloader.h"
@@ -261,15 +261,18 @@ qint64 Downloader::readBuffer(char* data, qint64 maxlen)
return 0;
}
+const QString &Downloader::title() const
+{
+ return m_title;
+}
+
void Downloader::readICYMetaData()
{
uint8_t packet_size;
m_metacount = 0;
m_mutex.lock();
readBuffer((char *)&packet_size, sizeof(packet_size));
- if (packet_size == 0)
- qDebug("zero");
- else
+ if (packet_size != 0)
{
int size = packet_size * 16;
char packet[size];
@@ -280,9 +283,25 @@ void Downloader::readICYMetaData()
m_mutex.lock();
}
readBuffer(packet, size);
- qDebug(packet);
-
+ qDebug("Downloader: ICY metadata: %s", packet);
+ parseICYMetaData(packet);
}
m_mutex.unlock();
}
+
+void Downloader::parseICYMetaData(char *data)
+{
+ QString str(data);
+ QStringList list(str.split(";", QString::SkipEmptyParts));
+ foreach(QString line, list)
+ {
+ if (line.contains("StreamTitle="))
+ {
+ line = line.right(line.size() - line.indexOf("=") - 1).trimmed();
+ m_title = line.remove("'");
+ emit titleChanged ();
+ break;
+ }
+ }
+}