#ifndef RADIO_H #define RADIO_H #include #include #include #include #include #include #include #include #include "song.h" class Radio : public QObject { Q_OBJECT public: explicit Radio(QObject *parent = 0); QString getName(); QString getClaim(); QColor getTextColor(); QUrl getLogoUrl(); QUrl getStreamUrl(); int getId(); QUrl getApiBase(); QUrl getCoverBase(); Song* getCurrentSong(); QNetworkReply* getStream(); signals: void logoDownloaded(QPixmap); void songChanged(Song*); void nextSongsUpdated(); void streamData(QByteArray); void streamChanged(QNetworkReply*); public slots: void setNetworkManager(QNetworkAccessManager* m); void setName(QString n); void setClaim(QString c); void setTextColor(QColor c); void setLogoUrl(QUrl u); void setStreamUrl(QUrl u); void setId(int i); void setApiBase(QUrl u); void setCoverBase(QUrl u); void setCurrentSong(Song* s); void updateNextSongs(); void downloadLogo(); void startStream(); void stopStream(); private slots: void logoFinished(); void logoError(QNetworkReply::NetworkError); void songsFinished(); void songsError(QNetworkReply::NetworkError); void streamRead(); void streamError(); void songEnded(); private: QString name; QString claim; QColor textColor; QUrl logoUrl; QUrl streamUrl; int id; QPixmap logo; QUrl apiBase; QUrl coverBase; QList nextSongs; Song* currentSong; QTimer* songTimer; QNetworkAccessManager* mgr; int logoTries; int songsTries; int streamTries; QNetworkReply* stream; }; #endif // RADIO_H