diff --git a/Emby.Dlna/ContentDirectory/ContentDirectory.cs b/Emby.Dlna/ContentDirectory/ContentDirectory.cs index d547ad8d43..fbd7090104 100644 --- a/Emby.Dlna/ContentDirectory/ContentDirectory.cs +++ b/Emby.Dlna/ContentDirectory/ContentDirectory.cs @@ -17,7 +17,7 @@ using MediaBrowser.Model.Xml; namespace Emby.Dlna.ContentDirectory { - public class ContentDirectory : BaseService, IContentDirectory, IDisposable + public class ContentDirectory : BaseService, IContentDirectory { private readonly ILibraryManager _libraryManager; private readonly IImageProcessor _imageProcessor; @@ -143,10 +143,5 @@ namespace Emby.Dlna.ContentDirectory return null; } - - public void Dispose() - { - - } } } diff --git a/Emby.Dlna/ContentDirectory/ControlHandler.cs b/Emby.Dlna/ContentDirectory/ControlHandler.cs index 205f4e8900..47d199e6e6 100644 --- a/Emby.Dlna/ContentDirectory/ControlHandler.cs +++ b/Emby.Dlna/ContentDirectory/ControlHandler.cs @@ -458,8 +458,7 @@ namespace Emby.Dlna.ContentDirectory { Limit = limit, StartIndex = startIndex, - SortBy = sortOrders.ToArray(sortOrders.Count), - SortOrder = sort.SortOrder, + OrderBy = sortOrders.Select(i => new Tuple(i, sort.SortOrder)).ToArray(), User = user, Recursive = true, IsMissing = false, @@ -828,7 +827,7 @@ namespace Emby.Dlna.ContentDirectory query.Parent = parent; query.SetUser(user); - query.OrderBy = new List> + query.OrderBy = new Tuple[] { new Tuple (ItemSortBy.DatePlayed, SortOrder.Descending), new Tuple (ItemSortBy.SortName, SortOrder.Ascending) @@ -1077,7 +1076,7 @@ namespace Emby.Dlna.ContentDirectory private QueryResult GetMusicLatest(BaseItem parent, User user, InternalItemsQuery query) { - query.SortBy = new string[] { }; + query.OrderBy = new Tuple[] { }; var items = _userViewManager.GetLatestItems(new LatestItemsQuery { @@ -1094,7 +1093,7 @@ namespace Emby.Dlna.ContentDirectory private QueryResult GetNextUp(BaseItem parent, User user, InternalItemsQuery query) { - query.SortBy = new string[] { }; + query.OrderBy = new Tuple[] { }; var result = _tvSeriesManager.GetNextUp(new NextUpQuery { @@ -1109,7 +1108,7 @@ namespace Emby.Dlna.ContentDirectory private QueryResult GetTvLatest(BaseItem parent, User user, InternalItemsQuery query) { - query.SortBy = new string[] { }; + query.OrderBy = new Tuple[] { }; var items = _userViewManager.GetLatestItems(new LatestItemsQuery { @@ -1126,7 +1125,7 @@ namespace Emby.Dlna.ContentDirectory private QueryResult GetMovieLatest(BaseItem parent, User user, InternalItemsQuery query) { - query.SortBy = new string[] { }; + query.OrderBy = new Tuple[] { }; var items = _userViewManager.GetLatestItems(new LatestItemsQuery { @@ -1236,8 +1235,7 @@ namespace Emby.Dlna.ContentDirectory sortOrders.Add(ItemSortBy.SortName); } - query.SortBy = sortOrders.ToArray(sortOrders.Count); - query.SortOrder = sort.SortOrder; + query.OrderBy = sortOrders.Select(i => new Tuple(i, sort.SortOrder)).ToArray(); } private QueryResult GetItemsFromPerson(Person person, User user, int? startIndex, int? limit) @@ -1246,7 +1244,7 @@ namespace Emby.Dlna.ContentDirectory { PersonIds = new[] { person.Id.ToString("N") }, IncludeItemTypes = new[] { typeof(Movie).Name, typeof(Series).Name, typeof(Trailer).Name }, - SortBy = new[] { ItemSortBy.SortName }, + OrderBy = new[] { ItemSortBy.SortName }.Select(i => new Tuple(i, SortOrder.Ascending)).ToArray(), Limit = limit, StartIndex = startIndex, DtoOptions = GetDtoOptions() diff --git a/Emby.Dlna/DlnaManager.cs b/Emby.Dlna/DlnaManager.cs index 847f636198..bdc523c8bc 100644 --- a/Emby.Dlna/DlnaManager.cs +++ b/Emby.Dlna/DlnaManager.cs @@ -316,7 +316,6 @@ namespace Emby.Dlna profile = ReserializeProfile(tempProfile); profile.Id = path.ToLower().GetMD5().ToString("N"); - profile.ProfileType = type; _profiles[path] = new Tuple(GetInternalProfileInfo(_fileSystem.GetFileInfo(path), type), profile); @@ -597,6 +596,7 @@ namespace Emby.Dlna public void Dispose() { + GC.SuppressFinalize(this); } } } \ No newline at end of file diff --git a/Emby.Dlna/Main/DlnaEntryPoint.cs b/Emby.Dlna/Main/DlnaEntryPoint.cs index a6facab7d7..3dd36a27bc 100644 --- a/Emby.Dlna/Main/DlnaEntryPoint.cs +++ b/Emby.Dlna/Main/DlnaEntryPoint.cs @@ -394,6 +394,7 @@ namespace Emby.Dlna.Main _communicationsServer.Dispose(); _communicationsServer = null; } + GC.SuppressFinalize(this); } public void DisposeDlnaServer() diff --git a/Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs b/Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs index 365354efd9..4ed74a6844 100644 --- a/Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs +++ b/Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs @@ -9,7 +9,7 @@ using MediaBrowser.Model.Xml; namespace Emby.Dlna.MediaReceiverRegistrar { - public class MediaReceiverRegistrar : BaseService, IMediaReceiverRegistrar, IDisposable + public class MediaReceiverRegistrar : BaseService, IMediaReceiverRegistrar { private readonly IServerConfigurationManager _config; protected readonly IXmlReaderSettingsFactory XmlReaderSettingsFactory; @@ -33,10 +33,5 @@ namespace Emby.Dlna.MediaReceiverRegistrar Logger, XmlReaderSettingsFactory) .ProcessControlRequest(request); } - - public void Dispose() - { - - } } } diff --git a/Emby.Dlna/PlayTo/Device.cs b/Emby.Dlna/PlayTo/Device.cs index 213e7367f0..b6b1c0c034 100644 --- a/Emby.Dlna/PlayTo/Device.cs +++ b/Emby.Dlna/PlayTo/Device.cs @@ -113,7 +113,7 @@ namespace Emby.Dlna.PlayTo private int GetInactiveTimerIntervalMs() { - return Timeout.Infinite; + return 60000; } public void Start() @@ -1105,6 +1105,7 @@ namespace Emby.Dlna.PlayTo _disposed = true; DisposeTimer(); + GC.SuppressFinalize(this); } } diff --git a/Emby.Dlna/PlayTo/PlayToController.cs b/Emby.Dlna/PlayTo/PlayToController.cs index 4b77f998d3..95b164212e 100644 --- a/Emby.Dlna/PlayTo/PlayToController.cs +++ b/Emby.Dlna/PlayTo/PlayToController.cs @@ -48,23 +48,7 @@ namespace Emby.Dlna.PlayTo { get { - var lastDateKnownActivity = _creationTime > _device.DateLastActivity ? _creationTime : _device.DateLastActivity; - - if (DateTime.UtcNow >= lastDateKnownActivity.AddSeconds(120)) - { - try - { - // Session is inactive, mark it for Disposal and don't start the elapsed timer. - _sessionManager.ReportSessionEnded(_session.Id); - } - catch (Exception ex) - { - _logger.ErrorException("Error in ReportSessionEnded", ex); - } - return false; - } - - return _device != null; + return !_disposed && _device != null; } } @@ -386,6 +370,9 @@ namespace Emby.Dlna.PlayTo case PlaystateCommand.Unpause: return _device.SetPlay(); + case PlaystateCommand.PlayPause: + return _device.IsPaused ? _device.SetPlay() : _device.SetPause(); + case PlaystateCommand.Seek: { return Seek(command.SeekPositionTicks ?? 0); @@ -682,6 +669,7 @@ namespace Emby.Dlna.PlayTo _device.OnDeviceUnavailable = null; _device.Dispose(); + GC.SuppressFinalize(this); } } diff --git a/Emby.Dlna/PlayTo/PlayToManager.cs b/Emby.Dlna/PlayTo/PlayToManager.cs index e29ef78a88..dd30dfc3d9 100644 --- a/Emby.Dlna/PlayTo/PlayToManager.cs +++ b/Emby.Dlna/PlayTo/PlayToManager.cs @@ -194,7 +194,10 @@ namespace Emby.Dlna.PlayTo GeneralCommandType.SetSubtitleStreamIndex.ToString() }, - SupportsMediaControl = true + SupportsMediaControl = true, + + // xbox one creates a new uuid everytime it restarts + SupportsPersistentIdentifier = (device.Properties.ModelName ?? string.Empty).IndexOf("xbox", StringComparison.OrdinalIgnoreCase) == -1 }); _logger.Info("DLNA Session created for {0} - {1}", device.Properties.Name, device.Properties.ModelName); @@ -225,6 +228,7 @@ namespace Emby.Dlna.PlayTo { _disposed = true; _deviceDiscovery.DeviceDiscovered -= _deviceDiscovery_DeviceDiscovered; + GC.SuppressFinalize(this); } } } diff --git a/Emby.Drawing.ImageMagick/Emby.Drawing.ImageMagick.csproj b/Emby.Drawing.ImageMagick/Emby.Drawing.ImageMagick.csproj index 98e99c92b1..c4cef629ad 100644 --- a/Emby.Drawing.ImageMagick/Emby.Drawing.ImageMagick.csproj +++ b/Emby.Drawing.ImageMagick/Emby.Drawing.ImageMagick.csproj @@ -31,8 +31,7 @@ - ..\packages\ImageMagickSharp.1.0.0.18\lib\net45\ImageMagickSharp.dll - True + ..\packages\ImageMagickSharp.1.0.0.19\lib\net45\ImageMagickSharp.dll @@ -55,9 +54,6 @@ - - - {9142eefa-7570-41e1-bfcc-468bb571af2f} @@ -72,6 +68,9 @@ MediaBrowser.Model + + +