Sayonara Player
Station.h
1 #ifndef ABSTRACTUTILSTREAM_H
2 #define ABSTRACTUTILSTREAM_H
3 
4 #include "Utils/Pimpl.h"
5 
6 class QString;
7 
8 namespace Cover
9 {
10  class Location;
11 }
12 
13 class Station
14 {
15  public:
16  Station();
17  virtual ~Station();
18  Station(const Station& other);
19 
20  Station& station(const Station& other);
21 
22  virtual QString url() const = 0;
23  virtual QString name() const = 0;
24 };
25 
26 class Stream :
27  public Station
28 {
29  PIMPL(Stream)
30 
31  public:
32  Stream();
33  Stream(const QString& name, const QString& url);
34  Stream(const Stream& other);
35  ~Stream() override;
36 
37  Stream& operator=(const Stream& stream);
38 
39  QString name() const override;
40  void setName(const QString& name);
41 
42  QString url() const override;
43  void setUrl(const QString& url);
44 };
45 
46 class Podcast :
47  public Station
48 {
49  PIMPL(Podcast)
50 
51  public:
52  Podcast();
53  Podcast(const QString& name, const QString& url, bool reversed = false);
54  Podcast(const Podcast& other);
55 
56  ~Podcast() override;
57 
58  QString name() const override;
59  void setName(const QString& name);
60 
61  QString url() const override;
62  void setUrl(const QString& url);
63 
64  bool reversed() const;
65  void setReversed(bool b);
66 
67  Podcast& operator=(const Podcast& podcast);
68 };
69 
70 using StationPtr = std::shared_ptr<Station>;
71 
72 #endif // ABSTRACTUTILSTREAM_H
Definition: Station.h:48
Definition: Station.h:14
Definition: Station.h:28