diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Roku')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Roku/RokuControllerFactory.cs | 36 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs | 144 |
2 files changed, 0 insertions, 180 deletions
diff --git a/MediaBrowser.Server.Implementations/Roku/RokuControllerFactory.cs b/MediaBrowser.Server.Implementations/Roku/RokuControllerFactory.cs deleted file mode 100644 index 3ec2f53ec..000000000 --- a/MediaBrowser.Server.Implementations/Roku/RokuControllerFactory.cs +++ /dev/null @@ -1,36 +0,0 @@ -using MediaBrowser.Common.Net; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Session; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Generic; - -namespace MediaBrowser.Server.Implementations.Roku -{ - public class RokuControllerFactory : ISessionControllerFactory - { - private readonly IHttpClient _httpClient; - private readonly IJsonSerializer _json; - private readonly IServerApplicationHost _appHost; - - public RokuControllerFactory(IHttpClient httpClient, IJsonSerializer json, IServerApplicationHost appHost) - { - _httpClient = httpClient; - _json = json; - _appHost = appHost; - } - - public ISessionController GetSessionController(SessionInfo session) - { - if (string.Equals(session.Client, "roku", StringComparison.OrdinalIgnoreCase)) - { - session.PlayableMediaTypes = new List<string> { MediaType.Video, MediaType.Audio }; - - return new RokuSessionController(_httpClient, _json, _appHost, session); - } - - return null; - } - } -} diff --git a/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs b/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs deleted file mode 100644 index ad9db947a..000000000 --- a/MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs +++ /dev/null @@ -1,144 +0,0 @@ -using MediaBrowser.Common.Net; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Session; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Net; -using MediaBrowser.Model.Serialization; -using MediaBrowser.Model.Session; -using MediaBrowser.Model.System; -using System; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.Roku -{ - public class RokuSessionController : ISessionController - { - private readonly IHttpClient _httpClient; - private readonly IJsonSerializer _json; - private readonly IServerApplicationHost _appHost; - - public SessionInfo Session { get; private set; } - - public RokuSessionController(IHttpClient httpClient, IJsonSerializer json, IServerApplicationHost appHost, SessionInfo session) - { - _httpClient = httpClient; - _json = json; - _appHost = appHost; - Session = session; - } - - public bool SupportsMediaRemoteControl - { - get { return false; } - } - - public bool IsSessionActive - { - get - { - return (DateTime.UtcNow - Session.LastActivityDate).TotalMinutes <= 10; - } - } - - public Task SendSessionEndedNotification(SessionInfoDto sessionInfo, CancellationToken cancellationToken) - { - return Task.FromResult(true); - } - - public Task SendPlaybackStartNotification(SessionInfoDto sessionInfo, CancellationToken cancellationToken) - { - return Task.FromResult(true); - } - - public Task SendPlaybackStoppedNotification(SessionInfoDto sessionInfo, CancellationToken cancellationToken) - { - return Task.FromResult(true); - } - - public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken) - { - return SendCommand(new WebSocketMessage<PlayRequest> - { - MessageType = "Play", - Data = command - - }, cancellationToken); - } - - public Task SendPlaystateCommand(PlaystateRequest command, CancellationToken cancellationToken) - { - return SendCommand(new WebSocketMessage<PlaystateRequest> - { - MessageType = "Playstate", - Data = command - - }, cancellationToken); - } - - public Task SendLibraryUpdateInfo(LibraryUpdateInfo info, CancellationToken cancellationToken) - { - // Roku probably won't care about this - return Task.FromResult(true); - } - - public Task SendRestartRequiredNotification(CancellationToken cancellationToken) - { - return SendCommand(new WebSocketMessage<SystemInfo> - { - MessageType = "RestartRequired", - Data = _appHost.GetSystemInfo() - - }, cancellationToken); - } - - public Task SendUserDataChangeInfo(UserDataChangeInfo info, CancellationToken cancellationToken) - { - // Roku probably won't care about this - return Task.FromResult(true); - } - - public Task SendServerShutdownNotification(CancellationToken cancellationToken) - { - return SendCommand(new WebSocketMessage<string> - { - MessageType = "ServerShuttingDown", - Data = string.Empty - - }, cancellationToken); - } - - public Task SendServerRestartNotification(CancellationToken cancellationToken) - { - return SendCommand(new WebSocketMessage<string> - { - MessageType = "ServerRestarting", - Data = string.Empty - - }, cancellationToken); - } - - private Task SendCommand(object obj, CancellationToken cancellationToken) - { - var json = _json.SerializeToString(obj); - - return _httpClient.Post(new HttpRequestOptions - { - Url = "http://" + Session.RemoteEndPoint + "/mb/remotecontrol", - CancellationToken = cancellationToken, - RequestContent = json, - RequestContentType = "application/json" - }); - } - - public Task SendGeneralCommand(GeneralCommand command, CancellationToken cancellationToken) - { - return SendCommand(new WebSocketMessage<GeneralCommand> - { - MessageType = "Command", - Data = command - - }, cancellationToken); - } - } -} |
