diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml index 82bb94181b..6a89dab562 100644 --- a/compatibility_matrices/compatibility_matrix.current.xml +++ b/compatibility_matrices/compatibility_matrix.current.xml @@ -467,7 +467,7 @@ android.hardware.vibrator - 1.0-3 + 1.0-4 IVibrator default diff --git a/vibrator/1.4/Android.bp b/vibrator/1.4/Android.bp new file mode 100644 index 0000000000..cf31fcdab5 --- /dev/null +++ b/vibrator/1.4/Android.bp @@ -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, +} diff --git a/vibrator/1.4/IVibrator.hal b/vibrator/1.4/IVibrator.hal new file mode 100644 index 0000000000..913abe3ed1 --- /dev/null +++ b/vibrator/1.4/IVibrator.hal @@ -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); + + /** + * 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); +}; diff --git a/vibrator/1.4/IVibratorCallback.hal b/vibrator/1.4/IVibratorCallback.hal new file mode 100644 index 0000000000..76281bc589 --- /dev/null +++ b/vibrator/1.4/IVibratorCallback.hal @@ -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(); +}; diff --git a/vibrator/1.4/types.hal b/vibrator/1.4/types.hal new file mode 100644 index 0000000000..acc49b15c0 --- /dev/null +++ b/vibrator/1.4/types.hal @@ -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, +};