diff --git a/MediaBrowser.ServerApplication/App.xaml b/MediaBrowser.ServerApplication/App.xaml deleted file mode 100644 index 3729dc7b68..0000000000 --- a/MediaBrowser.ServerApplication/App.xaml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/MediaBrowser.ServerApplication/App.xaml.cs b/MediaBrowser.ServerApplication/App.xaml.cs deleted file mode 100644 index 2186a19f8c..0000000000 --- a/MediaBrowser.ServerApplication/App.xaml.cs +++ /dev/null @@ -1,150 +0,0 @@ -using MediaBrowser.Common.Events; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Model.Logging; -using MediaBrowser.ServerApplication.Splash; -using System; -using System.Diagnostics; -using System.Windows; - -namespace MediaBrowser.ServerApplication -{ - /// - /// Interaction logic for App.xaml - /// - public partial class App : Application - { - /// - /// Gets or sets the logger. - /// - /// The logger. - private readonly ILogger _logger; - - /// - /// Gets or sets the composition root. - /// - /// The composition root. - private readonly ApplicationHost _appHost; - - public event EventHandler AppStarted; - - public bool IsRunningAsService { get; private set; } - - /// - /// Initializes a new instance of the class. - /// - /// The logger. - public App(ApplicationHost appHost, ILogger logger, bool isRunningAsService) - { - _appHost = appHost; - _logger = logger; - IsRunningAsService = isRunningAsService; - - InitializeComponent(); - } - - /// - /// Gets the name of the uninstaller file. - /// - /// The name of the uninstaller file. - protected string UninstallerFileName - { - get { return "MediaBrowser.Server.Uninstall.exe"; } - } - - public void OnUnhandledException(Exception ex) - { - MessageBox.Show("Unhandled exception: " + ex.Message); - } - - protected override void OnStartup(StartupEventArgs e) - { - base.OnStartup(e); - - LoadApplication(); - } - - /// - /// Loads the kernel. - /// - protected async void LoadApplication() - { - try - { - var initProgress = new Progress(); - - if (!IsRunningAsService) - { - ShowSplashWindow(initProgress); - } - - await _appHost.Init(initProgress); - - var task = _appHost.RunStartupTasks(); - - if (!IsRunningAsService) - { - HideSplashWindow(); - } - - if (!IsRunningAsService) - { - ShowMainWindow(); - } - - EventHelper.FireEventIfNotNull(AppStarted, this, EventArgs.Empty, _logger); - - await task; - } - catch (Exception ex) - { - _logger.ErrorException("Error launching application", ex); - - MessageBox.Show("There was an error launching Media Browser: " + ex.Message); - - // Shutdown the app with an error code - Shutdown(1); - } - } - - private MainWindow _mainWindow; - private void ShowMainWindow() - { - var host = _appHost; - - var win = new MainWindow(host.LogManager, host, - host.ServerConfigurationManager, host.UserManager, - host.LibraryManager, host.JsonSerializer, - host.DisplayPreferencesRepository, - host.ItemRepository); - - win.Show(); - - _mainWindow = win; - } - - private SplashForm _splashWindow; - private void ShowSplashWindow(Progress progress) - { - var win = new SplashForm(_appHost.ApplicationVersion, progress); - win.Show(); - - _splashWindow = win; - } - - private void HideSplashWindow() - { - if (_splashWindow != null) - { - _splashWindow.Hide(); - _splashWindow = null; - } - } - - public void ShutdownApplication() - { - Dispatcher.Invoke(Shutdown); - } - } -} diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index f34c3921d9..8a1f937dac 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -1,10 +1,13 @@ -using MediaBrowser.Common.Configuration; +using System.Threading; +using System.Threading.Tasks; +using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Constants; using MediaBrowser.Common.Implementations.Logging; using MediaBrowser.Common.Implementations.Updates; using MediaBrowser.Model.Logging; using MediaBrowser.Server.Implementations; using MediaBrowser.ServerApplication.Native; +using MediaBrowser.ServerApplication.Splash; using Microsoft.Win32; using System; using System.Configuration.Install; @@ -14,6 +17,7 @@ using System.Linq; using System.Runtime.InteropServices; using System.ServiceProcess; using System.Windows; +using System.Windows.Forms; namespace MediaBrowser.ServerApplication { @@ -21,8 +25,6 @@ namespace MediaBrowser.ServerApplication { private static ApplicationHost _appHost; - private static App _app; - private static ILogger _logger; private static bool _isRunningAsService = false; @@ -201,6 +203,8 @@ namespace MediaBrowser.ServerApplication logger.Info("Application Path: {0}", appPaths.ApplicationPath); } + private static readonly TaskCompletionSource ApplicationTaskCompletionSource = new TaskCompletionSource(); + /// /// Runs the application. /// @@ -209,25 +213,66 @@ namespace MediaBrowser.ServerApplication /// if set to true [run service]. private static void RunApplication(ServerApplicationPaths appPaths, ILogManager logManager, bool runService) { - SystemEvents.SessionEnding += SystemEvents_SessionEnding; - SystemEvents.SessionSwitch += SystemEvents_SessionSwitch; - _appHost = new ApplicationHost(appPaths, logManager, runService); - _app = new App(_appHost, _appHost.LogManager.GetLogger("App"), runService); + var initProgress = new Progress(); if (runService) { - _app.AppStarted += (sender, args) => StartService(logManager); + StartService(logManager); } else { + ShowSplashScreen(_appHost.ApplicationVersion, initProgress, logManager.GetLogger("Splash")); + // 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); } - _app.Run(); + var task = _appHost.Init(initProgress); + Task.WaitAll(task); + + task = _appHost.RunStartupTasks(); + Task.WaitAll(task); + + if (!runService) + { + HideSplashScreen(); + } + + SystemEvents.SessionEnding += SystemEvents_SessionEnding; + SystemEvents.SessionSwitch += SystemEvents_SessionSwitch; + + task = ApplicationTaskCompletionSource.Task; + Task.WaitAll(task); + } + + private static SplashForm _splash; + private static Thread _splashThread; + private static void ShowSplashScreen(Version appVersion, Progress progress, ILogger logger) + { + var thread = new Thread(() => + { + _splash = new SplashForm(appVersion, progress); + + _splash.ShowDialog(); + }); + + thread.SetApartmentState(ApartmentState.STA); + thread.IsBackground = true; + thread.Start(); + + _splashThread = thread; + } + + private static void HideSplashScreen() + { + if (_splash != null) + { + _splash.Close(); + _splashThread = null; + } } static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e) @@ -257,6 +302,7 @@ namespace MediaBrowser.ServerApplication /// The instance containing the event data. static void service_Disposed(object sender, EventArgs e) { + ApplicationTaskCompletionSource.SetResult(true); OnServiceShutdown(); } @@ -270,8 +316,6 @@ namespace MediaBrowser.ServerApplication { SetErrorMode(ErrorModes.SYSTEM_DEFAULT); } - - _app.Dispatcher.Invoke(_app.Shutdown); } /// @@ -392,7 +436,7 @@ namespace MediaBrowser.ServerApplication if (!_isRunningAsService) { - _app.OnUnhandledException(exception); + MessageBox.Show("Unhandled exception: " + exception.Message); } if (!Debugger.IsAttached) @@ -467,7 +511,7 @@ namespace MediaBrowser.ServerApplication if (!_isRunningAsService) { _logger.Info("Executing windows forms restart"); - System.Windows.Forms.Application.Restart(); + Application.Restart(); ShutdownWindowsApplication(); } @@ -475,7 +519,7 @@ namespace MediaBrowser.ServerApplication private static void ShutdownWindowsApplication() { - _app.Dispatcher.Invoke(_app.Shutdown); + ApplicationTaskCompletionSource.SetResult(true); } private static void ShutdownWindowsService() diff --git a/MediaBrowser.ServerApplication/MainWindow.xaml b/MediaBrowser.ServerApplication/MainWindow.xaml deleted file mode 100644 index 518c55a767..0000000000 --- a/MediaBrowser.ServerApplication/MainWindow.xaml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MediaBrowser.ServerApplication/MainWindow.xaml.cs b/MediaBrowser.ServerApplication/MainWindow.xaml.cs deleted file mode 100644 index 9464c62726..0000000000 --- a/MediaBrowser.ServerApplication/MainWindow.xaml.cs +++ /dev/null @@ -1,301 +0,0 @@ -using MediaBrowser.Controller; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Persistence; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Serialization; -using MediaBrowser.ServerApplication.Logging; -using MediaBrowser.ServerApplication.Native; -using System; -using System.ComponentModel; -using System.Diagnostics; -using System.Windows; -using System.Windows.Threading; - -namespace MediaBrowser.ServerApplication -{ - /// - /// Interaction logic for MainWindow.xaml - /// - public partial class MainWindow : Window, INotifyPropertyChanged - { - /// - /// The _logger - /// - private readonly ILogger _logger; - - /// - /// The _app host - /// - private readonly IServerApplicationHost _appHost; - - /// - /// The _log manager - /// - private readonly ILogManager _logManager; - - /// - /// The _configuration manager - /// - private readonly IServerConfigurationManager _configurationManager; - - private readonly IUserManager _userManager; - private readonly ILibraryManager _libraryManager; - private readonly IJsonSerializer _jsonSerializer; - private readonly IDisplayPreferencesRepository _displayPreferencesManager; - private readonly IItemRepository _itemRepository; - - private LogForm _logForm; - - /// - /// Initializes a new instance of the class. - /// - /// The log manager. - /// The app host. - /// The configuration manager. - /// The user manager. - /// The library manager. - /// The json serializer. - /// The display preferences manager. - /// logger - public MainWindow(ILogManager logManager, IServerApplicationHost appHost, IServerConfigurationManager configurationManager, IUserManager userManager, ILibraryManager libraryManager, IJsonSerializer jsonSerializer, IDisplayPreferencesRepository displayPreferencesManager, IItemRepository itemRepo) - { - if (logManager == null) - { - throw new ArgumentNullException("logManager"); - } - if (appHost == null) - { - throw new ArgumentNullException("appHost"); - } - if (configurationManager == null) - { - throw new ArgumentNullException("configurationManager"); - } - - _logger = logManager.GetLogger("MainWindow"); - _itemRepository = itemRepo; - _appHost = appHost; - _logManager = logManager; - _configurationManager = configurationManager; - _userManager = userManager; - _libraryManager = libraryManager; - _jsonSerializer = jsonSerializer; - _displayPreferencesManager = displayPreferencesManager; - - InitializeComponent(); - - Loaded += MainWindowLoaded; - } - - /// - /// Mains the window loaded. - /// - /// The sender. - /// The instance containing the event data. - void MainWindowLoaded(object sender, RoutedEventArgs e) - { - DataContext = this; - - UpdateButtons(); - - LoadLogWindow(null, EventArgs.Empty); - _logManager.LoggerLoaded += LoadLogWindow; - _configurationManager.ConfigurationUpdated += Instance_ConfigurationUpdated; - - if (_appHost.IsFirstRun) - { - Dispatcher.InvokeAsync(() => MbTaskbarIcon.ShowBalloonTip("Media Browser", "Welcome to Media Browser Server!", Hardcodet.Wpf.TaskbarNotification.BalloonIcon.None)); - } - } - - /// - /// Handles the ConfigurationUpdated event of the Instance control. - /// - /// The source of the event. - /// The instance containing the event data. - void Instance_ConfigurationUpdated(object sender, EventArgs e) - { - UpdateButtons(); - - Dispatcher.InvokeAsync(() => - { - var isLogWindowOpen = _logForm != null; - - if ((!isLogWindowOpen && _configurationManager.Configuration.ShowLogWindow) || (isLogWindowOpen && !_configurationManager.Configuration.ShowLogWindow)) - { - _logManager.ReloadLogger(_configurationManager.Configuration.EnableDebugLevelLogging ? LogSeverity.Debug : LogSeverity.Info); - } - }); - } - - private void UpdateButtons() - { - Dispatcher.InvokeAsync(() => - { - separatorDeveloperTools.Visibility = Visibility.Visible; - cmdReloadServer.Visibility = Visibility.Visible; - cmOpenExplorer.Visibility = Visibility.Visible; - cmShowLogWindow.Visibility = Visibility.Visible; - }); - } - - /// - /// Loads the log window. - /// - /// The sender. - /// The instance containing the event data. - void LoadLogWindow(object sender, EventArgs args) - { - CloseLogWindow(); - - Dispatcher.InvokeAsync(() => - { - // Add our log window if specified - if (_configurationManager.Configuration.ShowLogWindow) - { - _logForm = new LogForm(_logManager); - - Trace.Listeners.Add(new WindowTraceListener(_logForm)); - } - else - { - Trace.Listeners.Remove("MBLogWindow"); - } - // Set menu option indicator - cmShowLogWindow.IsChecked = _configurationManager.Configuration.ShowLogWindow; - - }, DispatcherPriority.Normal); - } - - /// - /// Closes the log window. - /// - void CloseLogWindow() - { - if (_logForm != null) - { - _logForm.ShutDown(); - } - } - - /// - /// Handles the Click event of the cmdApiDocs control. - /// - /// The source of the event. - /// The instance containing the event data. - void cmdApiDocs_Click(object sender, EventArgs e) - { - BrowserLauncher.OpenStandardApiDocumentation(_configurationManager, _appHost, _logger); - } - - void cmdSwaggerApiDocs_Click(object sender, EventArgs e) - { - BrowserLauncher.OpenSwagger(_configurationManager, _appHost, _logger); - } - - void cmdGithubWiki_Click(object sender, EventArgs e) - { - BrowserLauncher.OpenGithub(_logger); - } - - /// - /// Occurs when [property changed]. - /// - public event PropertyChangedEventHandler PropertyChanged; - - /// - /// Called when [property changed]. - /// - /// The info. - public void OnPropertyChanged(String info) - { - if (PropertyChanged != null) - { - try - { - PropertyChanged(this, new PropertyChangedEventArgs(info)); - } - catch (Exception ex) - { - _logger.ErrorException("Error in event handler", ex); - } - } - } - - #region Context Menu events - /// - /// Handles the click event of the cmOpenExplorer control. - /// - /// The source of the event. - /// The instance containing the event data. - private void cmOpenExplorer_click(object sender, RoutedEventArgs e) - { - new LibraryViewer(_jsonSerializer, _userManager, _libraryManager, _displayPreferencesManager, _itemRepository).Show(); - } - - /// - /// Handles the click event of the cmOpenDashboard control. - /// - /// The source of the event. - /// The instance containing the event data. - private void cmOpenDashboard_click(object sender, RoutedEventArgs e) - { - BrowserLauncher.OpenDashboard(_userManager, _configurationManager, _appHost, _logger); - } - - /// - /// Handles the click event of the cmVisitCT control. - /// - /// The source of the event. - /// The instance containing the event data. - private void cmVisitCT_click(object sender, RoutedEventArgs e) - { - BrowserLauncher.OpenCommunity(_logger); - } - - /// - /// Handles the click event of the cmdBrowseLibrary control. - /// - /// The source of the event. - /// The instance containing the event data. - private void cmdBrowseLibrary_click(object sender, RoutedEventArgs e) - { - BrowserLauncher.OpenWebClient(_userManager, _configurationManager, _appHost, _logger); - } - - /// - /// Handles the click event of the cmExit control. - /// - /// The source of the event. - /// The instance containing the event data. - private async void cmExit_click(object sender, RoutedEventArgs e) - { - await _appHost.Shutdown().ConfigureAwait(false); - } - - /// - /// Handles the click event of the cmdReloadServer control. - /// - /// The source of the event. - /// The instance containing the event data. - private async void cmdReloadServer_click(object sender, RoutedEventArgs e) - { - await _appHost.Restart().ConfigureAwait(false); - } - - /// - /// Handles the click event of the CmShowLogWindow control. - /// - /// The source of the event. - /// The instance containing the event data. - private void CmShowLogWindow_click(object sender, RoutedEventArgs e) - { - _configurationManager.Configuration.ShowLogWindow = !_configurationManager.Configuration.ShowLogWindow; - _configurationManager.SaveConfiguration(); - LoadLogWindow(sender, e); - } - - #endregion - } -} diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index bd4364eaf4..ef5fd6eb67 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -4,38 +4,15 @@ Debug AnyCPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869} + {94ADE4D3-B7EC-45CD-A200-CC469433072B} WinExe Properties MediaBrowser.ServerApplication MediaBrowser.ServerApplication v4.5 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true ..\ true - http://www.mb3admin.com/downloads/server/ - true - Web - false - Background - 1 - Days - false - false - true - http://forum.mediabrowser3.com - Media Browser Server - Media Browser Team - Media Browser 3 - 3033 - 2.9.4795.3033 - false - true - true - true AnyCPU @@ -45,7 +22,7 @@ bin\Debug\ DEBUG;TRACE prompt - 1 + 4 AnyCPU @@ -60,42 +37,12 @@ MediaBrowser.ServerApplication.MainStartup - Resources\Images\icon.ico - - - app.manifest - - - OnBuildSuccess - - - 9633DCDB4A07D3328EFB99299C6DFB1823EBC4BE - - - - - - - false - - - false - - - http://timestamp.verisign.com/scripts/timstamp.dll - - - false - - - - + Resources\Images\Icon.ico true bin\x86\Debug\ DEBUG;TRACE - 1 full x86 prompt @@ -112,64 +59,51 @@ MinimumRecommendedRules.ruleset true - - LocalIntranet - - - ..\packages\Hardcodet.Wpf.TaskbarNotification.1.0.4.0\lib\net40\Hardcodet.Wpf.TaskbarNotification.dll - - - False + ..\packages\MediaBrowser.IsoMounting.3.0.65\lib\net45\MediaBrowser.IsoMounter.dll - - False + ..\packages\NLog.2.1.0\lib\net45\NLog.dll - - False + ..\packages\MediaBrowser.IsoMounting.3.0.65\lib\net45\pfmclrapi.dll ..\ThirdParty\ServiceStack\ServiceStack.Interfaces.dll - - False - ..\packages\SimpleInjector.2.4.1\lib\net45\SimpleInjector.dll - - - False - ..\packages\SimpleInjector.2.4.1\lib\net45\SimpleInjector.Diagnostics.dll - + - + - - - - + - - 4.0 - - - - + + + + + Properties\SharedVersion.cs + + Component + + Component + + + Form @@ -182,65 +116,36 @@ LogForm.cs + + - - - - - - - Component - + + + + + True + True + Resources.resx + Form SplashForm.cs - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Properties\SharedVersion.cs - - - App.xaml - Code - - - - - MainWindow.xaml - Code - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - LibraryViewer.cs - + + + + + + LogForm.cs @@ -251,21 +156,10 @@ SplashForm.cs - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - Designer - + + @@ -301,61 +195,8 @@ MediaBrowser.WebDashboard - - - - - - False - Microsoft .NET Framework 4.5 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Visual C++ 2010 Runtime Libraries %28x86%29 - true - - - - - - - if $(ConfigurationName) == Release ( -rmdir "$(SolutionDir)..\Deploy\Server\System" /s /q -mkdir "$(SolutionDir)..\Deploy\Server\System" -rmdir "$(SolutionDir)..\Deploy\Server\Pismo" /s /q -xcopy "$(TargetDir)$(TargetFileName)" "$(SolutionDir)..\Deploy\Server\System\" /y -xcopy "$(SolutionDir)Installation\MediaBrowser.Uninstaller.exe.config" "$(SolutionDir)..\Deploy\Server\System\" /y -xcopy "$(SolutionDir)Installation\MediaBrowser.Uninstaller.exe" "$(SolutionDir)..\Deploy\Server\System\" /y -xcopy "$(SolutionDir)Installation\MediaBrowser.InstallUtil.dll" "$(SolutionDir)..\Deploy\Server\System\" /y -xcopy "$(SolutionDir)Installation\MediaBrowser.Updater.exe" "$(SolutionDir)..\Deploy\Server\System\" /y - -mkdir "$(SolutionDir)..\Deploy\Server\System\swagger-ui" -xcopy "$(TargetDir)swagger-ui" "$(SolutionDir)..\Deploy\Server\System\swagger-ui" /y /s - -xcopy "$(TargetDir)$(TargetFileName).config" "$(SolutionDir)..\Deploy\Server\System\" /y - -xcopy "$(TargetDir)*.dll" "$(SolutionDir)..\Deploy\Server\System" /y - -mkdir "$(SolutionDir)..\Deploy\Server\System\dashboard-ui" -xcopy "$(TargetDir)dashboard-ui" "$(SolutionDir)..\Deploy\Server\System\dashboard-ui" /y /s - -del "$(SolutionDir)..\Deploy\MBServer.zip" -"$(SolutionDir)ThirdParty\7zip\7za" a -mx9 "$(SolutionDir)..\Deploy\MBServer.zip" "$(SolutionDir)..\Deploy\Server\*" -) - - + - - - - - - \ No newline at end of file diff --git a/MediaBrowser.ServerApplication/Properties/AssemblyInfo.cs b/MediaBrowser.ServerApplication/Properties/AssemblyInfo.cs index 11ac6c7bbe..080c12596d 100644 --- a/MediaBrowser.ServerApplication/Properties/AssemblyInfo.cs +++ b/MediaBrowser.ServerApplication/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Windows; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -19,25 +19,8 @@ using System.Windows; // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a5a1e61f-da85-4fd6-9d6d-bcf2bf09c1f8")] // Version information for an assembly consists of the following four values: // diff --git a/MediaBrowser.ServerApplication/Properties/Resources.Designer.cs b/MediaBrowser.ServerApplication/Properties/Resources.Designer.cs index 1fdc11c667..6323af6fde 100644 --- a/MediaBrowser.ServerApplication/Properties/Resources.Designer.cs +++ b/MediaBrowser.ServerApplication/Properties/Resources.Designer.cs @@ -59,15 +59,5 @@ namespace MediaBrowser.ServerApplication.Properties { resourceCulture = value; } } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap mb3logo800 { - get { - object obj = ResourceManager.GetObject("mb3logo800", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } } } diff --git a/MediaBrowser.ServerApplication/Properties/Resources.resx b/MediaBrowser.ServerApplication/Properties/Resources.resx index 728eee2507..29dcb1b3a3 100644 --- a/MediaBrowser.ServerApplication/Properties/Resources.resx +++ b/MediaBrowser.ServerApplication/Properties/Resources.resx @@ -117,8 +117,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\Images\mb3logo800.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - \ No newline at end of file diff --git a/MediaBrowser.ServerApplication/Properties/Settings.Designer.cs b/MediaBrowser.ServerApplication/Properties/Settings.Designer.cs deleted file mode 100644 index f7b055389f..0000000000 --- a/MediaBrowser.ServerApplication/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.17626 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MediaBrowser.ServerApplication.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/MediaBrowser.ServerApplication/Properties/Settings.settings b/MediaBrowser.ServerApplication/Properties/Settings.settings deleted file mode 100644 index 8f2fd95d62..0000000000 --- a/MediaBrowser.ServerApplication/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/MediaBrowser.ServerApplication/Splash/SplashForm.Designer.cs b/MediaBrowser.ServerApplication/Splash/SplashForm.Designer.cs index 198c3c6af8..e9ba17bc1f 100644 --- a/MediaBrowser.ServerApplication/Splash/SplashForm.Designer.cs +++ b/MediaBrowser.ServerApplication/Splash/SplashForm.Designer.cs @@ -56,6 +56,7 @@ this.panelMainContainer.Padding = new System.Windows.Forms.Padding(1); this.panelMainContainer.Size = new System.Drawing.Size(648, 347); this.panelMainContainer.TabIndex = 0; + this.panelMainContainer.UseWaitCursor = true; // // panel3 // @@ -65,6 +66,7 @@ this.panel3.Name = "panel3"; this.panel3.Size = new System.Drawing.Size(646, 69); this.panel3.TabIndex = 2; + this.panel3.UseWaitCursor = true; // // panel2 // @@ -78,6 +80,7 @@ this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(646, 205); this.panel2.TabIndex = 1; + this.panel2.UseWaitCursor = true; // // panelProgress // @@ -86,6 +89,7 @@ this.panelProgress.Name = "panelProgress"; this.panelProgress.Size = new System.Drawing.Size(0, 13); this.panelProgress.TabIndex = 3; + this.panelProgress.UseWaitCursor = true; // // panel4 // @@ -94,6 +98,7 @@ this.panel4.Name = "panel4"; this.panel4.Size = new System.Drawing.Size(648, 13); this.panel4.TabIndex = 2; + this.panel4.UseWaitCursor = true; // // lblVersion // @@ -106,6 +111,7 @@ this.lblVersion.Size = new System.Drawing.Size(270, 59); this.lblVersion.TabIndex = 1; this.lblVersion.Text = "Version 1234"; + this.lblVersion.UseWaitCursor = true; // // lblStatus // @@ -118,6 +124,7 @@ this.lblStatus.Size = new System.Drawing.Size(599, 59); this.lblStatus.TabIndex = 0; this.lblStatus.Text = "Loading Media Browser Server"; + this.lblStatus.UseWaitCursor = true; // // panel1 // @@ -128,17 +135,19 @@ this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(646, 140); this.panel1.TabIndex = 0; + this.panel1.UseWaitCursor = true; // // pictureBox1 // this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Image = global::MediaBrowser.ServerApplication.Properties.Resources.mb3logo800; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(0, 0); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(646, 140); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; + this.pictureBox1.UseWaitCursor = true; // // SplashForm // @@ -154,6 +163,7 @@ this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Media Browser"; + this.UseWaitCursor = true; this.panelMainContainer.ResumeLayout(false); this.panel2.ResumeLayout(false); this.panel2.PerformLayout(); diff --git a/MediaBrowser.ServerApplication/Splash/SplashForm.cs b/MediaBrowser.ServerApplication/Splash/SplashForm.cs index 1260c34052..845ad74fb5 100644 --- a/MediaBrowser.ServerApplication/Splash/SplashForm.cs +++ b/MediaBrowser.ServerApplication/Splash/SplashForm.cs @@ -1,5 +1,6 @@ using System; using System.ComponentModel; +using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; @@ -42,4 +43,29 @@ namespace MediaBrowser.ServerApplication.Splash base.OnClosing(e); } } + + public static class ControlHelper + { + #region Redraw Suspend/Resume + [DllImport("user32.dll", EntryPoint = "SendMessageA", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)] + private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); + private const int WM_SETREDRAW = 0xB; + + public static void SuspendDrawing(this Control target) + { + SendMessage(target.Handle, WM_SETREDRAW, 0, 0); + } + + public static void ResumeDrawing(this Control target) { ResumeDrawing(target, true); } + public static void ResumeDrawing(this Control target, bool redraw) + { + SendMessage(target.Handle, WM_SETREDRAW, 1, 0); + + if (redraw) + { + target.Refresh(); + } + } + #endregion + } } diff --git a/MediaBrowser.ServerApplication/Splash/SplashForm.resx b/MediaBrowser.ServerApplication/Splash/SplashForm.resx index 9fe6f0196c..4ef7e3c41c 100644 --- a/MediaBrowser.ServerApplication/Splash/SplashForm.resx +++ b/MediaBrowser.ServerApplication/Splash/SplashForm.resx @@ -118,6 +118,621 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + rkJggg== + + AAABAAsAICAQAAEABADoAgAAtgAAABAQEAABAAQAKAEAAJ4DAAAwMAAAAQAIAKgOAADGBAAAICAAAAEA diff --git a/MediaBrowser.ServerApplication/packages.config b/MediaBrowser.ServerApplication/packages.config index d83a85d090..f62249aa3b 100644 --- a/MediaBrowser.ServerApplication/packages.config +++ b/MediaBrowser.ServerApplication/packages.config @@ -1,7 +1,5 @@  - - \ No newline at end of file diff --git a/MediaBrowser.sln b/MediaBrowser.sln index 0c5360b494..a3e35f6038 100644 --- a/MediaBrowser.sln +++ b/MediaBrowser.sln @@ -9,8 +9,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Common", "Medi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model", "MediaBrowser.Model\MediaBrowser.Model.csproj", "{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.ServerApplication", "MediaBrowser.ServerApplication\MediaBrowser.ServerApplication.csproj", "{156EA256-AD2D-4D2F-B116-2ED4B9EFD869}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.WebDashboard", "MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj", "{5624B7B5-B5A7-41D8-9F10-CC5611109619}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F0E0E64C-2A6F-4E35-9533-D53AC07C2CD1}" @@ -39,6 +37,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Providers", "M EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.Model.Portable", "MediaBrowser.Model.Portable\MediaBrowser.Model.Portable.csproj", "{D729ADB1-1C01-428D-B680-8EFACD687B2A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaBrowser.ServerApplication", "MediaBrowser.ServerApplication\MediaBrowser.ServerApplication.csproj", "{94ADE4D3-B7EC-45CD-A200-CC469433072B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -117,22 +117,6 @@ Global {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x64.ActiveCfg = Release|Any CPU {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.ActiveCfg = Release|Any CPU {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.Build.0 = Release|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Debug|Any CPU.ActiveCfg = Debug|x86 - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Debug|Any CPU.Build.0 = Debug|x86 - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Debug|Win32.ActiveCfg = Debug|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Debug|x64.ActiveCfg = Debug|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Debug|x86.ActiveCfg = Debug|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Debug|x86.Build.0 = Debug|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Release|Any CPU.ActiveCfg = Release|x86 - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Release|Any CPU.Build.0 = Release|x86 - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Release|Win32.ActiveCfg = Release|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Release|x64.ActiveCfg = Release|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Release|x86.ActiveCfg = Release|Any CPU - {156EA256-AD2D-4D2F-B116-2ED4B9EFD869}.Release|x86.Build.0 = Release|Any CPU {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Any CPU.Build.0 = Debug|Any CPU {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -233,6 +217,20 @@ Global {D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|Win32.ActiveCfg = Release|Any CPU {D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|x64.ActiveCfg = Release|Any CPU {D729ADB1-1C01-428D-B680-8EFACD687B2A}.Release|x86.ActiveCfg = Release|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Any CPU.ActiveCfg = Debug|x86 + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Any CPU.Build.0 = Debug|x86 + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|Win32.ActiveCfg = Debug|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|x64.ActiveCfg = Debug|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Debug|x86.ActiveCfg = Debug|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Any CPU.ActiveCfg = Release|x86 + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Any CPU.Build.0 = Release|x86 + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|Win32.ActiveCfg = Release|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|x64.ActiveCfg = Release|Any CPU + {94ADE4D3-B7EC-45CD-A200-CC469433072B}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE