diff options
Diffstat (limited to 'MediaBrowser.Dlna')
| -rw-r--r-- | MediaBrowser.Dlna/ContentDirectory/ContentDirectory.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Dlna/Didl/DidlBuilder.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Dlna/PlayTo/PlayToController.cs | 26 | ||||
| -rw-r--r-- | MediaBrowser.Dlna/PlayTo/PlayToManager.cs | 2 |
5 files changed, 26 insertions, 20 deletions
diff --git a/MediaBrowser.Dlna/ContentDirectory/ContentDirectory.cs b/MediaBrowser.Dlna/ContentDirectory/ContentDirectory.cs index d4be1b2f4e..75f1579ac4 100644 --- a/MediaBrowser.Dlna/ContentDirectory/ContentDirectory.cs +++ b/MediaBrowser.Dlna/ContentDirectory/ContentDirectory.cs @@ -67,7 +67,8 @@ namespace MediaBrowser.Dlna.ContentDirectory _dlna.GetDefaultProfile(); var serverAddress = request.RequestedUrl.Substring(0, request.RequestedUrl.IndexOf("/dlna", StringComparison.OrdinalIgnoreCase)); - + string accessToken = null; + var user = GetUser(profile); return new ControlHandler( @@ -75,6 +76,7 @@ namespace MediaBrowser.Dlna.ContentDirectory _libraryManager, profile, serverAddress, + accessToken, _imageProcessor, _userDataManager, user, diff --git a/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs b/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs index e480326e9b..5d6ee5c73e 100644 --- a/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs +++ b/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs @@ -45,7 +45,7 @@ namespace MediaBrowser.Dlna.ContentDirectory private readonly DeviceProfile _profile; - public ControlHandler(ILogger logger, ILibraryManager libraryManager, DeviceProfile profile, string serverAddress, IImageProcessor imageProcessor, IUserDataManager userDataManager, User user, int systemUpdateId, IServerConfigurationManager config, ILocalizationManager localization, IChannelManager channelManager) + public ControlHandler(ILogger logger, ILibraryManager libraryManager, DeviceProfile profile, string serverAddress, string accessToken, IImageProcessor imageProcessor, IUserDataManager userDataManager, User user, int systemUpdateId, IServerConfigurationManager config, ILocalizationManager localization, IChannelManager channelManager) : base(config, logger) { _libraryManager = libraryManager; @@ -55,7 +55,7 @@ namespace MediaBrowser.Dlna.ContentDirectory _channelManager = channelManager; _profile = profile; - _didlBuilder = new DidlBuilder(profile, user, imageProcessor, serverAddress, userDataManager, localization); + _didlBuilder = new DidlBuilder(profile, user, imageProcessor, serverAddress, accessToken, userDataManager, localization); } protected override IEnumerable<KeyValuePair<string, string>> GetResult(string methodName, Headers methodParams) diff --git a/MediaBrowser.Dlna/Didl/DidlBuilder.cs b/MediaBrowser.Dlna/Didl/DidlBuilder.cs index 59dcbdecbb..af7c8dbed0 100644 --- a/MediaBrowser.Dlna/Didl/DidlBuilder.cs +++ b/MediaBrowser.Dlna/Didl/DidlBuilder.cs @@ -33,17 +33,19 @@ namespace MediaBrowser.Dlna.Didl private readonly DeviceProfile _profile; private readonly IImageProcessor _imageProcessor; private readonly string _serverAddress; + private readonly string _accessToken; private readonly User _user; private readonly IUserDataManager _userDataManager; private readonly ILocalizationManager _localization; - public DidlBuilder(DeviceProfile profile, User user, IImageProcessor imageProcessor, string serverAddress, IUserDataManager userDataManager, ILocalizationManager localization) + public DidlBuilder(DeviceProfile profile, User user, IImageProcessor imageProcessor, string serverAddress, string accessToken, IUserDataManager userDataManager, ILocalizationManager localization) { _profile = profile; _imageProcessor = imageProcessor; _serverAddress = serverAddress; _userDataManager = userDataManager; _localization = localization; + _accessToken = accessToken; _user = user; } @@ -161,7 +163,7 @@ namespace MediaBrowser.Dlna.Didl AddVideoResource(container, video, deviceId, filter, contentFeature, streamInfo); } - foreach (var subtitle in streamInfo.GetExternalSubtitles(_serverAddress, false)) + foreach (var subtitle in streamInfo.GetExternalSubtitles(_serverAddress, _accessToken, false)) { AddSubtitleElement(container, subtitle); } @@ -206,7 +208,7 @@ namespace MediaBrowser.Dlna.Didl { var res = container.OwnerDocument.CreateElement(string.Empty, "res", NS_DIDL); - var url = streamInfo.ToDlnaUrl(_serverAddress); + var url = streamInfo.ToDlnaUrl(_serverAddress, _accessToken); res.InnerText = url; @@ -351,7 +353,7 @@ namespace MediaBrowser.Dlna.Didl }); } - var url = streamInfo.ToDlnaUrl(_serverAddress); + var url = streamInfo.ToDlnaUrl(_serverAddress, _accessToken); res.InnerText = url; diff --git a/MediaBrowser.Dlna/PlayTo/PlayToController.cs b/MediaBrowser.Dlna/PlayTo/PlayToController.cs index bd2b169ad9..5746231618 100644 --- a/MediaBrowser.Dlna/PlayTo/PlayToController.cs +++ b/MediaBrowser.Dlna/PlayTo/PlayToController.cs @@ -38,6 +38,7 @@ namespace MediaBrowser.Dlna.PlayTo private readonly DeviceDiscovery _deviceDiscovery; private readonly string _serverAddress; + private readonly string _accessToken; public bool IsSessionActive { @@ -54,7 +55,7 @@ namespace MediaBrowser.Dlna.PlayTo private Timer _updateTimer; - public PlayToController(SessionInfo session, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, ILogger logger, IDlnaManager dlnaManager, IUserManager userManager, IImageProcessor imageProcessor, string serverAddress, DeviceDiscovery deviceDiscovery, IUserDataManager userDataManager, ILocalizationManager localization) + public PlayToController(SessionInfo session, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, ILogger logger, IDlnaManager dlnaManager, IUserManager userManager, IImageProcessor imageProcessor, string serverAddress, string accessToken, DeviceDiscovery deviceDiscovery, IUserDataManager userDataManager, ILocalizationManager localization) { _session = session; _itemRepository = itemRepository; @@ -67,6 +68,7 @@ namespace MediaBrowser.Dlna.PlayTo _deviceDiscovery = deviceDiscovery; _userDataManager = userDataManager; _localization = localization; + _accessToken = accessToken; _logger = logger; } @@ -306,18 +308,16 @@ namespace MediaBrowser.Dlna.PlayTo var playlist = new List<PlaylistItem>(); var isFirst = true; - var serverAddress = GetServerAddress(); - foreach (var item in items) { if (isFirst && command.StartPositionTicks.HasValue) { - playlist.Add(CreatePlaylistItem(item, user, command.StartPositionTicks.Value, serverAddress)); + playlist.Add(CreatePlaylistItem(item, user, command.StartPositionTicks.Value)); isFirst = false; } else { - playlist.Add(CreatePlaylistItem(item, user, 0, serverAddress)); + playlist.Add(CreatePlaylistItem(item, user, 0)); } } @@ -381,7 +381,7 @@ namespace MediaBrowser.Dlna.PlayTo if (info.Item != null && !info.IsDirectStream) { var user = _session.UserId.HasValue ? _userManager.GetUserById(_session.UserId.Value) : null; - var newItem = CreatePlaylistItem(info.Item, user, newPosition, GetServerAddress(), info.MediaSourceId, info.AudioStreamIndex, info.SubtitleStreamIndex); + var newItem = CreatePlaylistItem(info.Item, user, newPosition, info.MediaSourceId, info.AudioStreamIndex, info.SubtitleStreamIndex); await _device.SetAvTransport(newItem.StreamUrl, GetDlnaHeaders(newItem), newItem.Didl).ConfigureAwait(false); @@ -458,12 +458,12 @@ namespace MediaBrowser.Dlna.PlayTo } } - private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks, string serverAddress) + private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks) { - return CreatePlaylistItem(item, user, startPostionTicks, serverAddress, null, null, null); + return CreatePlaylistItem(item, user, startPostionTicks, null, null, null); } - private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks, string serverAddress, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex) + private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex) { var deviceInfo = _device.Properties; @@ -478,9 +478,9 @@ namespace MediaBrowser.Dlna.PlayTo var playlistItem = GetPlaylistItem(item, mediaSources, profile, _session.DeviceId, mediaSourceId, audioStreamIndex, subtitleStreamIndex); playlistItem.StreamInfo.StartPositionTicks = startPostionTicks; - playlistItem.StreamUrl = playlistItem.StreamInfo.ToUrl(serverAddress); + playlistItem.StreamUrl = playlistItem.StreamInfo.ToUrl(_serverAddress, _accessToken); - var itemXml = new DidlBuilder(profile, user, _imageProcessor, serverAddress, _userDataManager, _localization) + var itemXml = new DidlBuilder(profile, user, _imageProcessor, _serverAddress, _accessToken, _userDataManager, _localization) .GetItemDidl(item, null, _session.DeviceId, new Filter(), playlistItem.StreamInfo); playlistItem.Didl = itemXml; @@ -745,7 +745,7 @@ namespace MediaBrowser.Dlna.PlayTo var newPosition = progress.PositionTicks ?? 0; var user = _session.UserId.HasValue ? _userManager.GetUserById(_session.UserId.Value) : null; - var newItem = CreatePlaylistItem(info.Item, user, newPosition, GetServerAddress(), info.MediaSourceId, newIndex, info.SubtitleStreamIndex); + var newItem = CreatePlaylistItem(info.Item, user, newPosition, info.MediaSourceId, newIndex, info.SubtitleStreamIndex); await _device.SetAvTransport(newItem.StreamUrl, GetDlnaHeaders(newItem), newItem.Didl).ConfigureAwait(false); @@ -771,7 +771,7 @@ namespace MediaBrowser.Dlna.PlayTo var newPosition = progress.PositionTicks ?? 0; var user = _session.UserId.HasValue ? _userManager.GetUserById(_session.UserId.Value) : null; - var newItem = CreatePlaylistItem(info.Item, user, newPosition, GetServerAddress(), info.MediaSourceId, info.AudioStreamIndex, newIndex); + var newItem = CreatePlaylistItem(info.Item, user, newPosition, info.MediaSourceId, info.AudioStreamIndex, newIndex); await _device.SetAvTransport(newItem.StreamUrl, GetDlnaHeaders(newItem), newItem.Didl).ConfigureAwait(false); diff --git a/MediaBrowser.Dlna/PlayTo/PlayToManager.cs b/MediaBrowser.Dlna/PlayTo/PlayToManager.cs index 7c73406b97..9a9a976d35 100644 --- a/MediaBrowser.Dlna/PlayTo/PlayToManager.cs +++ b/MediaBrowser.Dlna/PlayTo/PlayToManager.cs @@ -98,6 +98,7 @@ namespace MediaBrowser.Dlna.PlayTo if (controller == null) { var serverAddress = GetServerAddress(localIp); + string accessToken = null; sessionInfo.SessionController = controller = new PlayToController(sessionInfo, _sessionManager, @@ -108,6 +109,7 @@ namespace MediaBrowser.Dlna.PlayTo _userManager, _imageProcessor, serverAddress, + accessToken, _deviceDiscovery, _userDataManager, _localization); |
