2016-08-31 02:33:21 +02:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2016 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.0;
|
|
|
|
|
|
|
|
interface IVibrator {
|
2017-01-31 19:34:35 +01:00
|
|
|
/**
|
|
|
|
* Turn on vibrator
|
2016-08-31 02:33:21 +02:00
|
|
|
*
|
|
|
|
* This function must only be called after the previous timeout has expired or
|
|
|
|
* was canceled (through off()).
|
|
|
|
* @param timeout_ms number of milliseconds to vibrate.
|
|
|
|
* @return vibratorOnRet whether vibrator command was successful or not.
|
|
|
|
*/
|
|
|
|
on(uint32_t timeoutMs) generates (Status vibratorOnRet);
|
|
|
|
|
2017-01-31 19:34:35 +01:00
|
|
|
/**
|
|
|
|
* Turn off vibrator
|
2016-08-31 02:33:21 +02:00
|
|
|
*
|
|
|
|
* Cancel a previously-started vibration, if any.
|
|
|
|
* @return vibratorOffRet whether vibrator command was successful or not.
|
|
|
|
*/
|
|
|
|
off() generates (Status vibratorOffRet);
|
2017-01-31 19:34:35 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns whether the vibrator supports changes to its vibrational amplitude.
|
|
|
|
*/
|
|
|
|
supportsAmplitudeControl() generates (bool supports);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the motor's vibrational amplitude.
|
|
|
|
*
|
|
|
|
* Changes the force being produced by the underlying motor.
|
|
|
|
*
|
|
|
|
* @param amplitude The unitless force setting. Note that this number must
|
|
|
|
* be between 1 and 255, inclusive. If the motor does not
|
|
|
|
* have exactly 255 steps, it must do it's best to map it
|
|
|
|
* onto the number of steps it does have.
|
|
|
|
* @return status Whether the command was successful or not. Must return
|
|
|
|
* Status::UNSUPPORTED_OPERATION if setting the amplitude is
|
|
|
|
* not supported by the device.
|
|
|
|
*/
|
|
|
|
setAmplitude(uint8_t amplitude) generates (Status status);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Fire off a predefined haptic event.
|
|
|
|
*
|
|
|
|
* @param event The type of haptic event to trigger.
|
|
|
|
* @return status Whether the effect was successfully performed or not. Must
|
|
|
|
* return Status::UNSUPPORTED_OPERATION is 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(Effect effect, EffectStrength strength) generates (Status status, uint32_t lengthMs);
|
2016-08-31 02:33:21 +02:00
|
|
|
};
|