| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | #ifndef RADIO_H
#define RADIO_H
#include <QObject>
#include <QColor>
#include <QUrl>
#include <QPixmap>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QMediaPlayer>
#include <QList>
#include <QTimer>
#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();
signals:
    void logoDownloaded(QPixmap);
    void songChanged(Song*);
    void nextSongsUpdated();
public slots:
    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();
    void setNetworkManager(QNetworkAccessManager* m);
private slots:
    void logoFinished();
    void logoError(QNetworkReply::NetworkError);
    void songsFinished();
    void songsError(QNetworkReply::NetworkError);
    void streamError();
    void songEnded();
private:
    QString name;
    QString claim;
    QColor textColor;
    QUrl logoUrl;
    QUrl streamUrl;
    int id;
    QPixmap logo;
    QUrl apiBase;
    QUrl coverBase;
    QList<Song*> nextSongs;
    Song* currentSong;
    QTimer* songTimer;
    QNetworkAccessManager* mgr;
    QMediaPlayer* player;
    int logoTries;
    int songsTries;
    int streamTries;
};
#endif // RADIO_H
 |