diff options
| -rw-r--r-- | libs/vibrator/Android.bp | 1 | ||||
| -rw-r--r-- | libs/vibrator/ExternalVibrationUtils.cpp | 22 | ||||
| -rw-r--r-- | libs/vibrator/tests/ExternalVibrationUtilsTest.cpp | 48 |
3 files changed, 16 insertions, 55 deletions
diff --git a/libs/vibrator/Android.bp b/libs/vibrator/Android.bp index 22c196ef48..d3b3a734f9 100644 --- a/libs/vibrator/Android.bp +++ b/libs/vibrator/Android.bp @@ -90,7 +90,6 @@ cc_library { ], shared_libs: [ - "libbase", "liblog", "libutils", "server_configurable_flags", diff --git a/libs/vibrator/ExternalVibrationUtils.cpp b/libs/vibrator/ExternalVibrationUtils.cpp index 4757bdbc6b..ca13afcbaf 100644 --- a/libs/vibrator/ExternalVibrationUtils.cpp +++ b/libs/vibrator/ExternalVibrationUtils.cpp @@ -17,10 +17,6 @@ #include <cstring> -#include <android-base/parsedouble.h> -#include <android-base/properties.h> -#include <android-base/thread_annotations.h> - #include <android_os_vibrator.h> #include <algorithm> @@ -38,21 +34,6 @@ static constexpr float HAPTIC_MAX_AMPLITUDE_FLOAT = 1.0f; static constexpr float SCALE_GAMMA = 0.65f; // Same as VibrationEffect.SCALE_GAMMA static constexpr float SCALE_LEVEL_GAIN = 1.4f; // Same as VibrationConfig.DEFAULT_SCALE_LEVEL_GAIN -float getScaleLevelGain() { - static std::mutex gMutex; - static float gScaleLevelGain GUARDED_BY(gMutex) = 0; - std::lock_guard lock(gMutex); - if (gScaleLevelGain != 0) { - return gScaleLevelGain; - } - float scaleGain; - std::string value = ::android::base::GetProperty("vendor.vibrator.scale.level.gain", ""); - if (value.empty() || !::android::base::ParseFloat(value, &scaleGain) || scaleGain <= 1) { - scaleGain = SCALE_LEVEL_GAIN; - } - return gScaleLevelGain = scaleGain; -} - float getOldHapticScaleGamma(HapticLevel level) { switch (level) { case HapticLevel::VERY_LOW: @@ -98,8 +79,7 @@ float getHapticScaleFactor(HapticScale scale) { case HapticLevel::NONE: return 1.0f; default: - float scaleLevelGain = getScaleLevelGain(); - float scaleFactor = powf(scaleLevelGain, static_cast<int32_t>(level)); + float scaleFactor = powf(SCALE_LEVEL_GAIN, static_cast<int32_t>(level)); if (scaleFactor <= 0) { ALOGE("Invalid scale factor %.2f for level %d, using fallback to 1.0", scaleFactor, static_cast<int32_t>(level)); diff --git a/libs/vibrator/tests/ExternalVibrationUtilsTest.cpp b/libs/vibrator/tests/ExternalVibrationUtilsTest.cpp index e817263e36..9369f80da3 100644 --- a/libs/vibrator/tests/ExternalVibrationUtilsTest.cpp +++ b/libs/vibrator/tests/ExternalVibrationUtilsTest.cpp @@ -14,7 +14,6 @@ * limitations under the License. */ -#include <android-base/properties.h> #include <android_os_vibrator.h> #include <flag_macros.h> #include <gtest/gtest.h> @@ -171,12 +170,6 @@ TEST_F_WITH_FLAGS( ExternalVibrationUtilsTest, TestScaleV2ToHapticLevel, // Value of fix_audio_coupled_haptics_scaling is not important, should work with either REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { - // Skip test on devices with custom scale level gain configured. - if (!::android::base::GetProperty("vendor.vibrator.scale.level.gain", "").empty()) { - GTEST_SKIP() << "system property for scale level gain is set, skip tests based on level"; - return; - } - float expectedVeryHigh[TEST_BUFFER_LENGTH] = { 1, -1, 0.8f, -0.38f }; scaleBuffer(HapticLevel::VERY_HIGH); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); @@ -198,12 +191,6 @@ TEST_F_WITH_FLAGS( ExternalVibrationUtilsTest, TestScaleV2ToScaleFactorUndefinedUsesHapticLevel, // Value of fix_audio_coupled_haptics_scaling is not important, should work with either REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { - // Skip test on devices with custom scale level gain configured. - if (!::android::base::GetProperty("vendor.vibrator.scale.level.gain", "").empty()) { - GTEST_SKIP() << "system property for scale level gain is set, skip tests based on level"; - return; - } - constexpr float adaptiveScaleNone = 1.0f; float expectedVeryHigh[TEST_BUFFER_LENGTH] = {1, -1, 0.8f, -0.38f}; scaleBuffer(HapticScale(HapticLevel::VERY_HIGH, -1.0f /* scaleFactor */, adaptiveScaleNone)); @@ -251,7 +238,7 @@ TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfte EXPECT_FLOATS_NEARLY_EQ(expectedMuted, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); // Haptic level scale up then adaptive scale down - float expectedVeryHigh[TEST_BUFFER_LENGTH] = {0.2f, -0.2f, 0.16f, -0.13f}; + float expectedVeryHigh[TEST_BUFFER_LENGTH] = { 0.2, -0.2, 0.16f, -0.13f }; scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); @@ -289,7 +276,7 @@ TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfte EXPECT_FLOATS_NEARLY_EQ(expectedMuted, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); // Haptic level scale up then adaptive scale down - float expectedVeryHigh[TEST_BUFFER_LENGTH] = {0.2f, -0.2f, 0.16f, -0.07f}; + float expectedVeryHigh[TEST_BUFFER_LENGTH] = { 0.2, -0.2, 0.16f, -0.07f }; scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); @@ -313,8 +300,8 @@ TEST_F_WITH_FLAGS( ExternalVibrationUtilsTest, TestAdaptiveScaleFactorUndefinedIgnoredScaleV2, // Value of fix_audio_coupled_haptics_scaling is not important, should work with either REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { - float expectedVeryHigh[TEST_BUFFER_LENGTH] = {1, -1, 0.8, -0.38f}; - scaleBuffer(HapticScale(HapticLevel::HIGH, 2 /* scaleFactor */, -1 /* adaptiveScaleFactor */)); + float expectedVeryHigh[TEST_BUFFER_LENGTH] = {1, -1, 0.8f, -0.38f}; + scaleBuffer(HapticLevel::VERY_HIGH, -1.0f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } @@ -325,30 +312,27 @@ TEST_F_WITH_FLAGS( // Adaptive scale mutes vibration float expectedMuted[TEST_BUFFER_LENGTH]; std::fill(std::begin(expectedMuted), std::end(expectedMuted), 0); - scaleBuffer(HapticScale(HapticLevel::HIGH, 2 /* scaleFactor */, 0 /* adaptiveScaleFactor */)); + scaleBuffer(HapticLevel::VERY_HIGH, 0.0f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedMuted, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); // Haptic level scale up then adaptive scale down - float expectedVeryHigh[TEST_BUFFER_LENGTH] = {0.2f, -0.2f, 0.16f, -0.07f}; - scaleBuffer( - HapticScale(HapticLevel::HIGH, 2 /* scaleFactor */, 0.2f /* adaptiveScaleFactor */)); + float expectedVeryHigh[TEST_BUFFER_LENGTH] = { 0.2, -0.2, 0.15f, -0.07f }; + scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); // Haptic level scale up then adaptive scale up - float expectedHigh[TEST_BUFFER_LENGTH] = {1.5f, -1.5f, 1.2f, -0.57f}; - scaleBuffer( - HapticScale(HapticLevel::HIGH, 2 /* scaleFactor */, 1.5f /* adaptiveScaleFactor */)); + float expectedHigh[TEST_BUFFER_LENGTH] = { 1.5f, -1.5f, 0.95f, -0.41f }; + scaleBuffer(HapticLevel::HIGH, 1.5f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); // Haptic level scale down then adaptive scale down - float expectedLow[TEST_BUFFER_LENGTH] = {0.3f, -0.3f, 0.15f, -0.06f}; - scaleBuffer( - HapticScale(HapticLevel::LOW, 0.5f /* scaleFactor */, 0.6f /* adaptiveScaleFactor */)); + float expectedLow[TEST_BUFFER_LENGTH] = { 0.42f, -0.42f, 0.21f, -0.08f }; + scaleBuffer(HapticLevel::LOW, 0.6f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); // Haptic level scale down then adaptive scale up - float expectedVeryLow[TEST_BUFFER_LENGTH] = {1.0f, -1.0f, 0.51f, -0.2f}; - scaleBuffer(HapticScale(HapticLevel::LOW, 0.5f /* scaleFactor */, 2 /* adaptiveScaleFactor */)); + float expectedVeryLow[TEST_BUFFER_LENGTH] = { 1.02f, -1.02f, 0.51f, -0.2f }; + scaleBuffer(HapticLevel::VERY_LOW, 2 /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } @@ -386,13 +370,11 @@ TEST_F_WITH_FLAGS( REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { // Scaled = { 0.2, -0.2, 0.15f, -0.07f }; float expectedClippedVeryHigh[TEST_BUFFER_LENGTH] = { 0.15f, -0.15f, 0.15f, -0.07f }; - scaleBuffer(HapticScale(HapticLevel::HIGH, 2 /* scaleFactor */, 0.2f /* adaptiveScaleFactor */), - 0.15f /* limit */); + scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */, 0.15f /* limit */); EXPECT_FLOATS_NEARLY_EQ(expectedClippedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); // Scaled = { 1.02f, -1.02f, 0.51f, -0.2f } float expectedClippedVeryLow[TEST_BUFFER_LENGTH] = { 0.7f, -0.7f, 0.51f, -0.2f }; - scaleBuffer(HapticScale(HapticLevel::LOW, 0.5 /* scaleFactor */, 2 /* adaptiveScaleFactor */), - 0.7f /* limit */); + scaleBuffer(HapticLevel::VERY_LOW, 2 /* adaptiveScaleFactor */, 0.7f /* limit */); EXPECT_FLOATS_NEARLY_EQ(expectedClippedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } |