add replaygain preamp
git-svn-id: https://svn.musicpd.org/mpd/trunk@1873 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
3edf331543
commit
efda73c74d
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
#define CONF_COMMENT '#'
|
#define CONF_COMMENT '#'
|
||||||
|
|
||||||
#define CONF_NUMBER_OF_PARAMS 33
|
#define CONF_NUMBER_OF_PARAMS 34
|
||||||
#define CONF_NUMBER_OF_PATHS 6
|
#define CONF_NUMBER_OF_PATHS 6
|
||||||
#define CONF_NUMBER_OF_REQUIRED 5
|
#define CONF_NUMBER_OF_REQUIRED 5
|
||||||
#define CONF_NUMBER_OF_ALLOW_CATS 1
|
#define CONF_NUMBER_OF_ALLOW_CATS 1
|
||||||
|
@ -129,7 +129,8 @@ char ** readConf(char * file) {
|
||||||
"http_proxy_host",
|
"http_proxy_host",
|
||||||
"http_proxy_port",
|
"http_proxy_port",
|
||||||
"http_proxy_user",
|
"http_proxy_user",
|
||||||
"http_proxy_password"
|
"http_proxy_password",
|
||||||
|
"replaygain_preamp"
|
||||||
};
|
};
|
||||||
|
|
||||||
int conf_absolutePaths[CONF_NUMBER_OF_PATHS] = {
|
int conf_absolutePaths[CONF_NUMBER_OF_PATHS] = {
|
||||||
|
|
|
@ -54,6 +54,7 @@
|
||||||
#define CONF_HTTP_PROXY_PORT 30
|
#define CONF_HTTP_PROXY_PORT 30
|
||||||
#define CONF_HTTP_PROXY_USER 31
|
#define CONF_HTTP_PROXY_USER 31
|
||||||
#define CONF_HTTP_PROXY_PASSWORD 32
|
#define CONF_HTTP_PROXY_PASSWORD 32
|
||||||
|
#define CONF_REPLAYGAIN_PREAMP 33
|
||||||
|
|
||||||
#define CONF_CAT_CHAR "\n"
|
#define CONF_CAT_CHAR "\n"
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
/* Added 4/14/2004 by AliasMrJones */
|
/* Added 4/14/2004 by AliasMrJones */
|
||||||
static int replayGainState = REPLAYGAIN_OFF;
|
static int replayGainState = REPLAYGAIN_OFF;
|
||||||
|
|
||||||
|
static float replayGainPreamp = 1.0;
|
||||||
|
|
||||||
void initReplayGainState() {
|
void initReplayGainState() {
|
||||||
if(!getConf()[CONF_REPLAYGAIN]) return;
|
if(!getConf()[CONF_REPLAYGAIN]) return;
|
||||||
|
|
||||||
|
@ -43,17 +45,38 @@ void initReplayGainState() {
|
||||||
getConf()[CONF_REPLAYGAIN]);
|
getConf()[CONF_REPLAYGAIN]);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(getConf()[CONF_REPLAYGAIN_PREAMP]) {
|
||||||
|
char * test;
|
||||||
|
float f = strtod(getConf()[CONF_REPLAYGAIN_PREAMP], &test);
|
||||||
|
|
||||||
|
if(*test != '\0') {
|
||||||
|
ERROR("Replaygain preamp \"%s\" is not a number\n",
|
||||||
|
getConf()[CONF_REPLAYGAIN_PREAMP]);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(f < -15 || f > 15) {
|
||||||
|
ERROR("Replaygain preamp \"%s\" is not between -15 and"
|
||||||
|
"15\n",
|
||||||
|
getConf()[CONF_REPLAYGAIN_PREAMP]);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
replayGainPreamp = pow(10, f/20.0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int getReplayGainState() {
|
int getReplayGainState() {
|
||||||
return replayGainState;
|
return replayGainState;
|
||||||
}
|
}
|
||||||
|
|
||||||
float computeReplayGainScale(float gain, float peak){
|
float computeReplayGainScale(float gain, float peak) {
|
||||||
float scale;
|
float scale;
|
||||||
|
|
||||||
if(gain == 0.0) return(1);
|
if(gain == 0.0) return(1);
|
||||||
scale = pow(10.0, gain/20.0);
|
scale = pow(10.0, gain/20.0);
|
||||||
|
scale*= replayGainPreamp;
|
||||||
if(scale > 15.0) scale = 15.0;
|
if(scale > 15.0) scale = 15.0;
|
||||||
|
|
||||||
if (scale * peak > 1.0) {
|
if (scale * peak > 1.0) {
|
||||||
|
|
Loading…
Reference in New Issue