diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Emby.Server/ApplicationPathHelper.cs | 40 | ||||
| -rw-r--r-- | src/Emby.Server/CoreAppHost.cs | 57 | ||||
| -rw-r--r-- | src/Emby.Server/CoreSystemEvents.cs | 13 | ||||
| -rw-r--r-- | src/Emby.Server/Emby.Server.xproj | 45 | ||||
| -rw-r--r-- | src/Emby.Server/IO/MemoryStreamFactory.cs | 33 | ||||
| -rw-r--r-- | src/Emby.Server/PowerManagement.cs | 15 | ||||
| -rw-r--r-- | src/Emby.Server/Program.cs | 346 | ||||
| -rw-r--r-- | src/Emby.Server/Properties/AssemblyInfo.cs | 19 | ||||
| -rw-r--r-- | src/Emby.Server/project.json | 122 |
9 files changed, 0 insertions, 690 deletions
diff --git a/src/Emby.Server/ApplicationPathHelper.cs b/src/Emby.Server/ApplicationPathHelper.cs deleted file mode 100644 index c611ff372..000000000 --- a/src/Emby.Server/ApplicationPathHelper.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; - -namespace Emby.Server -{ - public class ApplicationPathHelper - { - public static string GetProgramDataPath(string appDirectory) - { - var useDebugPath = false; - -#if DEBUG - useDebugPath = true; -#endif - - var programDataPath = useDebugPath ? - "programdata" : - "programdata"; - - programDataPath = programDataPath - .Replace('/', Path.DirectorySeparatorChar) - .Replace('\\', Path.DirectorySeparatorChar); - - // If it's a relative path, e.g. "..\" - if (!Path.IsPathRooted(programDataPath)) - { - programDataPath = Path.Combine(appDirectory, programDataPath); - - programDataPath = Path.GetFullPath(programDataPath); - } - - Directory.CreateDirectory(programDataPath); - - return programDataPath; - } - } -} diff --git a/src/Emby.Server/CoreAppHost.cs b/src/Emby.Server/CoreAppHost.cs deleted file mode 100644 index 43142b5e8..000000000 --- a/src/Emby.Server/CoreAppHost.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Threading.Tasks; -using Emby.Server.Core; -using Emby.Server.Implementations.FFMpeg; -using MediaBrowser.Model.IO; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.System; -using Emby.Server.Implementations; - -namespace Emby.Server -{ - public class CoreAppHost : ApplicationHost - { - public CoreAppHost(ServerApplicationPaths applicationPaths, ILogManager logManager, StartupOptions options, IFileSystem fileSystem, IPowerManagement powerManagement, string releaseAssetFilename, IEnvironmentInfo environmentInfo, MediaBrowser.Controller.Drawing.IImageEncoder imageEncoder, ISystemEvents systemEvents, IMemoryStreamFactory memoryStreamFactory, MediaBrowser.Common.Net.INetworkManager networkManager, Action<string, string> certificateGenerator, Func<string> defaultUsernameFactory) - : base(applicationPaths, logManager, options, fileSystem, powerManagement, releaseAssetFilename, environmentInfo, imageEncoder, systemEvents, memoryStreamFactory, networkManager, certificateGenerator, defaultUsernameFactory) - { - } - - protected override void RestartInternal() - { - Program.Restart(); - } - - protected override void ShutdownInternal() - { - Program.Shutdown(); - } - - protected override List<Assembly> GetAssembliesWithPartsInternal() - { - var list = new List<Assembly>(); - - list.Add(GetType().GetTypeInfo().Assembly); - - return list; - } - - public override bool CanSelfRestart - { - get - { - return Program.CanSelfRestart; - } - } - - public override bool CanSelfUpdate - { - get - { - return Program.CanSelfUpdate; - } - } - } -} diff --git a/src/Emby.Server/CoreSystemEvents.cs b/src/Emby.Server/CoreSystemEvents.cs deleted file mode 100644 index 7afb94160..000000000 --- a/src/Emby.Server/CoreSystemEvents.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using MediaBrowser.Model.System; - -namespace Emby.Server -{ - public class CoreSystemEvents : ISystemEvents - { - public event EventHandler Resume; - public event EventHandler Suspend; - public event EventHandler SessionLogoff; - public event EventHandler SystemShutdown; - } -} diff --git a/src/Emby.Server/Emby.Server.xproj b/src/Emby.Server/Emby.Server.xproj deleted file mode 100644 index 78276d17d..000000000 --- a/src/Emby.Server/Emby.Server.xproj +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion> - <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> - </PropertyGroup> - <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" /> - <PropertyGroup Label="Globals"> - <ProjectGuid>ddaff431-0b3d-4857-8762-990a32dc8472</ProjectGuid> - <RootNamespace>Emby.Server</RootNamespace> - <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath> - <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath> - <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> - </PropertyGroup> - <PropertyGroup> - <SchemaVersion>2.0</SchemaVersion> - </PropertyGroup> - <ItemGroup> - <ProjectReference Include="..\..\BDInfo\BDInfo.csproj" /> - <ProjectReference Include="..\..\DvdLib\DvdLib.csproj" /> - <ProjectReference Include="..\..\Emby.Dlna\Emby.Dlna.csproj" /> - <ProjectReference Include="..\..\Emby.Drawing\Emby.Drawing.csproj" /> - <ProjectReference Include="..\..\Emby.Photos\Emby.Photos.csproj" /> - <ProjectReference Include="..\..\Emby.Server.Implementations\Emby.Server.Implementations.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.Api\MediaBrowser.Api.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.Common\MediaBrowser.Common.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.LocalMetadata\MediaBrowser.LocalMetadata.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.MediaEncoding\MediaBrowser.MediaEncoding.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.Model\MediaBrowser.Model.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.Providers\MediaBrowser.Providers.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.Server.Implementations\MediaBrowser.Server.Implementations.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj" /> - <ProjectReference Include="..\..\MediaBrowser.XbmcMetadata\MediaBrowser.XbmcMetadata.csproj" /> - <ProjectReference Include="..\..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" /> - <ProjectReference Include="..\..\RSSDP\RSSDP.csproj" /> - <ProjectReference Include="..\..\SocketHttpListener.Portable\SocketHttpListener.Portable.csproj" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\..\SharedVersion.cs"> - <Link>Properties\SharedVersion.cs</Link> - </Compile> - </ItemGroup> - <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" /> -</Project>
\ No newline at end of file diff --git a/src/Emby.Server/IO/MemoryStreamFactory.cs b/src/Emby.Server/IO/MemoryStreamFactory.cs deleted file mode 100644 index 37ac2959e..000000000 --- a/src/Emby.Server/IO/MemoryStreamFactory.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.IO; -using MediaBrowser.Model.IO; - -namespace Emby.Server.IO -{ - public class MemoryStreamFactory : IMemoryStreamFactory - { - public MemoryStream CreateNew() - { - return new MemoryStream(); - } - - public MemoryStream CreateNew(int capacity) - { - return new MemoryStream(capacity); - } - - public MemoryStream CreateNew(byte[] buffer) - { - return new MemoryStream(buffer); - } - - public bool TryGetBuffer(MemoryStream stream, out byte[] buffer) - { - ArraySegment<byte> arrayBuffer; - stream.TryGetBuffer(out arrayBuffer); - - buffer = arrayBuffer.Array; - return true; - } - } -} diff --git a/src/Emby.Server/PowerManagement.cs b/src/Emby.Server/PowerManagement.cs deleted file mode 100644 index 85e3b72a6..000000000 --- a/src/Emby.Server/PowerManagement.cs +++ /dev/null @@ -1,15 +0,0 @@ -using MediaBrowser.Model.System; - -namespace Emby.Server -{ - public class PowerManagement : IPowerManagement - { - public void PreventSystemStandby() - { - } - - public void AllowSystemStandby() - { - } - } -} diff --git a/src/Emby.Server/Program.cs b/src/Emby.Server/Program.cs deleted file mode 100644 index 5e55cfa29..000000000 --- a/src/Emby.Server/Program.cs +++ /dev/null @@ -1,346 +0,0 @@ -using MediaBrowser.Model.Logging; -using MediaBrowser.Server.Implementations; -using Microsoft.Win32; -using System; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Emby.Common.Implementations.EnvironmentInfo; -using Emby.Common.Implementations.IO; -using Emby.Common.Implementations.Logging; -using Emby.Common.Implementations.Networking; -using Emby.Drawing; -using Emby.Server.Core; -using Emby.Server.Implementations.Browser; -using Emby.Server.Implementations.IO; -using MediaBrowser.Common.Net; -using Emby.Server.IO; -using Emby.Server.Implementations; - -namespace Emby.Server -{ - public class Program - { - private static ApplicationHost _appHost; - - private static ILogger _logger; - - private static bool _appHostDisposed; - - [DllImport("kernel32.dll", SetLastError = true)] - static extern bool SetDllDirectory(string lpPathName); - - /// <summary> - /// Defines the entry point of the application. - /// </summary> - public static void Main(string[] args) - { - var options = new StartupOptions(Environment.GetCommandLineArgs()); - - var environmentInfo = new EnvironmentInfo(); - - var baseDirectory = System.AppContext.BaseDirectory; - string archPath = baseDirectory; - if (environmentInfo.SystemArchitecture == MediaBrowser.Model.System.Architecture.X64) - { - archPath = Path.Combine(archPath, "x64"); - } - else if (environmentInfo.SystemArchitecture == MediaBrowser.Model.System.Architecture.X86) - { - archPath = Path.Combine(archPath, "x86"); - } - else - { - archPath = Path.Combine(archPath, "arm"); - } - - //Wand.SetMagickCoderModulePath(architecturePath); - - if (environmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Windows) - { - SetDllDirectory(archPath); - } - - var appPaths = CreateApplicationPaths(baseDirectory); - SetSqliteProvider(); - - var logManager = new NlogManager(appPaths.LogDirectoryPath, "server"); - logManager.ReloadLogger(LogSeverity.Debug); - logManager.AddConsoleOutput(); - - var logger = _logger = logManager.GetLogger("Main"); - - ApplicationHost.LogEnvironmentInfo(logger, appPaths, true); - - AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; - - //if (IsAlreadyRunning(applicationPath, currentProcess)) - //{ - // logger.Info("Shutting down because another instance of Emby Server is already running."); - // return; - //} - - if (PerformUpdateIfNeeded(appPaths, logger)) - { - logger.Info("Exiting to perform application update."); - return; - } - - RunApplication(appPaths, logManager, options, environmentInfo); - } - - private static void SetSqliteProvider() - { - SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_sqlite3()); - } - - /// <summary> - /// Determines whether [is already running] [the specified current process]. - /// </summary> - /// <param name="applicationPath">The application path.</param> - /// <param name="currentProcess">The current process.</param> - /// <returns><c>true</c> if [is already running] [the specified current process]; otherwise, <c>false</c>.</returns> - private static bool IsAlreadyRunning(string applicationPath, Process currentProcess) - { - var duplicate = Process.GetProcesses().FirstOrDefault(i => - { - try - { - if (currentProcess.Id == i.Id) - { - return false; - } - } - catch (Exception) - { - return false; - } - - try - { - //_logger.Info("Module: {0}", i.MainModule.FileName); - if (string.Equals(applicationPath, i.MainModule.FileName, StringComparison.OrdinalIgnoreCase)) - { - return true; - } - return false; - } - catch (Exception) - { - return false; - } - }); - - if (duplicate != null) - { - _logger.Info("Found a duplicate process. Giving it time to exit."); - - if (!duplicate.WaitForExit(30000)) - { - _logger.Info("The duplicate process did not exit."); - return true; - } - } - - return false; - } - - /// <summary> - /// Creates the application paths. - /// </summary> - private static ServerApplicationPaths CreateApplicationPaths(string appDirectory) - { - var resourcesPath = appDirectory; - - return new ServerApplicationPaths(ApplicationPathHelper.GetProgramDataPath(appDirectory), appDirectory, resourcesPath); - } - - /// <summary> - /// Gets a value indicating whether this instance can self restart. - /// </summary> - /// <value><c>true</c> if this instance can self restart; otherwise, <c>false</c>.</value> - public static bool CanSelfRestart - { - get - { - return true; - } - } - - /// <summary> - /// Gets a value indicating whether this instance can self update. - /// </summary> - /// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value> - public static bool CanSelfUpdate - { - get - { - return false; - } - } - - private static readonly TaskCompletionSource<bool> ApplicationTaskCompletionSource = new TaskCompletionSource<bool>(); - - /// <summary> - /// Runs the application. - /// </summary> - /// <param name="appPaths">The app paths.</param> - /// <param name="logManager">The log manager.</param> - /// <param name="options">The options.</param> - private static void RunApplication(ServerApplicationPaths appPaths, ILogManager logManager, StartupOptions options, EnvironmentInfo environmentInfo) - { - var fileSystem = new ManagedFileSystem(logManager.GetLogger("FileSystem"), true, true, false, appPaths.TempDirectory); - - fileSystem.AddShortcutHandler(new MbLinkShortcutHandler(fileSystem)); - - var imageEncoder = new NullImageEncoder(); - - _appHost = new CoreAppHost(appPaths, - logManager, - options, - fileSystem, - new PowerManagement(), - "emby.windows.zip", - environmentInfo, - imageEncoder, - new CoreSystemEvents(), - new MemoryStreamFactory(), - new NetworkManager(logManager.GetLogger("NetworkManager")), - GenerateCertificate, - () => "EmbyUser"); - - var initProgress = new Progress<double>(); - - if (environmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Windows) - { - // Not crazy about this but it's the only way to suppress ffmpeg crash dialog boxes - SetErrorMode(ErrorModes.SEM_FAILCRITICALERRORS | ErrorModes.SEM_NOALIGNMENTFAULTEXCEPT | - ErrorModes.SEM_NOGPFAULTERRORBOX | ErrorModes.SEM_NOOPENFILEERRORBOX); - } - - var task = _appHost.Init(initProgress); - Task.WaitAll(task); - - task = task.ContinueWith(new Action<Task>(a => _appHost.RunStartupTasks()), TaskContinuationOptions.OnlyOnRanToCompletion | TaskContinuationOptions.AttachedToParent); - - Task.WaitAll(task); - - task = ApplicationTaskCompletionSource.Task; - Task.WaitAll(task); - } - - private static void GenerateCertificate(string certPath, string certHost) - { - //CertificateGenerator.CreateSelfSignCertificatePfx(certPath, certHost, _logger); - } - - /// <summary> - /// Handles the UnhandledException event of the CurrentDomain control. - /// </summary> - /// <param name="sender">The source of the event.</param> - /// <param name="e">The <see cref="UnhandledExceptionEventArgs"/> instance containing the event data.</param> - static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) - { - var exception = (Exception)e.ExceptionObject; - - new UnhandledExceptionWriter(_appHost.ServerConfigurationManager.ApplicationPaths, _logger, _appHost.LogManager).Log(exception); - - ShowMessageBox("Unhandled exception: " + exception.Message); - - if (!Debugger.IsAttached) - { - Environment.Exit(Marshal.GetHRForException(exception)); - } - } - - /// <summary> - /// Performs the update if needed. - /// </summary> - /// <param name="appPaths">The app paths.</param> - /// <param name="logger">The logger.</param> - /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> - private static bool PerformUpdateIfNeeded(ServerApplicationPaths appPaths, ILogger logger) - { - return false; - } - - private static void ShowMessageBox(string msg) - { - - } - - public static void Shutdown() - { - DisposeAppHost(); - - //_logger.Info("Calling Application.Exit"); - //Application.Exit(); - - _logger.Info("Calling Environment.Exit"); - Environment.Exit(0); - - _logger.Info("Calling ApplicationTaskCompletionSource.SetResult"); - ApplicationTaskCompletionSource.SetResult(true); - } - - public static void Restart() - { - DisposeAppHost(); - - // todo: start new instance - - Shutdown(); - } - - private static void DisposeAppHost() - { - if (!_appHostDisposed) - { - _logger.Info("Disposing app host"); - - _appHostDisposed = true; - _appHost.Dispose(); - } - } - - /// <summary> - /// Sets the error mode. - /// </summary> - /// <param name="uMode">The u mode.</param> - /// <returns>ErrorModes.</returns> - [DllImport("kernel32.dll")] - static extern ErrorModes SetErrorMode(ErrorModes uMode); - - /// <summary> - /// Enum ErrorModes - /// </summary> - [Flags] - public enum ErrorModes : uint - { - /// <summary> - /// The SYSTE m_ DEFAULT - /// </summary> - SYSTEM_DEFAULT = 0x0, - /// <summary> - /// The SE m_ FAILCRITICALERRORS - /// </summary> - SEM_FAILCRITICALERRORS = 0x0001, - /// <summary> - /// The SE m_ NOALIGNMENTFAULTEXCEPT - /// </summary> - SEM_NOALIGNMENTFAULTEXCEPT = 0x0004, - /// <summary> - /// The SE m_ NOGPFAULTERRORBOX - /// </summary> - SEM_NOGPFAULTERRORBOX = 0x0002, - /// <summary> - /// The SE m_ NOOPENFILEERRORBOX - /// </summary> - SEM_NOOPENFILEERRORBOX = 0x8000 - } - } -} diff --git a/src/Emby.Server/Properties/AssemblyInfo.cs b/src/Emby.Server/Properties/AssemblyInfo.cs deleted file mode 100644 index 2674312bb..000000000 --- a/src/Emby.Server/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Emby.Server")] -[assembly: AssemblyTrademark("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ddaff431-0b3d-4857-8762-990a32dc8472")] diff --git a/src/Emby.Server/project.json b/src/Emby.Server/project.json deleted file mode 100644 index e1ff8cbcc..000000000 --- a/src/Emby.Server/project.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "version": "3.1.0.1", - "buildOptions": { - "emitEntryPoint": true - }, - - "dependencies": { - "Emby.Common.Implementations": "1.0.0-*", - "Emby.Server.Core": "1.0.0-*", - "Microsoft.NETCore.App": { - "type": "platform", - "version": "1.1.0" - }, - "Mono.Nat": "1.0.0-*", - "System.Runtime.Extensions": "4.3.0", - "System.Diagnostics.Process": "4.3.0", - "Microsoft.Win32.Registry": "4.3.0", - "SQLitePCLRaw.provider.sqlite3.netstandard11": "1.1.1" - }, - - "runtimes": { - "win7-x86": {}, - "win7-x64": {}, - "win8-x86": {}, - "win8-x64": {}, - "win8-arm": {}, - "win81-x86": {}, - "win81-x64": {}, - "win81-arm": {}, - "win10-x86": {}, - "win10-x64": {}, - "win10-arm": {}, - "win10-arm64": {}, - "osx.10.10-x64": {}, - "osx.10.11-x64": {}, - "osx.10.12-x64": , - "rhel.7.0-x64": {}, - "rhel.7.1-x64": {}, - "rhel.7.2-x64": {}, - "ubuntu.14.04-x64": {}, - "ubuntu.14.10-x64": {}, - "ubuntu.15.04-x64": {}, - "ubuntu.15.10-x64": {}, - "ubuntu.16.04-x64": {}, - "ubuntu.16.10-x64": {}, - "centos.7-x64": {}, - "debian.8-x64": {}, - "fedora.23-x64": {}, - "fedora.24-x64": {}, - "opensuse.13.2-x64": {}, - "opensuse.42.1-x64": {}, - "ol.7-x64": {}, - "ol.7.0-x64": {}, - "ol.7.1-x64": {}, - "ol.7.2-x64": {} - }, - - "frameworks": { - "netcoreapp1.1": { - "imports": "dnxcore50", - "dependencies": { - "BDInfo": { - "target": "project" - }, - "DvdLib": { - "target": "project" - }, - "Emby.Dlna": { - "target": "project" - }, - "Emby.Drawing": { - "target": "project" - }, - "Emby.Photos": { - "target": "project" - }, - "Emby.Server.Implementations": { - "target": "project" - }, - "MediaBrowser.Api": { - "target": "project" - }, - "MediaBrowser.Common": { - "target": "project" - }, - "MediaBrowser.Controller": { - "target": "project" - }, - "MediaBrowser.LocalMetadata": { - "target": "project" - }, - "MediaBrowser.MediaEncoding": { - "target": "project" - }, - "MediaBrowser.Model": { - "target": "project" - }, - "MediaBrowser.Providers": { - "target": "project" - }, - "MediaBrowser.Server.Implementations": { - "target": "project" - }, - "MediaBrowser.WebDashboard": { - "target": "project" - }, - "MediaBrowser.XbmcMetadata": { - "target": "project" - }, - "OpenSubtitlesHandler": { - "target": "project" - }, - "RSSDP": { - "target": "project" - }, - "SocketHttpListener.Portable": { - "target": "project" - } - } - } - } -} |
