aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Roku
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Roku')
-rw-r--r--MediaBrowser.Server.Implementations/Roku/RokuControllerFactory.cs36
-rw-r--r--MediaBrowser.Server.Implementations/Roku/RokuSessionController.cs144
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);
- }
- }
-}