using MediaBrowser.Model.Session;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Session
{
public interface ISessionRemoteController
{
///
/// Supportses the specified session.
///
/// The session.
/// true if XXXX, false otherwise
bool Supports(SessionInfo session);
///
/// Sends the system command.
///
/// The session.
/// The command.
/// The cancellation token.
/// Task.
Task SendSystemCommand(SessionInfo session, SystemCommand command, CancellationToken cancellationToken);
///
/// Sends the message command.
///
/// The session.
/// The command.
/// The cancellation token.
/// Task.
Task SendMessageCommand(SessionInfo session, MessageCommand command, CancellationToken cancellationToken);
///
/// Sends the play command.
///
/// The session.
/// The command.
/// The cancellation token.
/// Task.
Task SendPlayCommand(SessionInfo session, PlayRequest command, CancellationToken cancellationToken);
///
/// Sends the browse command.
///
/// The session.
/// The command.
/// The cancellation token.
/// Task.
Task SendBrowseCommand(SessionInfo session, BrowseRequest command, CancellationToken cancellationToken);
///
/// Sends the playstate command.
///
/// The session.
/// The command.
/// The cancellation token.
/// Task.
Task SendPlaystateCommand(SessionInfo session, PlaystateRequest command, CancellationToken cancellationToken);
}
}