aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Startup.Common
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Startup.Common')
-rw-r--r--MediaBrowser.Server.Startup.Common/ApplicationHost.cs64
-rw-r--r--MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs59
-rw-r--r--MediaBrowser.Server.Startup.Common/EntryPoints/KeepServerAwake.cs31
-rw-r--r--MediaBrowser.Server.Startup.Common/EntryPoints/StartupWizard.cs2
-rw-r--r--MediaBrowser.Server.Startup.Common/FFMpeg/FFmpegValidator.cs4
-rw-r--r--MediaBrowser.Server.Startup.Common/INativeApp.cs7
6 files changed, 67 insertions, 100 deletions
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
index 93dbe2945..ae839e6ee 100644
--- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
+++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
@@ -410,13 +410,16 @@ namespace MediaBrowser.Server.Startup.Common
UserRepository = await GetUserRepository().ConfigureAwait(false);
RegisterSingleInstance(UserRepository);
- DisplayPreferencesRepository = new SqliteDisplayPreferencesRepository(LogManager, JsonSerializer, ApplicationPaths);
+ var displayPreferencesRepo = new SqliteDisplayPreferencesRepository(LogManager, JsonSerializer, ApplicationPaths);
+ DisplayPreferencesRepository = displayPreferencesRepo;
RegisterSingleInstance(DisplayPreferencesRepository);
- ItemRepository = new SqliteItemRepository(ApplicationPaths, JsonSerializer, LogManager);
+ var itemRepo = new SqliteItemRepository(ServerConfigurationManager, JsonSerializer, LogManager);
+ ItemRepository = itemRepo;
RegisterSingleInstance(ItemRepository);
- ProviderRepository = new SqliteProviderInfoRepository(LogManager, ApplicationPaths);
+ var providerRepo = new SqliteProviderInfoRepository(LogManager, ApplicationPaths);
+ ProviderRepository = providerRepo;
RegisterSingleInstance(ProviderRepository);
FileOrganizationRepository = await GetFileOrganizationRepository().ConfigureAwait(false);
@@ -440,7 +443,7 @@ namespace MediaBrowser.Server.Startup.Common
LibraryMonitor = new LibraryMonitor(LogManager, TaskManager, LibraryManager, ServerConfigurationManager, FileSystemManager, this);
RegisterSingleInstance(LibraryMonitor);
- ProviderManager = new ProviderManager(HttpClient, ServerConfigurationManager, LibraryMonitor, LogManager, FileSystemManager, ApplicationPaths, () => LibraryManager);
+ ProviderManager = new ProviderManager(HttpClient, ServerConfigurationManager, LibraryMonitor, LogManager, FileSystemManager, ApplicationPaths, () => LibraryManager, JsonSerializer);
RegisterSingleInstance(ProviderManager);
SeriesOrderManager = new SeriesOrderManager();
@@ -515,7 +518,7 @@ namespace MediaBrowser.Server.Startup.Common
UserViewManager = new UserViewManager(LibraryManager, LocalizationManager, UserManager, ChannelManager, LiveTvManager, ServerConfigurationManager);
RegisterSingleInstance(UserViewManager);
- var contentDirectory = new ContentDirectory(dlnaManager, UserDataManager, ImageProcessor, LibraryManager, ServerConfigurationManager, UserManager, LogManager.GetLogger("UpnpContentDirectory"), HttpClient, LocalizationManager, ChannelManager, MediaSourceManager, UserViewManager);
+ var contentDirectory = new ContentDirectory(dlnaManager, UserDataManager, ImageProcessor, LibraryManager, ServerConfigurationManager, UserManager, LogManager.GetLogger("UpnpContentDirectory"), HttpClient, LocalizationManager, ChannelManager, MediaSourceManager, UserViewManager, () => MediaEncoder);
RegisterSingleInstance<IContentDirectory>(contentDirectory);
var mediaRegistrar = new MediaReceiverRegistrar(LogManager.GetLogger("MediaReceiverRegistrar"), HttpClient, ServerConfigurationManager);
@@ -541,7 +544,7 @@ namespace MediaBrowser.Server.Startup.Common
RegisterSingleInstance(NativeApp.GetPowerManagement());
var sharingRepo = new SharingRepository(LogManager, ApplicationPaths);
- await sharingRepo.Initialize().ConfigureAwait(false);
+ await sharingRepo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
RegisterSingleInstance<ISharingManager>(new SharingManager(sharingRepo, ServerConfigurationManager, LibraryManager, this));
RegisterSingleInstance<ISsdpHandler>(new SsdpHandler(LogManager.GetLogger("SsdpHandler"), ServerConfigurationManager, this));
@@ -557,10 +560,12 @@ namespace MediaBrowser.Server.Startup.Common
SubtitleEncoder = new SubtitleEncoder(LibraryManager, LogManager.GetLogger("SubtitleEncoder"), ApplicationPaths, FileSystemManager, MediaEncoder, JsonSerializer, HttpClient, MediaSourceManager);
RegisterSingleInstance(SubtitleEncoder);
-
- await ConfigureDisplayPreferencesRepositories().ConfigureAwait(false);
- await ConfigureItemRepositories().ConfigureAwait(false);
+
+ await displayPreferencesRepo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
await ConfigureUserDataRepositories().ConfigureAwait(false);
+ await itemRepo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
+ await providerRepo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
+ ((LibraryManager)LibraryManager).ItemRepository = ItemRepository;
await ConfigureNotificationsRepository().ConfigureAwait(false);
progress.Report(100);
@@ -658,7 +663,7 @@ namespace MediaBrowser.Server.Startup.Common
{
var repo = new SqliteUserRepository(LogManager, ApplicationPaths, JsonSerializer);
- await repo.Initialize().ConfigureAwait(false);
+ await repo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
return repo;
}
@@ -677,7 +682,7 @@ namespace MediaBrowser.Server.Startup.Common
{
var repo = new SqliteFileOrganizationRepository(LogManager, ServerConfigurationManager.ApplicationPaths);
- await repo.Initialize().ConfigureAwait(false);
+ await repo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
return repo;
}
@@ -686,7 +691,7 @@ namespace MediaBrowser.Server.Startup.Common
{
var repo = new AuthenticationRepository(LogManager, ServerConfigurationManager.ApplicationPaths);
- await repo.Initialize().ConfigureAwait(false);
+ await repo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
return repo;
}
@@ -695,7 +700,7 @@ namespace MediaBrowser.Server.Startup.Common
{
var repo = new ActivityRepository(LogManager, ServerConfigurationManager.ApplicationPaths);
- await repo.Initialize().ConfigureAwait(false);
+ await repo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
return repo;
}
@@ -704,7 +709,7 @@ namespace MediaBrowser.Server.Startup.Common
{
var repo = new SyncRepository(LogManager, JsonSerializer, ServerConfigurationManager.ApplicationPaths);
- await repo.Initialize().ConfigureAwait(false);
+ await repo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
return repo;
}
@@ -717,7 +722,7 @@ namespace MediaBrowser.Server.Startup.Common
{
var repo = new SqliteNotificationsRepository(LogManager, ApplicationPaths);
- await repo.Initialize().ConfigureAwait(false);
+ await repo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
NotificationsRepository = repo;
@@ -725,28 +730,6 @@ namespace MediaBrowser.Server.Startup.Common
}
/// <summary>
- /// Configures the repositories.
- /// </summary>
- /// <returns>Task.</returns>
- private async Task ConfigureDisplayPreferencesRepositories()
- {
- await DisplayPreferencesRepository.Initialize().ConfigureAwait(false);
- }
-
- /// <summary>
- /// Configures the item repositories.
- /// </summary>
- /// <returns>Task.</returns>
- private async Task ConfigureItemRepositories()
- {
- await ItemRepository.Initialize().ConfigureAwait(false);
-
- await ProviderRepository.Initialize().ConfigureAwait(false);
-
- ((LibraryManager)LibraryManager).ItemRepository = ItemRepository;
- }
-
- /// <summary>
/// Configures the user data repositories.
/// </summary>
/// <returns>Task.</returns>
@@ -754,7 +737,7 @@ namespace MediaBrowser.Server.Startup.Common
{
var repo = new SqliteUserDataRepository(LogManager, ApplicationPaths);
- await repo.Initialize().ConfigureAwait(false);
+ await repo.Initialize(NativeApp.GetDbConnector()).ConfigureAwait(false);
((UserDataManager)UserDataManager).Repository = repo;
}
@@ -1404,5 +1387,10 @@ namespace MediaBrowser.Server.Startup.Common
return externalDns;
}
}
+
+ public void LaunchUrl(string url)
+ {
+ NativeApp.LaunchUrl(url);
+ }
}
}
diff --git a/MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs b/MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs
index a4504f25a..db48d1110 100644
--- a/MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs
+++ b/MediaBrowser.Server.Startup.Common/Browser/BrowserLauncher.cs
@@ -15,87 +15,58 @@ namespace MediaBrowser.Server.Startup.Common.Browser
/// </summary>
/// <param name="page">The page.</param>
/// <param name="appHost">The app host.</param>
- /// <param name="logger">The logger.</param>
- public static void OpenDashboardPage(string page, IServerApplicationHost appHost, ILogger logger)
+ public static void OpenDashboardPage(string page, IServerApplicationHost appHost)
{
var url = appHost.GetLocalApiUrl("localhost") + "/web/" + page;
- OpenUrl(url, logger);
+ OpenUrl(appHost, url);
}
/// <summary>
/// Opens the community.
/// </summary>
- /// <param name="logger">The logger.</param>
- public static void OpenCommunity(ILogger logger)
+ public static void OpenCommunity(IServerApplicationHost appHost)
{
- OpenUrl("http://emby.media/community", logger);
+ OpenUrl(appHost, "http://emby.media/community");
}
/// <summary>
/// Opens the web client.
/// </summary>
/// <param name="appHost">The app host.</param>
- /// <param name="logger">The logger.</param>
- public static void OpenWebClient(IServerApplicationHost appHost, ILogger logger)
+ public static void OpenWebClient(IServerApplicationHost appHost)
{
- OpenDashboardPage("index.html", appHost, logger);
+ OpenDashboardPage("index.html", appHost);
}
/// <summary>
/// Opens the dashboard.
/// </summary>
/// <param name="appHost">The app host.</param>
- /// <param name="logger">The logger.</param>
- public static void OpenDashboard(IServerApplicationHost appHost, ILogger logger)
+ public static void OpenDashboard(IServerApplicationHost appHost)
{
- OpenDashboardPage("dashboard.html", appHost, logger);
+ OpenDashboardPage("dashboard.html", appHost);
}
/// <summary>
/// Opens the URL.
/// </summary>
/// <param name="url">The URL.</param>
- /// <param name="logger">The logger.</param>
- private static void OpenUrl(string url, ILogger logger)
+ private static void OpenUrl(IServerApplicationHost appHost, string url)
{
- var process = new Process
- {
- StartInfo = new ProcessStartInfo
- {
- FileName = url
- },
-
- EnableRaisingEvents = true,
- };
-
- process.Exited += ProcessExited;
-
try
{
- process.Start();
+ appHost.LaunchUrl(url);
+ }
+ catch (NotImplementedException)
+ {
+
}
catch (Exception ex)
{
- logger.ErrorException("Error launching url: {0}", ex, url);
-
- Console.WriteLine("Error launching url: {0}", ex.Message);
+ Console.WriteLine("Error launching url: " + url);
Console.WriteLine(ex.Message);
-
-//#if !__MonoCS__
-// System.Windows.Forms.MessageBox.Show("There was an error launching your web browser. Please check your default browser settings.");
-//#endif
}
}
-
- /// <summary>
- /// Processes the exited.
- /// </summary>
- /// <param name="sender">The sender.</param>
- /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
- private static void ProcessExited(object sender, EventArgs e)
- {
- ((Process)sender).Dispose();
- }
}
}
diff --git a/MediaBrowser.Server.Startup.Common/EntryPoints/KeepServerAwake.cs b/MediaBrowser.Server.Startup.Common/EntryPoints/KeepServerAwake.cs
index 20d4c6b2a..dbfd6f4e8 100644
--- a/MediaBrowser.Server.Startup.Common/EntryPoints/KeepServerAwake.cs
+++ b/MediaBrowser.Server.Startup.Common/EntryPoints/KeepServerAwake.cs
@@ -27,28 +27,27 @@ namespace MediaBrowser.Server.Startup.Common.EntryPoints
_timer = new PeriodicTimer(obj =>
{
var now = DateTime.UtcNow;
- if (_sessionManager.Sessions.Any(i => (now - i.LastActivityDate).TotalMinutes < 15))
+ var nativeApp = ((ApplicationHost)_appHost).NativeApp;
+
+ try
+ {
+ if (_sessionManager.Sessions.Any(i => (now - i.LastActivityDate).TotalMinutes < 15))
+ {
+ nativeApp.PreventSystemStandby();
+ }
+ else
+ {
+ nativeApp.AllowSystemStandby();
+ }
+ }
+ catch (Exception ex)
{
- KeepAlive();
+ _logger.ErrorException("Error resetting system standby timer", ex);
}
}, null, TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(5));
}
- private void KeepAlive()
- {
- var nativeApp = ((ApplicationHost)_appHost).NativeApp;
-
- try
- {
- nativeApp.PreventSystemStandby();
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error resetting system standby timer", ex);
- }
- }
-
public void Dispose()
{
if (_timer != null)
diff --git a/MediaBrowser.Server.Startup.Common/EntryPoints/StartupWizard.cs b/MediaBrowser.Server.Startup.Common/EntryPoints/StartupWizard.cs
index 854fa44c1..f9d173c59 100644
--- a/MediaBrowser.Server.Startup.Common/EntryPoints/StartupWizard.cs
+++ b/MediaBrowser.Server.Startup.Common/EntryPoints/StartupWizard.cs
@@ -46,7 +46,7 @@ namespace MediaBrowser.Server.Startup.Common.EntryPoints
/// </summary>
private void LaunchStartupWizard()
{
- BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost, _logger);
+ BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost);
}
/// <summary>
diff --git a/MediaBrowser.Server.Startup.Common/FFMpeg/FFmpegValidator.cs b/MediaBrowser.Server.Startup.Common/FFMpeg/FFmpegValidator.cs
index 5ba5fb44a..0ae021407 100644
--- a/MediaBrowser.Server.Startup.Common/FFMpeg/FFmpegValidator.cs
+++ b/MediaBrowser.Server.Startup.Common/FFMpeg/FFmpegValidator.cs
@@ -42,6 +42,7 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
catch
{
}
+ //_logger.Debug("ffmpeg decoder query result: {0}", output ?? string.Empty);
var found = new List<string>();
var required = new[]
@@ -78,6 +79,7 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
catch
{
}
+ //_logger.Debug("ffmpeg encoder query result: {0}", output ?? string.Empty);
var found = new List<string>();
var required = new[]
@@ -89,8 +91,8 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
//"libvpx",
//"libvpx-vp9",
"aac",
- "ac3",
"libmp3lame",
+ "libopus",
//"libvorbis",
"srt"
};
diff --git a/MediaBrowser.Server.Startup.Common/INativeApp.cs b/MediaBrowser.Server.Startup.Common/INativeApp.cs
index 121d4192e..c13d3624e 100644
--- a/MediaBrowser.Server.Startup.Common/INativeApp.cs
+++ b/MediaBrowser.Server.Startup.Common/INativeApp.cs
@@ -3,6 +3,7 @@ using MediaBrowser.Model.Logging;
using System.Collections.Generic;
using System.Reflection;
using MediaBrowser.Controller.Power;
+using MediaBrowser.Server.Implementations.Persistence;
using MediaBrowser.Server.Startup.Common.FFMpeg;
namespace MediaBrowser.Server.Startup.Common
@@ -93,6 +94,8 @@ namespace MediaBrowser.Server.Startup.Common
/// </summary>
void PreventSystemStandby();
+ void AllowSystemStandby();
+
/// <summary>
/// Gets the power management.
/// </summary>
@@ -100,5 +103,9 @@ namespace MediaBrowser.Server.Startup.Common
IPowerManagement GetPowerManagement();
FFMpegInstallInfo GetFfmpegInstallInfo();
+
+ void LaunchUrl(string url);
+
+ IDbConnector GetDbConnector();
}
}