aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-02 12:26:12 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-02 12:26:12 -0400
commit0fb581cfbb34a76b257cb57cd02cfab928517be0 (patch)
treea21812e05f4467320ccdbdac1ac0608a2ac5b783
parent799cc9735210f5bf189b632b1fa6b43869053ed8 (diff)
parentc5e86f0db725ff9d2af5ddd3f7fab8b9f2444d8e (diff)
Merge branch 'dev' of https://github.com/MediaBrowser/MediaBrowser into dev
-rw-r--r--MediaBrowser.Server.Implementations/Session/SessionManager.cs35
1 files changed, 23 insertions, 12 deletions
diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
index cc5aef54a..7f5033b98 100644
--- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs
+++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
@@ -305,7 +305,7 @@ namespace MediaBrowser.Server.Implementations.Session
}
}
- private async Task<MediaSourceInfo> GetMediaSource(BaseItem item, string mediaSourceId)
+ private async Task<MediaSourceInfo> GetMediaSource(IHasMediaSources item, string mediaSourceId)
{
var sources = await _mediaSourceManager.GetPlayackMediaSources(item.Id.ToString("N"), false, CancellationToken.None)
.ConfigureAwait(false);
@@ -334,11 +334,16 @@ namespace MediaBrowser.Server.Implementations.Session
{
var runtimeTicks = libraryItem.RunTimeTicks;
- var mediaSource = await GetMediaSource(libraryItem, info.MediaSourceId).ConfigureAwait(false);
-
- if (mediaSource != null)
+ MediaSourceInfo mediaSource = null;
+ var hasMediaSources = libraryItem as IHasMediaSources;
+ if (hasMediaSources != null)
{
- runtimeTicks = mediaSource.RunTimeTicks;
+ mediaSource = await GetMediaSource(hasMediaSources, info.MediaSourceId).ConfigureAwait(false);
+
+ if (mediaSource != null)
+ {
+ runtimeTicks = mediaSource.RunTimeTicks;
+ }
}
info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource);
@@ -414,12 +419,12 @@ namespace MediaBrowser.Server.Implementations.Session
if (!_activeConnections.TryGetValue(key, out sessionInfo))
{
sessionInfo = new SessionInfo
- {
- Client = appName,
- DeviceId = deviceId,
- ApplicationVersion = appVersion,
- Id = key.GetMD5().ToString("N")
- };
+ {
+ Client = appName,
+ DeviceId = deviceId,
+ ApplicationVersion = appVersion,
+ Id = key.GetMD5().ToString("N")
+ };
sessionInfo.DeviceName = deviceName;
sessionInfo.UserId = userId;
@@ -756,7 +761,13 @@ namespace MediaBrowser.Server.Implementations.Session
if (current == null || !string.Equals(current.Id, info.ItemId, StringComparison.OrdinalIgnoreCase))
{
- var mediaSource = await GetMediaSource(libraryItem, info.MediaSourceId).ConfigureAwait(false);
+ MediaSourceInfo mediaSource = null;
+
+ var hasMediaSources = libraryItem as IHasMediaSources;
+ if (hasMediaSources != null)
+ {
+ mediaSource = await GetMediaSource(hasMediaSources, info.MediaSourceId).ConfigureAwait(false);
+ }
info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource);
}