diff --git a/streams/providers.xml b/streams/providers.xml index e712b3a1e..aba853243 100644 --- a/streams/providers.xml +++ b/streams/providers.xml @@ -1,72 +1,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/streams/webstreams.cpp b/streams/webstreams.cpp index dee0cd05e..1c936b5d5 100644 --- a/streams/webstreams.cpp +++ b/streams/webstreams.cpp @@ -50,12 +50,14 @@ QList WebStream::getAll() if (doc.isStartElement() && QLatin1String("stream")==doc.name()) { QString name=doc.attributes().value("name").toString(); + QString icon=doc.attributes().value("icon").toString(); + QString region=doc.attributes().value("region").toString(); unsigned int type=doc.attributes().value("type").toString().toUInt(); QUrl url=QUrl(doc.attributes().value("url").toString()); switch (type) { - case WS_IceCast: providers.append(new IceCastWebStream(name, doc.attributes().value("region").toString(), url)); break; - case WS_SomaFm: providers.append(new SomaFmWebStream(name, doc.attributes().value("region").toString(), url)); break; - case WS_Radio: providers.append(new RadioWebStream(name, doc.attributes().value("region").toString(), url)); break; + case WS_IceCast: providers.append(new IceCastWebStream(name, icon, region, url)); break; + case WS_SomaFm: providers.append(new SomaFmWebStream(name, icon, region, url)); break; + case WS_Radio: providers.append(new RadioWebStream(name, icon, region, url)); break; default: break; } } @@ -107,7 +109,7 @@ void WebStream::downloadFinished() if (streams.isEmpty()) { emit error(i18nc("message \n url", "No streams downloaded from %1\n(%2)").arg(name).arg(url.toString())); } else { - StreamsModel::self()->add(name, streams); + StreamsModel::self()->add(name, icon, streams); } } else { emit error(i18nc("message \n url", "Failed to download streams from %1\n(%2)").arg(name).arg(url.toString())); diff --git a/streams/webstreams.h b/streams/webstreams.h index d4b876401..725eda67f 100644 --- a/streams/webstreams.h +++ b/streams/webstreams.h @@ -37,13 +37,14 @@ public: static QList getAll(); static WebStream * get(const QUrl &url); - WebStream(const QString &n, const QString &r, const QUrl &u) - : name(n), region(r), url(u), job(0) { } + WebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) + : name(n),icon(i), region(r), url(u), job(0) { } virtual ~WebStream() { } virtual QList parse(QIODevice *dev)=0; const QString & getName() const { return name; } + const QString & getIcon() const { return icon; } const QString & getRegion() const { return region; } const QUrl & getUrl() const { return url; } bool isDownloading() const { return 0!=job; } @@ -59,6 +60,7 @@ private Q_SLOTS: protected: QString name; + QString icon; QString region; QUrl url; QNetworkReply *job; @@ -67,24 +69,24 @@ protected: class IceCastWebStream : public WebStream { public: - IceCastWebStream(const QString &n, const QString &r, const QUrl &u) - : WebStream(n, r, u) { } + IceCastWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) + : WebStream(n, i, r, u) { } QList parse(QIODevice *dev); }; class SomaFmWebStream : public WebStream { public: - SomaFmWebStream(const QString &n, const QString &r, const QUrl &u) - : WebStream(n, r, u) { } + SomaFmWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) + : WebStream(n, i, r, u) { } QList parse(QIODevice *dev); }; class RadioWebStream : public WebStream { public: - RadioWebStream(const QString &n, const QString &r, const QUrl &u) - : WebStream(n, r, u) { } + RadioWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) + : WebStream(n, i, r, u) { } QList parse(QIODevice *dev); };