LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
iradiostation.h
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #pragma once
10 
11 #include <memory>
12 #include <QtPlugin>
13 
14 class QUrl;
15 
16 namespace Media
17 {
18  struct AudioInfo;
19 
43  class Q_DECL_EXPORT IRadioStation
44  {
45  public:
46  virtual ~IRadioStation () {}
47 
55  virtual QObject* GetQObject () = 0;
56 
61  virtual void RequestNewStream () = 0;
62 
67  virtual QString GetRadioName () const = 0;
68  protected:
74  virtual void gotNewStream (const QUrl& url, const AudioInfo& info) = 0;
75 
92  virtual void gotPlaylist (const QString& filename, const QString& format) = 0;
93 
104  virtual void gotAudioInfos (const QList<AudioInfo>& infos) = 0;
105 
110  virtual void gotError (const QString& error) = 0;
111  };
112 
115  typedef std::shared_ptr<IRadioStation> IRadioStation_ptr;
116 }
117 
118 Q_DECLARE_INTERFACE (Media::IRadioStation, "org.LeechCraft.Media.IRadioStation/1.0")
Media::IRadioStation::~IRadioStation
virtual ~IRadioStation()
Definition: iradiostation.h:46
QList
Definition: ianrulesstorage.h:14
Media::AudioInfo
Describes a single audio track.
Definition: audiostructs.h:26
Media
Definition: audiostructs.h:16
Media::IRadioStation_ptr
std::shared_ptr< IRadioStation > IRadioStation_ptr
A pointer to a shared instance of a IRadioStation.
Definition: iradiostation.h:115
Media::IRadioStation
Describes a single radio station.
Definition: iradiostation.h:43