diff options
| author | hatharry <hatharry@hotmail.com> | 2016-07-25 23:29:52 +1200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-07-25 23:29:52 +1200 |
| commit | f21f9923de6291aaf985f32dbbbaddbb26d07fb1 (patch) | |
| tree | 1a313e9a1c6790a755926bcef221c5f680537eae /MediaBrowser.Server.Mac/Native | |
| parent | 6332d0b9436c511a59e2abd67ea8c24ce3d82ace (diff) | |
| parent | 8328f39834f042e1808fd8506bbc7c48151703ab (diff) | |
Merge pull request #15 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Mac/Native')
| -rw-r--r-- | MediaBrowser.Server.Mac/Native/BaseMonoApp.cs | 101 | ||||
| -rw-r--r-- | MediaBrowser.Server.Mac/Native/DbConnector.cs | 24 | ||||
| -rw-r--r-- | MediaBrowser.Server.Mac/Native/NativeApp.cs | 8 |
3 files changed, 126 insertions, 7 deletions
diff --git a/MediaBrowser.Server.Mac/Native/BaseMonoApp.cs b/MediaBrowser.Server.Mac/Native/BaseMonoApp.cs index 33df83b2f..7c9b43026 100644 --- a/MediaBrowser.Server.Mac/Native/BaseMonoApp.cs +++ b/MediaBrowser.Server.Mac/Native/BaseMonoApp.cs @@ -7,11 +7,22 @@ using System.Collections.Generic; using System.Reflection; using System.Text.RegularExpressions; using MediaBrowser.Controller.Power; +using MediaBrowser.Server.Implementations.Persistence; +using MediaBrowser.Server.Startup.Common.FFMpeg; +using System.Diagnostics; +using MediaBrowser.Model.System; namespace MediaBrowser.Server.Mac { public abstract class BaseMonoApp : INativeApp { + protected ILogger Logger { get; private set; } + + protected BaseMonoApp(ILogger logger) + { + Logger = logger; + } + /// <summary> /// Shutdowns this instance. /// </summary> @@ -37,6 +48,21 @@ namespace MediaBrowser.Server.Mac } } + public void PreventSystemStandby() + { + + } + + public void AllowSystemStandby() + { + + } + + public IDbConnector GetDbConnector() + { + return new DbConnector(Logger); + } + public virtual bool SupportsLibraryMonitor { get @@ -62,11 +88,6 @@ namespace MediaBrowser.Server.Mac get { return false; } } - public void PreventSystemStandby() - { - - } - public List<Assembly> GetAssembliesWithParts() { var list = new List<Assembly>(); @@ -106,6 +127,74 @@ namespace MediaBrowser.Server.Mac { } + public void LaunchUrl(string url) + { + var process = new Process + { + StartInfo = new ProcessStartInfo + { + FileName = url + }, + + EnableRaisingEvents = true, + }; + + process.Exited += ProcessExited; + + process.Start(); + } + + /// <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(); + } + + public FFMpegInstallInfo GetFfmpegInstallInfo() + { + return GetInfo(Environment); + } + + public static FFMpegInstallInfo GetInfo(NativeEnvironment environment) + { + var info = new FFMpegInstallInfo(); + + info.ArchiveType = "7z"; + + switch (environment.SystemArchitecture) + { + case Architecture.X64: + info.Version = "20160124"; + break; + case Architecture.X86: + info.Version = "20150110"; + break; + } + + info.DownloadUrls = GetDownloadUrls(environment); + + return info; + } + + private static string[] GetDownloadUrls(NativeEnvironment environment) + { + switch (environment.SystemArchitecture) + { + case Architecture.X64: + return new[] + { + "https://github.com/MediaBrowser/Emby.Resources/raw/master/ffmpeg/osx/ffmpeg-x64-2.8.5.7z" + }; + } + + // No version available + return new string[] { }; + } + public INetworkManager CreateNetworkManager(ILogger logger) { return new NetworkManager(logger); @@ -137,7 +226,7 @@ namespace MediaBrowser.Server.Mac } else if (string.Equals(uname.machine, "x86_64", StringComparison.OrdinalIgnoreCase)) { - info.SystemArchitecture = Architecture.X86_X64; + info.SystemArchitecture = Architecture.X64; } else if (uname.machine.StartsWith("arm", StringComparison.OrdinalIgnoreCase)) { diff --git a/MediaBrowser.Server.Mac/Native/DbConnector.cs b/MediaBrowser.Server.Mac/Native/DbConnector.cs new file mode 100644 index 000000000..4c19210b8 --- /dev/null +++ b/MediaBrowser.Server.Mac/Native/DbConnector.cs @@ -0,0 +1,24 @@ +using System; +using System.Data; +using System.Data.SQLite; +using System.Threading.Tasks; +using MediaBrowser.Model.Logging; +using MediaBrowser.Server.Implementations.Persistence; + +namespace MediaBrowser.Server.Mac +{ + public class DbConnector : IDbConnector + { + private readonly ILogger _logger; + + public DbConnector(ILogger logger) + { + _logger = logger; + } + + public Task<IDbConnection> Connect(string dbPath, bool isReadOnly, bool enablePooling = false, int? cacheSize = null) + { + return SqliteExtensions.ConnectToDb(dbPath, isReadOnly, enablePooling, cacheSize, _logger); + } + } +}
\ No newline at end of file diff --git a/MediaBrowser.Server.Mac/Native/NativeApp.cs b/MediaBrowser.Server.Mac/Native/NativeApp.cs index 005fb0914..59fa92dd1 100644 --- a/MediaBrowser.Server.Mac/Native/NativeApp.cs +++ b/MediaBrowser.Server.Mac/Native/NativeApp.cs @@ -1,5 +1,6 @@ using System; using MediaBrowser.Server.Startup.Common; +using MediaBrowser.Model.Logging; namespace MediaBrowser.Server.Mac { @@ -8,7 +9,12 @@ namespace MediaBrowser.Server.Mac /// </summary> public class NativeApp : BaseMonoApp { - /// <summary> + public NativeApp(ILogger logger) + : base(logger) + { + } + + /// <summary> /// Shutdowns this instance. /// </summary> public override void Shutdown() |
