mixedreality/com.microsoft.mixedreality..../Core/Providers/InputAnimation/IMixedRealityInputRecording...

86 lines
3.3 KiB
C#

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using System.Threading.Tasks;
namespace Microsoft.MixedReality.Toolkit.Input
{
/// <summary>
/// Provides input recording into an internal buffer and exporting to files.
/// </summary>
public interface IMixedRealityInputRecordingService : IMixedRealityInputDeviceManager
{
/// <summary>
/// True if input is being recorded.
/// </summary>
bool IsRecording { get; }
/// <summary>
/// Limit the size of the recording buffer.
/// </summary>
/// <remarks>
/// If recording is limited any input older than the RecordingBufferTimeLimit will be discarded.
/// </remarks>
bool UseBufferTimeLimit { get; set; }
/// <summary>
/// Maximum duration in seconds of the input recording if UseBufferTimeLimit is enabled.
/// </summary>
/// <remarks>
/// If UseBufferTimeLimit is enabled then keyframes older than this limit will be discarded.
/// </remarks>
float RecordingBufferTimeLimit { get; set; }
/// <summary>
/// Start unlimited input recording.
/// </summary>
void StartRecording();
/// <summary>
/// Stop recording input.
/// </summary>
void StopRecording();
/// <summary>
/// Discard all recorded input
/// </summary>
void DiscardRecordedInput();
/// <summary>
/// Save recorded input animation to a file.
/// </summary>
/// <param name="directory">Directory in which to create the file. If null the persistent data path of the app is used.</param>
/// <returns>File path where input has been recorded.</returns>
/// <remarks>
/// Filename is determined automatically.
/// </remarks>
string SaveInputAnimation(string directory = null);
/// <summary>
/// Save recorded input animation to a file.
/// </summary>
/// <param name="filename">Name of the file to create.</param>
/// <param name="directory">Directory in which to create the file. If null the persistent data path of the app is used.</param>
/// <returns>File path where input has been recorded.</returns>
string SaveInputAnimation(string filename, string directory);
/// <summary>
/// Save recorded input animation to a file asynchronously.
/// </summary>
/// <param name="directory">Directory in which to create the file. If null the persistent data path of the app is used.</param>
/// <returns>File path where input has been recorded.</returns>
/// <remarks>
/// Filename is determined automatically.
/// </remarks>
Task<string> SaveInputAnimationAsync(string directory = null);
/// <summary>
/// Save recorded input animation to a file asynchronously.
/// </summary>
/// <param name="filename">Name of the file to create.</param>
/// <param name="directory">Directory in which to create the file. If null the persistent data path of the app is used.</param>
/// <returns>File path where input has been recorded.</returns>
Task<string> SaveInputAnimationAsync(string filename, string directory);
}
}