diff options
author | Max Kellermann <max@duempel.org> | 2010-02-15 21:23:24 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2010-02-15 21:23:24 +0100 |
commit | b21e4d9a589c02bffed9a1793d9fc2dc52044c12 (patch) | |
tree | 694936fb9629d3eecd06d258ead66b7b879fc29c /src/replay_gain_info.c | |
parent | eeef501ed865b4ef9e0c971829a39a98c7b81ee9 (diff) | |
download | mpd-b21e4d9a589c02bffed9a1793d9fc2dc52044c12.tar.gz mpd-b21e4d9a589c02bffed9a1793d9fc2dc52044c12.tar.xz mpd-b21e4d9a589c02bffed9a1793d9fc2dc52044c12.zip |
replay_gain_state: moved code to replay_gain_tuple_scale()
Moved (and renamed) the function calc_replay_gain_scale() to
replay_gain_info.c.
Diffstat (limited to 'src/replay_gain_info.c')
-rw-r--r-- | src/replay_gain_info.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/replay_gain_info.c b/src/replay_gain_info.c index 676394c0f..ce9d84950 100644 --- a/src/replay_gain_info.c +++ b/src/replay_gain_info.c @@ -21,6 +21,7 @@ #include "replay_gain_info.h" #include <glib.h> +#include <math.h> struct replay_gain_info * replay_gain_info_new(void) @@ -46,3 +47,19 @@ replay_gain_info_free(struct replay_gain_info *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; +} |