MPD
0.20.18
ReplayGainInfo.hxx
Go to the documentation of this file.
1
/*
2
* Copyright 2003-2017 The Music Player Daemon Project
3
* http://www.musicpd.org
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
#ifndef MPD_REPLAY_GAIN_INFO_HXX
21
#define MPD_REPLAY_GAIN_INFO_HXX
22
23
#include "
check.h
"
24
#include "
Compiler.h
"
25
#include "
ReplayGainMode.hxx
"
26
27
struct
ReplayGainConfig
;
28
29
struct
ReplayGainTuple
{
30
float
gain
;
31
float
peak
;
32
33
void
Clear
() {
34
gain
= -200;
35
peak
= 0.0;
36
}
37
38
constexpr
bool
IsDefined
()
const
{
39
return
gain
> -100;
40
}
41
42
gcc_pure
43
float
CalculateScale
(
const
ReplayGainConfig
&config)
const
noexcept;
44
};
45
46
struct
ReplayGainInfo
{
47
ReplayGainTuple
track
,
album
;
48
49
constexpr
bool
IsDefined
() const noexcept {
50
return
track
.
IsDefined
() ||
album
.
IsDefined
();
51
}
52
53
const
ReplayGainTuple
&
Get
(
ReplayGainMode
mode)
const
noexcept {
54
return
mode ==
ReplayGainMode::ALBUM
55
? (
album
.
IsDefined
() ?
album
:
track
)
56
: (
track
.
IsDefined
() ?
track
:
album
);
57
}
58
59
void
Clear
() noexcept {
60
track
.
Clear
();
61
album
.
Clear
();
62
}
63
};
64
65
#endif
ReplayGainTuple::Clear
void Clear()
Definition:
ReplayGainInfo.hxx:33
check.h
ReplayGainMode::ALBUM
ReplayGainMode
ReplayGainMode
Definition:
ReplayGainMode.hxx:27
ReplayGainMode.hxx
ReplayGainConfig
Definition:
ReplayGainConfig.hxx:25
ReplayGainTuple::IsDefined
constexpr bool IsDefined() const
Definition:
ReplayGainInfo.hxx:38
ReplayGainTuple::CalculateScale
gcc_pure float CalculateScale(const ReplayGainConfig &config) const noexcept
ReplayGainInfo::album
ReplayGainTuple album
Definition:
ReplayGainInfo.hxx:47
ReplayGainInfo::track
ReplayGainTuple track
Definition:
ReplayGainInfo.hxx:47
ReplayGainInfo::Get
const ReplayGainTuple & Get(ReplayGainMode mode) const noexcept
Definition:
ReplayGainInfo.hxx:53
ReplayGainTuple::gain
float gain
Definition:
ReplayGainInfo.hxx:30
Compiler.h
ReplayGainTuple
Definition:
ReplayGainInfo.hxx:29
ReplayGainInfo
Definition:
ReplayGainInfo.hxx:46
ReplayGainInfo::Clear
void Clear() noexcept
Definition:
ReplayGainInfo.hxx:59
ReplayGainTuple::peak
float peak
Definition:
ReplayGainInfo.hxx:31
ReplayGainInfo::IsDefined
constexpr bool IsDefined() const noexcept
Definition:
ReplayGainInfo.hxx:49
gcc_pure
#define gcc_pure
Definition:
Compiler.h:116
Generated on Tue Apr 10 2018 16:34:41 for MPD by
1.8.14