LeechCraft
0.6.70-13729-g7046a9d2a7
Modular cross-platform feature rich live environment.
iaudiopile.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 <
util/sll/eitherfwd.h
>
34
#include "
audiostructs.h
"
35
36
class
QObject;
37
class
QIcon;
38
39
template
<
typename
>
40
class
QFuture
;
41
42
namespace
Media
43
{
53
struct
AudioSearchRequest
54
{
59
QString
Title_
;
60
65
QString
Artist_
;
66
69
QString
Album_
;
70
75
int
TrackLength_
= 0;
76
82
QString
FreeForm_
;
83
};
84
91
class
Q_DECL_EXPORT
IAudioPile
92
{
93
public
:
94
virtual
~IAudioPile
() {}
95
98
struct
Result
99
{
102
AudioInfo
Info_
;
103
106
QUrl
Source_
;
107
};
108
111
using
Results_t
=
QList<Result>
;
112
120
using
Result_t
=
LC::Util::Either<QString, Results_t>
;
121
129
virtual
QString GetServiceName ()
const
= 0;
130
138
virtual
QIcon GetServiceIcon ()
const
= 0;
139
148
virtual
QFuture<Result_t>
Search (
const
AudioSearchRequest
& request) = 0;
149
};
150
}
151
152
Q_DECLARE_INTERFACE (
Media::IAudioPile
,
"org.LeechCraft.Media.IAudioPile/1.0"
)
Media::IAudioPile
Interface for plugins supporting searching for tracks.
Definition:
iaudiopile.h:91
audiostructs.h
Media::IAudioPile::Result::Info_
AudioInfo Info_
The information about the found audio track.
Definition:
iaudiopile.h:102
Media::AudioSearchRequest::TrackLength_
int TrackLength_
The approximate length of the track.
Definition:
iaudiopile.h:75
Media::AudioInfo
Describes a single audio track.
Definition:
audiostructs.h:41
Media::AudioSearchRequest::Album_
QString Album_
The album containing this track.
Definition:
iaudiopile.h:69
Media::AudioSearchRequest::FreeForm_
QString FreeForm_
Free form engine-specific request.
Definition:
iaudiopile.h:82
Media::AudioSearchRequest::Artist_
QString Artist_
The artist performing the track.
Definition:
iaudiopile.h:65
Media::IAudioPile::Result
A structure describing a single entry in search result.
Definition:
iaudiopile.h:98
Media::IAudioPile::~IAudioPile
virtual ~IAudioPile()
Definition:
iaudiopile.h:94
Media::AudioSearchRequest::Title_
QString Title_
The title of a track.
Definition:
iaudiopile.h:59
Media
Definition:
audiostructs.h:37
eitherfwd.h
QFuture
Definition:
idownload.h:39
Media::AudioSearchRequest
Describes a request for an audio search in an IAudioPile.
Definition:
iaudiopile.h:53
QList
Definition:
ianrulesstorage.h:35
LC::Util::Either
Definition:
either.h:45
Media::IAudioPile::Result::Source_
QUrl Source_
The URL of this audio track.
Definition:
iaudiopile.h:106
src
interfaces
media
iaudiopile.h
Generated by
1.8.14