diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-11 00:49:18 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-11 00:49:18 -0500 |
| commit | ef8b02d28543f9e9070c00877070016f032793bc (patch) | |
| tree | 5598a7559da82ca4e29fb6b6753a1fe47a70b1ad /MediaBrowser.Server.Implementations | |
| parent | ec4000404d59ee0e8342805cf7ce0c4ca04023b4 (diff) | |
added dvdlib for better dvd runtimes
Diffstat (limited to 'MediaBrowser.Server.Implementations')
5 files changed, 38 insertions, 15 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs index 798632af7a..2419320a54 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs @@ -360,11 +360,19 @@ namespace MediaBrowser.Server.Implementations.HttpServer var compress = ShouldCompressResponse(requestContext, contentType); - var hasOptions = GetStaticResult(requestContext, responseHeaders, contentType, factoryFn, compress, isHeadRequest).Result; + var hasOptions = GetStaticResult(requestContext, responseHeaders, contentType, factoryFn, compress, isHeadRequest); - AddResponseHeaders(hasOptions, responseHeaders); + return GetStaticResultTask(hasOptions, responseHeaders); + } + + private async Task<object> GetStaticResultTask(Task<IHasOptions> optionsTask, + IEnumerable<KeyValuePair<string, string>> responseHeaders) + { + var options = await optionsTask.ConfigureAwait(false); + + AddResponseHeaders(options, responseHeaders); - return hasOptions; + return options; } /// <summary> diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 8e4e71fd42..fc5497fa39 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -407,6 +407,11 @@ namespace MediaBrowser.Server.Implementations.Library } } + RegisterItem(item); + } + + public void RegisterItem(BaseItem item) + { LibraryItemsCache.AddOrUpdate(item.Id, item, delegate { return item; }); } diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index b6622a3100..182ce1cbc7 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -30,21 +30,23 @@ namespace MediaBrowser.Server.Implementations.LiveTv private readonly ILogger _logger; private readonly IItemRepository _itemRepo; private readonly IUserManager _userManager; + private readonly ILibraryManager _libraryManager; private readonly LiveTvDtoService _tvDtoService; private readonly List<ILiveTvService> _services = new List<ILiveTvService>(); - private Dictionary<Guid, LiveTvChannel> _channels = new Dictionary<Guid, LiveTvChannel>(); + private List<Guid> _channelIdList = new List<Guid>(); private Dictionary<Guid, LiveTvProgram> _programs = new Dictionary<Guid, LiveTvProgram>(); - public LiveTvManager(IServerApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor, IUserDataManager userDataManager, IDtoService dtoService, IUserManager userManager) + public LiveTvManager(IServerApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor, IUserDataManager userDataManager, IDtoService dtoService, IUserManager userManager, ILibraryManager libraryManager) { _appPaths = appPaths; _fileSystem = fileSystem; _logger = logger; _itemRepo = itemRepo; _userManager = userManager; + _libraryManager = libraryManager; _tvDtoService = new LiveTvDtoService(dtoService, userDataManager, imageProcessor, logger, _itemRepo); } @@ -75,7 +77,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv { var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId)); - IEnumerable<LiveTvChannel> channels = _channels.Values; + var channels = _channelIdList.Select(_libraryManager.GetItemById) + .Where(i => i != null) + .OfType<LiveTvChannel>(); if (user != null) { @@ -144,10 +148,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv private LiveTvChannel GetInternalChannel(Guid id) { - LiveTvChannel channel = null; - - _channels.TryGetValue(id, out channel); - return channel; + return _libraryManager.GetItemById(id) as LiveTvChannel; } public LiveTvProgram GetInternalProgram(string id) @@ -320,6 +321,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv await item.RefreshMetadata(cancellationToken, forceSave: isNew, resetResolveArgs: false); + _libraryManager.RegisterItem((BaseItem)item); + return item; } @@ -477,6 +480,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv var item = await GetChannel(channelInfo.Item2, channelInfo.Item1, cancellationToken).ConfigureAwait(false); list.Add(item); + + _libraryManager.RegisterItem(item); } catch (OperationCanceledException) { @@ -493,7 +498,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv progress.Report(5 * percent + 10); } - _channels = list.ToDictionary(i => i.Id); + + _channelIdList = list.Select(i => i.Id).ToList(); progress.Report(15); numComplete = 0; diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index b083b7b847..6513446b7e 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -48,6 +48,13 @@ <Reference Include="Alchemy"> <HintPath>..\packages\Alchemy.2.2.1\lib\net40\Alchemy.dll</HintPath> </Reference> + <Reference Include="BDInfo, Version=1.0.5124.611, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.7\lib\net35\BDInfo.dll</HintPath> + </Reference> + <Reference Include="DvdLib"> + <HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.7\lib\net35\DvdLib.dll</HintPath> + </Reference> <Reference Include="ServiceStack.Api.Swagger"> <HintPath>..\ThirdParty\ServiceStack\ServiceStack.Api.Swagger.dll</HintPath> </Reference> @@ -68,9 +75,6 @@ <Reference Include="MoreLinq"> <HintPath>..\packages\morelinq.1.0.16006\lib\net35\MoreLinq.dll</HintPath> </Reference> - <Reference Include="BDInfo"> - <HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.5\lib\net20\BDInfo.dll</HintPath> - </Reference> <Reference Include="System.Data.SQLite" Condition=" '$(ConfigurationName)' == 'Release Mono' "> <SpecificVersion>False</SpecificVersion> <HintPath>..\ThirdParty\System.Data.SQLite.ManagedOnly\x86\1.0.90.0\net40\System.Data.SQLite.dll</HintPath> diff --git a/MediaBrowser.Server.Implementations/packages.config b/MediaBrowser.Server.Implementations/packages.config index a504bc6ab5..503e916e5e 100644 --- a/MediaBrowser.Server.Implementations/packages.config +++ b/MediaBrowser.Server.Implementations/packages.config @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Alchemy" version="2.2.1" targetFramework="net45" />
- <package id="MediaBrowser.BdInfo" version="1.0.0.5" targetFramework="net45" />
+ <package id="MediaBrowser.BdInfo" version="1.0.0.7" targetFramework="net45" />
<package id="morelinq" version="1.0.16006" targetFramework="net45" />
<package id="System.Data.SQLite.x86" version="1.0.90.0" targetFramework="net45" />
</packages>
\ No newline at end of file |
