Sayonara Player
CoverFetcher.h
1/* CoverFetcher.h */
2
3/* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4 *
5 * This file is part of sayonara player
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef ABSTRACTCOVERFETCHER_H
22#define ABSTRACTCOVERFETCHER_H
23
24class QString;
25class QByteArray;
26class QStringList;
27
28namespace Cover::Fetcher
29{
34 class Base
35 {
36 private:
37 virtual QString privateIdentifier() const = 0;
38
39 public:
40 Base();
41 virtual ~Base();
42
47 virtual bool canFetchCoverDirectly() const = 0;
48
55 virtual QStringList parseAddresses(const QByteArray& website) const = 0;
56
61 virtual QString identifier() const final;
62
69 virtual QString artistAddress(const QString& artist) const;
70
78 virtual QString albumAddress(const QString& artist, const QString& album) const;
79
86 virtual QString fulltextSearchAddress(const QString& str) const;
87
88 virtual QString radioSearchAddress(const QString& stationName, const QString& stationUrl) const;
89
94 virtual int estimatedSize() const = 0;
95
96 virtual bool isWebserviceFetcher() const;
97
98 protected:
99 QString searchStringFromRadioStation(const QString& stationName, const QString& stationUrl) const;
100 };
101
102} // Cover::Fetcher
103
104#endif // ABSTRACTCOVERFETCHER_H
The CoverFetcherInterface interface.
Definition: CoverFetcher.h:35
virtual QString albumAddress(const QString &artist, const QString &album) const
Get the album search url. This is called if is_album_supported returns true.
virtual QString artistAddress(const QString &artist) const
Get the artist search url. This is called if is_artist_supported returns true.
virtual QString identifier() const final
get name of CoverFetcherInterface like e.g. Discogs
virtual bool canFetchCoverDirectly() const =0
Can the cover be fetched from the adress without starting a two-stage query?
virtual QStringList parseAddresses(const QByteArray &website) const =0
Get addresses from the downloaded website. If can_fetch_cover_directly returns true,...
virtual int estimatedSize() const =0
get_estimated_size. Rough image size of the CoverFetchInterface
virtual QString fulltextSearchAddress(const QString &str) const
Get a custom search address This is called if is_search_supported returns true.