update javascript connection manager to latest feature set

This commit is contained in:
Luke Pulverenti
2015-02-15 19:33:06 -05:00
parent 18ff8aba74
commit 8051ea9b1b
19 changed files with 221 additions and 58 deletions

View File

@@ -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,

View File

@@ -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)

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);