| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 | 
							- using System;
 
- using System.Diagnostics;
 
- using System.Windows.Forms;
 
- 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;
 
- namespace MediaBrowser.ServerApplication
 
- {
 
-     public class ServerNotifyIcon : IDisposable
 
-     {
 
-         bool IsDisposing = false;
 
-         
 
-         private System.Windows.Forms.NotifyIcon notifyIcon1;
 
-         private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdExit;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdBrowse;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdConfigure;
 
-         private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdLibraryExplorer;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdRestart;
 
-         private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdLogWindow;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdCommunity;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdApiDocs;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdStandardDocs;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdSwagger;
 
-         private System.Windows.Forms.ToolStripMenuItem cmdGtihub;
 
-         private readonly ILogger _logger;
 
-         private readonly IServerApplicationHost _appHost;
 
-         private readonly ILogManager _logManager;
 
-         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;
 
-         public bool Visible
 
-         {
 
-             get
 
-             {
 
-                 return notifyIcon1.Visible;
 
-             }
 
-             set
 
-             {
 
-                 Action act = () => notifyIcon1.Visible = false;
 
-                 contextMenuStrip1.Invoke(act);
 
-             }
 
-         }
 
-         public ServerNotifyIcon(ILogManager logManager, IServerApplicationHost appHost, IServerConfigurationManager configurationManager, IUserManager userManager, ILibraryManager libraryManager, IJsonSerializer jsonSerializer, IDisplayPreferencesRepository displayPreferencesManager, IItemRepository itemRepo)
 
-         {
 
-             _logger = logManager.GetLogger("MainWindow");
 
-             _itemRepository = itemRepo;
 
-             _appHost = appHost;
 
-             _logManager = logManager;
 
-             _configurationManager = configurationManager;
 
-             _userManager = userManager;
 
-             _libraryManager = libraryManager;
 
-             _jsonSerializer = jsonSerializer;
 
-             _displayPreferencesManager = displayPreferencesManager;
 
-             
 
-             var components = new System.ComponentModel.Container();
 
-             
 
-             var resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
 
-             contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(components);
 
-             notifyIcon1 = new System.Windows.Forms.NotifyIcon(components);
 
-             
 
-             cmdExit = new System.Windows.Forms.ToolStripMenuItem();
 
-             cmdCommunity = new System.Windows.Forms.ToolStripMenuItem();
 
-             cmdLogWindow = new System.Windows.Forms.ToolStripMenuItem();
 
-             toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
 
-             cmdRestart = new System.Windows.Forms.ToolStripMenuItem();
 
-             cmdLibraryExplorer = new System.Windows.Forms.ToolStripMenuItem();
 
-             toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
 
-             cmdConfigure = new System.Windows.Forms.ToolStripMenuItem();
 
-             cmdBrowse = new System.Windows.Forms.ToolStripMenuItem();
 
-             cmdApiDocs = new System.Windows.Forms.ToolStripMenuItem();
 
-             cmdStandardDocs = new System.Windows.Forms.ToolStripMenuItem();
 
-             cmdSwagger = new System.Windows.Forms.ToolStripMenuItem();
 
-             cmdGtihub = new System.Windows.Forms.ToolStripMenuItem();
 
-             
 
-             // 
 
-             // notifyIcon1
 
-             // 
 
-             notifyIcon1.ContextMenuStrip = contextMenuStrip1;
 
-             notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
 
-             notifyIcon1.Text = "Media Browser";
 
-             notifyIcon1.Visible = true;
 
-             // 
 
-             // contextMenuStrip1
 
-             // 
 
-             contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
 
-             cmdBrowse,
 
-             cmdConfigure,
 
-             toolStripSeparator2,
 
-             cmdLibraryExplorer,
 
-             cmdRestart,
 
-             toolStripSeparator1,
 
-             cmdApiDocs,
 
-             cmdLogWindow,
 
-             cmdCommunity,
 
-             cmdExit});
 
-             contextMenuStrip1.Name = "contextMenuStrip1";
 
-             contextMenuStrip1.ShowCheckMargin = true;
 
-             contextMenuStrip1.ShowImageMargin = false;
 
-             contextMenuStrip1.Size = new System.Drawing.Size(209, 214);
 
-             // 
 
-             // cmdExit
 
-             // 
 
-             cmdExit.Name = "cmdExit";
 
-             cmdExit.Size = new System.Drawing.Size(208, 22);
 
-             cmdExit.Text = "Exit";
 
-             // 
 
-             // cmdCommunity
 
-             // 
 
-             cmdCommunity.Name = "cmdCommunity";
 
-             cmdCommunity.Size = new System.Drawing.Size(208, 22);
 
-             cmdCommunity.Text = "Visit Community";
 
-             // 
 
-             // cmdLogWindow
 
-             // 
 
-             cmdLogWindow.CheckOnClick = true;
 
-             cmdLogWindow.Name = "cmdLogWindow";
 
-             cmdLogWindow.Size = new System.Drawing.Size(208, 22);
 
-             cmdLogWindow.Text = "Show Log Window";
 
-             // 
 
-             // toolStripSeparator1
 
-             // 
 
-             toolStripSeparator1.Name = "toolStripSeparator1";
 
-             toolStripSeparator1.Size = new System.Drawing.Size(205, 6);
 
-             // 
 
-             // cmdRestart
 
-             // 
 
-             cmdRestart.Name = "cmdRestart";
 
-             cmdRestart.Size = new System.Drawing.Size(208, 22);
 
-             cmdRestart.Text = "Restart Server";
 
-             // 
 
-             // cmdLibraryExplorer
 
-             // 
 
-             cmdLibraryExplorer.Name = "cmdLibraryExplorer";
 
-             cmdLibraryExplorer.Size = new System.Drawing.Size(208, 22);
 
-             cmdLibraryExplorer.Text = "Open Library Explorer";
 
-             // 
 
-             // toolStripSeparator2
 
-             // 
 
-             toolStripSeparator2.Name = "toolStripSeparator2";
 
-             toolStripSeparator2.Size = new System.Drawing.Size(205, 6);
 
-             // 
 
-             // cmdConfigure
 
-             // 
 
-             cmdConfigure.Name = "cmdConfigure";
 
-             cmdConfigure.Size = new System.Drawing.Size(208, 22);
 
-             cmdConfigure.Text = "Configure Media Browser";
 
-             // 
 
-             // cmdBrowse
 
-             // 
 
-             cmdBrowse.Name = "cmdBrowse";
 
-             cmdBrowse.Size = new System.Drawing.Size(208, 22);
 
-             cmdBrowse.Text = "Browse Library";
 
-             // 
 
-             // cmdApiDocs
 
-             // 
 
-             cmdApiDocs.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
 
-             cmdStandardDocs,
 
-             cmdSwagger,
 
-             cmdGtihub});
 
