diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2007-08-21 19:13:47 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2007-08-21 19:13:47 +0000 |
| commit | ed3828f0df1bcef66b036ce1831a0aed87ed5482 (patch) | |
| tree | 33c21269d4c2556c67a7db22b71c55cb604950db /lib/downloader.cpp | |
| parent | f19a1f3ea9aa8080b15b384bbe73896e4407ac41 (diff) | |
| download | qmmp-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.cpp | 31 |
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; + } + } +} |
