1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
#include "preferences/replaygainsettings.h"
#include "track/track.h"
namespace {
const char* kConfigKey = "[ReplayGain]";
const char* kInitialReplayGainBoost = "InitialReplayGainBoost";
const char* kInitialDefaultBoost = "InitialDefaultBoost";
// WARNING: Do not fix the "analyser" spelling here since user config files
// contain these strings.
const char* kReplayGainAnalyzerEnabled = "ReplayGainAnalyserEnabled";
const char* kReplayGainAnalyzerVersion = "ReplayGainAnalyserVersion";
const char* kReplayGainReanalyze = "ReplayGainReanalyze";
const char* kReplayGainEnabled = "ReplayGainEnabled";
const int kInitialDefaultBoostDefault = -6;
} // anonymous namespace
ReplayGainSettings::ReplayGainSettings(UserSettingsPointer pConfig)
: m_pConfig(pConfig) {
}
int ReplayGainSettings::getInitialReplayGainBoost() const {
return m_pConfig->getValue(
ConfigKey(kConfigKey, kInitialReplayGainBoost), 0);
}
void ReplayGainSettings::setInitialReplayGainBoost(int value) {
m_pConfig->set(ConfigKey(kConfigKey, kInitialReplayGainBoost),
ConfigValue(value));
}
int ReplayGainSettings::getInitialDefaultBoost() const {
return m_pConfig->getValue(ConfigKey(kConfigKey, kInitialDefaultBoost),
kInitialDefaultBoostDefault);
}
void ReplayGainSettings::setInitialDefaultBoost(int value) {
m_pConfig->set(ConfigKey(kConfigKey, kInitialDefaultBoost),
ConfigValue(value));
}
bool ReplayGainSettings::getReplayGainEnabled() const {
return m_pConfig->getValue(
ConfigKey(kConfigKey, kReplayGainEnabled), true);
}
void ReplayGainSettings::setReplayGainEnabled(bool value) {
if (value) {
m_pConfig->set(ConfigKey(kConfigKey, kReplayGainEnabled), ConfigValue(1));
} else {
m_pConfig->set(ConfigKey(kConfigKey, kReplayGainEnabled), ConfigValue(0));
}
}
bool ReplayGainSettings::getReplayGainAnalyzerEnabled() const {
return m_pConfig->getValue(
ConfigKey(kConfigKey, kReplayGainAnalyzerEnabled), true);
}
void ReplayGainSettings::setReplayGainAnalyzerEnabled(bool value) {
m_pConfig->set(ConfigKey(kConfigKey, kReplayGainAnalyzerEnabled),
ConfigValue(value));
}
int ReplayGainSettings::getReplayGainAnalyzerVersion() const {
return m_pConfig->getValue(
ConfigKey(kConfigKey, kReplayGainAnalyzerVersion), 2);
}
void ReplayGainSettings::setReplayGainAnalyzerVersion(int value) {
m_pConfig->set(ConfigKey(kConfigKey, kReplayGainAnalyzerVersion),
ConfigValue(value));
}
bool ReplayGainSettings::getReplayGainReanalyze() const {
return m_pConfig->getValueString(
ConfigKey(kConfigKey, kReplayGainReanalyze)).toInt() > 0;
}
void ReplayGainSettings::setReplayGainReanalyze(bool value) {
m_pConfig->set(ConfigKey(kConfigKey, kReplayGainReanalyze),
ConfigValue(value));
}
bool ReplayGainSettings::isAnalyzerEnabled(int version) const {
return getReplayGainAnalyzerEnabled()
&& (version == getReplayGainAnalyzerVersion());
}
bool ReplayGainSettings::isAnalyzerDisabled(int version, TrackPointer tio) const {
if (isAnalyzerEnabled(version)) {
if (getReplayGainReanalyze()) {
// ignore stored replay gain
return false;
}
return tio->getReplayGain().hasRatio();
}
// not enabled, pretend we have already a stored value.
return true;
}
|