Sayonara Player
Loading...
Searching...
No Matches
Connector.h
1/* Connector.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 DatabaseConnector_H
22#define DatabaseConnector_H
23
24#include "Database/Base.h"
25
26#include "Utils/Singleton.h"
27#include "Utils/Pimpl.h"
28
29#define INDEX_SIZE 3
30
31namespace DB
32{
33 class LibraryDatabase;
34 class Bookmarks;
35 class Equalizer;
36 class Playlist;
37 class LibraryDatabase;
38 class Podcasts;
39 class Streams;
40 class VisualStyles;
41 class Settings;
42 class Library;
43 class Shortcuts;
44 class Covers;
45 class Session;
46 class SmartPlaylists;
47
48 using LibraryDatabases = QList<LibraryDatabase*>;
49
50 class Connector :
51 public Base
52 {
53 PIMPL(Connector)
54
55 public:
56 Connector(const QString& sourceDirectory, const QString& targetDirectory, const QString& databseFilename);
57 ~Connector() override;
58
59 static Connector* instance();
60 static Connector* customInstance(QString sourceDirectory, QString targetDirectory, QString databseFilename);
61
62 [[nodiscard]] LibraryDatabases libraryDatabases() const;
63 DB::LibraryDatabase* libraryDatabase(LibraryId libraryId, DbId databaseId);
64 DB::LibraryDatabase* registerLibraryDatabase(LibraryId libraryId);
65 void deleteLibraryDatabase(LibraryId libraryId);
66
67 DB::Bookmarks* bookmarkConnector();
68 DB::Equalizer* equalizerConnector();
69 DB::Playlist* playlistConnector();
70 DB::Podcasts* podcastConnector();
71 DB::Streams* streamConnector();
72 DB::VisualStyles* visualStyleConnector();
73 DB::Settings* settingsConnector();
74 DB::Shortcuts* shortcutConnector();
75 DB::Covers* coverConnector();
76 DB::Library* libraryConnector();
77 DB::Session* sessionConnector();
78 DB::SmartPlaylists* smartPlaylistsConnector();
79 };
80}
81#endif // DatabaseConnector_H
Definition Bookmarks.h:35
Definition Base.h:36
Definition Bookmarks.h:31
Definition Connector.h:52
Definition CoverConnector.h:37
Definition Equalizer.h:32
Definition LibraryDatabase.h:38
Definition Library.h:38
Definition Playlist.h:51
Definition Podcasts.h:31
Definition Session.h:35
Definition Settings.h:33
Definition Shortcuts.h:33
Definition SmartPlaylists.h:41
Definition Streams.h:33
Definition VisualStyles.h:33
Definition Equalizer.h:33
Definition EngineUtils.h:33
Definition Settings.h:40