LeechCraft
0.6.70-17335-ge406ffdcaf
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
iradiostationprovider.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 <functional>
13
#include <variant>
14
#include <QMap>
15
#include <QMetaType>
16
#include <QtPlugin>
17
18
class
QModelIndex;
19
class
QAbstractItemModel;
20
21
namespace
Media
22
{
23
class
IRadioStation
;
24
typedef
std::shared_ptr<IRadioStation>
IRadioStation_ptr
;
25
26
using
ActionFunctor_f
= std::variant<std::function<void (QModelIndex)>, std::function<void ()>>;
27
32
enum
RadioType
33
{
36
None
,
37
45
SimilarArtists
,
46
54
GlobalTag
,
55
58
Predefined
,
59
71
CustomAddableStreams
,
72
80
TracksList
,
81
86
SingleTrack
,
87
93
TracksRoot
,
94
100
RadioAction
101
};
102
107
enum
RadioItemRole
108
{
113
ItemType
= Qt::UserRole + 1,
114
119
RadioID
,
120
126
PluginID
,
127
142
TracksInfos
,
143
146
ActionFunctor
,
147
150
MaxRadioRole
151
};
152
161
class
Q_DECL_EXPORT
IRadioStationProvider
162
{
163
public
:
164
virtual
~IRadioStationProvider
() {}
165
179
virtual
IRadioStation_ptr
GetRadioStation
(
const
QModelIndex& item,
const
QString& query) = 0;
180
196
virtual
QList<QAbstractItemModel*>
GetRadioListItems
()
const
= 0;
197
200
virtual
void
RefreshItems
(
const
QList<QModelIndex>
&) = 0;
201
};
202
}
203
204
Q_DECLARE_METATYPE
(
Media::ActionFunctor_f
)
205
206
Q_DECLARE_INTERFACE (
Media::IRadioStationProvider
,
"org.LeechCraft.Media.IRadioStationProvider/1.0"
)
Media::IRadioStation
Describes a single radio station.
Definition
iradiostation.h:44
Media::IRadioStationProvider
Interface for plugins providing radio stations.
Definition
iradiostationprovider.h:162
Media::IRadioStationProvider::RefreshItems
virtual void RefreshItems(const QList< QModelIndex > &)=0
Refreshes the list of radio items.
Media::IRadioStationProvider::~IRadioStationProvider
virtual ~IRadioStationProvider()
Definition
iradiostationprovider.h:164
Media::IRadioStationProvider::GetRadioStation
virtual IRadioStation_ptr GetRadioStation(const QModelIndex &item, const QString &query)=0
Returns a radio station for the given item and query.
Media::IRadioStationProvider::GetRadioListItems
virtual QList< QAbstractItemModel * > GetRadioListItems() const =0
Returns the list of stations provided by this plugin.
QList
Definition
ianrulesstorage.h:14
Media
Definition
audiostructs.h:17
Media::RadioItemRole
RadioItemRole
Custom user roles for the items in the model.
Definition
iradiostationprovider.h:108
Media::RadioID
@ RadioID
The internal ID of the radio.
Definition
iradiostationprovider.h:119
Media::TracksInfos
@ TracksInfos
The tracks list.
Definition
iradiostationprovider.h:142
Media::PluginID
@ PluginID
The ID of the plugin for this radio item.
Definition
iradiostationprovider.h:126
Media::ActionFunctor
@ ActionFunctor
The callable functor for RadioAction.
Definition
iradiostationprovider.h:146
Media::ItemType
@ ItemType
The type of this radio station.
Definition
iradiostationprovider.h:113
Media::MaxRadioRole
@ MaxRadioRole
Maximum role.
Definition
iradiostationprovider.h:150
Media::ActionFunctor_f
std::variant< std::function< void(QModelIndex)>, std::function< void()> > ActionFunctor_f
Definition
iradiostationprovider.h:26
Media::IRadioStation_ptr
std::shared_ptr< IRadioStation > IRadioStation_ptr
A pointer to a shared instance of a IRadioStation.
Definition
iradiostation.h:115
Media::RadioType
RadioType
Describes the type of a radio station.
Definition
iradiostationprovider.h:33
Media::RadioAction
@ RadioAction
An action.
Definition
iradiostationprovider.h:100
Media::TracksRoot
@ TracksRoot
A root for a list of SingleTrack or TracksList items.
Definition
iradiostationprovider.h:93
Media::TracksList
@ TracksList
A predefined list of single tracks, not a stream.
Definition
iradiostationprovider.h:80
Media::None
@ None
No type (item doesn't correspond to a radio station).
Definition
iradiostationprovider.h:36
Media::SimilarArtists
@ SimilarArtists
Radio of artists similar to a given one.
Definition
iradiostationprovider.h:45
Media::GlobalTag
@ GlobalTag
Radio of a global tag like metalcore.
Definition
iradiostationprovider.h:54
Media::CustomAddableStreams
@ CustomAddableStreams
A radio station that contains user-addable streams.
Definition
iradiostationprovider.h:71
Media::Predefined
@ Predefined
A predefined radio station like an Icecast stream.
Definition
iradiostationprovider.h:58
Media::SingleTrack
@ SingleTrack
A single song.
Definition
iradiostationprovider.h:86
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QVariantList *)
src
interfaces
media
iradiostationprovider.h
Generated by
1.13.2