From 5e58b0abe5b6c8f5bd96a8f78bbeeeb4d3892020 Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Mon, 23 Jun 2014 19:07:29 -0700 Subject: Add floating point volume handling to AudioMixer Use floating point volume in AudioMixer mixing when floating point input is used with the new mixer engine. AudioResampler is updated to take floating point volume to match. Both legacy integer and floating point mixer engines work. For now, integer volume is used when the new mixer engine runs in integer input mode, for backward compatibility with the legacy mixer. The new mixer engine will generally run in floating point input mode. When the legacy path is removed, the integer volumes will be removed. Change-Id: I79e80c292ae7c8b8bdd0aa371a1b2c3a1b618290 --- services/audioflinger/tests/resampler_tests.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'services/audioflinger/tests') diff --git a/services/audioflinger/tests/resampler_tests.cpp b/services/audioflinger/tests/resampler_tests.cpp index 987162c..8624b62 100644 --- a/services/audioflinger/tests/resampler_tests.cpp +++ b/services/audioflinger/tests/resampler_tests.cpp @@ -89,12 +89,12 @@ void testBufferIncrement(size_t channels, bool useFloat, outputSize &= ~7; // create the resampler - const int volumePrecision = 12; /* typical unity gain */ android::AudioResampler* resampler; resampler = android::AudioResampler::create(format, channels, outputFreq, quality); resampler->setSampleRate(inputFreq); - resampler->setVolume(1 << volumePrecision, 1 << volumePrecision); + resampler->setVolume(android::AudioResampler::UNITY_GAIN_FLOAT, + android::AudioResampler::UNITY_GAIN_FLOAT); // set up the reference run std::vector refIncr; @@ -111,7 +111,8 @@ void testBufferIncrement(size_t channels, bool useFloat, delete resampler; resampler = android::AudioResampler::create(format, channels, outputFreq, quality); resampler->setSampleRate(inputFreq); - resampler->setVolume(1 << volumePrecision, 1 << volumePrecision); + resampler->setVolume(android::AudioResampler::UNITY_GAIN_FLOAT, + android::AudioResampler::UNITY_GAIN_FLOAT); #endif // set up the test run @@ -171,13 +172,13 @@ void testStopbandDownconversion(size_t channels, outputSize &= ~7; // create the resampler - const int volumePrecision = 12; /* typical unity gain */ android::AudioResampler* resampler; resampler = android::AudioResampler::create(AUDIO_FORMAT_PCM_16_BIT, channels, outputFreq, quality); resampler->setSampleRate(inputFreq); - resampler->setVolume(1 << volumePrecision, 1 << volumePrecision); + resampler->setVolume(android::AudioResampler::UNITY_GAIN_FLOAT, + android::AudioResampler::UNITY_GAIN_FLOAT); // set up the reference run std::vector refIncr; -- cgit v1.1