Create common interface for SyncPlay requests

This commit is contained in:
Ionut Andrei Oanca
2020-11-28 16:03:02 +01:00
parent c60714e365
commit 78ea8ef99e
31 changed files with 238 additions and 121 deletions

View File

@@ -0,0 +1,29 @@
using System.Threading;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.SyncPlay;
namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
{
/// <summary>
/// Class AbstractPlaybackRequest.
/// </summary>
public abstract class AbstractPlaybackRequest : IGroupPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="AbstractPlaybackRequest"/> class.
/// </summary>
protected AbstractPlaybackRequest()
{
// Do nothing.
}
/// <inheritdoc />
public RequestType Type { get; } = RequestType.Playback;
/// <inheritdoc />
public abstract PlaybackRequestType Action { get; }
/// <inheritdoc />
public abstract void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken);
}
}

View File

@@ -8,7 +8,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class BufferGroupRequest.
/// </summary>
public class BufferGroupRequest : IGroupPlaybackRequest
public class BufferGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="BufferGroupRequest"/> class.
@@ -50,10 +50,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public string PlaylistItemId { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Buffer;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Buffer;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class IgnoreWaitGroupRequest.
/// </summary>
public class IgnoreWaitGroupRequest : IGroupPlaybackRequest
public class IgnoreWaitGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="IgnoreWaitGroupRequest"/> class.
@@ -25,10 +25,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public bool IgnoreWait { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.IgnoreWait;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.IgnoreWait;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class MovePlaylistItemGroupRequest.
/// </summary>
public class MovePlaylistItemGroupRequest : IGroupPlaybackRequest
public class MovePlaylistItemGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="MovePlaylistItemGroupRequest"/> class.
@@ -33,10 +33,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public int NewIndex { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.MovePlaylistItem;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.MovePlaylistItem;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class NextTrackGroupRequest.
/// </summary>
public class NextTrackGroupRequest : IGroupPlaybackRequest
public class NextTrackGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="NextTrackGroupRequest"/> class.
@@ -25,10 +25,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public string PlaylistItemId { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.NextTrack;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.NextTrack;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,13 +7,13 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class PauseGroupRequest.
/// </summary>
public class PauseGroupRequest : IGroupPlaybackRequest
public class PauseGroupRequest : AbstractPlaybackRequest
{
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Pause;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Pause;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class PingGroupRequest.
/// </summary>
public class PingGroupRequest : IGroupPlaybackRequest
public class PingGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="PingGroupRequest"/> class.
@@ -25,10 +25,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public long Ping { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Ping;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Ping;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -9,7 +9,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class PlayGroupRequest.
/// </summary>
public class PlayGroupRequest : IGroupPlaybackRequest
public class PlayGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="PlayGroupRequest"/> class.
@@ -43,10 +43,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public long StartPositionTicks { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Play;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Play;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class PreviousTrackGroupRequest.
/// </summary>
public class PreviousTrackGroupRequest : IGroupPlaybackRequest
public class PreviousTrackGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="PreviousTrackGroupRequest"/> class.
@@ -25,10 +25,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public string PlaylistItemId { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.PreviousTrack;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.PreviousTrack;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -9,7 +9,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class QueueGroupRequest.
/// </summary>
public class QueueGroupRequest : IGroupPlaybackRequest
public class QueueGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="QueueGroupRequest"/> class.
@@ -35,10 +35,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public GroupQueueMode Mode { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Queue;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Queue;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -8,7 +8,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class ReadyGroupRequest.
/// </summary>
public class ReadyGroupRequest : IGroupPlaybackRequest
public class ReadyGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="ReadyGroupRequest"/> class.
@@ -50,10 +50,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public string PlaylistItemId { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Ready;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Ready;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -9,7 +9,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class RemoveFromPlaylistGroupRequest.
/// </summary>
public class RemoveFromPlaylistGroupRequest : IGroupPlaybackRequest
public class RemoveFromPlaylistGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="RemoveFromPlaylistGroupRequest"/> class.
@@ -27,10 +27,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public IReadOnlyList<string> PlaylistItemIds { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.RemoveFromPlaylist;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.RemoveFromPlaylist;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class SeekGroupRequest.
/// </summary>
public class SeekGroupRequest : IGroupPlaybackRequest
public class SeekGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="SeekGroupRequest"/> class.
@@ -25,10 +25,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public long PositionTicks { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Seek;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Seek;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class SetPlaylistItemGroupRequest.
/// </summary>
public class SetPlaylistItemGroupRequest : IGroupPlaybackRequest
public class SetPlaylistItemGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="SetPlaylistItemGroupRequest"/> class.
@@ -25,10 +25,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public string PlaylistItemId { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.SetPlaylistItem;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.SetPlaylistItem;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class SetRepeatModeGroupRequest.
/// </summary>
public class SetRepeatModeGroupRequest : IGroupPlaybackRequest
public class SetRepeatModeGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="SetRepeatModeGroupRequest"/> class.
@@ -25,10 +25,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public GroupRepeatMode Mode { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.SetRepeatMode;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.SetRepeatMode;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class SetShuffleModeGroupRequest.
/// </summary>
public class SetShuffleModeGroupRequest : IGroupPlaybackRequest
public class SetShuffleModeGroupRequest : AbstractPlaybackRequest
{
/// <summary>
/// Initializes a new instance of the <see cref="SetShuffleModeGroupRequest"/> class.
@@ -25,10 +25,10 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
public GroupShuffleMode Mode { get; }
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.SetShuffleMode;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.SetShuffleMode;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,13 +7,13 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class StopGroupRequest.
/// </summary>
public class StopGroupRequest : IGroupPlaybackRequest
public class StopGroupRequest : AbstractPlaybackRequest
{
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Stop;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Stop;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}

View File

@@ -7,13 +7,13 @@ namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
/// <summary>
/// Class UnpauseGroupRequest.
/// </summary>
public class UnpauseGroupRequest : IGroupPlaybackRequest
public class UnpauseGroupRequest : AbstractPlaybackRequest
{
/// <inheritdoc />
public PlaybackRequestType Type { get; } = PlaybackRequestType.Unpause;
public override PlaybackRequestType Action { get; } = PlaybackRequestType.Unpause;
/// <inheritdoc />
public void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
public override void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken)
{
state.HandleRequest(context, state.Type, this, session, cancellationToken);
}