Load device max haptic channel amplitude from vibrator service

Load the device configured max amplitude to be applied to haptic data in
audio channels.

Bug: 188025353
Test: manual
Change-Id: I7c409043cea6d528b8f28a86890d98768d59e0e0
This commit is contained in:
Lais Andrade
2021-07-02 00:16:56 +01:00
parent 9e0dac3473
commit 686fe95c90

View File

@@ -207,6 +207,7 @@ static struct {
jmethodID getId;
jmethodID getResonantFrequency;
jmethodID getQFactor;
jmethodID getMaxAmplitude;
} gVibratorMethods;
static Mutex gLock;
@@ -2677,6 +2678,8 @@ static jint android_media_AudioSystem_setVibratorInfos(JNIEnv *env, jobject thiz
vibratorInfo.resonantFrequency =
env->CallFloatMethod(jVibrator.get(), gVibratorMethods.getResonantFrequency);
vibratorInfo.qFactor = env->CallFloatMethod(jVibrator.get(), gVibratorMethods.getQFactor);
vibratorInfo.maxAmplitude =
env->CallFloatMethod(jVibrator.get(), gVibratorMethods.getMaxAmplitude);
vibratorInfos.push_back(vibratorInfo);
}
return (jint)check_AudioSystem_Command(AudioSystem::setVibratorInfos(vibratorInfos));
@@ -3041,6 +3044,8 @@ int register_android_media_AudioSystem(JNIEnv *env)
gVibratorMethods.getResonantFrequency =
GetMethodIDOrDie(env, vibratorClass, "getResonantFrequency", "()F");
gVibratorMethods.getQFactor = GetMethodIDOrDie(env, vibratorClass, "getQFactor", "()F");
gVibratorMethods.getMaxAmplitude =
GetMethodIDOrDie(env, vibratorClass, "getHapticChannelMaximumAmplitude", "()F");
AudioSystem::addErrorCallback(android_media_AudioSystem_error_callback);