public PerServerView(PerServerSettings settings) { // Remember Settings = settings; // Create view Refresh(); }
public ProcessingItem( PerServerSettings.PerServerView view, VCRNETControl context ) { // Remember m_Context = context; View = view; // Attach to settings PerServerSettings settings = view.Settings; // Create a snap shot ServerName = settings.ServerName; ServerPort = settings.ServerPort; // Report View.StartProcessing(); }
public ProcessingItem(PerServerSettings.PerServerView view, VCRNETControl context) { // Remember m_Context = context; View = view; // Attach to settings PerServerSettings settings = view.Settings; // Create a snap shot ServerName = settings.ServerName; ServerPort = settings.ServerPort; // Report View.StartProcessing(); }
public PerServerView( PerServerSettings settings ) { // Remember Settings = settings; // Create view Refresh(); }
private void cmdAdd_Click( object sender, EventArgs e ) { // Create a brand new item var settings = new PerServerSettings { RefreshInterval = (int)selInterval.Value, ServerPort = (ushort)selPort.Value, WakeUpBroadcast = txSubNet.Text, ServerName = txServer.Text, }; // Update view settings.View.Refresh(); // Create the update list var list = new List<PerServerSettings>(); // Existing foreach (PerServerSettings.PerServerView view in lstServers.Items) list.Add( view.Settings ); // the new one list.Add( settings ); // Old value PerServerSettings[] oldSettings = m_Settings.Servers; // Update m_Settings.Servers = list.ToArray(); // Try save try { // Store to disk m_Settings.Save(); // Unselect foreach (PerServerSettings.PerServerView view in lstServers.Items) view.Selected = false; // Select settings.View.Selected = true; // Update in memory lstServers.Items.Add( settings.View ); // Show settings.View.EnsureVisible(); // Refresh icon list CreateTrayIcons(); } catch (Exception ex) { // Back m_Settings.Servers = oldSettings; // Report MessageBox.Show( this, ex.Message, string.Format( Properties.Resources.AddServerTitle, settings.ServerName ) ); } }
public VCRNETControl( string[] args ) { // Report Log( "VCC [2013/06/01] starting up" ); // Autostart service if (m_Settings.AutoStartService) if (!ThreadPool.QueueUserWorkItem( StartService )) StartService( null ); // This is us Type me = GetType(); // Pattern start string prefix = me.Namespace + ".TrayIcons."; string suffix = ".ICO"; // Load tray icons foreach (string resname in me.Assembly.GetManifestResourceNames()) if (resname.StartsWith( prefix )) if (resname.EndsWith( suffix )) { // Icon string iconname = resname.Substring( prefix.Length, resname.Length - prefix.Length - suffix.Length ); // Load using (Stream stream = me.Assembly.GetManifestResourceStream( resname )) { // Load the icon Icon icon = new Icon( stream ); // Check for debugger if (Debugger.IsAttached) using (var bmp = icon.ToBitmap()) { // Change using (var gc = Graphics.FromImage( bmp )) using (var color = new SolidBrush( Color.Black )) { // Paint gc.FillRectangle( color, 0, 15, bmp.Width, 5 ); } // Free icon icon.Dispose(); // Reload icon = Icon.FromHandle( bmp.GetHicon() ); } // Get the related color var colorIndex = (TrayColors)Enum.Parse( typeof( TrayColors ), iconname, true ); // Add to map m_TrayIcons[colorIndex] = icon; } } // Load picture using (var stream = me.Assembly.GetManifestResourceStream( me.Namespace + ".Icons.Connected.ico" )) m_Connected = Image.FromStream( stream ); // Startup InitializeComponent(); // Load the top menu string m_TopMenu = mnuDefault.Text; // Correct IDE problems (destroyed when language changes) selHibernate.Value = 5; selHibernate.Minimum = 1; selHibernate.Maximum = 30; selInterval.Value = 10; selInterval.Minimum = 5; selInterval.Maximum = 300; selPort.Maximum = ushort.MaxValue; selPort.Value = 80; selPort.Minimum = 1; selStreamPort.Maximum = ushort.MaxValue; selStreamPort.Value = 2910; selStreamPort.Minimum = 1; lstServers.View = View.Details; errorMessages.SetIconAlignment( txArgs, ErrorIconAlignment.MiddleLeft ); errorMessages.SetIconAlignment( txMultiCast, ErrorIconAlignment.MiddleLeft ); // Make sure that handle exists CreateHandle(); // Load servers if (null != m_Settings.Servers) foreach (var setting in m_Settings.Servers) lstServers.Items.Add( setting.View ); // Load settings ckAutoStart.Checked = m_Settings.AutoStartService; ckHibernate.Checked = (m_Settings.HibernationDelay > 0); selHibernate.Value = ckHibernate.Checked ? (int)m_Settings.HibernationDelay : 5; txMultiCast.Text = m_Settings.MulticastIP; selStreamPort.Value = m_Settings.MinPort; selDelay.Value = m_Settings.StartupDelay; txArgs.Text = m_Settings.ViewerArgs; txViewer.Text = m_Settings.Viewer; // The default CultureItem selectedItem = null; // Fill language list foreach (var info in CultureInfo.GetCultures( CultureTypes.NeutralCultures )) { // Skip all sub-languages if (info.NativeName.IndexOf( '(' ) >= 0) continue; // Create var item = new CultureItem( info ); // Add to map selLanguage.Items.Add( item ); // Remember default if (Equals( m_Settings.Language, info.TwoLetterISOLanguageName )) selectedItem = item; } // Copy over selLanguage.SelectedItem = selectedItem; // Update GUI CheckLocal(); CheckStream(); // No local service frameLocal.Enabled = false; // See if local service exists try { // Attach to registry using (var vcr = Registry.LocalMachine.OpenSubKey( @"SYSTEM\CurrentControlSet\Services\VCR.NET Service" )) if (null != vcr) { // Load path string image = (string)vcr.GetValue( "ImagePath" ); if (!string.IsNullOrEmpty( image )) { // Correct if (image.StartsWith( "\"" ) && image.EndsWith( "\"" ) && (image.Length > 1)) { // Remove quotes image = image.Substring( 1, image.Length - 2 ).Replace( "\"\"", "\"" ); } } // Attach to configuration file var config = new FileInfo( image + ".config" ); if (config.Exists) { // Load DOM XmlDocument dom = new XmlDocument(); dom.Load( config.FullName ); // Check for port var portNode = (XmlElement)dom.SelectSingleNode( "configuration/appSettings/add[@key='TCPPort']" ); var port = ushort.Parse( portNode.GetAttribute( "value" ) ); // At least there is a valid local server frameLocal.Enabled = true; // Check for defaulting if (lstServers.Items.Count < 1) { // Create a new entry var settings = new PerServerSettings { ServerName = "localhost", RefreshInterval = 10, ServerPort = port, }; // Add m_Settings.Servers = new PerServerSettings[] { settings }; // Try add try { // Save m_Settings.Save(); // Add to list lstServers.Items.Add( settings.View ); } catch { // Reset m_Settings.Servers = null; } } } } } catch { // Ignore any error } // Install tray icons CreateTrayIcons(); // Prepare buttons lstServers_SelectedIndexChanged( lstServers, EventArgs.Empty ); }