Sayonara Player
Loading...
Searching...
No Matches
Albums.h
1/* DatabaseAlbums.h */
2
3/* Copyright (C) 2011-2024 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 DATABASEALBUMS_H
22#define DATABASEALBUMS_H
23
24#include "Database/Utils.h"
25#include "Utils/typedefs.h"
26
27namespace Library
28{
29 class Filter;
30}
31
32class Album;
33class AlbumList;
34class QSqlQuery;
35
36namespace DB
37{
38 class Module;
39 class Albums
40 {
41 public:
42 Albums();
43 virtual ~Albums();
44
45 virtual void initViews();
46
47 virtual bool dbFetchAlbums(QSqlQuery& q, AlbumList& result) const;
48
49 [[nodiscard]] virtual AlbumId getAlbumID(const QString& album) const;
50
51 virtual bool getAlbumByID(AlbumId id, Album& album) const;
52 virtual bool getAlbumByID(AlbumId id, Album& album, bool alsoEmpty) const;
53
54 virtual bool getAllAlbums(AlbumList& result, bool alsoEmpty) const;
55 virtual bool
56 getAllAlbumsByArtist(const IdList& artists, AlbumList& result, const ::Library::Filter& filter) const;
57
58 virtual bool getAllAlbumsBySearchString(const ::Library::Filter& filter, AlbumList& result) const;
59
60 virtual AlbumId updateAlbumRating(AlbumId id, Rating rating);
61
62 protected:
63 // too dangerous to call it directly because multiple insertions
64 // may occur
65 virtual AlbumId insertAlbumIntoDatabase(const QString& album);
66 virtual AlbumId insertAlbumIntoDatabase(const Album& album);
67 virtual void deleteAllAlbums();
68
69 [[nodiscard]] virtual ArtistIdInfo artistIdInfo() const = 0;
70 [[nodiscard]] virtual QString trackView() const = 0;
71 [[nodiscard]] virtual QString trackSearchView() const = 0;
72 [[nodiscard]] virtual LibraryId libraryId() const = 0;
73
74 [[nodiscard]] virtual Module* module() = 0;
75 [[nodiscard]] virtual const Module* module() const = 0;
76
77 virtual void updateAlbumCissearch();
78
79 private:
80 [[nodiscard]] virtual QString fetchQueryAlbums(bool alsoEmpty) const;
81 };
82}
83
84#endif // DATABASEALBUMS_H
Definition Album.h:88
Definition Album.h:37
Definition Albums.h:40
Definition Module.h:32
Definition EngineUtils.h:33
Definition Utils.h:48