LeechCraft
0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
ialbumartprovider.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 <QString>
12
#include <QList>
13
#include <QImage>
14
#include <QHash>
15
#include <QMetaType>
16
#include <
util/sll/eitherfwd.h
>
17
18
class
QUrl;
19
20
template
<
typename
>
21
class
QFuture
;
22
23
namespace
Media
24
{
27
struct
AlbumInfo
28
{
31
QString
Artist_
;
32
35
QString
Album_
;
36
39
bool
operator==
(
const
AlbumInfo
&)
const
=
default
;
40
};
41
44
inline
size_t
qHash
(
const
AlbumInfo
& info)
45
{
46
const
std::initializer_list<QString> elems { info.
Album_
, info.
Artist_
};
47
return
qHashRange (elems.begin (), elems.end ());
48
}
49
55
class
Q_DECL_EXPORT
IAlbumArtProvider
56
{
57
public
:
58
virtual
~IAlbumArtProvider
() {}
59
65
using
Result_t
=
LC::Util::Either<QString, QList<QUrl>
>;
66
71
virtual
QString GetAlbumArtProviderName ()
const
= 0;
72
82
virtual
QFuture<Result_t>
RequestAlbumArt (
const
AlbumInfo
& album)
const
= 0;
83
};
84
}
85
86
Q_DECLARE_METATYPE
(
Media::AlbumInfo
)
87
Q_DECLARE_INTERFACE (
Media::IAlbumArtProvider
,
"org.LeechCraft.Media.IAlbumArtProvider/1.0"
)
LC::Util::Either
Definition:
either.h:33
Media::AlbumInfo::operator==
bool operator==(const AlbumInfo &) const =default
Compares two AlbumInfo structures.
Media::AlbumInfo::Artist_
QString Artist_
The artist name of this album.
Definition:
ialbumartprovider.h:31
Media::IAlbumArtProvider::~IAlbumArtProvider
virtual ~IAlbumArtProvider()
Definition:
ialbumartprovider.h:58
Media
Definition:
audiostructs.h:16
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QVariantList *)
Media::qHash
size_t qHash(const AlbumInfo &info)
A hash function for AlbumInfo to use it with QHash.
Definition:
ialbumartprovider.h:44
QFuture
Definition:
idownload.h:17
Media::IAlbumArtProvider
Interface for plugins that can search for album art.
Definition:
ialbumartprovider.h:55
Media::AlbumInfo
Information about an album used in IAlbumArtProvider.
Definition:
ialbumartprovider.h:27
Media::AlbumInfo::Album_
QString Album_
The album name.
Definition:
ialbumartprovider.h:35
eitherfwd.h
src
interfaces
media
ialbumartprovider.h
Generated by
1.8.17