diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/Transports/http/downloader.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/plugins/Transports/http/downloader.cpp b/src/plugins/Transports/http/downloader.cpp index 7e3fda2b9..dafc9ea26 100644 --- a/src/plugins/Transports/http/downloader.cpp +++ b/src/plugins/Transports/http/downloader.cpp @@ -314,11 +314,14 @@ void Downloader::checkBuffer() { m_ready = true; qDebug("Downloader: ready"); - if(!m_meta_sent && stream()->icy_meta_data) + if(!m_meta_sent) { 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")); + if(stream()->icy_meta_data) + { + 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); } @@ -389,7 +392,16 @@ void Downloader::parseICYMetaData(char *data, qint64 size) m_title = line.remove("'"); QMap<Qmmp::MetaData, QString> metaData; if (!m_title.isEmpty()) - metaData.insert(Qmmp::TITLE, m_title); + { + QStringList l = m_title.split(" - "); + if(l.count() > 1) + { + metaData.insert(Qmmp::ARTIST, l.at(0)); + metaData.insert(Qmmp::TITLE, l.at(1)); + } + else + metaData.insert(Qmmp::TITLE, m_title); + } else metaData.insert(Qmmp::TITLE, m_stream.header.value("icy-name")); metaData.insert(Qmmp::GENRE, m_stream.header.value("icy-genre")); |
