aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-03 19:35:19 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-03 19:35:19 -0400
commitd5ea8ca3ad378fc7e0a18ad314e1dfce07003ab6 (patch)
tree4742a665e3455389a9795ff8b6c292263b3876e8
parentd0babf322dad6624ee15622d11db52e58db5197f (diff)
move classes to portable
-rw-r--r--Emby.Server.Implementations/Emby.Server.Implementations.csproj30
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs)59
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs)39
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs)5
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs)13
-rw-r--r--Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs)9
-rw-r--r--Emby.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs)29
-rw-r--r--Emby.Server.Implementations/LiveTv/LiveStreamHelper.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/LiveStreamHelper.cs)6
-rw-r--r--Emby.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/LiveTvManager.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs)65
-rw-r--r--Emby.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs)6
-rw-r--r--Emby.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs)6
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs)10
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs)3
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs)2
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs (renamed from MediaBrowser.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs)2
-rw-r--r--Emby.Server.Implementations/Session/HttpSessionController.cs (renamed from MediaBrowser.Server.Implementations/Session/HttpSessionController.cs)2
-rw-r--r--Emby.Server.Implementations/Session/SessionManager.cs (renamed from MediaBrowser.Server.Implementations/Session/SessionManager.cs)11
-rw-r--r--Emby.Server.Implementations/Session/SessionWebSocketListener.cs (renamed from MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs)2
-rw-r--r--Emby.Server.Implementations/Session/WebSocketController.cs (renamed from MediaBrowser.Server.Implementations/Session/WebSocketController.cs)2
-rw-r--r--Emby.Server.Implementations/project.json1
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs2
-rw-r--r--MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj376
-rw-r--r--MediaBrowser.Server.Startup.Common/ApplicationHost.cs5
35 files changed, 355 insertions, 354 deletions
diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj
index 322b6773f..7eb6a67d4 100644
--- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj
+++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj
@@ -110,8 +110,34 @@
<Compile Include="Library\Validators\StudiosValidator.cs" />
<Compile Include="Library\Validators\YearsPostScanTask.cs" />
<Compile Include="LiveTv\ChannelImageProvider.cs" />
+ <Compile Include="LiveTv\EmbyTV\DirectRecorder.cs" />
+ <Compile Include="LiveTv\EmbyTV\EmbyTV.cs" />
+ <Compile Include="LiveTv\EmbyTV\EmbyTVRegistration.cs" />
+ <Compile Include="LiveTv\EmbyTV\EncodedRecorder.cs" />
+ <Compile Include="LiveTv\EmbyTV\EntryPoint.cs" />
+ <Compile Include="LiveTv\EmbyTV\IRecorder.cs" />
+ <Compile Include="LiveTv\EmbyTV\ItemDataProvider.cs" />
+ <Compile Include="LiveTv\EmbyTV\RecordingHelper.cs" />
+ <Compile Include="LiveTv\EmbyTV\SeriesTimerManager.cs" />
+ <Compile Include="LiveTv\EmbyTV\TimerManager.cs" />
+ <Compile Include="LiveTv\Listings\SchedulesDirect.cs" />
+ <Compile Include="LiveTv\Listings\XmlTvListingsProvider.cs" />
+ <Compile Include="LiveTv\LiveStreamHelper.cs" />
+ <Compile Include="LiveTv\LiveTvConfigurationFactory.cs" />
+ <Compile Include="LiveTv\LiveTvDtoService.cs" />
+ <Compile Include="LiveTv\LiveTvManager.cs" />
+ <Compile Include="LiveTv\LiveTvMediaSourceProvider.cs" />
<Compile Include="LiveTv\ProgramImageProvider.cs" />
<Compile Include="LiveTv\RecordingImageProvider.cs" />
+ <Compile Include="LiveTv\RefreshChannelsScheduledTask.cs" />
+ <Compile Include="LiveTv\TunerHosts\BaseTunerHost.cs" />
+ <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunDiscovery.cs" />
+ <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunHost.cs" />
+ <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunLiveStream.cs" />
+ <Compile Include="LiveTv\TunerHosts\M3uParser.cs" />
+ <Compile Include="LiveTv\TunerHosts\M3UTunerHost.cs" />
+ <Compile Include="LiveTv\TunerHosts\MulticastStream.cs" />
+ <Compile Include="LiveTv\TunerHosts\QueueStream.cs" />
<Compile Include="Logging\PatternsLogger.cs" />
<Compile Include="MediaEncoder\EncodingManager.cs" />
<Compile Include="News\NewsEntryPoint.cs" />
@@ -136,6 +162,10 @@
<Compile Include="ScheduledTasks\SystemUpdateTask.cs" />
<Compile Include="ServerManager\ServerManager.cs" />
<Compile Include="ServerManager\WebSocketConnection.cs" />
+ <Compile Include="Session\HttpSessionController.cs" />
+ <Compile Include="Session\SessionManager.cs" />
+ <Compile Include="Session\SessionWebSocketListener.cs" />
+ <Compile Include="Session\WebSocketController.cs" />
<Compile Include="Sorting\AiredEpisodeOrderComparer.cs" />
<Compile Include="Sorting\AirTimeComparer.cs" />
<Compile Include="Sorting\AlbumArtistComparer.cs" />
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs
index 4137ab2cf..6bb06843a 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs
@@ -9,7 +9,7 @@ using MediaBrowser.Controller.IO;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Logging;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public class DirectRecorder : IRecorder
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
index 1e5f760ca..b8b0cb73c 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
@@ -34,10 +34,12 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Diagnostics;
using MediaBrowser.Model.FileOrganization;
-using Microsoft.Win32;
+using MediaBrowser.Model.System;
+using MediaBrowser.Model.Threading;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public class EmbyTV : ILiveTvService, ISupportsDirectStreamProvider, ISupportsNewTimerIds, IDisposable
{
@@ -58,6 +60,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
private readonly IProviderManager _providerManager;
private readonly IFileOrganizationService _organizationService;
private readonly IMediaEncoder _mediaEncoder;
+ private readonly IProcessFactory _processFactory;
+ private readonly ISystemEvents _systemEvents;
public static EmbyTV Current;
@@ -67,7 +71,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
private readonly ConcurrentDictionary<string, ActiveRecordingInfo> _activeRecordings =
new ConcurrentDictionary<string, ActiveRecordingInfo>(StringComparer.OrdinalIgnoreCase);
- public EmbyTV(IServerApplicationHost appHost, ILogger logger, IJsonSerializer jsonSerializer, IHttpClient httpClient, IServerConfigurationManager config, ILiveTvManager liveTvManager, IFileSystem fileSystem, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager, IFileOrganizationService organizationService, IMediaEncoder mediaEncoder)
+ public EmbyTV(IServerApplicationHost appHost, ILogger logger, IJsonSerializer jsonSerializer, IHttpClient httpClient, IServerConfigurationManager config, ILiveTvManager liveTvManager, IFileSystem fileSystem, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager, IFileOrganizationService organizationService, IMediaEncoder mediaEncoder, ITimerFactory timerFactory, IProcessFactory processFactory, ISystemEvents systemEvents)
{
Current = this;
@@ -81,11 +85,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
_providerManager = providerManager;
_organizationService = organizationService;
_mediaEncoder = mediaEncoder;
+ _processFactory = processFactory;
+ _systemEvents = systemEvents;
_liveTvManager = (LiveTvManager)liveTvManager;
_jsonSerializer = jsonSerializer;
_seriesTimerProvider = new SeriesTimerManager(fileSystem, jsonSerializer, _logger, Path.Combine(DataPath, "seriestimers"));
- _timerProvider = new TimerManager(fileSystem, jsonSerializer, _logger, Path.Combine(DataPath, "timers"), _logger);
+ _timerProvider = new TimerManager(fileSystem, jsonSerializer, _logger, Path.Combine(DataPath, "timers"), _logger, timerFactory);
_timerProvider.TimerFired += _timerProvider_TimerFired;
_config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated;
@@ -103,10 +109,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
{
_timerProvider.RestartTimers();
- SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
+ _systemEvents.Resume += _systemEvents_Resume;
CreateRecordingFolders();
}
+ private void _systemEvents_Resume(object sender, EventArgs e)
+ {
+ _timerProvider.RestartTimers();
+ }
+
private void OnRecordingFoldersChanged()
{
CreateRecordingFolders();
@@ -230,16 +241,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
}
}
- void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
- {
- _logger.Info("Power mode changed to {0}", e.Mode);
-
- if (e.Mode == PowerModes.Resume)
- {
- _timerProvider.RestartTimers();
- }
- }
-
public string Name
{
get { return "Emby"; }
@@ -987,7 +988,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
_liveStreamsSemaphore.Release();
}
- throw new ApplicationException("Tuner not found.");
+ throw new Exception("Tuner not found.");
}
public async Task<List<MediaSourceInfo>> GetChannelStreamMediaSources(string channelId, CancellationToken cancellationToken)
@@ -1030,7 +1031,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
IsInfiniteStream = true,
RequiresOpening = false,
RequiresClosing = false,
- Protocol = Model.MediaInfo.MediaProtocol.Http,
+ Protocol = MediaBrowser.Model.MediaInfo.MediaProtocol.Http,
BufferMs = 0
};
@@ -1352,7 +1353,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
timer.StartDate = DateTime.UtcNow.AddSeconds(retryIntervalSeconds);
_timerProvider.AddOrUpdate(timer);
}
- else if (File.Exists(recordPath))
+ else if (_fileSystem.FileExists(recordPath))
{
timer.RecordingPath = recordPath;
timer.Status = RecordingStatus.Completed;
@@ -1408,7 +1409,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
.Where(i => i.Status == RecordingStatus.Completed && !string.IsNullOrWhiteSpace(i.RecordingPath))
.Where(i => string.Equals(i.SeriesTimerId, seriesTimerId, StringComparison.OrdinalIgnoreCase))
.OrderByDescending(i => i.EndDate)
- .Where(i => File.Exists(i.RecordingPath))
+ .Where(i => _fileSystem.FileExists(i.RecordingPath))
.Skip(seriesTimer.KeepUpTo - 1)
.ToList();
@@ -1456,13 +1457,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
{
try
{
- File.Delete(timer.RecordingPath);
- }
- catch (DirectoryNotFoundException)
- {
-
+ _fileSystem.DeleteFile(timer.RecordingPath);
}
- catch (FileNotFoundException)
+ catch (IOException)
{
}
@@ -1518,7 +1515,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
if (regInfo.IsValid)
{
- return new EncodedRecorder(_logger, _fileSystem, _mediaEncoder, _config.ApplicationPaths, _jsonSerializer, config, _httpClient);
+ return new EncodedRecorder(_logger, _fileSystem, _mediaEncoder, _config.ApplicationPaths, _jsonSerializer, config, _httpClient, _processFactory);
}
}
@@ -1574,7 +1571,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
{
var nfoPath = Path.Combine(seriesPath, "tvshow.nfo");
- if (File.Exists(nfoPath))
+ if (_fileSystem.FileExists(nfoPath))
{
return;
}
@@ -1609,7 +1606,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
{
var nfoPath = Path.ChangeExtension(recordingPath, ".nfo");
- if (File.Exists(nfoPath))
+ if (_fileSystem.FileExists(nfoPath))
{
return;
}
@@ -1930,7 +1927,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
var defaultFolder = RecordingPath;
var defaultName = "Recordings";
- if (Directory.Exists(defaultFolder))
+ if (_fileSystem.DirectoryExists(defaultFolder))
{
list.Add(new VirtualFolderInfo
{
@@ -1940,7 +1937,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
}
var customPath = GetConfiguration().MovieRecordingPath;
- if ((!string.IsNullOrWhiteSpace(customPath) && !string.Equals(customPath, defaultFolder, StringComparison.OrdinalIgnoreCase)) && Directory.Exists(customPath))
+ if ((!string.IsNullOrWhiteSpace(customPath) && !string.Equals(customPath, defaultFolder, StringComparison.OrdinalIgnoreCase)) && _fileSystem.DirectoryExists(customPath))
{
list.Add(new VirtualFolderInfo
{
@@ -1951,7 +1948,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
}
customPath = GetConfiguration().SeriesRecordingPath;
- if ((!string.IsNullOrWhiteSpace(customPath) && !string.Equals(customPath, defaultFolder, StringComparison.OrdinalIgnoreCase)) && Directory.Exists(customPath))
+ if ((!string.IsNullOrWhiteSpace(customPath) && !string.Equals(customPath, defaultFolder, StringComparison.OrdinalIgnoreCase)) && _fileSystem.DirectoryExists(customPath))
{
list.Add(new VirtualFolderInfo
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs
index 675fca325..b339537ae 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs
@@ -1,7 +1,7 @@
using System.Threading.Tasks;
using MediaBrowser.Common.Security;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public class EmbyTVRegistration : IRequiresRegistration
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs
index 95c2b5ebb..93ba9c420 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs
@@ -13,13 +13,14 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Controller;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.MediaEncoding;
+using MediaBrowser.Model.Diagnostics;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Serialization;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public class EncodedRecorder : IRecorder
{
@@ -32,11 +33,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
private bool _hasExited;
private Stream _logFileStream;
private string _targetPath;
- private Process _process;
+ private IProcess _process;
+ private readonly IProcessFactory _processFactory;
private readonly IJsonSerializer _json;
private readonly TaskCompletionSource<bool> _taskCompletionSource = new TaskCompletionSource<bool>();
- public EncodedRecorder(ILogger logger, IFileSystem fileSystem, IMediaEncoder mediaEncoder, IServerApplicationPaths appPaths, IJsonSerializer json, LiveTvOptions liveTvOptions, IHttpClient httpClient)
+ public EncodedRecorder(ILogger logger, IFileSystem fileSystem, IMediaEncoder mediaEncoder, IServerApplicationPaths appPaths, IJsonSerializer json, LiveTvOptions liveTvOptions, IHttpClient httpClient, IProcessFactory processFactory)
{
_logger = logger;
_fileSystem = fileSystem;
@@ -45,6 +47,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
_json = json;
_liveTvOptions = liveTvOptions;
_httpClient = httpClient;
+ _processFactory = processFactory;
}
private string OutputFormat
@@ -82,27 +85,23 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
_targetPath = targetFile;
_fileSystem.CreateDirectory(Path.GetDirectoryName(targetFile));
- var process = new Process
+ var process = _processFactory.Create(new ProcessOptions
{
- StartInfo = new ProcessStartInfo
- {
- CreateNoWindow = true,
- UseShellExecute = false,
-
- // Must consume both stdout and stderr or deadlocks may occur
- //RedirectStandardOutput = true,
- RedirectStandardError = true,
- RedirectStandardInput = true,
+ CreateNoWindow = true,
+ UseShellExecute = false,
- FileName = _mediaEncoder.EncoderPath,
- Arguments = GetCommandLineArgs(mediaSource, inputFile, targetFile, duration),
+ // Must consume both stdout and stderr or deadlocks may occur
+ //RedirectStandardOutput = true,
+ RedirectStandardError = true,
+ RedirectStandardInput = true,
- WindowStyle = ProcessWindowStyle.Hidden,
- ErrorDialog = false
- },
+ FileName = _mediaEncoder.EncoderPath,
+ Arguments = GetCommandLineArgs(mediaSource, inputFile, targetFile, duration),
+ IsHidden = true,
+ ErrorDialog = false,
EnableRaisingEvents = true
- };
+ });
_process = process;
@@ -251,7 +250,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
/// <summary>
/// Processes the exited.
/// </summary>
- private void OnFfMpegProcessExited(Process process, string inputFile)
+ private void OnFfMpegProcessExited(IProcess process, string inputFile)
{
_hasExited = true;
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs
index 713cb9cd3..139cf570e 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs
@@ -1,6 +1,6 @@
using MediaBrowser.Controller.Plugins;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public class EntryPoint : IServerEntryPoint
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs
index 5706b6ae9..3b5e60c4a 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs
@@ -3,7 +3,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.Dto;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public interface IRecorder
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs
index 9bda9c3f6..ded4f04c4 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs
@@ -8,7 +8,7 @@ using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public class ItemDataProvider<T>
where T : class
@@ -54,9 +54,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
catch (FileNotFoundException)
{
}
- catch (DirectoryNotFoundException)
- {
- }
catch (IOException ex)
{
Logger.ErrorException("Error deserializing {0}", ex, jsonFile);
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs
index f7b4b3fde..0ae5971bc 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs
@@ -4,7 +4,7 @@ using System;
using System.Globalization;
using MediaBrowser.Model.LiveTv;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
internal class RecordingHelper
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs
index b2a347b77..7bf6bf1ca 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs
@@ -6,7 +6,7 @@ using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public class SeriesTimerManager : ItemDataProvider<SeriesTimerInfo>
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs
index 1e01df29d..35868d318 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs
@@ -12,20 +12,23 @@ using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.LiveTv;
+using MediaBrowser.Model.Threading;
-namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
+namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
public class TimerManager : ItemDataProvider<TimerInfo>
{
- private readonly ConcurrentDictionary<string, Timer> _timers = new ConcurrentDictionary<string, Timer>(StringComparer.OrdinalIgnoreCase);
+ private readonly ConcurrentDictionary<string, ITimer> _timers = new ConcurrentDictionary<string, ITimer>(StringComparer.OrdinalIgnoreCase);
private readonly ILogger _logger;
public event EventHandler<GenericEventArgs<TimerInfo>> TimerFired;
+ private readonly ITimerFactory _timerFactory;
- public TimerManager(IFileSystem fileSystem, IJsonSerializer jsonSerializer, ILogger logger, string dataPath, ILogger logger1)
+ public TimerManager(IFileSystem fileSystem, IJsonSerializer jsonSerializer, ILogger logger, string dataPath, ILogger logger1, ITimerFactory timerFactory)
: base(fileSystem, jsonSerializer, logger, dataPath, (r1, r2) => string.Equals(r1.Id, r2.Id, StringComparison.OrdinalIgnoreCase))
{
_logger = logger1;
+ _timerFactory = timerFactory;
}
public void RestartTimers()
@@ -126,7 +129,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
private void StartTimer(TimerInfo item, TimeSpan dueTime)
{
- var timer = new Timer(TimerCallback, item.Id, dueTime, TimeSpan.Zero);
+ var timer = _timerFactory.Create(TimerCallback, item.Id, dueTime, TimeSpan.Zero);
if (_timers.TryAdd(item.Id, timer))
{
@@ -141,7 +144,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
private void StopTimer(TimerInfo item)
{
- Timer timer;
+ ITimer timer;
if (_timers.TryRemove(item.Id, out timer))
{
timer.Dispose();
diff --git a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs b/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
index d5abcf98e..7beaed338 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
+++ b/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
@@ -16,7 +16,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-namespace MediaBrowser.Server.Implementations.LiveTv.Listings
+namespace Emby.Server.Implementations.LiveTv.Listings
{
public class SchedulesDirect : IListingsProvider
{
@@ -589,13 +589,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
{
var imageIdString = "[";
- programIds.ForEach(i =>
+ foreach (var i in programIds)
{
if (!imageIdString.Contains(i.Substring(0, 10)))
{
imageIdString += "\"" + i.Substring(0, 10) + "\",";
}
- });
+ }
+
imageIdString = imageIdString.TrimEnd(',') + "]";
var httpOptions = new HttpRequestOptions()
@@ -822,7 +823,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
return root.token;
}
- throw new ApplicationException("Could not authenticate with Schedules Direct Error: " + root.message);
+ throw new Exception("Could not authenticate with Schedules Direct Error: " + root.message);
}
}
diff --git a/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs b/Emby.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs
index ef498a43d..57723e3c5 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs
+++ b/Emby.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs
@@ -15,21 +15,24 @@ using Emby.XmlTv.Entities;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
-namespace MediaBrowser.Server.Implementations.LiveTv.Listings
+namespace Emby.Server.Implementations.LiveTv.Listings
{
public class XmlTvListingsProvider : IListingsProvider
{
private readonly IServerConfigurationManager _config;
private readonly IHttpClient _httpClient;
private readonly ILogger _logger;
+ private readonly IFileSystem _fileSystem;
- public XmlTvListingsProvider(IServerConfigurationManager config, IHttpClient httpClient, ILogger logger)
+ public XmlTvListingsProvider(IServerConfigurationManager config, IHttpClient httpClient, ILogger logger, IFileSystem fileSystem)
{
_config = config;
_httpClient = httpClient;
_logger = logger;
+ _fileSystem = fileSystem;
}
public string Name
@@ -58,7 +61,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
var cacheFilename = DateTime.UtcNow.DayOfYear.ToString(CultureInfo.InvariantCulture) + "-" + DateTime.UtcNow.Hour.ToString(CultureInfo.InvariantCulture) + ".xml";
var cacheFile = Path.Combine(_config.ApplicationPaths.CachePath, "xmltv", cacheFilename);
- if (File.Exists(cacheFile))
+ if (_fileSystem.FileExists(cacheFile))
{
return cacheFile;
}
@@ -78,13 +81,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
}).ConfigureAwait(false);
- Directory.CreateDirectory(Path.GetDirectoryName(cacheFile));
+ _fileSystem.CreateDirectory(Path.GetDirectoryName(cacheFile));
- using (var stream = File.OpenRead(tempFile))
+ using (var stream = _fileSystem.OpenRead(tempFile))
{
using (var reader = new StreamReader(stream, Encoding.UTF8))
{
- using (var fileStream = File.OpenWrite(cacheFile))
+ using (var fileStream = _fileSystem.GetFileStream(cacheFile, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read))
{
using (var writer = new StreamWriter(fileStream))
{
@@ -138,10 +141,10 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
IsSeries = p.Episode != null,
IsRepeat = p.IsRepeat,
IsPremiere = p.Premiere != null,
- IsKids = p.Categories.Any(c => info.KidsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)),
- IsMovie = p.Categories.Any(c => info.MovieCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)),
- IsNews = p.Categories.Any(c => info.NewsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)),
- IsSports = p.Categories.Any(c => info.SportsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)),
+ IsKids = p.Categories.Any(c => info.KidsCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
+ IsMovie = p.Categories.Any(c => info.MovieCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
+ IsNews = p.Categories.Any(c => info.NewsCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
+ IsSports = p.Categories.Any(c => info.SportsCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
ImageUrl = p.Icon != null && !String.IsNullOrEmpty(p.Icon.Source) ? p.Icon.Source : null,
HasImage = p.Icon != null && !String.IsNullOrEmpty(p.Icon.Source),
OfficialRating = p.Rating != null && !String.IsNullOrEmpty(p.Rating.Value) ? p.Rating.Value : null,
@@ -177,7 +180,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
if (channels != null)
{
- channels.ForEach(c =>
+ foreach (var c in channels)
{
var channelNumber = info.GetMappedChannel(c.Number);
var match = results.FirstOrDefault(r => string.Equals(r.Id, channelNumber, StringComparison.OrdinalIgnoreCase));
@@ -186,14 +189,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
{
c.ImageUrl = match.Icon.Source;
}
- });
+ }
}
}
public Task Validate(ListingsProviderInfo info, bool validateLogin, bool validateListings)
{
// Assume all urls are valid. check files for existence
- if (!info.Path.StartsWith("http", StringComparison.OrdinalIgnoreCase) && !File.Exists(info.Path))
+ if (!info.Path.StartsWith("http", StringComparison.OrdinalIgnoreCase) && !_fileSystem.FileExists(info.Path))
{
throw new FileNotFoundException("Could not find the XmlTv file specified:", info.Path);
}
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveStreamHelper.cs b/Emby.Server.Implementations/LiveTv/LiveStreamHelper.cs
index 336c32bae..a338ae23a 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveStreamHelper.cs
+++ b/Emby.Server.Implementations/LiveTv/LiveStreamHelper.cs
@@ -8,7 +8,7 @@ using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Logging;
-namespace MediaBrowser.Server.Implementations.LiveTv
+namespace Emby.Server.Implementations.LiveTv
{
public class LiveStreamHelper
{
@@ -57,7 +57,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
mediaSource.RunTimeTicks = null;
}
- var audioStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == Model.Entities.MediaStreamType.Audio);
+ var audioStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == MediaBrowser.Model.Entities.MediaStreamType.Audio);
if (audioStream == null || audioStream.Index == -1)
{
@@ -68,7 +68,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
mediaSource.DefaultAudioStreamIndex = audioStream.Index;
}
- var videoStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == Model.Entities.MediaStreamType.Video);
+ var videoStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == MediaBrowser.Model.Entities.MediaStreamType.Video);
if (videoStream != null)
{
if (!videoStream.BitRate.HasValue)
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs b/Emby.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs
index 57d1d79e1..2be642737 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs
+++ b/Emby.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs
@@ -2,7 +2,7 @@
using MediaBrowser.Model.LiveTv;
using System.Collections.Generic;
-namespace MediaBrowser.Server.Implementations.LiveTv
+namespace Emby.Server.Implementations.LiveTv
{
public class LiveTvConfigurationFactory : IConfigurationFactory
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs b/Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs
index c7a2d295d..4e7161521 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs
+++ b/Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs
@@ -14,7 +14,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-namespace MediaBrowser.Server.Implementations.LiveTv
+namespace Emby.Server.Implementations.LiveTv
{
public class LiveTvDtoService
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
index 93fc5459a..adec66858 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -25,8 +25,6 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
-using IniParser;
-using IniParser.Model;
using MediaBrowser.Common.Events;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Security;
@@ -37,9 +35,9 @@ using MediaBrowser.Model.Events;
using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Tasks;
-using MediaBrowser.Server.Implementations.LiveTv.Listings;
+using Emby.Server.Implementations.LiveTv.Listings;
-namespace MediaBrowser.Server.Implementations.LiveTv
+namespace Emby.Server.Implementations.LiveTv
{
/// <summary>
/// Class LiveTvManager
@@ -2967,43 +2965,46 @@ namespace MediaBrowser.Server.Implementations.LiveTv
public List<NameValuePair> GetSatIniMappings()
{
- var names = GetType().Assembly.GetManifestResourceNames().Where(i => i.IndexOf("SatIp.ini", StringComparison.OrdinalIgnoreCase) != -1).ToList();
+ return new List<NameValuePair>();
+ //var names = GetType().Assembly.GetManifestResourceNames().Where(i => i.IndexOf("SatIp.ini", StringComparison.OrdinalIgnoreCase) != -1).ToList();
- return names.Select(GetSatIniMappings).Where(i => i != null).DistinctBy(i => i.Value.Split('|')[0]).ToList();
+ //return names.Select(GetSatIniMappings).Where(i => i != null).DistinctBy(i => i.Value.Split('|')[0]).ToList();
}
public NameValuePair GetSatIniMappings(string resource)
{
- using (var stream = GetType().Assembly.GetManifestResourceStream(resource))
- {
- using (var reader = new StreamReader(stream))
- {
- var parser = new StreamIniDataParser();
- IniData data = parser.ReadData(reader);
-
- var satType1 = data["SATTYPE"]["1"];
- var satType2 = data["SATTYPE"]["2"];
-
- if (string.IsNullOrWhiteSpace(satType2))
- {
- return null;
- }
-
- var srch = "SatIp.ini.";
- var filename = Path.GetFileName(resource);
-
- return new NameValuePair
- {
- Name = satType1 + " " + satType2,
- Value = satType2 + "|" + filename.Substring(filename.IndexOf(srch) + srch.Length)
- };
- }
- }
+ return new NameValuePair();
+ //using (var stream = GetType().Assembly.GetManifestResourceStream(resource))
+ //{
+ // using (var reader = new StreamReader(stream))
+ // {
+ // var parser = new StreamIniDataParser();
+ // IniData data = parser.ReadData(reader);
+
+ // var satType1 = data["SATTYPE"]["1"];
+ // var satType2 = data["SATTYPE"]["2"];
+
+ // if (string.IsNullOrWhiteSpace(satType2))
+ // {
+ // return null;
+ // }
+
+ // var srch = "SatIp.ini.";
+ // var filename = Path.GetFileName(resource);
+
+ // return new NameValuePair
+ // {
+ // Name = satType1 + " " + satType2,
+ // Value = satType2 + "|" + filename.Substring(filename.IndexOf(srch) + srch.Length)
+ // };
+ // }
+ //}
}
public Task<List<ChannelInfo>> GetSatChannelScanResult(TunerHostInfo info, CancellationToken cancellationToken)
{
- return new TunerHosts.SatIp.ChannelScan(_logger).Scan(info, cancellationToken);
+ return Task.FromResult(new List<ChannelInfo>());
+ //return new TunerHosts.SatIp.ChannelScan(_logger).Scan(info, cancellationToken);
}
public Task<List<ChannelInfo>> GetChannelsForListingsProvider(string id, CancellationToken cancellationToken)
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs b/Emby.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs
index 79d321e7e..e0a35686e 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs
+++ b/Emby.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs
@@ -15,7 +15,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.Dlna;
-namespace MediaBrowser.Server.Implementations.LiveTv
+namespace Emby.Server.Implementations.LiveTv
{
public class LiveTvMediaSourceProvider : IMediaSourceProvider
{
@@ -164,7 +164,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
// Null this out so that it will be treated like a live stream
mediaSource.RunTimeTicks = null;
- var audioStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == Model.Entities.MediaStreamType.Audio);
+ var audioStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == MediaBrowser.Model.Entities.MediaStreamType.Audio);
if (audioStream == null || audioStream.Index == -1)
{
@@ -175,7 +175,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
mediaSource.DefaultAudioStreamIndex = audioStream.Index;
}
- var videoStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == Model.Entities.MediaStreamType.Video);
+ var videoStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == MediaBrowser.Model.Entities.MediaStreamType.Video);
if (videoStream != null)
{
if (!videoStream.BitRate.HasValue)
diff --git a/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs b/Emby.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs
index bf0ed90ea..f2806292d 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs
+++ b/Emby.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs
@@ -7,7 +7,7 @@ using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Model.Tasks;
-namespace MediaBrowser.Server.Implementations.LiveTv
+namespace Emby.Server.Implementations.LiveTv
{
public class RefreshChannelsScheduledTask : IScheduledTask, IConfigurableScheduledTask
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs
index 0fe74798f..ad43a611b 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs
@@ -15,7 +15,7 @@ using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Serialization;
-namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts
+namespace Emby.Server.Implementations.LiveTv.TunerHosts
{
public abstract class BaseTunerHost
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs
index f039da927..f2e48fbc0 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs
@@ -14,7 +14,7 @@ using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Events;
using MediaBrowser.Model.Serialization;
-namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
+namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{
public class HdHomerunDiscovery : IServerEntryPoint
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs
index a32f4cca2..2d75367d9 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs
@@ -24,7 +24,7 @@ using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Net;
-namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
+namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{
public class HdHomerunHost : BaseTunerHost, ITunerHost, IConfigurableTunerHost
{
@@ -59,7 +59,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
private string GetChannelId(TunerHostInfo info, Channels i)
{
- var id = ChannelIdPrefix + i.GuideNumber.ToString(CultureInfo.InvariantCulture);
+ var id = ChannelIdPrefix + i.GuideNumber;
if (info.DataVersion >= 1)
{
@@ -97,7 +97,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
return lineup.Select(i => new ChannelInfo
{
Name = i.GuideName,
- Number = i.GuideNumber.ToString(CultureInfo.InvariantCulture),
+ Number = i.GuideNumber,
Id = GetChannelId(info, i),
IsFavorite = i.Favorite,
TunerHostId = info.Id,
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs
index 7bb4dc92e..1e8057f87 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs
@@ -10,14 +10,8 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.MediaInfo;
-using MediaBrowser.Server.Implementations.LiveTv.EmbyTV;
-using System.Collections.Generic;
-using System.Linq;
-using MediaBrowser.Common.Extensions;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.IO;
-
-namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
+
+namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{
public class HdHomerunLiveStream : LiveStream, IDirectStreamProvider
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs
index b85b3810a..756c3377c 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs
@@ -19,9 +19,8 @@ using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Server.Implementations.LiveTv.EmbyTV;
-namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts
+namespace Emby.Server.Implementations.LiveTv.TunerHosts
{
public class M3UTunerHost : BaseTunerHost, ITunerHost, IConfigurableTunerHost
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs
index 3bfe902df..8784d5753 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs
@@ -14,7 +14,7 @@ using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Model.Logging;
-namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts
+namespace Emby.Server.Implementations.LiveTv.TunerHosts
{
public class M3uParser
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
index 8ff3fd6c1..360a2cee7 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
@@ -7,7 +7,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.Logging;
-namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts
+namespace Emby.Server.Implementations.LiveTv.TunerHosts
{
public class MulticastStream
{
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs
index c1566b900..7605641b2 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs
@@ -8,7 +8,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.Logging;
-namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts
+namespace Emby.Server.Implementations.LiveTv.TunerHosts
{
public class QueueStream
{
diff --git a/MediaBrowser.Server.Implementations/Session/HttpSessionController.cs b/Emby.Server.Implementations/Session/HttpSessionController.cs
index f54c452cc..cea5d9b40 100644
--- a/MediaBrowser.Server.Implementations/Session/HttpSessionController.cs
+++ b/Emby.Server.Implementations/Session/HttpSessionController.cs
@@ -12,7 +12,7 @@ using System.Net;
using System.Threading;
using System.Threading.Tasks;
-namespace MediaBrowser.Server.Implementations.Session
+namespace Emby.Server.Implementations.Session
{
public class HttpSessionController : ISessionController, IDisposable
{
diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs
index 6d86ff091..960fe0739 100644
--- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs
+++ b/Emby.Server.Implementations/Session/SessionManager.cs
@@ -30,8 +30,9 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Net;
+using MediaBrowser.Model.Threading;
-namespace MediaBrowser.Server.Implementations.Session
+namespace Emby.Server.Implementations.Session
{
/// <summary>
/// Class SessionManager
@@ -61,6 +62,7 @@ namespace MediaBrowser.Server.Implementations.Session
private readonly IAuthenticationRepository _authRepo;
private readonly IDeviceManager _deviceManager;
+ private readonly ITimerFactory _timerFactory;
/// <summary>
/// The _active connections
@@ -94,7 +96,7 @@ namespace MediaBrowser.Server.Implementations.Session
private readonly SemaphoreSlim _sessionLock = new SemaphoreSlim(1, 1);
- public SessionManager(IUserDataManager userDataManager, ILogger logger, ILibraryManager libraryManager, IUserManager userManager, IMusicManager musicManager, IDtoService dtoService, IImageProcessor imageProcessor, IJsonSerializer jsonSerializer, IServerApplicationHost appHost, IHttpClient httpClient, IAuthenticationRepository authRepo, IDeviceManager deviceManager, IMediaSourceManager mediaSourceManager)
+ public SessionManager(IUserDataManager userDataManager, ILogger logger, ILibraryManager libraryManager, IUserManager userManager, IMusicManager musicManager, IDtoService dtoService, IImageProcessor imageProcessor, IJsonSerializer jsonSerializer, IServerApplicationHost appHost, IHttpClient httpClient, IAuthenticationRepository authRepo, IDeviceManager deviceManager, IMediaSourceManager mediaSourceManager, ITimerFactory timerFactory)
{
_userDataManager = userDataManager;
_logger = logger;
@@ -109,6 +111,7 @@ namespace MediaBrowser.Server.Implementations.Session
_authRepo = authRepo;
_deviceManager = deviceManager;
_mediaSourceManager = mediaSourceManager;
+ _timerFactory = timerFactory;
_deviceManager.DeviceOptionsUpdated += _deviceManager_DeviceOptionsUpdated;
}
@@ -503,13 +506,13 @@ namespace MediaBrowser.Server.Implementations.Session
return users;
}
- private Timer _idleTimer;
+ private ITimer _idleTimer;
private void StartIdleCheckTimer()
{
if (_idleTimer == null)
{
- _idleTimer = new Timer(CheckForIdlePlayback, null, TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(5));
+ _idleTimer = _timerFactory.Create(CheckForIdlePlayback, null, TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(5));
}
}
private void StopIdleCheckTimer()
diff --git a/MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs b/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
index 9d30135a7..336c2caee 100644
--- a/MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs
+++ b/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
@@ -11,7 +11,7 @@ using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Model.Services;
-namespace MediaBrowser.Server.Implementations.Session
+namespace Emby.Server.Implementations.Session
{
/// <summary>
/// Class SessionWebSocketListener
diff --git a/MediaBrowser.Server.Implementations/Session/WebSocketController.cs b/Emby.Server.Implementations/Session/WebSocketController.cs
index 765664299..f0ff0b5dd 100644
--- a/MediaBrowser.Server.Implementations/Session/WebSocketController.cs
+++ b/Emby.Server.Implementations/Session/WebSocketController.cs
@@ -11,7 +11,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-namespace MediaBrowser.Server.Implementations.Session
+namespace Emby.Server.Implementations.Session
{
public class WebSocketController : ISessionController, IDisposable
{
diff --git a/Emby.Server.Implementations/project.json b/Emby.Server.Implementations/project.json
index 9d80f8ce4..0f4463ed2 100644
--- a/Emby.Server.Implementations/project.json
+++ b/Emby.Server.Implementations/project.json
@@ -1,6 +1,7 @@
{
"supports": {},
"dependencies": {
+ "Emby.XmlTv": "1.0.0.63",
"MediaBrowser.Naming": "1.0.0.59",
"UniversalDetector": "1.0.1"
},
diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs
index 8dca261a3..55101ce10f 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs
@@ -4,6 +4,7 @@ using System.Globalization;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Emby.Server.Implementations.LiveTv.TunerHosts;
using MediaBrowser.Model.IO;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Extensions;
@@ -20,7 +21,6 @@ using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Server.Implementations.LiveTv.EmbyTV;
namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp
{
diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
index 9289f3506..6118e1501 100644
--- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
+++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
@@ -144,32 +144,6 @@
<Compile Include="IO\FileRefresher.cs" />
<Compile Include="IO\LibraryMonitor.cs" />
<Compile Include="IO\MemoryStreamProvider.cs" />
- <Compile Include="LiveTv\EmbyTV\DirectRecorder.cs" />
- <Compile Include="LiveTv\EmbyTV\EmbyTV.cs" />
- <Compile Include="LiveTv\EmbyTV\EmbyTVRegistration.cs" />
- <Compile Include="LiveTv\EmbyTV\EncodedRecorder.cs" />
- <Compile Include="LiveTv\EmbyTV\EntryPoint.cs" />
- <Compile Include="LiveTv\EmbyTV\IRecorder.cs" />
- <Compile Include="LiveTv\EmbyTV\ItemDataProvider.cs" />
- <Compile Include="LiveTv\EmbyTV\RecordingHelper.cs" />
- <Compile Include="LiveTv\EmbyTV\SeriesTimerManager.cs" />
- <Compile Include="LiveTv\EmbyTV\TimerManager.cs" />
- <Compile Include="LiveTv\Listings\SchedulesDirect.cs" />
- <Compile Include="LiveTv\Listings\XmlTvListingsProvider.cs" />
- <Compile Include="LiveTv\LiveStreamHelper.cs" />
- <Compile Include="LiveTv\LiveTvConfigurationFactory.cs" />
- <Compile Include="LiveTv\LiveTvDtoService.cs" />
- <Compile Include="LiveTv\LiveTvManager.cs" />
- <Compile Include="LiveTv\LiveTvMediaSourceProvider.cs" />
- <Compile Include="LiveTv\TunerHosts\BaseTunerHost.cs" />
- <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunHost.cs" />
- <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunDiscovery.cs" />
- <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunLiveStream.cs" />
- <Compile Include="LiveTv\TunerHosts\M3uParser.cs" />
- <Compile Include="LiveTv\TunerHosts\M3UTunerHost.cs" />
- <Compile Include="LiveTv\RefreshChannelsScheduledTask.cs" />
- <Compile Include="LiveTv\TunerHosts\MulticastStream.cs" />
- <Compile Include="LiveTv\TunerHosts\QueueStream.cs" />
<Compile Include="LiveTv\TunerHosts\SatIp\ChannelScan.cs" />
<Compile Include="LiveTv\TunerHosts\SatIp\Rtcp\ReportBlock.cs" />
<Compile Include="LiveTv\TunerHosts\SatIp\Rtcp\RtcpAppPacket.cs" />
@@ -188,8 +162,8 @@
<Compile Include="LiveTv\TunerHosts\SatIp\Rtsp\RtspResponse.cs" />
<Compile Include="LiveTv\TunerHosts\SatIp\Rtsp\RtspSession.cs" />
<Compile Include="LiveTv\TunerHosts\SatIp\Rtsp\RtspStatusCode.cs" />
- <Compile Include="LiveTv\TunerHosts\SatIp\SatIpHost.cs" />
<Compile Include="LiveTv\TunerHosts\SatIp\SatIpDiscovery.cs" />
+ <Compile Include="LiveTv\TunerHosts\SatIp\SatIpHost.cs" />
<Compile Include="LiveTv\TunerHosts\SatIp\TransmissionMode.cs" />
<Compile Include="LiveTv\TunerHosts\SatIp\Utils.cs" />
<Compile Include="Localization\LocalizationManager.cs" />
@@ -212,12 +186,6 @@
<Compile Include="Security\AuthenticationRepository.cs" />
<Compile Include="Security\EncryptionManager.cs" />
<Compile Include="ServerApplicationPaths.cs" />
- <Compile Include="Session\HttpSessionController.cs" />
- <Compile Include="Session\SessionManager.cs">
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="Session\SessionWebSocketListener.cs" />
- <Compile Include="Session\WebSocketController.cs" />
<Compile Include="Persistence\SqliteDisplayPreferencesRepository.cs" />
<Compile Include="Persistence\SqliteItemRepository.cs" />
<Compile Include="Persistence\SqliteUserDataRepository.cs" />
@@ -227,6 +195,10 @@
<Compile Include="Udp\UdpServer.cs" />
</ItemGroup>
<ItemGroup>
+ <ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj">
+ <Project>{e383961b-9356-4d5d-8233-9a1079d03055}</Project>
+ <Name>Emby.Server.Implementations</Name>
+ </ProjectReference>
<ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
<Project>{9142EEFA-7570-41E1-BFCC-468BB571AF2F}</Project>
<Name>MediaBrowser.Common</Name>
@@ -360,175 +332,6 @@
<EmbeddedResource Include="Localization\Ratings\au.txt" />
<EmbeddedResource Include="Localization\iso6392.txt" />
<None Include="app.config" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0030.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0049.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0070.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0090.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0100.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0130.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0160.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0170.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0192.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0200.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0215.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0235.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0255.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0260.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0282.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0305.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0308.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0310.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0315.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0330.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0360.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0380.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0390.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0400.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0420.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0435.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0450.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0460.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0475.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0480.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0490.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0505.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0510.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0520.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0525.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0530.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0549.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0560.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0570.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0600.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0620.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0642.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0650.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0660.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0685.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0705.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0721.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0740.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0750.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0765.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0785.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0830.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0851.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0865.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0875.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0880.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0900.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0915.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0922.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0935.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0950.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\0965.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1005.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1030.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1055.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1082.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1100.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1105.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1130.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1155.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1160.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1180.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1195.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1222.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1240.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1250.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1280.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1320.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1340.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1380.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1400.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1440.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1500.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1520.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1540.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1560.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1590.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1600 OPTUS D1 FTA %28160.0E%29.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1600.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1620.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1640.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1660.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1690.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1720.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1800.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\1830.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2210.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2230.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2250.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2270.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2290.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2310.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2330.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2350.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2370.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2390.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2410.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2432.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2451.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2470.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2489.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2500.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2527.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2550.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2570.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2590.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2608.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2630.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2650.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2669.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2690.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2710.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2728.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2730.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2750.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2760.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2770.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2780.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2812.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2820.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2830.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2850.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2873.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2880.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2881.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2882.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2900.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2930.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2950.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2970.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2985.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\2990.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3020.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3045.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3070.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3100.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3125.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3150.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3169.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3195.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3225.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3255.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3285.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3300.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3325.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3355.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3380.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3400.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3420.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3450.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3460.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3475.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3490.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3520.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3527.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3550.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3560.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3592.ini" />
- <EmbeddedResource Include="LiveTv\TunerHosts\SatIp\ini\satellite\3594.ini" />
<EmbeddedResource Include="Localization\Core\ar.json" />
<EmbeddedResource Include="Localization\Core\bg-BG.json" />
<EmbeddedResource Include="Localization\Core\ca.json" />
@@ -570,6 +373,175 @@
<EmbeddedResource Include="Localization\Core\zh-HK.json" />
<EmbeddedResource Include="Localization\Core\zh-TW.json" />
<EmbeddedResource Include="Localization\countries.json" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0030.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0049.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0070.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0090.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0100.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0130.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0160.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0170.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0192.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0200.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0215.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0235.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0255.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0260.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0282.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0305.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0308.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0310.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0315.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0330.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0360.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0380.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0390.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0400.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0420.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0435.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0450.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0460.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0475.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0480.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0490.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0505.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0510.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0520.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0525.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0530.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0549.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0560.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0570.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0600.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0620.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0642.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0650.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0660.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0685.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0705.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0721.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0740.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0750.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0765.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0785.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0830.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0851.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0865.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0875.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0880.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0900.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0915.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0922.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0935.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0950.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\0965.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1005.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1030.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1055.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1082.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1100.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1105.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1130.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1155.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1160.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1180.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1195.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1222.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1240.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1250.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1280.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1320.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1340.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1380.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1400.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1440.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1500.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1520.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1540.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1560.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1590.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1600 OPTUS D1 FTA %28160.0E%29.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1600.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1620.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1640.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1660.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1690.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1720.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1800.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\1830.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2210.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2230.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2250.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2270.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2290.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2310.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2330.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2350.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2370.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2390.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2410.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2432.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2451.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2470.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2489.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2500.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2527.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2550.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2570.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2590.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2608.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2630.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2650.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2669.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2690.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2710.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2728.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2730.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2750.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2760.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2770.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2780.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2812.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2820.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2830.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2850.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2873.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2880.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2881.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2882.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2900.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2930.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2950.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2970.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2985.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\2990.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3020.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3045.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3070.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3100.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3125.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3150.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3169.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3195.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3225.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3255.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3285.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3300.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3325.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3355.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3380.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3400.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3420.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3450.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3460.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3475.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3490.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3520.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3527.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3550.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3560.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3592.ini" />
+ <None Include="LiveTv\TunerHosts\SatIp\ini\satellite\3594.ini" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
index 19b8ad2f9..077a58938 100644
--- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
+++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
@@ -62,7 +62,6 @@ using MediaBrowser.Server.Implementations.Localization;
using MediaBrowser.Server.Implementations.Notifications;
using MediaBrowser.Server.Implementations.Persistence;
using MediaBrowser.Server.Implementations.Security;
-using MediaBrowser.Server.Implementations.Session;
using MediaBrowser.Server.Implementations.Social;
using MediaBrowser.Server.Implementations.Sync;
using MediaBrowser.Server.Startup.Common.FFMpeg;
@@ -108,11 +107,13 @@ using Emby.Server.Implementations.Devices;
using Emby.Server.Implementations.Dto;
using Emby.Server.Implementations.FileOrganization;
using Emby.Server.Implementations.Library;
+using Emby.Server.Implementations.LiveTv;
using Emby.Server.Implementations.MediaEncoder;
using Emby.Server.Implementations.Notifications;
using Emby.Server.Implementations.Persistence;
using Emby.Server.Implementations.Playlists;
using Emby.Server.Implementations.ServerManager;
+using Emby.Server.Implementations.Session;
using Emby.Server.Implementations.Sync;
using Emby.Server.Implementations.TV;
using Emby.Server.Implementations.Updates;
@@ -644,7 +645,7 @@ namespace MediaBrowser.Server.Startup.Common
MediaSourceManager = new MediaSourceManager(ItemRepository, UserManager, LibraryManager, LogManager.GetLogger("MediaSourceManager"), JsonSerializer, FileSystemManager, UserDataManager, TimerFactory);
RegisterSingleInstance(MediaSourceManager);
- SessionManager = new SessionManager(UserDataManager, LogManager.GetLogger("SessionManager"), LibraryManager, UserManager, musicManager, DtoService, ImageProcessor, JsonSerializer, this, HttpClient, AuthenticationRepository, DeviceManager, MediaSourceManager);
+ SessionManager = new SessionManager(UserDataManager, LogManager.GetLogger("SessionManager"), LibraryManager, UserManager, musicManager, DtoService, ImageProcessor, JsonSerializer, this, HttpClient, AuthenticationRepository, DeviceManager, MediaSourceManager, TimerFactory);
RegisterSingleInstance(SessionManager);
var dlnaManager = new DlnaManager(XmlSerializer, FileSystemManager, ApplicationPaths, LogManager.GetLogger("Dlna"), JsonSerializer, this);