// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.Threading.Tasks; namespace Microsoft.MixedReality.Toolkit.Input { /// <summary> /// Plays back input animation via the input simulation system. /// </summary> public interface IMixedRealityInputPlaybackService : IMixedRealityInputDeviceManager { /// <summary> /// The animation currently being played. /// </summary> InputAnimation Animation { get; set; } /// <summary> /// True if the animation is currently playing. /// </summary> bool IsPlaying { get; } /// <summary> /// The local time in seconds relative to the start of the animation. /// </summary> float LocalTime { get; set; } /// <summary> /// Start playing the animation. /// </summary> void Play(); /// <summary> /// Stop playing the animation and jump to the start. /// </summary> void Stop(); /// <summary> /// Pause playback and keep the current local time. /// </summary> void Pause(); /// <summary> /// Try to load input animation data from the given file. /// </summary> /// <returns> /// True if loading input animation from the file succeeded. /// </returns> bool LoadInputAnimation(string filepath); /// <summary> /// Try to load input animation data from the given file asynchronously. /// </summary> /// <returns> /// True if loading input animation from the file succeeded. /// </returns> Task<bool> LoadInputAnimationAsync(string filepath); } }