123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- ////REVIEW: Devices usually will automatically shut down haptics if they haven't received a haptics command in some time.
- //// How should we deal with that? Should haptics automatically refresh themselves periodically while they are set?
-
- ////REVIEW: Do we need a mute in addition to a pause?
-
- namespace UnityEngine.InputSystem.Haptics
- {
- /// <summary>
- /// Base interface for haptics on input devices.
- /// </summary>
- /// <remarks>
- /// To support haptics, an <see cref="InputDevice"/> has to implement one or more
- /// haptics interfaces.
- /// </remarks>
- /// <example>
- /// <code>
- /// class MyDevice : InputDevice, IDualMotorRumble
- /// {
- /// private DualMotorRumble m_Rumble;
- ///
- /// public void SetMotorSpeeds(float lowFrequency, float highFrequency)
- /// {
- /// m_Rumble.SetMotorSpeeds(lowFrequency, highFrequency);
- /// }
- ///
- /// public void PauseHaptics()
- /// {
- /// m_Rumble.PauseHaptics();
- /// }
- ///
- /// public void ResumeHaptics()
- /// {
- /// m_Rumble.ResumeHaptics();
- /// }
- ///
- /// public void ResetHaptics()
- /// {
- /// m_Rumble.ResetHaptics();
- /// }
- /// }
- /// </code>
- /// </example>
- /// <seealso cref="InputSystem.PauseHaptics"/>
- /// <seealso cref="InputSystem.ResumeHaptics"/>
- /// <seealso cref="InputSystem.ResetHaptics"/>
- public interface IHaptics
- {
- /// <summary>
- /// Pause haptics playback on the device.
- /// </summary>
- /// <remarks>
- /// This should preserve current playback settings (such as motor speed levels
- /// or effect playback positions) but shut down feedback effects on the device.
- ///
- /// If proper resumption of effects is not possible, playback should be stopped
- /// and <see cref="ResumeHaptics"/> is allowed to be a no-operation.
- ///
- /// Note that haptics playback states are not required to survive domain reloads
- /// in the editor.
- /// </remarks>
- /// <seealso cref="ResumeHaptics"/>
- void PauseHaptics();
-
- /// <summary>
- /// Resume haptics playback on the device.
- /// </summary>
- /// <remarks>
- /// Should be called after calling <see cref="PauseHaptics"/>. Otherwise does
- /// nothing.
- /// </remarks>
- void ResumeHaptics();
-
- /// <summary>
- /// Reset haptics playback on the device to its default state.
- /// </summary>
- /// <remarks>
- /// This will turn off all haptics effects that may be playing on the device.
- /// </remarks>
- void ResetHaptics();
- }
- }
|