using MediaBrowser.Model.Entities;
namespace MediaBrowser.Model.Session
{
    /// 
    /// Class PlaybackProgressInfo.
    /// 
    public class PlaybackProgressInfo
    {
        /// 
        /// Gets or sets a value indicating whether this instance can seek.
        /// 
        /// true if this instance can seek; otherwise, false.
        public bool CanSeek { get; set; }
        /// 
        /// Gets or sets the item.
        /// 
        /// The item.
        public BaseItemInfo Item { get; set; }
        /// 
        /// Gets or sets the item identifier.
        /// 
        /// The item identifier.
        public string ItemId { get; set; }
        
        /// 
        /// Gets or sets the session id.
        /// 
        /// The session id.
        public string SessionId { get; set; }
        /// 
        /// Gets or sets the media version identifier.
        /// 
        /// The media version identifier.
        public string MediaSourceId { get; set; }
        /// 
        /// Gets or sets the index of the audio stream.
        /// 
        /// The index of the audio stream.
        public int? AudioStreamIndex { get; set; }
        /// 
        /// Gets or sets the index of the subtitle stream.
        /// 
        /// The index of the subtitle stream.
        public int? SubtitleStreamIndex { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is paused.
        /// 
        /// true if this instance is paused; otherwise, false.
        public bool IsPaused { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is muted.
        /// 
        /// true if this instance is muted; otherwise, false.
        public bool IsMuted { get; set; }
        /// 
        /// Gets or sets the position ticks.
        /// 
        /// The position ticks.
        public long? PositionTicks { get; set; }
        /// 
        /// Gets or sets the volume level.
        /// 
        /// The volume level.
        public int? VolumeLevel { get; set; }
        /// 
        /// Gets or sets the play method.
        /// 
        /// The play method.
        public PlayMethod PlayMethod { get; set; }
        /// 
        /// Gets or sets the live stream identifier.
        /// 
        /// The live stream identifier.
        public string LiveStreamId { get; set; }
        /// 
        /// Gets or sets the play session identifier.
        /// 
        /// The play session identifier.
        public string PlaySessionId { get; set; }
        /// 
        /// Gets or sets the repeat mode.
        /// 
        /// The repeat mode.
        public RepeatMode RepeatMode { get; set; }
    }
    public enum RepeatMode
    {
        RepeatNone = 0,
        RepeatAll = 1,
        RepeatOne = 2
    }
}