-             cmdApiDocs.Name = "cmdApiDocs";
 
-             cmdApiDocs.Size = new System.Drawing.Size(208, 22);
 
-             cmdApiDocs.Text = "View Api Documentation";
 
-             // 
 
-             // cmdStandardDocs
 
-             // 
 
-             cmdStandardDocs.Name = "cmdStandardDocs";
 
-             cmdStandardDocs.Size = new System.Drawing.Size(136, 22);
 
-             cmdStandardDocs.Text = "Standard";
 
-             // 
 
-             // cmdSwagger
 
-             // 
 
-             cmdSwagger.Name = "cmdSwagger";
 
-             cmdSwagger.Size = new System.Drawing.Size(136, 22);
 
-             cmdSwagger.Text = "Swagger";
 
-             // 
 
-             // cmdGtihub
 
-             // 
 
-             cmdGtihub.Name = "cmdGtihub";
 
-             cmdGtihub.Size = new System.Drawing.Size(136, 22);
 
-             cmdGtihub.Text = "Github Wiki";
 
-             cmdExit.Click += cmdExit_Click;
 
-             cmdRestart.Click += cmdRestart_Click;
 
-             cmdLogWindow.Click += cmdLogWindow_Click;
 
-             cmdConfigure.Click += cmdConfigure_Click;
 
-             cmdCommunity.Click += cmdCommunity_Click;
 
-             cmdBrowse.Click += cmdBrowse_Click;
 
-             cmdLibraryExplorer.Click += cmdLibraryExplorer_Click;
 
-             cmdSwagger.Click += cmdSwagger_Click;
 
-             cmdStandardDocs.Click += cmdStandardDocs_Click;
 
-             cmdGtihub.Click += cmdGtihub_Click;
 
-             LoadLogWindow(null, EventArgs.Empty);
 
