using System;
using System.Collections.Generic;
namespace MediaBrowser.Model.SyncPlay
{
///
/// Class PlayQueueUpdate.
///
public class PlayQueueUpdate
{
///
/// Initializes a new instance of the class.
///
/// The reason for the update.
/// The UTC time of the last change to the playing queue.
/// The playlist.
/// The playing item index in the playlist.
/// The start position ticks.
/// The playing item status.
/// The shuffle mode.
/// The repeat mode.
public PlayQueueUpdate(PlayQueueUpdateReason reason, DateTime lastUpdate, IReadOnlyList playlist, int playingItemIndex, long startPositionTicks, bool isPlaying, GroupShuffleMode shuffleMode, GroupRepeatMode repeatMode)
{
Reason = reason;
LastUpdate = lastUpdate;
Playlist = playlist;
PlayingItemIndex = playingItemIndex;
StartPositionTicks = startPositionTicks;
IsPlaying = isPlaying;
ShuffleMode = shuffleMode;
RepeatMode = repeatMode;
}
///
/// Gets the request type that originated this update.
///
/// The reason for the update.
public PlayQueueUpdateReason Reason { get; }
///
/// Gets the UTC time of the last change to the playing queue.
///
/// The UTC time of the last change to the playing queue.
public DateTime LastUpdate { get; }
///
/// Gets the playlist.
///
/// The playlist.
public IReadOnlyList Playlist { get; }
///
/// Gets the playing item index in the playlist.
///
/// The playing item index in the playlist.
public int PlayingItemIndex { get; }
///
/// Gets the start position ticks.
///
/// The start position ticks.
public long StartPositionTicks { get; }
///
/// Gets a value indicating whether the current item is playing.
///
/// The playing item status.
public bool IsPlaying { get; }
///
/// Gets the shuffle mode.
///
/// The shuffle mode.
public GroupShuffleMode ShuffleMode { get; }
///
/// Gets the repeat mode.
///
/// The repeat mode.
public GroupRepeatMode RepeatMode { get; }
}
}