jellyfin/MediaBrowser.Controller/Syncplay/ISyncplayController.cs

62 lines
1.9 KiB
C#
Raw Normal View History

2020-04-01 17:52:42 +02:00
using System;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Syncplay;
namespace MediaBrowser.Controller.Syncplay
{
/// <summary>
/// Interface ISyncplayController.
/// </summary>
public interface ISyncplayController
{
/// <summary>
/// Gets the group id.
/// </summary>
/// <value>The group id.</value>
Guid GetGroupId();
/// <summary>
/// Gets the playing item id.
/// </summary>
/// <value>The playing item id.</value>
Guid GetPlayingItemId();
/// <summary>
/// Checks if the group is empty.
/// </summary>
/// <value>If the group is empty.</value>
bool IsGroupEmpty();
/// <summary>
2020-04-04 17:56:21 +02:00
/// Initializes the group with the session's info.
2020-04-01 17:52:42 +02:00
/// </summary>
2020-04-04 17:56:21 +02:00
/// <param name="session">The session.</param>
void InitGroup(SessionInfo session);
2020-04-01 17:52:42 +02:00
/// <summary>
2020-04-04 17:56:21 +02:00
/// Adds the session to the group.
2020-04-01 17:52:42 +02:00
/// </summary>
2020-04-04 17:56:21 +02:00
/// <param name="session">The session.</param>
/// <param name="request">The request.</param>
void SessionJoin(SessionInfo session, JoinGroupRequest request);
2020-04-01 17:52:42 +02:00
/// <summary>
2020-04-04 17:56:21 +02:00
/// Removes the session from the group.
2020-04-01 17:52:42 +02:00
/// </summary>
2020-04-04 17:56:21 +02:00
/// <param name="session">The session.</param>
void SessionLeave(SessionInfo session);
2020-04-01 17:52:42 +02:00
/// <summary>
2020-04-04 17:56:21 +02:00
/// Handles the requested action by the session.
2020-04-01 17:52:42 +02:00
/// </summary>
2020-04-04 17:56:21 +02:00
/// <param name="session">The session.</param>
2020-04-01 17:52:42 +02:00
/// <param name="request">The requested action.</param>
void HandleRequest(SessionInfo session, PlaybackRequest request);
2020-04-01 17:52:42 +02:00
/// <summary>
/// Gets the info about the group for the clients.
/// </summary>
/// <value>The group info for the clients.</value>
GroupInfoView GetInfo();
}
}