added dvdlib for better dvd runtimes

This commit is contained in:
Luke Pulverenti
2014-01-11 00:49:18 -05:00
parent ec4000404d
commit ef8b02d285
16 changed files with 80 additions and 228 deletions

View File

@@ -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);
}
return hasOptions;
private async Task<object> GetStaticResultTask(Task<IHasOptions> optionsTask,
IEnumerable<KeyValuePair<string, string>> responseHeaders)
{
var options = await optionsTask.ConfigureAwait(false);
AddResponseHeaders(options, responseHeaders);
return options;
}
/// <summary>

View File

@@ -407,6 +407,11 @@ namespace MediaBrowser.Server.Implementations.Library
}
}
RegisterItem(item);
}
public void RegisterItem(BaseItem item)
{
LibraryItemsCache.AddOrUpdate(item.Id, item, delegate { return item; });
}

View File

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

View File

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

View File

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