Loading PREUPLOAD.cfg +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp libs/nativewindow/ libs/renderengine/ libs/ui/ libs/vibrator/ libs/vr/ opengl/libs/ services/bufferhub/ Loading libs/vibrator/ExternalVibrationUtils.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ void applyHapticScale(float* buffer, size_t length, HapticScale scale) { } } if (adaptiveScaleFactor != 1.0f) { if (adaptiveScaleFactor >= 0 && adaptiveScaleFactor != 1.0f) { buffer[i] *= adaptiveScaleFactor; } } Loading libs/vibrator/include/vibrator/ExternalVibrationUtils.h +3 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,9 @@ bool isScaleNone() const { return (mLevel == HapticLevel::NONE || mScaleFactor == 1.0f) && mAdaptiveScaleFactor == 1.0f; } bool isScaleMute() const { return mLevel == HapticLevel::MUTE || mScaleFactor == 0; } bool isScaleMute() const { return mLevel == HapticLevel::MUTE || mScaleFactor == 0 || mAdaptiveScaleFactor == 0; } std::string toString() const { std::ostringstream os; Loading libs/vibrator/tests/ExternalVibrationUtilsTest.cpp +55 −2 Original line number Diff line number Diff line Loading @@ -187,6 +187,16 @@ TEST_F_WITH_FLAGS( EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } 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))) { 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)); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS( ExternalVibrationUtilsTest, TestScaleV2ToScaleFactorIgnoresLevel, // Value of fix_audio_coupled_haptics_scaling is not important, should work with either Loading @@ -210,9 +220,23 @@ TEST_F_WITH_FLAGS( EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorUndefinedIsIgnoredLegacyScale, REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(FLAG_NS, fix_audio_coupled_haptics_scaling), ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { float expectedVeryHigh[TEST_BUFFER_LENGTH] = {1, -1, 0.79f, -0.39f}; scaleBuffer(HapticLevel::VERY_HIGH, -1.0f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfterLegacyScale, REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(FLAG_NS, fix_audio_coupled_haptics_scaling), ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { // Adaptive scale mutes vibration float expectedMuted[TEST_BUFFER_LENGTH]; std::fill(std::begin(expectedMuted), std::end(expectedMuted), 0); 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.2, -0.2, 0.16f, -0.13f }; scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); Loading @@ -234,9 +258,23 @@ TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfte EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorUndefinedIgnoredFixedScale, REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(FLAG_NS, fix_audio_coupled_haptics_scaling)), REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { float expectedVeryHigh[TEST_BUFFER_LENGTH] = {1, -1, 0.79f, -0.39f}; scaleBuffer(HapticLevel::VERY_HIGH, -1.0f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfterFixedScale, REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(FLAG_NS, fix_audio_coupled_haptics_scaling)), REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { // Adaptive scale mutes vibration float expectedMuted[TEST_BUFFER_LENGTH]; std::fill(std::begin(expectedMuted), std::end(expectedMuted), 0); 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.2, -0.2, 0.16f, -0.07f }; scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); Loading @@ -258,10 +296,25 @@ TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfte EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } 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.8f, -0.38f}; scaleBuffer(HapticLevel::VERY_HIGH, -1.0f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS( ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfterScaleV2, // 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))) { // Adaptive scale mutes vibration float expectedMuted[TEST_BUFFER_LENGTH]; std::fill(std::begin(expectedMuted), std::end(expectedMuted), 0); 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.2, -0.2, 0.15f, -0.07f }; scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); Loading Loading
PREUPLOAD.cfg +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp libs/nativewindow/ libs/renderengine/ libs/ui/ libs/vibrator/ libs/vr/ opengl/libs/ services/bufferhub/ Loading
libs/vibrator/ExternalVibrationUtils.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ void applyHapticScale(float* buffer, size_t length, HapticScale scale) { } } if (adaptiveScaleFactor != 1.0f) { if (adaptiveScaleFactor >= 0 && adaptiveScaleFactor != 1.0f) { buffer[i] *= adaptiveScaleFactor; } } Loading
libs/vibrator/include/vibrator/ExternalVibrationUtils.h +3 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,9 @@ bool isScaleNone() const { return (mLevel == HapticLevel::NONE || mScaleFactor == 1.0f) && mAdaptiveScaleFactor == 1.0f; } bool isScaleMute() const { return mLevel == HapticLevel::MUTE || mScaleFactor == 0; } bool isScaleMute() const { return mLevel == HapticLevel::MUTE || mScaleFactor == 0 || mAdaptiveScaleFactor == 0; } std::string toString() const { std::ostringstream os; Loading
libs/vibrator/tests/ExternalVibrationUtilsTest.cpp +55 −2 Original line number Diff line number Diff line Loading @@ -187,6 +187,16 @@ TEST_F_WITH_FLAGS( EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } 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))) { 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)); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS( ExternalVibrationUtilsTest, TestScaleV2ToScaleFactorIgnoresLevel, // Value of fix_audio_coupled_haptics_scaling is not important, should work with either Loading @@ -210,9 +220,23 @@ TEST_F_WITH_FLAGS( EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorUndefinedIsIgnoredLegacyScale, REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(FLAG_NS, fix_audio_coupled_haptics_scaling), ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { float expectedVeryHigh[TEST_BUFFER_LENGTH] = {1, -1, 0.79f, -0.39f}; scaleBuffer(HapticLevel::VERY_HIGH, -1.0f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfterLegacyScale, REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(FLAG_NS, fix_audio_coupled_haptics_scaling), ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { // Adaptive scale mutes vibration float expectedMuted[TEST_BUFFER_LENGTH]; std::fill(std::begin(expectedMuted), std::end(expectedMuted), 0); 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.2, -0.2, 0.16f, -0.13f }; scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); Loading @@ -234,9 +258,23 @@ TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfte EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorUndefinedIgnoredFixedScale, REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(FLAG_NS, fix_audio_coupled_haptics_scaling)), REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { float expectedVeryHigh[TEST_BUFFER_LENGTH] = {1, -1, 0.79f, -0.39f}; scaleBuffer(HapticLevel::VERY_HIGH, -1.0f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfterFixedScale, REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(FLAG_NS, fix_audio_coupled_haptics_scaling)), REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(FLAG_NS, haptics_scale_v2_enabled))) { // Adaptive scale mutes vibration float expectedMuted[TEST_BUFFER_LENGTH]; std::fill(std::begin(expectedMuted), std::end(expectedMuted), 0); 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.2, -0.2, 0.16f, -0.07f }; scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); Loading @@ -258,10 +296,25 @@ TEST_F_WITH_FLAGS(ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfte EXPECT_FLOATS_NEARLY_EQ(expectedVeryLow, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } 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.8f, -0.38f}; scaleBuffer(HapticLevel::VERY_HIGH, -1.0f /* adaptiveScaleFactor */); EXPECT_FLOATS_NEARLY_EQ(expectedVeryHigh, mBuffer, TEST_BUFFER_LENGTH, TEST_TOLERANCE); } TEST_F_WITH_FLAGS( ExternalVibrationUtilsTest, TestAdaptiveScaleFactorAppliedAfterScaleV2, // 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))) { // Adaptive scale mutes vibration float expectedMuted[TEST_BUFFER_LENGTH]; std::fill(std::begin(expectedMuted), std::end(expectedMuted), 0); 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.2, -0.2, 0.15f, -0.07f }; scaleBuffer(HapticLevel::VERY_HIGH, 0.2f /* adaptiveScaleFactor */); Loading