LeechCraft
0.6.70-3565-g2d86529
Modular cross-platform feature rich live environment.
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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::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.6