Sayonara Player
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Components
Engine
EngineHandler.h
1
/* EngineHandler.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 ENGINEHANDLER_H_
22
#define ENGINEHANDLER_H_
23
24
#include "Utils/Pimpl.h"
25
26
#include "Interfaces/CoverDataProvider.h"
27
#include "Interfaces/AudioDataProvider.h"
28
#include "Interfaces/Engine/SoundModifier.h"
29
30
#include <QObject>
31
32
#define EngineHandler_change_track_md static_cast<void (EngineHandler::*) (const MetaData& md)>(&EngineHandler::change_track)
33
34
class
PlayManager
;
35
36
namespace
Tagging
37
{
38
class
TagWriter
;
39
}
40
41
namespace
Util
42
{
43
class
FileSystem
;
44
}
45
46
namespace
Engine
47
{
48
class
PipelineFactory
;
49
class
Handler :
50
public
QObject,
51
public
CoverDataProvider
,
52
public
LevelDataProvider
,
53
public
SpectrumDataProvider
,
54
public
RawAudioDataProvider
,
55
public
SoundModifier
56
{
57
Q_OBJECT
58
PIMPL(Handler)
59
60
public
:
61
Handler(
const
std::shared_ptr<Util::FileSystem>& track,
62
const
std::shared_ptr<Tagging::TagWriter>& tagWriter,
63
const
std::shared_ptr<PipelineFactory>& pipelineFactory,
64
PlayManager
* playManager);
65
~Handler()
override
;
66
67
[[nodiscard]]
bool
isValid()
const
;
68
69
void
registerLevelReceiver(
LevelDataReceiver
* receiver)
override
;
70
void
unregisterLevelReceiver(
LevelDataReceiver
* levelReceiver)
override
;
71
void
levelActiveChanged(
bool
b)
override
;
72
73
void
registerSpectrumReceiver(
SpectrumDataReceiver
* receiver)
override
;
74
void
unregisterSpectrumReceiver(
SpectrumDataReceiver
* spectrumReceiver)
override
;
75
void
spectrumActiveChanged(
bool
b)
override
;
76
77
void
registerCoverReceiver(
CoverDataReceiver
* coverReceiver)
override
;
78
void
unregisterCoverReceiver(
CoverDataReceiver
* coverReceiver)
override
;
79
80
void
registerAudioDataReceiver(
RawAudioDataReceiver
* receiver)
override
;
81
void
unregisterAudioDataReceiver(
RawAudioDataReceiver
* receiver)
override
;
82
83
void
setEqualizer(
int
band,
int
value)
override
;
84
85
private
slots:
86
void
playstateChanged(PlayState state);
87
88
void
spectrumChanged();
89
void
levelChanged();
90
91
private
:
// NOLINT(readability-redundant-access-specifiers)
92
void
reloadReceivers();
93
void
setAudioData(
const
QByteArray& data)
override
;
94
void
setLevelData(
float
left,
float
right)
override
;
95
void
setSpectrumData(
const
std::vector<float>& spectrum)
override
;
96
void
setCoverData(
const
QByteArray& imageData,
const
QString& mimeData)
override
;
97
};
98
}
99
100
#endif
101
102
CoverDataProvider
Definition
CoverDataProvider.h:28
CoverDataReceiver
Definition
CoverDataReceiver.h:27
Engine::LevelDataReceiver
The LevelDataReceiver class.
Definition
AudioDataReceiver.h:37
Engine::PipelineFactory
Definition
PipelineFactory.h:31
Engine::RawAudioDataReceiver
The RawSoundReceiver interface.
Definition
AudioDataReceiver.h:59
Engine::SpectrumDataReceiver
The SpectrumReceiver class.
Definition
AudioDataReceiver.h:48
LevelDataProvider
Definition
AudioDataProvider.h:35
PlayManager
Definition
PlayManager.h:34
RawAudioDataProvider
Definition
AudioDataProvider.h:55
SoundModifier
Definition
SoundModifier.h:24
SpectrumDataProvider
Definition
AudioDataProvider.h:45
Tagging::TagWriter
Definition
TagWriter.h:33
Util::FileSystem
Definition
FileSystem.h:34
Tagging
The GUI_TagEdit class.
Definition
Engine.h:33
Util
Helper functions.
Definition
MetaTypeRegistry.h:25
Generated on
for Sayonara Player by
1.17.0