replay_gain_state: moved code to replay_gain_tuple_scale()

Moved (and renamed) the function calc_replay_gain_scale() to
replay_gain_info.c.
This commit is contained in:
Max Kellermann 2010-02-15 21:23:24 +01:00
parent eeef501ed8
commit b21e4d9a58
3 changed files with 21 additions and 19 deletions

View File

@ -21,6 +21,7 @@
#include "replay_gain_info.h" #include "replay_gain_info.h"
#include <glib.h> #include <glib.h>
#include <math.h>
struct replay_gain_info * struct replay_gain_info *
replay_gain_info_new(void) replay_gain_info_new(void)
@ -46,3 +47,19 @@ replay_gain_info_free(struct replay_gain_info *info)
{ {
g_free(info); g_free(info);
} }
float
replay_gain_tuple_scale(const struct replay_gain_tuple *tuple, float preamp)
{
float scale;
scale = pow(10.0, tuple->gain / 20.0);
scale *= preamp;
if (scale > 15.0)
scale = 15.0;
if (scale * tuple->peak > 1.0)
scale = 1.0 / tuple->peak;
return scale;
}

View File

@ -57,4 +57,7 @@ replay_gain_tuple_defined(const struct replay_gain_tuple *tuple)
return tuple->gain > 0.0; return tuple->gain > 0.0;
} }
float
replay_gain_tuple_scale(const struct replay_gain_tuple *tuple, float preamp);
#endif #endif

View File

@ -24,7 +24,6 @@
#include <glib.h> #include <glib.h>
#include <assert.h> #include <assert.h>
#include <math.h>
struct replay_gain_state { struct replay_gain_state {
float preamp, missing_preamp; float preamp, missing_preamp;
@ -60,22 +59,6 @@ replay_gain_state_free(struct replay_gain_state *state)
g_free(state); g_free(state);
} }
static float
calc_replay_gain_scale(float gain, float peak, float preamp)
{
float scale;
scale = pow(10.0, gain / 20.0);
scale *= preamp;
if (scale > 15.0)
scale = 15.0;
if (scale * peak > 1.0) {
scale = 1.0 / peak;
}
return (scale);
}
static void static void
replay_gain_state_calc_scale(struct replay_gain_state *state) replay_gain_state_calc_scale(struct replay_gain_state *state)
{ {
@ -90,8 +73,7 @@ replay_gain_state_calc_scale(struct replay_gain_state *state)
g_debug("computing ReplayGain scale with gain %f, peak %f", g_debug("computing ReplayGain scale with gain %f, peak %f",
tuple->gain, tuple->peak); tuple->gain, tuple->peak);
state->scale = calc_replay_gain_scale(tuple->gain, tuple->peak, state->scale = replay_gain_tuple_scale(tuple, state->preamp);
state->preamp);
} else } else
state->scale = state->missing_preamp; state->scale = state->missing_preamp;
} }