LeechCraft
0.6.70-6645-gcd10d7e
Modular cross-platform feature rich live environment.
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ihypesprovider.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
* Boost Software License - Version 1.0 - August 17th, 2003
6
*
7
* Permission is hereby granted, free of charge, to any person or organization
8
* obtaining a copy of the software and accompanying documentation covered by
9
* this license (the "Software") to use, reproduce, display, distribute,
10
* execute, and transmit the Software, and to prepare derivative works of the
11
* Software, and to permit third-parties to whom the Software is furnished to
12
* do so, all subject to the following:
13
*
14
* The copyright notices in the Software and this entire statement, including
15
* the above license grant, this restriction and the following disclaimer,
16
* must be included in all copies of the Software, in whole or in part, and
17
* all derivative works of the Software, unless such copies or derivative
18
* works are solely in the form of machine-executable object code generated by
19
* a source language processor.
20
*
21
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
* FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
24
* SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
25
* FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
26
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27
* DEALINGS IN THE SOFTWARE.
28
**********************************************************************/
29
30
#pragma once
31
32
#include <QString>
33
#include <QList>
34
#include <QUrl>
35
#include "
audiostructs.h
"
36
37
namespace
Media
38
{
46
struct
HypedArtistInfo
47
{
53
ArtistInfo
Info_
;
54
62
int
PercentageChange_
;
63
71
int
Playcount_
;
72
80
int
Listeners_
;
81
};
82
90
struct
HypedTrackInfo
91
{
94
QString
TrackName_
;
95
102
QUrl
TrackPage_
;
103
111
int
PercentageChange_
;
112
120
int
Playcount_
;
121
129
int
Listeners_
;
130
133
int
Duration_
;
134
137
QUrl
Image_
;
138
141
QUrl
LargeImage_
;
142
145
QString
ArtistName_
;
146
153
QUrl
ArtistPage_
;
154
};
155
166
class
Q_DECL_EXPORT
IHypesProvider
167
{
168
public
:
169
virtual
~IHypesProvider
() {}
170
178
virtual
QString GetServiceName ()
const
= 0;
179
182
enum class
HypeType
183
{
186
NewArtists,
187
190
NewTracks,
191
194
TopArtists,
195
198
TopTracks
199
};
200
206
virtual
bool
SupportsHype (
HypeType
hype) = 0;
207
212
virtual
void
RequestHype (
HypeType
type) = 0;
213
protected
:
223
virtual
void
gotHypedArtists (
const
QList<HypedArtistInfo>
& artists,
HypeType
type) = 0;
224
234
virtual
void
gotHypedTracks (
const
QList<HypedTrackInfo>
& tracks,
HypeType
type) = 0;
235
};
236
}
237
238
Q_DECLARE_INTERFACE
(
Media::IHypesProvider
,
"org.LeechCraft.Media.IHypesProvider/1.0"
);
Q_DECLARE_INTERFACE
Q_DECLARE_INTERFACE(Media::IHypesProvider,"org.LeechCraft.Media.IHypesProvider/1.0")
audiostructs.h
Media::HypedArtistInfo::PercentageChange_
int PercentageChange_
Change of popularity in percents.
Definition:
ihypesprovider.h:62
Media::IHypesProvider::HypeType
HypeType
The type of the hype.
Definition:
ihypesprovider.h:182
Media::HypedTrackInfo::ArtistName_
QString ArtistName_
Name of the performer of this track.
Definition:
ihypesprovider.h:145
Media::HypedTrackInfo::Listeners_
int Listeners_
Number of listeners.
Definition:
ihypesprovider.h:129
Media::HypedTrackInfo::PercentageChange_
int PercentageChange_
Change of popularity in percents.
Definition:
ihypesprovider.h:111
Media::HypedTrackInfo::TrackName_
QString TrackName_
Name of the track.
Definition:
ihypesprovider.h:94
Media::HypedTrackInfo::Playcount_
int Playcount_
Play count.
Definition:
ihypesprovider.h:120
Media::IHypesProvider
Interface for plugins that support fetching hypes.
Definition:
ihypesprovider.h:166
Media::HypedArtistInfo::Info_
ArtistInfo Info_
Basic information about the artist.
Definition:
ihypesprovider.h:53
Media::HypedArtistInfo
Contains information about a hyped artist.
Definition:
ihypesprovider.h:46
Media::HypedTrackInfo::Duration_
int Duration_
Duration of the track.
Definition:
ihypesprovider.h:133
Media::HypedTrackInfo::LargeImage_
QUrl LargeImage_
Full size image of this track or performing artist.
Definition:
ihypesprovider.h:141
Media
Definition:
audiostructs.h:36
Media::HypedTrackInfo::ArtistPage_
QUrl ArtistPage_
URL of the artist page.
Definition:
ihypesprovider.h:153
Media::ArtistInfo
A structure describing an artist.
Definition:
audiostructs.h:115
Media::HypedTrackInfo
Contains information about a hyped track.
Definition:
ihypesprovider.h:90
Media::HypedTrackInfo::TrackPage_
QUrl TrackPage_
Address of the track page.
Definition:
ihypesprovider.h:102
Media::HypedArtistInfo::Listeners_
int Listeners_
Number of listeners.
Definition:
ihypesprovider.h:80
QList
Definition:
ianrulesstorage.h:35
Media::HypedTrackInfo::Image_
QUrl Image_
URL of thumb image of this track or performing artist.
Definition:
ihypesprovider.h:137
Media::IHypesProvider::~IHypesProvider
virtual ~IHypesProvider()
Definition:
ihypesprovider.h:169
Media::HypedArtistInfo::Playcount_
int Playcount_
Play count.
Definition:
ihypesprovider.h:71
src
interfaces
media
ihypesprovider.h
Generated by
1.8.11