vibrator: Support Async Callback APIs

Bug: 136220871
Test: Manually via 'cmd vibrator'
Change-Id: I4201538e4b2e663ac0215c1deb1047658f4d602e
This commit is contained in:
Harpreet "Eli" Sangha 2019-07-22 16:15:16 +09:00 committed by Harpreet \"Eli\" Sangha
parent 5d16469e7c
commit 9f290826b8
5 changed files with 123 additions and 1 deletions

View file

@ -467,7 +467,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.vibrator</name>
<version>1.0-3</version>
<version>1.0-4</version>
<interface>
<name>IVibrator</name>
<instance>default</instance>

22
vibrator/1.4/Android.bp Normal file
View file

@ -0,0 +1,22 @@
// This file is autogenerated by hidl-gen -Landroidbp.
hidl_interface {
name: "android.hardware.vibrator@1.4",
root: "android.hardware",
vndk: {
enabled: true,
},
srcs: [
"types.hal",
"IVibrator.hal",
"IVibratorCallback.hal",
],
interfaces: [
"android.hardware.vibrator@1.0",
"android.hardware.vibrator@1.1",
"android.hardware.vibrator@1.2",
"android.hardware.vibrator@1.3",
"android.hidl.base@1.0",
],
gen_java: true,
}

View file

@ -0,0 +1,57 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.vibrator@1.4;
import @1.0::EffectStrength;
import @1.3::Effect;
import @1.0::Status;
import @1.3::IVibrator;
import IVibratorCallback;
interface IVibrator extends @1.3::IVibrator {
/**
* Determine capabilities of the vibrator HAL.
*/
getCapabilities() generates (bitfield<Capabilities> capabilities);
/**
* Turn on vibrator
*
* This function must only be called after the previous timeout has expired or
* was canceled (through off()).
* @param timeoutMs number of milliseconds to vibrate.
* @param callback A callback used to inform Frameworks of state change, if supported.
* @return vibratorOnRet whether vibrator command was successful or not.
*/
on_1_4(uint32_t timeoutMs, IVibratorCallback callback) generates (Status vibratorOnRet);
/**
* Fire off a predefined haptic event.
*
* @param effect The type of haptic event to trigger.
* @param strength The intensity of haptic event to trigger.
* @param callback A callback used to inform Frameworks of state change, if supported.
* @return status Whether the effect was successfully performed or not. Must
* return Status::UNSUPPORTED_OPERATION if the effect is not supported.
* @return lengthMs The length of time the event is expected to take in
* milliseconds. This doesn't need to be perfectly accurate, but should be a reasonable
* approximation. Should be a positive, non-zero value if the returned status is Status::OK,
* and set to 0 otherwise.
*/
perform_1_4(Effect effect, EffectStrength strength, IVibratorCallback callback)
generates (Status status, uint32_t lengthMs);
};

View file

@ -0,0 +1,21 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.vibrator@1.4;
interface IVibratorCallback {
oneway onComplete();
};

22
vibrator/1.4/types.hal Normal file
View file

@ -0,0 +1,22 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.vibrator@1.4;
enum Capabilities : uint32_t {
ON_COMPLETION_CALLBACK = 1 << 0,
PERFORM_COMPLETION_CALLBACK = 1 << 1,
};