You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

radio.h 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #ifndef RADIO_H
  2. #define RADIO_H
  3. #include <QObject>
  4. #include <QColor>
  5. #include <QUrl>
  6. #include <QPixmap>
  7. #include <QNetworkAccessManager>
  8. #include <QNetworkReply>
  9. #include <QMediaPlayer>
  10. #include <QList>
  11. #include <QTimer>
  12. #include "song.h"
  13. class Radio : public QObject
  14. {
  15. Q_OBJECT
  16. public:
  17. explicit Radio(QObject *parent = 0);
  18. QString getName();
  19. QString getClaim();
  20. QColor getTextColor();
  21. QUrl getLogoUrl();
  22. QUrl getStreamUrl();
  23. int getId();
  24. QUrl getApiBase();
  25. QUrl getCoverBase();
  26. Song* getCurrentSong();
  27. signals:
  28. void logoDownloaded(QPixmap);
  29. void songChanged(Song*);
  30. void nextSongsUpdated();
  31. public slots:
  32. void setName(QString n);
  33. void setClaim(QString c);
  34. void setTextColor(QColor c);
  35. void setLogoUrl(QUrl u);
  36. void setStreamUrl(QUrl u);
  37. void setId(int i);
  38. void setApiBase(QUrl u);
  39. void setCoverBase(QUrl u);
  40. void setCurrentSong(Song* s);
  41. void updateNextSongs();
  42. void downloadLogo();
  43. void startStream();
  44. void stopStream();
  45. void setNetworkManager(QNetworkAccessManager* m);
  46. private slots:
  47. void logoFinished();
  48. void logoError(QNetworkReply::NetworkError);
  49. void songsFinished();
  50. void songsError(QNetworkReply::NetworkError);
  51. void streamError();
  52. void songEnded();
  53. private:
  54. QString name;
  55. QString claim;
  56. QColor textColor;
  57. QUrl logoUrl;
  58. QUrl streamUrl;
  59. int id;
  60. QPixmap logo;
  61. QUrl apiBase;
  62. QUrl coverBase;
  63. QList<Song*> nextSongs;
  64. Song* currentSong;
  65. QTimer* songTimer;
  66. QNetworkAccessManager* mgr;
  67. QMediaPlayer* player;
  68. int logoTries;
  69. int songsTries;
  70. int streamTries;
  71. };
  72. #endif // RADIO_H