// Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved. namespace Meta.XR.Movement.Playback { /// /// Interface for playback behaviors. This would respond to UI events, /// and control the playback as a result. /// public interface IPlaybackBehaviour { /// /// Indicates if has opened file for playback or not. /// bool HasOpenedFileForPlayback { get; } /// /// Indicates if the user is actively scrubbing. /// bool UserActivelyScrubbing { get; set; } /// /// Returns the current snapshot index. /// int SnapshotIndex { get; } /// /// Returns the number of snapshots. /// int NumSnapshots { get; } /// /// Seeks to a new index and indicates if the /// seek was successful or not. /// /// New seek index. /// Indicates if the seek is successful or not. bool Seek(int newSeekIndex); /// /// Closes the playback file. /// void ClosePlaybackFile(); /// /// Plays back a recording. It's up to the implementing class /// to either preload a file or ask the user for one. /// /// Playback path (optional). /// True if recording was loaded; false if not. bool PlayBackRecording(string playbackPath = null); /// /// Sets the new pause state. /// /// The new pause state. void SetPauseState(bool pauseState); /// /// Bandwidth of playback in kilobits per second. /// float BandwidthKbps { get; } } }