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