From 540e5d103f803cfd508297f483c054328c59375f Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Mon, 15 Apr 2013 16:11:28 -0400 Subject: [PATCH] Forget about fixedpoint.c in any HWCODEC bin. It bloats to much just for one simple use. Just use a simple function for shifting sound setting decimal places. Change-Id: I1a7d37cce6ada3c6e6600dc0d301f354ffeff231 --- apps/SOURCES | 3 +-- firmware/sound.c | 7 ++++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/SOURCES b/apps/SOURCES index d34d7b8b30..6005460a5a 100644 --- a/apps/SOURCES +++ b/apps/SOURCES @@ -159,12 +159,11 @@ radio/radioart.c #endif #endif -fixedpoint.c - #if CONFIG_CODEC == SWCODEC #if INPUT_SRC_CAPS != 0 audio_path.c #endif /* INPUT_SRC_CAPS != 0 */ +fixedpoint.c pcmbuf.c codec_thread.c playback.c diff --git a/firmware/sound.c b/firmware/sound.c index e6cfe57cf5..f8358c690d 100644 --- a/firmware/sound.c +++ b/firmware/sound.c @@ -25,7 +25,6 @@ #include "config.h" #include "system.h" #include "sound.h" -#include "fixedpoint.h" #ifdef HAVE_SW_VOLUME_CONTROL #include "pcm_sw_volume.h" #endif /* HAVE_SW_VOLUME_CONTROL */ @@ -128,8 +127,10 @@ static int current_eq_band_gain[AUDIOHW_EQ_BAND_NUM]; /* tenth dB */ /* Return the sound value scaled to centibels (tenth-decibels) */ static int sound_value_to_cb(int setting, int value) { - long e = (1 - sound_numdecimals(setting)) << 16; - return fp_mul(value, fp_exp10(e, 16), 16); + int shift = 1 - sound_numdecimals(setting); + if (shift < 0) do { value /= 10; } while (++shift); + if (shift > 0) do { value *= 10; } while (--shift); + return value; } static void set_prescaled_volume(void)