-             _logManager.LoggerLoaded += LoadLogWindow;
 
-             _configurationManager.ConfigurationUpdated += Instance_ConfigurationUpdated;
 
-             if (_appHost.IsFirstRun)
 
-             {
 
-                 Action action = () => notifyIcon1.ShowBalloonTip(5000, "Media Browser", "Welcome to Media Browser Server!", ToolTipIcon.Info);
 
-                 contextMenuStrip1.Invoke(action);
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Handles the ConfigurationUpdated event of the Instance control.
 
-         /// </summary>
 
-         /// <param name="sender">The source of the event.</param>
 
-         /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
 
-         void Instance_ConfigurationUpdated(object sender, EventArgs e)
 
-         {
 
-             Action action = () =>
 
-             {
 
-                 var isLogWindowOpen = _logForm != null;
 
-                 if ((!isLogWindowOpen && _configurationManager.Configuration.ShowLogWindow) ||
 
-                     (isLogWindowOpen && !_configurationManager.Configuration.ShowLogWindow))
 
-                 {
 
-                     _logManager.ReloadLogger(_configurationManager.Configuration.EnableDebugLevelLogging
 
-                         ? LogSeverity.Debug
 
-                         : LogSeverity.Info);
 
-                 }
 
-             };
 
-             contextMenuStrip1.Invoke(action);
 
-         }
 
-         /// <summary>
 
-         /// Loads the log window.
 
-         /// </summary>
 
-         /// <param name="sender">The sender.</param>
 
-         /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
 
-         void LoadLogWindow(object sender, EventArgs args)
 
-         {
 
-             CloseLogWindow();
 
-             Action action = () =>
 
-             {
 
-                 // 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
 
-                 cmdLogWindow.Checked = _configurationManager.Configuration.ShowLogWindow;
 
-             };
 
-             contextMenuStrip1.Invoke(action);
 
-         }
 
-         /// <summary>
 
-         /// Closes the log window.
 
-         /// </summary>
 
-         void CloseLogWindow()
 
-         {
 
-             if (_logForm != null)
 
-             {
 
-                 _logForm.ShutDown();
 
-             }
 
-         }
 
-         void cmdBrowse_Click(object sender, EventArgs e)
 
-         {
 
-             BrowserLauncher.OpenWebClient(_userManager, _configurationManager, _appHost, _logger);
 
-         }
 
-         void cmdCommunity_Click(object sender, EventArgs e)
 
-         {
 
-             BrowserLauncher.OpenCommunity(_logger);
 
-         }
 
-         void cmdConfigure_Click(object sender, EventArgs e)
 
-         {
 
-             BrowserLauncher.OpenDashboard(_userManager, _configurationManager, _appHost, _logger);
 
-         }
 
-         void cmdLogWindow_Click(object sender, EventArgs e)
 
-         {
 
-             _configurationManager.Configuration.ShowLogWindow = !_configurationManager.Configuration.ShowLogWindow;
 
-             _configurationManager.SaveConfiguration();
 
-             LoadLogWindow(sender, e);
 
-         }
 
-         void cmdLibraryExplorer_Click(object sender, EventArgs e)
 
-         {
 
-             new LibraryViewer(_jsonSerializer, _userManager, _libraryManager, _displayPreferencesManager, _itemRepository).Show();
 
-         }
 
-         void cmdRestart_Click(object sender, EventArgs e)
 
-         {
 
-             _appHost.Restart();
 
-         }
 
-         void cmdExit_Click(object sender, EventArgs e)
 
-         {
 
-             _appHost.Shutdown();
 
-         }
 
-         void cmdGtihub_Click(object sender, EventArgs e)
 
-         {
 
-             BrowserLauncher.OpenGithub(_logger);
 
-         }
 
-         void cmdStandardDocs_Click(object sender, EventArgs e)
 
-         {
 
-             BrowserLauncher.OpenStandardApiDocumentation(_configurationManager, _appHost, _logger);
 
-         }
 
-         void cmdSwagger_Click(object sender, EventArgs e)
 
-         {
 
-             BrowserLauncher.OpenSwagger(_configurationManager, _appHost, _logger);
 
-         }
 
-         ~ServerNotifyIcon()
 
-         {
 
-             Dispose();
 
-         }
 
-         public void Dispose()
 
-         {
 
-             if (!IsDisposing)
 
-             {
 
-                 IsDisposing = true;
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |