using System;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Syncplay;
namespace MediaBrowser.Controller.Syncplay
{
///
/// Interface ISyncplayController.
///
public interface ISyncplayController
{
///
/// Gets the group id.
///
/// The group id.
Guid GetGroupId();
///
/// Gets the playing item id.
///
/// The playing item id.
Guid GetPlayingItemId();
///
/// Checks if the group is empty.
///
/// If the group is empty.
bool IsGroupEmpty();
///
/// Initializes the group with the session's info.
///
/// The session.
void InitGroup(SessionInfo session);
///
/// Adds the session to the group.
///
/// The session.
void SessionJoin(SessionInfo session);
///
/// Removes the session from the group.
///
/// The session.
void SessionLeave(SessionInfo session);
///
/// Handles the requested action by the session.
///
/// The session.
/// The requested action.
void HandleRequest(SessionInfo session, SyncplayRequestInfo request);
///
/// Gets the info about the group for the clients.
///
/// The group info for the clients.
GroupInfoView GetInfo();
}
}