Logs with time stamp.
CEC logs level configurable from UI.
1.1 --- a/Server/CecClient.cs Mon Jul 18 15:56:25 2016 +0200
1.2 +++ b/Server/CecClient.cs Tue Jul 19 15:43:04 2016 +0200
1.3 @@ -40,11 +40,46 @@
1.4 class Client : CecCallbackMethods
1.5 {
1.6 /// <summary>
1.7 + /// Provide direct access to CEC library
1.8 + /// </summary>
1.9 + public LibCecSharp Lib
1.10 + {
1.11 + get
1.12 + {
1.13 + return iLib;
1.14 + }
1.15 + }
1.16 +
1.17 + /// <summary>
1.18 + ///
1.19 + /// </summary>
1.20 + public int LogLevel = (int)CecLogLevel.Notice;
1.21 +
1.22 + /// <summary>
1.23 + ///
1.24 + /// </summary>
1.25 + public bool FilterOutPollLogs = true;
1.26 +
1.27 + /// <summary>
1.28 + ///
1.29 + /// </summary>
1.30 + private LibCecSharp iLib;
1.31 + /// <summary>
1.32 + ///
1.33 + /// </summary>
1.34 + private LibCECConfiguration Config;
1.35 +
1.36 + /// <summary>
1.37 + ///
1.38 + /// </summary>
1.39 + private bool iConnected;
1.40 +
1.41 + /// <summary>
1.42 ///
1.43 /// </summary>
1.44 /// <param name="aDeviceName"></param>
1.45 /// <param name="aHdmiPort"></param>
1.46 - public Client(string aDeviceName, byte aHdmiPort, CecDeviceType aDeviceType = CecDeviceType.PlaybackDevice, CecLogLevel aLogLevel = CecLogLevel.Warning)
1.47 + public Client(string aDeviceName, byte aHdmiPort, CecDeviceType aDeviceType = CecDeviceType.PlaybackDevice)
1.48 {
1.49 Config = new LibCECConfiguration();
1.50 Config.DeviceTypes.Types[0] = aDeviceType;
1.51 @@ -52,7 +87,6 @@
1.52 Config.HDMIPort = aHdmiPort;
1.53 //Config.ClientVersion = LibCECConfiguration.CurrentVersion;
1.54 Config.SetCallbacks(this);
1.55 - LogLevel = (int)aLogLevel;
1.56
1.57 iLib = new LibCecSharp(Config);
1.58 iLib.InitVideoStandalone();
1.59 @@ -148,6 +182,11 @@
1.60 break;
1.61 case CecLogLevel.Debug:
1.62 strLevel = "DEBUG: ";
1.63 + if (message.Message.IndexOf("POLL") != -1 && FilterOutPollLogs)
1.64 + {
1.65 + //We have an option to prevent spamming with poll debug logs
1.66 + return 1;
1.67 + }
1.68 break;
1.69 default:
1.70 break;
1.71 @@ -510,33 +549,6 @@
1.72 }
1.73 }
1.74
1.75 - /// <summary>
1.76 - /// Provide direct access to CEC library
1.77 - /// </summary>
1.78 - public LibCecSharp Lib
1.79 - {
1.80 - get
1.81 - {
1.82 - return iLib;
1.83 - }
1.84 - }
1.85
1.86 - /// <summary>
1.87 - ///
1.88 - /// </summary>
1.89 - private int LogLevel;
1.90 - /// <summary>
1.91 - ///
1.92 - /// </summary>
1.93 - private LibCecSharp iLib;
1.94 - /// <summary>
1.95 - ///
1.96 - /// </summary>
1.97 - private LibCECConfiguration Config;
1.98 -
1.99 - /// <summary>
1.100 - ///
1.101 - /// </summary>
1.102 - private bool iConnected;
1.103 }
1.104 }
2.1 --- a/Server/ConsumerElectronicControl.cs Mon Jul 18 15:56:25 2016 +0200
2.2 +++ b/Server/ConsumerElectronicControl.cs Tue Jul 19 15:43:04 2016 +0200
2.3 @@ -14,7 +14,7 @@
2.4 ///
2.5 private PowerManager.SettingNotifier iPowerSettingNotifier;
2.6 ///
2.7 - private Cec.Client iCecClient;
2.8 + public Cec.Client Client;
2.9 ///This flag will only work properly if both on and off events are monitored.
2.10 ///TODO: have a more solid implementation
2.11 public bool MonitorPowerOn;
2.12 @@ -23,7 +23,7 @@
2.13
2.14 public void TestSendKeys()
2.15 {
2.16 - iCecClient.TestSendKey();
2.17 + Client.TestSendKey();
2.18 }
2.19
2.20 /// <summary>
2.21 @@ -55,7 +55,7 @@
2.22 }
2.23
2.24 //CEC
2.25 - iCecClient = new Cec.Client(aDeviceName,aHdmiPort, CecDeviceType.PlaybackDevice, CecLogLevel.All&~CecLogLevel.Traffic&~CecLogLevel.Debug);
2.26 + Client = new Cec.Client(aDeviceName,aHdmiPort, CecDeviceType.PlaybackDevice);
2.27 ConnectCecClient();
2.28 }
2.29
2.30 @@ -70,11 +70,11 @@
2.31 iPowerSettingNotifier = null;
2.32 }
2.33 //
2.34 - if (iCecClient != null)
2.35 + if (Client != null)
2.36 {
2.37 - iCecClient.Close();
2.38 - iCecClient.Dispose();
2.39 - iCecClient = null;
2.40 + Client.Close();
2.41 + Client.Dispose();
2.42 + Client = null;
2.43 }
2.44 }
2.45
2.46 @@ -84,7 +84,7 @@
2.47 private void ConnectCecClient()
2.48 {
2.49 //Our client takes care of closing before trying to connect
2.50 - if (!iCecClient.Connect(1000))
2.51 + if (!Client.Connect(1000))
2.52 {
2.53 Debug.WriteLine("WARNING: No CEC connection!");
2.54 }
2.55 @@ -92,7 +92,7 @@
2.56
2.57 private void OnMonitorPowerOn()
2.58 {
2.59 - Console.WriteLine("ON");
2.60 + Console.WriteLine("OnMonitorPowerOn");
2.61
2.62 if (iReconnectToPowerTv)
2.63 {
2.64 @@ -103,13 +103,13 @@
2.65 //iCecClient.Lib.PowerOnDevices(CecLogicalAddress.Tv);
2.66 //iCecClient.Lib.SendKeypress(CecLogicalAddress.Tv,CecUserControlCode.PowerOnFunction,true);
2.67 //Set ourselves as the active source
2.68 - iCecClient.Lib.SetActiveSource(CecDeviceType.PlaybackDevice);
2.69 + Client.Lib.SetActiveSource(CecDeviceType.PlaybackDevice);
2.70 MonitorPowerOn = true;
2.71 }
2.72
2.73 private void OnMonitorPowerOff()
2.74 {
2.75 - Console.WriteLine("OFF");
2.76 + Console.WriteLine("OnMonitorPowerOff");
2.77
2.78 if (iReconnectToPowerTv)
2.79 {
2.80 @@ -117,7 +117,7 @@
2.81 }
2.82
2.83 //Try turning off the TV
2.84 - iCecClient.Lib.StandbyDevices(CecLogicalAddress.Tv);
2.85 + Client.Lib.StandbyDevices(CecLogicalAddress.Tv);
2.86 //iCecClient.Lib.SendKeypress(CecLogicalAddress.Tv, CecUserControlCode.PowerOffFunction, true);
2.87 //Tell everyone that we are no longer active
2.88 //iCecClient.Lib.SetInactiveView();
3.1 --- a/Server/MainForm.Designer.cs Mon Jul 18 15:56:25 2016 +0200
3.2 +++ b/Server/MainForm.Designer.cs Tue Jul 19 15:43:04 2016 +0200
3.3 @@ -99,6 +99,13 @@
3.4 this.labelStartFileName = new System.Windows.Forms.Label();
3.5 this.buttonSelectFile = new System.Windows.Forms.Button();
3.6 this.tabPageCec = new System.Windows.Forms.TabPage();
3.7 + this.groupBoxCecLogOptions = new System.Windows.Forms.GroupBox();
3.8 + this.checkBoxCecLogNoPoll = new System.Windows.Forms.CheckBox();
3.9 + this.checkBoxCecLogTraffic = new System.Windows.Forms.CheckBox();
3.10 + this.checkBoxCecLogDebug = new System.Windows.Forms.CheckBox();
3.11 + this.checkBoxCecLogNotice = new System.Windows.Forms.CheckBox();
3.12 + this.checkBoxCecLogError = new System.Windows.Forms.CheckBox();
3.13 + this.checkBoxCecLogWarning = new System.Windows.Forms.CheckBox();
3.14 this.checkBoxCecReconnectToPowerTv = new System.Windows.Forms.CheckBox();
3.15 this.checkBoxCecMonitorOn = new System.Windows.Forms.CheckBox();
3.16 this.checkBoxCecMonitorOff = new System.Windows.Forms.CheckBox();
3.17 @@ -111,6 +118,7 @@
3.18 this.checkBoxAutoStart = new System.Windows.Forms.CheckBox();
3.19 this.buttonUpdate = new System.Windows.Forms.Button();
3.20 this.tabPageLogs = new System.Windows.Forms.TabPage();
3.21 + this.buttonClearLogs = new System.Windows.Forms.Button();
3.22 this.richTextBoxLogs = new System.Windows.Forms.RichTextBox();
3.23 this.labelFontWidth = new System.Windows.Forms.Label();
3.24 this.labelFontHeight = new System.Windows.Forms.Label();
3.25 @@ -129,6 +137,7 @@
3.26 this.tabPageInput.SuspendLayout();
3.27 ((System.ComponentModel.ISupportInitialize)(this.pictureBoxGreenStart)).BeginInit();
3.28 this.tabPageCec.SuspendLayout();
3.29 + this.groupBoxCecLogOptions.SuspendLayout();
3.30 this.tabPageApp.SuspendLayout();
3.31 this.tabPageLogs.SuspendLayout();
3.32 this.SuspendLayout();
3.33 @@ -217,10 +226,10 @@
3.34 this.toolStripStatusLabelSpring,
3.35 this.toolStripStatusLabelPower,
3.36 this.toolStripStatusLabelFps});
3.37 - this.statusStrip.Location = new System.Drawing.Point(0, 420);
3.38 + this.statusStrip.Location = new System.Drawing.Point(0, 539);
3.39 this.statusStrip.Name = "statusStrip";
3.40 this.statusStrip.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
3.41 - this.statusStrip.Size = new System.Drawing.Size(624, 22);
3.42 + this.statusStrip.Size = new System.Drawing.Size(784, 22);
3.43 this.statusStrip.TabIndex = 1;
3.44 this.statusStrip.Text = "statusStrip";
3.45 //
3.46 @@ -233,7 +242,7 @@
3.47 // toolStripStatusLabelSpring
3.48 //
3.49 this.toolStripStatusLabelSpring.Name = "toolStripStatusLabelSpring";
3.50 - this.toolStripStatusLabelSpring.Size = new System.Drawing.Size(473, 17);
3.51 + this.toolStripStatusLabelSpring.Size = new System.Drawing.Size(633, 17);
3.52 this.toolStripStatusLabelSpring.Spring = true;
3.53 //
3.54 // toolStripStatusLabelPower
3.55 @@ -258,15 +267,16 @@
3.56 this.tabPageClients.Location = new System.Drawing.Point(4, 22);
3.57 this.tabPageClients.Name = "tabPageClients";
3.58 this.tabPageClients.Padding = new System.Windows.Forms.Padding(3);
3.59 - this.tabPageClients.Size = new System.Drawing.Size(592, 242);
3.60 + this.tabPageClients.Size = new System.Drawing.Size(752, 385);
3.61 this.tabPageClients.TabIndex = 2;
3.62 this.tabPageClients.Text = "Clients";
3.63 this.tabPageClients.UseVisualStyleBackColor = true;
3.64 //
3.65 // iCheckBoxStartIdleClient
3.66 //
3.67 + this.iCheckBoxStartIdleClient.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.68 this.iCheckBoxStartIdleClient.AutoSize = true;
3.69 - this.iCheckBoxStartIdleClient.Location = new System.Drawing.Point(108, 217);
3.70 + this.iCheckBoxStartIdleClient.Location = new System.Drawing.Point(108, 340);
3.71 this.iCheckBoxStartIdleClient.Name = "iCheckBoxStartIdleClient";
3.72 this.iCheckBoxStartIdleClient.Size = new System.Drawing.Size(145, 17);
3.73 this.iCheckBoxStartIdleClient.TabIndex = 22;
3.74 @@ -286,7 +296,8 @@
3.75 //
3.76 // buttonCloseClients
3.77 //
3.78 - this.buttonCloseClients.Location = new System.Drawing.Point(6, 213);
3.79 + this.buttonCloseClients.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.80 + this.buttonCloseClients.Location = new System.Drawing.Point(6, 336);
3.81 this.buttonCloseClients.Name = "buttonCloseClients";
3.82 this.buttonCloseClients.Size = new System.Drawing.Size(96, 23);
3.83 this.buttonCloseClients.TabIndex = 20;
3.84 @@ -311,7 +322,7 @@
3.85 | System.Windows.Forms.AnchorStyles.Right)));
3.86 this.iTreeViewClients.Location = new System.Drawing.Point(108, 6);
3.87 this.iTreeViewClients.Name = "iTreeViewClients";
3.88 - this.iTreeViewClients.Size = new System.Drawing.Size(478, 205);
3.89 + this.iTreeViewClients.Size = new System.Drawing.Size(638, 328);
3.90 this.iTreeViewClients.TabIndex = 0;
3.91 this.iTreeViewClients.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViewClients_AfterSelect);
3.92 //
3.93 @@ -335,14 +346,14 @@
3.94 this.tabPageDisplay.Location = new System.Drawing.Point(4, 22);
3.95 this.tabPageDisplay.Name = "tabPageDisplay";
3.96 this.tabPageDisplay.Padding = new System.Windows.Forms.Padding(3);
3.97 - this.tabPageDisplay.Size = new System.Drawing.Size(592, 242);
3.98 + this.tabPageDisplay.Size = new System.Drawing.Size(752, 385);
3.99 this.tabPageDisplay.TabIndex = 0;
3.100 this.tabPageDisplay.Text = "Display";
3.101 this.tabPageDisplay.UseVisualStyleBackColor = true;
3.102 //
3.103 // buttonShowClock
3.104 //
3.105 - this.buttonShowClock.Location = new System.Drawing.Point(293, 124);
3.106 + this.buttonShowClock.Location = new System.Drawing.Point(6, 122);
3.107 this.buttonShowClock.Name = "buttonShowClock";
3.108 this.buttonShowClock.Size = new System.Drawing.Size(75, 23);
3.109 this.buttonShowClock.TabIndex = 23;
3.110 @@ -352,7 +363,7 @@
3.111 //
3.112 // buttonHideClock
3.113 //
3.114 - this.buttonHideClock.Location = new System.Drawing.Point(293, 153);
3.115 + this.buttonHideClock.Location = new System.Drawing.Point(6, 151);
3.116 this.buttonHideClock.Name = "buttonHideClock";
3.117 this.buttonHideClock.Size = new System.Drawing.Size(75, 23);
3.118 this.buttonHideClock.TabIndex = 22;
3.119 @@ -362,7 +373,7 @@
3.120 //
3.121 // buttonPowerOff
3.122 //
3.123 - this.buttonPowerOff.Location = new System.Drawing.Point(293, 211);
3.124 + this.buttonPowerOff.Location = new System.Drawing.Point(6, 209);
3.125 this.buttonPowerOff.Name = "buttonPowerOff";
3.126 this.buttonPowerOff.Size = new System.Drawing.Size(75, 23);
3.127 this.buttonPowerOff.TabIndex = 21;
3.128 @@ -372,7 +383,7 @@
3.129 //
3.130 // buttonPowerOn
3.131 //
3.132 - this.buttonPowerOn.Location = new System.Drawing.Point(293, 182);
3.133 + this.buttonPowerOn.Location = new System.Drawing.Point(6, 180);
3.134 this.buttonPowerOn.Name = "buttonPowerOn";
3.135 this.buttonPowerOn.Size = new System.Drawing.Size(75, 23);
3.136 this.buttonPowerOn.TabIndex = 20;
3.137 @@ -412,7 +423,7 @@
3.138 // buttonSuspend
3.139 //
3.140 this.buttonSuspend.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.141 - this.buttonSuspend.Location = new System.Drawing.Point(6, 184);
3.142 + this.buttonSuspend.Location = new System.Drawing.Point(6, 317);
3.143 this.buttonSuspend.Name = "buttonSuspend";
3.144 this.buttonSuspend.Size = new System.Drawing.Size(75, 23);
3.145 this.buttonSuspend.TabIndex = 16;
3.146 @@ -424,7 +435,7 @@
3.147 //
3.148 this.checkBoxConnectOnStartup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.149 this.checkBoxConnectOnStartup.AutoSize = true;
3.150 - this.checkBoxConnectOnStartup.Location = new System.Drawing.Point(113, 217);
3.151 + this.checkBoxConnectOnStartup.Location = new System.Drawing.Point(113, 350);
3.152 this.checkBoxConnectOnStartup.Name = "checkBoxConnectOnStartup";
3.153 this.checkBoxConnectOnStartup.Size = new System.Drawing.Size(119, 17);
3.154 this.checkBoxConnectOnStartup.TabIndex = 13;
3.155 @@ -437,10 +448,10 @@
3.156 this.trackBarBrightness.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
3.157 | System.Windows.Forms.AnchorStyles.Right)));
3.158 this.trackBarBrightness.BackColor = System.Drawing.SystemColors.Window;
3.159 - this.trackBarBrightness.Location = new System.Drawing.Point(544, 9);
3.160 + this.trackBarBrightness.Location = new System.Drawing.Point(704, 9);
3.161 this.trackBarBrightness.Name = "trackBarBrightness";
3.162 this.trackBarBrightness.Orientation = System.Windows.Forms.Orientation.Vertical;
3.163 - this.trackBarBrightness.Size = new System.Drawing.Size(45, 225);
3.164 + this.trackBarBrightness.Size = new System.Drawing.Size(45, 358);
3.165 this.trackBarBrightness.TabIndex = 10;
3.166 this.trackBarBrightness.TickStyle = System.Windows.Forms.TickStyle.Both;
3.167 this.toolTip.SetToolTip(this.trackBarBrightness, "Brightness adjustment");
3.168 @@ -489,7 +500,7 @@
3.169 // buttonCapture
3.170 //
3.171 this.buttonCapture.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.172 - this.buttonCapture.Location = new System.Drawing.Point(6, 213);
3.173 + this.buttonCapture.Location = new System.Drawing.Point(6, 346);
3.174 this.buttonCapture.Name = "buttonCapture";
3.175 this.buttonCapture.Size = new System.Drawing.Size(75, 23);
3.176 this.buttonCapture.TabIndex = 5;
3.177 @@ -514,7 +525,7 @@
3.178 //
3.179 this.checkBoxFixedPitchFontOnly.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.180 this.checkBoxFixedPitchFontOnly.AutoSize = true;
3.181 - this.checkBoxFixedPitchFontOnly.Location = new System.Drawing.Point(87, 217);
3.182 + this.checkBoxFixedPitchFontOnly.Location = new System.Drawing.Point(87, 362);
3.183 this.checkBoxFixedPitchFontOnly.Name = "checkBoxFixedPitchFontOnly";
3.184 this.checkBoxFixedPitchFontOnly.Size = new System.Drawing.Size(120, 17);
3.185 this.checkBoxFixedPitchFontOnly.TabIndex = 17;
3.186 @@ -525,7 +536,7 @@
3.187 //
3.188 this.checkBoxShowBorders.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
3.189 this.checkBoxShowBorders.AutoSize = true;
3.190 - this.checkBoxShowBorders.Location = new System.Drawing.Point(485, 29);
3.191 + this.checkBoxShowBorders.Location = new System.Drawing.Point(645, 29);
3.192 this.checkBoxShowBorders.Name = "checkBoxShowBorders";
3.193 this.checkBoxShowBorders.Size = new System.Drawing.Size(91, 17);
3.194 this.checkBoxShowBorders.TabIndex = 11;
3.195 @@ -536,7 +547,7 @@
3.196 // buttonFont
3.197 //
3.198 this.buttonFont.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.199 - this.buttonFont.Location = new System.Drawing.Point(6, 213);
3.200 + this.buttonFont.Location = new System.Drawing.Point(6, 356);
3.201 this.buttonFont.Name = "buttonFont";
3.202 this.buttonFont.Size = new System.Drawing.Size(75, 23);
3.203 this.buttonFont.TabIndex = 0;
3.204 @@ -557,10 +568,10 @@
3.205 this.tabControl.Controls.Add(this.tabPageCec);
3.206 this.tabControl.Controls.Add(this.tabPageApp);
3.207 this.tabControl.Controls.Add(this.tabPageLogs);
3.208 - this.tabControl.Location = new System.Drawing.Point(12, 139);
3.209 + this.tabControl.Location = new System.Drawing.Point(12, 125);
3.210 this.tabControl.Name = "tabControl";
3.211 this.tabControl.SelectedIndex = 0;
3.212 - this.tabControl.Size = new System.Drawing.Size(600, 268);
3.213 + this.tabControl.Size = new System.Drawing.Size(760, 411);
3.214 this.tabControl.TabIndex = 0;
3.215 //
3.216 // tabPageDesign
3.217 @@ -580,15 +591,16 @@
3.218 this.tabPageDesign.Location = new System.Drawing.Point(4, 22);
3.219 this.tabPageDesign.Name = "tabPageDesign";
3.220 this.tabPageDesign.Padding = new System.Windows.Forms.Padding(3);
3.221 - this.tabPageDesign.Size = new System.Drawing.Size(592, 242);
3.222 + this.tabPageDesign.Size = new System.Drawing.Size(752, 385);
3.223 this.tabPageDesign.TabIndex = 3;
3.224 this.tabPageDesign.Text = "Design";
3.225 this.tabPageDesign.UseVisualStyleBackColor = true;
3.226 //
3.227 // labelScrollingSpeed
3.228 //
3.229 + this.labelScrollingSpeed.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.230 this.labelScrollingSpeed.AutoSize = true;
3.231 - this.labelScrollingSpeed.Location = new System.Drawing.Point(84, 119);
3.232 + this.labelScrollingSpeed.Location = new System.Drawing.Point(92, 248);
3.233 this.labelScrollingSpeed.Name = "labelScrollingSpeed";
3.234 this.labelScrollingSpeed.Size = new System.Drawing.Size(115, 13);
3.235 this.labelScrollingSpeed.TabIndex = 28;
3.236 @@ -596,7 +608,8 @@
3.237 //
3.238 // maskedTextBoxScrollingSpeed
3.239 //
3.240 - this.maskedTextBoxScrollingSpeed.Location = new System.Drawing.Point(205, 116);
3.241 + this.maskedTextBoxScrollingSpeed.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.242 + this.maskedTextBoxScrollingSpeed.Location = new System.Drawing.Point(213, 245);
3.243 this.maskedTextBoxScrollingSpeed.Mask = "000";
3.244 this.maskedTextBoxScrollingSpeed.Name = "maskedTextBoxScrollingSpeed";
3.245 this.maskedTextBoxScrollingSpeed.PromptChar = ' ';
3.246 @@ -606,8 +619,9 @@
3.247 //
3.248 // labelScrollLoopSeparator
3.249 //
3.250 + this.labelScrollLoopSeparator.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.251 this.labelScrollLoopSeparator.AutoSize = true;
3.252 - this.labelScrollLoopSeparator.Location = new System.Drawing.Point(90, 145);
3.253 + this.labelScrollLoopSeparator.Location = new System.Drawing.Point(98, 274);
3.254 this.labelScrollLoopSeparator.Name = "labelScrollLoopSeparator";
3.255 this.labelScrollLoopSeparator.Size = new System.Drawing.Size(109, 13);
3.256 this.labelScrollLoopSeparator.TabIndex = 26;
3.257 @@ -615,7 +629,8 @@
3.258 //
3.259 // textBoxScrollLoopSeparator
3.260 //
3.261 - this.textBoxScrollLoopSeparator.Location = new System.Drawing.Point(205, 142);
3.262 + this.textBoxScrollLoopSeparator.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.263 + this.textBoxScrollLoopSeparator.Location = new System.Drawing.Point(213, 271);
3.264 this.textBoxScrollLoopSeparator.Name = "textBoxScrollLoopSeparator";
3.265 this.textBoxScrollLoopSeparator.Size = new System.Drawing.Size(74, 20);
3.266 this.textBoxScrollLoopSeparator.TabIndex = 25;
3.267 @@ -623,8 +638,9 @@
3.268 //
3.269 // labelMinFontSize
3.270 //
3.271 + this.labelMinFontSize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.272 this.labelMinFontSize.AutoSize = true;
3.273 - this.labelMinFontSize.Location = new System.Drawing.Point(80, 194);
3.274 + this.labelMinFontSize.Location = new System.Drawing.Point(88, 323);
3.275 this.labelMinFontSize.Name = "labelMinFontSize";
3.276 this.labelMinFontSize.Size = new System.Drawing.Size(119, 13);
3.277 this.labelMinFontSize.TabIndex = 24;
3.278 @@ -632,7 +648,8 @@
3.279 //
3.280 // maskedTextBoxMinFontSize
3.281 //
3.282 - this.maskedTextBoxMinFontSize.Location = new System.Drawing.Point(205, 191);
3.283 + this.maskedTextBoxMinFontSize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.284 + this.maskedTextBoxMinFontSize.Location = new System.Drawing.Point(213, 320);
3.285 this.maskedTextBoxMinFontSize.Mask = "000";
3.286 this.maskedTextBoxMinFontSize.Name = "maskedTextBoxMinFontSize";
3.287 this.maskedTextBoxMinFontSize.PromptChar = ' ';
3.288 @@ -644,7 +661,7 @@
3.289 //
3.290 this.checkBoxScaleToFit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.291 this.checkBoxScaleToFit.AutoSize = true;
3.292 - this.checkBoxScaleToFit.Location = new System.Drawing.Point(87, 168);
3.293 + this.checkBoxScaleToFit.Location = new System.Drawing.Point(86, 297);
3.294 this.checkBoxScaleToFit.Name = "checkBoxScaleToFit";
3.295 this.checkBoxScaleToFit.Size = new System.Drawing.Size(201, 17);
3.296 this.checkBoxScaleToFit.TabIndex = 22;
3.297 @@ -656,7 +673,7 @@
3.298 //
3.299 this.checkBoxInverseColors.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
3.300 this.checkBoxInverseColors.AutoSize = true;
3.301 - this.checkBoxInverseColors.Location = new System.Drawing.Point(485, 52);
3.302 + this.checkBoxInverseColors.Location = new System.Drawing.Point(645, 52);
3.303 this.checkBoxInverseColors.Name = "checkBoxInverseColors";
3.304 this.checkBoxInverseColors.Size = new System.Drawing.Size(92, 17);
3.305 this.checkBoxInverseColors.TabIndex = 21;
3.306 @@ -668,7 +685,7 @@
3.307 //
3.308 this.checkBoxReverseScreen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
3.309 this.checkBoxReverseScreen.AutoSize = true;
3.310 - this.checkBoxReverseScreen.Location = new System.Drawing.Point(485, 6);
3.311 + this.checkBoxReverseScreen.Location = new System.Drawing.Point(645, 6);
3.312 this.checkBoxReverseScreen.Name = "checkBoxReverseScreen";
3.313 this.checkBoxReverseScreen.Size = new System.Drawing.Size(101, 17);
3.314 this.checkBoxReverseScreen.TabIndex = 14;
3.315 @@ -685,7 +702,7 @@
3.316 this.tabPageAudio.Location = new System.Drawing.Point(4, 22);
3.317 this.tabPageAudio.Name = "tabPageAudio";
3.318 this.tabPageAudio.Padding = new System.Windows.Forms.Padding(3);
3.319 - this.tabPageAudio.Size = new System.Drawing.Size(592, 242);
3.320 + this.tabPageAudio.Size = new System.Drawing.Size(752, 385);
3.321 this.tabPageAudio.TabIndex = 5;
3.322 this.tabPageAudio.Text = "Audio";
3.323 this.tabPageAudio.UseVisualStyleBackColor = true;
3.324 @@ -704,7 +721,7 @@
3.325 //
3.326 this.checkBoxShowVolumeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.327 this.checkBoxShowVolumeLabel.AutoSize = true;
3.328 - this.checkBoxShowVolumeLabel.Location = new System.Drawing.Point(3, 196);
3.329 + this.checkBoxShowVolumeLabel.Location = new System.Drawing.Point(3, 329);
3.330 this.checkBoxShowVolumeLabel.Name = "checkBoxShowVolumeLabel";
3.331 this.checkBoxShowVolumeLabel.Size = new System.Drawing.Size(115, 17);
3.332 this.checkBoxShowVolumeLabel.TabIndex = 18;
3.333 @@ -716,7 +733,7 @@
3.334 //
3.335 this.checkBoxMute.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.336 this.checkBoxMute.AutoSize = true;
3.337 - this.checkBoxMute.Location = new System.Drawing.Point(3, 219);
3.338 + this.checkBoxMute.Location = new System.Drawing.Point(3, 352);
3.339 this.checkBoxMute.Name = "checkBoxMute";
3.340 this.checkBoxMute.Size = new System.Drawing.Size(50, 17);
3.341 this.checkBoxMute.TabIndex = 17;
3.342 @@ -726,12 +743,14 @@
3.343 //
3.344 // trackBarMasterVolume
3.345 //
3.346 + this.trackBarMasterVolume.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
3.347 + | System.Windows.Forms.AnchorStyles.Right)));
3.348 this.trackBarMasterVolume.BackColor = System.Drawing.SystemColors.Window;
3.349 - this.trackBarMasterVolume.Location = new System.Drawing.Point(541, 6);
3.350 + this.trackBarMasterVolume.Location = new System.Drawing.Point(701, 6);
3.351 this.trackBarMasterVolume.Maximum = 100;
3.352 this.trackBarMasterVolume.Name = "trackBarMasterVolume";
3.353 this.trackBarMasterVolume.Orientation = System.Windows.Forms.Orientation.Vertical;
3.354 - this.trackBarMasterVolume.Size = new System.Drawing.Size(45, 230);
3.355 + this.trackBarMasterVolume.Size = new System.Drawing.Size(45, 373);
3.356 this.trackBarMasterVolume.TabIndex = 0;
3.357 this.trackBarMasterVolume.TickFrequency = 10;
3.358 this.trackBarMasterVolume.TickStyle = System.Windows.Forms.TickStyle.Both;
3.359 @@ -748,7 +767,7 @@
3.360 this.tabPageInput.Location = new System.Drawing.Point(4, 22);
3.361 this.tabPageInput.Name = "tabPageInput";
3.362 this.tabPageInput.Padding = new System.Windows.Forms.Padding(3);
3.363 - this.tabPageInput.Size = new System.Drawing.Size(592, 242);
3.364 + this.tabPageInput.Size = new System.Drawing.Size(752, 385);
3.365 this.tabPageInput.TabIndex = 6;
3.366 this.tabPageInput.Text = "Input";
3.367 this.tabPageInput.UseVisualStyleBackColor = true;
3.368 @@ -803,6 +822,7 @@
3.369 //
3.370 // tabPageCec
3.371 //
3.372 + this.tabPageCec.Controls.Add(this.groupBoxCecLogOptions);
3.373 this.tabPageCec.Controls.Add(this.checkBoxCecReconnectToPowerTv);
3.374 this.tabPageCec.Controls.Add(this.checkBoxCecMonitorOn);
3.375 this.tabPageCec.Controls.Add(this.checkBoxCecMonitorOff);
3.376 @@ -812,14 +832,103 @@
3.377 this.tabPageCec.Location = new System.Drawing.Point(4, 22);
3.378 this.tabPageCec.Name = "tabPageCec";
3.379 this.tabPageCec.Padding = new System.Windows.Forms.Padding(3);
3.380 - this.tabPageCec.Size = new System.Drawing.Size(592, 242);
3.381 + this.tabPageCec.Size = new System.Drawing.Size(752, 385);
3.382 this.tabPageCec.TabIndex = 7;
3.383 this.tabPageCec.Text = "CEC";
3.384 this.tabPageCec.UseVisualStyleBackColor = true;
3.385 //
3.386 + // groupBoxCecLogOptions
3.387 + //
3.388 + this.groupBoxCecLogOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.389 + this.groupBoxCecLogOptions.Controls.Add(this.checkBoxCecLogNoPoll);
3.390 + this.groupBoxCecLogOptions.Controls.Add(this.checkBoxCecLogTraffic);
3.391 + this.groupBoxCecLogOptions.Controls.Add(this.checkBoxCecLogDebug);
3.392 + this.groupBoxCecLogOptions.Controls.Add(this.checkBoxCecLogNotice);
3.393 + this.groupBoxCecLogOptions.Controls.Add(this.checkBoxCecLogError);
3.394 + this.groupBoxCecLogOptions.Controls.Add(this.checkBoxCecLogWarning);
3.395 + this.groupBoxCecLogOptions.Location = new System.Drawing.Point(6, 239);
3.396 + this.groupBoxCecLogOptions.Name = "groupBoxCecLogOptions";
3.397 + this.groupBoxCecLogOptions.Size = new System.Drawing.Size(165, 140);
3.398 + this.groupBoxCecLogOptions.TabIndex = 25;
3.399 + this.groupBoxCecLogOptions.TabStop = false;
3.400 + this.groupBoxCecLogOptions.Text = "Log options";
3.401 + //
3.402 + // checkBoxCecLogNoPoll
3.403 + //
3.404 + this.checkBoxCecLogNoPoll.AutoSize = true;
3.405 + this.checkBoxCecLogNoPoll.Checked = true;
3.406 + this.checkBoxCecLogNoPoll.CheckState = System.Windows.Forms.CheckState.Checked;
3.407 + this.checkBoxCecLogNoPoll.Location = new System.Drawing.Point(76, 24);
3.408 + this.checkBoxCecLogNoPoll.Name = "checkBoxCecLogNoPoll";
3.409 + this.checkBoxCecLogNoPoll.Size = new System.Drawing.Size(59, 17);
3.410 + this.checkBoxCecLogNoPoll.TabIndex = 30;
3.411 + this.checkBoxCecLogNoPoll.Text = "No poll";
3.412 + this.checkBoxCecLogNoPoll.UseVisualStyleBackColor = true;
3.413 + this.checkBoxCecLogNoPoll.CheckedChanged += new System.EventHandler(this.checkBoxCecLogs_CheckedChanged);
3.414 + //
3.415 + // checkBoxCecLogTraffic
3.416 + //
3.417 + this.checkBoxCecLogTraffic.AutoSize = true;
3.418 + this.checkBoxCecLogTraffic.Location = new System.Drawing.Point(6, 93);
3.419 + this.checkBoxCecLogTraffic.Name = "checkBoxCecLogTraffic";
3.420 + this.checkBoxCecLogTraffic.Size = new System.Drawing.Size(56, 17);
3.421 + this.checkBoxCecLogTraffic.TabIndex = 29;
3.422 + this.checkBoxCecLogTraffic.Text = "Traffic";
3.423 + this.checkBoxCecLogTraffic.UseVisualStyleBackColor = true;
3.424 + this.checkBoxCecLogTraffic.CheckedChanged += new System.EventHandler(this.checkBoxCecLogs_CheckedChanged);
3.425 + //
3.426 + // checkBoxCecLogDebug
3.427 + //
3.428 + this.checkBoxCecLogDebug.AutoSize = true;
3.429 + this.checkBoxCecLogDebug.Location = new System.Drawing.Point(6, 116);
3.430 + this.checkBoxCecLogDebug.Name = "checkBoxCecLogDebug";
3.431 + this.checkBoxCecLogDebug.Size = new System.Drawing.Size(58, 17);
3.432 + this.checkBoxCecLogDebug.TabIndex = 28;
3.433 + this.checkBoxCecLogDebug.Text = "Debug";
3.434 + this.checkBoxCecLogDebug.UseVisualStyleBackColor = true;
3.435 + this.checkBoxCecLogDebug.CheckedChanged += new System.EventHandler(this.checkBoxCecLogs_CheckedChanged);
3.436 + //
3.437 + // checkBoxCecLogNotice
3.438 + //
3.439 + this.checkBoxCecLogNotice.AutoSize = true;
3.440 + this.checkBoxCecLogNotice.Checked = true;
3.441 + this.checkBoxCecLogNotice.CheckState = System.Windows.Forms.CheckState.Checked;
3.442 + this.checkBoxCecLogNotice.Location = new System.Drawing.Point(6, 70);
3.443 + this.checkBoxCecLogNotice.Name = "checkBoxCecLogNotice";
3.444 + this.checkBoxCecLogNotice.Size = new System.Drawing.Size(57, 17);
3.445 + this.checkBoxCecLogNotice.TabIndex = 27;
3.446 + this.checkBoxCecLogNotice.Text = "Notice";
3.447 + this.checkBoxCecLogNotice.UseVisualStyleBackColor = true;
3.448 + this.checkBoxCecLogNotice.CheckedChanged += new System.EventHandler(this.checkBoxCecLogs_CheckedChanged);
3.449 + //
3.450 + // checkBoxCecLogError
3.451 + //
3.452 + this.checkBoxCecLogError.AutoSize = true;
3.453 + this.checkBoxCecLogError.Checked = true;
3.454 + this.checkBoxCecLogError.CheckState = System.Windows.Forms.CheckState.Checked;
3.455 + this.checkBoxCecLogError.Location = new System.Drawing.Point(6, 24);
3.456 + this.checkBoxCecLogError.Name = "checkBoxCecLogError";
3.457 + this.checkBoxCecLogError.Size = new System.Drawing.Size(48, 17);
3.458 + this.checkBoxCecLogError.TabIndex = 26;
3.459 + this.checkBoxCecLogError.Text = "Error";
3.460 + this.checkBoxCecLogError.UseVisualStyleBackColor = true;
3.461 + this.checkBoxCecLogError.CheckedChanged += new System.EventHandler(this.checkBoxCecLogs_CheckedChanged);
3.462 + //
3.463 + // checkBoxCecLogWarning
3.464 + //
3.465 + this.checkBoxCecLogWarning.AutoSize = true;
3.466 + this.checkBoxCecLogWarning.Checked = true;
3.467 + this.checkBoxCecLogWarning.CheckState = System.Windows.Forms.CheckState.Checked;
3.468 + this.checkBoxCecLogWarning.Location = new System.Drawing.Point(6, 47);
3.469 + this.checkBoxCecLogWarning.Name = "checkBoxCecLogWarning";
3.470 + this.checkBoxCecLogWarning.Size = new System.Drawing.Size(66, 17);
3.471 + this.checkBoxCecLogWarning.TabIndex = 25;
3.472 + this.checkBoxCecLogWarning.Text = "Warning";
3.473 + this.checkBoxCecLogWarning.UseVisualStyleBackColor = true;
3.474 + this.checkBoxCecLogWarning.CheckedChanged += new System.EventHandler(this.checkBoxCecLogs_CheckedChanged);
3.475 + //
3.476 // checkBoxCecReconnectToPowerTv
3.477 //
3.478 - this.checkBoxCecReconnectToPowerTv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.479 this.checkBoxCecReconnectToPowerTv.AutoSize = true;
3.480 this.checkBoxCecReconnectToPowerTv.Location = new System.Drawing.Point(6, 115);
3.481 this.checkBoxCecReconnectToPowerTv.Name = "checkBoxCecReconnectToPowerTv";
3.482 @@ -831,7 +940,6 @@
3.483 //
3.484 // checkBoxCecMonitorOn
3.485 //
3.486 - this.checkBoxCecMonitorOn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.487 this.checkBoxCecMonitorOn.AutoSize = true;
3.488 this.checkBoxCecMonitorOn.Location = new System.Drawing.Point(6, 92);
3.489 this.checkBoxCecMonitorOn.Name = "checkBoxCecMonitorOn";
3.490 @@ -843,7 +951,6 @@
3.491 //
3.492 // checkBoxCecMonitorOff
3.493 //
3.494 - this.checkBoxCecMonitorOff.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.495 this.checkBoxCecMonitorOff.AutoSize = true;
3.496 this.checkBoxCecMonitorOff.Location = new System.Drawing.Point(6, 69);
3.497 this.checkBoxCecMonitorOff.Name = "checkBoxCecMonitorOff";
3.498 @@ -855,7 +962,6 @@
3.499 //
3.500 // checkBoxCecEnabled
3.501 //
3.502 - this.checkBoxCecEnabled.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.503 this.checkBoxCecEnabled.AutoSize = true;
3.504 this.checkBoxCecEnabled.Location = new System.Drawing.Point(6, 6);
3.505 this.checkBoxCecEnabled.Name = "checkBoxCecEnabled";
3.506 @@ -903,7 +1009,7 @@
3.507 this.tabPageApp.Location = new System.Drawing.Point(4, 22);
3.508 this.tabPageApp.Name = "tabPageApp";
3.509 this.tabPageApp.Padding = new System.Windows.Forms.Padding(3);
3.510 - this.tabPageApp.Size = new System.Drawing.Size(592, 242);
3.511 + this.tabPageApp.Size = new System.Drawing.Size(752, 385);
3.512 this.tabPageApp.TabIndex = 4;
3.513 this.tabPageApp.Text = "Application";
3.514 this.tabPageApp.UseVisualStyleBackColor = true;
3.515 @@ -912,7 +1018,7 @@
3.516 //
3.517 this.checkBoxStartMinimized.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.518 this.checkBoxStartMinimized.AutoSize = true;
3.519 - this.checkBoxStartMinimized.Location = new System.Drawing.Point(8, 144);
3.520 + this.checkBoxStartMinimized.Location = new System.Drawing.Point(6, 285);
3.521 this.checkBoxStartMinimized.Name = "checkBoxStartMinimized";
3.522 this.checkBoxStartMinimized.Size = new System.Drawing.Size(96, 17);
3.523 this.checkBoxStartMinimized.TabIndex = 16;
3.524 @@ -924,7 +1030,7 @@
3.525 //
3.526 this.checkBoxMinimizeToTray.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.527 this.checkBoxMinimizeToTray.AutoSize = true;
3.528 - this.checkBoxMinimizeToTray.Location = new System.Drawing.Point(8, 167);
3.529 + this.checkBoxMinimizeToTray.Location = new System.Drawing.Point(6, 308);
3.530 this.checkBoxMinimizeToTray.Name = "checkBoxMinimizeToTray";
3.531 this.checkBoxMinimizeToTray.Size = new System.Drawing.Size(133, 17);
3.532 this.checkBoxMinimizeToTray.TabIndex = 15;
3.533 @@ -936,7 +1042,7 @@
3.534 //
3.535 this.checkBoxAutoStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.536 this.checkBoxAutoStart.AutoSize = true;
3.537 - this.checkBoxAutoStart.Location = new System.Drawing.Point(8, 190);
3.538 + this.checkBoxAutoStart.Location = new System.Drawing.Point(6, 331);
3.539 this.checkBoxAutoStart.Name = "checkBoxAutoStart";
3.540 this.checkBoxAutoStart.Size = new System.Drawing.Size(143, 17);
3.541 this.checkBoxAutoStart.TabIndex = 14;
3.542 @@ -946,7 +1052,8 @@
3.543 //
3.544 // buttonUpdate
3.545 //
3.546 - this.buttonUpdate.Location = new System.Drawing.Point(6, 213);
3.547 + this.buttonUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
3.548 + this.buttonUpdate.Location = new System.Drawing.Point(6, 354);
3.549 this.buttonUpdate.Name = "buttonUpdate";
3.550 this.buttonUpdate.Size = new System.Drawing.Size(75, 23);
3.551 this.buttonUpdate.TabIndex = 0;
3.552 @@ -956,15 +1063,26 @@
3.553 //
3.554 // tabPageLogs
3.555 //
3.556 + this.tabPageLogs.Controls.Add(this.buttonClearLogs);
3.557 this.tabPageLogs.Controls.Add(this.richTextBoxLogs);
3.558 this.tabPageLogs.Location = new System.Drawing.Point(4, 22);
3.559 this.tabPageLogs.Name = "tabPageLogs";
3.560 this.tabPageLogs.Padding = new System.Windows.Forms.Padding(3);
3.561 - this.tabPageLogs.Size = new System.Drawing.Size(592, 242);
3.562 + this.tabPageLogs.Size = new System.Drawing.Size(752, 385);
3.563 this.tabPageLogs.TabIndex = 8;
3.564 this.tabPageLogs.Text = "Logs";
3.565 this.tabPageLogs.UseVisualStyleBackColor = true;
3.566 //
3.567 + // buttonClearLogs
3.568 + //
3.569 + this.buttonClearLogs.Location = new System.Drawing.Point(671, 6);
3.570 + this.buttonClearLogs.Name = "buttonClearLogs";
3.571 + this.buttonClearLogs.Size = new System.Drawing.Size(75, 23);
3.572 + this.buttonClearLogs.TabIndex = 2;
3.573 + this.buttonClearLogs.Text = "Clear";
3.574 + this.buttonClearLogs.UseVisualStyleBackColor = true;
3.575 + this.buttonClearLogs.Click += new System.EventHandler(this.buttonClearLogs_Click);
3.576 + //
3.577 // richTextBoxLogs
3.578 //
3.579 this.richTextBoxLogs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
3.580 @@ -976,7 +1094,7 @@
3.581 this.richTextBoxLogs.Location = new System.Drawing.Point(6, 6);
3.582 this.richTextBoxLogs.Name = "richTextBoxLogs";
3.583 this.richTextBoxLogs.ReadOnly = true;
3.584 - this.richTextBoxLogs.Size = new System.Drawing.Size(580, 230);
3.585 + this.richTextBoxLogs.Size = new System.Drawing.Size(740, 373);
3.586 this.richTextBoxLogs.TabIndex = 1;
3.587 this.richTextBoxLogs.Text = "";
3.588 this.richTextBoxLogs.WordWrap = false;
3.589 @@ -1007,7 +1125,7 @@
3.590 //
3.591 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
3.592 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
3.593 - this.ClientSize = new System.Drawing.Size(624, 442);
3.594 + this.ClientSize = new System.Drawing.Size(784, 561);
3.595 this.Controls.Add(this.labelFontHeight);
3.596 this.Controls.Add(this.labelFontWidth);
3.597 this.Controls.Add(this.labelWarning);
3.598 @@ -1015,7 +1133,7 @@
3.599 this.Controls.Add(this.tabControl);
3.600 this.Controls.Add(this.panelDisplay);
3.601 this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
3.602 - this.MinimumSize = new System.Drawing.Size(640, 480);
3.603 + this.MinimumSize = new System.Drawing.Size(800, 600);
3.604 this.Name = "MainForm";
3.605 this.Text = "Sharp Display Manager";
3.606 this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
3.607 @@ -1043,6 +1161,8 @@
3.608 ((System.ComponentModel.ISupportInitialize)(this.pictureBoxGreenStart)).EndInit();
3.609 this.tabPageCec.ResumeLayout(false);
3.610 this.tabPageCec.PerformLayout();
3.611 + this.groupBoxCecLogOptions.ResumeLayout(false);
3.612 + this.groupBoxCecLogOptions.PerformLayout();
3.613 this.tabPageApp.ResumeLayout(false);
3.614 this.tabPageApp.PerformLayout();
3.615 this.tabPageLogs.ResumeLayout(false);
3.616 @@ -1130,6 +1250,14 @@
3.617 private System.Windows.Forms.TabPage tabPageLogs;
3.618 private System.Windows.Forms.RichTextBox richTextBoxLogs;
3.619 private System.Windows.Forms.CheckBox checkBoxCecReconnectToPowerTv;
3.620 + private System.Windows.Forms.Button buttonClearLogs;
3.621 + private System.Windows.Forms.GroupBox groupBoxCecLogOptions;
3.622 + private System.Windows.Forms.CheckBox checkBoxCecLogWarning;
3.623 + private System.Windows.Forms.CheckBox checkBoxCecLogError;
3.624 + private System.Windows.Forms.CheckBox checkBoxCecLogDebug;
3.625 + private System.Windows.Forms.CheckBox checkBoxCecLogNotice;
3.626 + private System.Windows.Forms.CheckBox checkBoxCecLogTraffic;
3.627 + private System.Windows.Forms.CheckBox checkBoxCecLogNoPoll;
3.628 }
3.629 }
3.630
4.1 --- a/Server/MainForm.cs Mon Jul 18 15:56:25 2016 +0200
4.2 +++ b/Server/MainForm.cs Tue Jul 19 15:43:04 2016 +0200
4.3 @@ -38,6 +38,7 @@
4.4 using NAudio.CoreAudioApi;
4.5 using NAudio.CoreAudioApi.Interfaces;
4.6 using System.Runtime.InteropServices;
4.7 +using CecSharp;
4.8 //Network
4.9 using NETWORKLIST;
4.10 //
4.11 @@ -913,6 +914,9 @@
4.12 //This is our timer tick responsible to perform our render
4.13 private void timer_Tick(object sender, EventArgs e)
4.14 {
4.15 + //Not ideal cause this has nothing to do with display render
4.16 + LogsUpdate();
4.17 +
4.18 //Update our animations
4.19 DateTime NewTickTime = DateTime.Now;
4.20
4.21 @@ -2480,16 +2484,26 @@
4.22 Properties.Settings.Default.Save();
4.23 }
4.24
4.25 +
4.26 + /// <summary>
4.27 + ///
4.28 + /// </summary>
4.29 + private void LogsUpdate()
4.30 + {
4.31 + if (iWriter != null)
4.32 + {
4.33 + iWriter.Flush();
4.34 + }
4.35 +
4.36 + }
4.37 +
4.38 /// <summary>
4.39 /// Broadcast messages to subscribers.
4.40 /// </summary>
4.41 /// <param name="message"></param>
4.42 protected override void WndProc(ref Message aMessage)
4.43 {
4.44 - if (iWriter != null)
4.45 - {
4.46 - iWriter.FlushAccumulator();
4.47 - }
4.48 + LogsUpdate();
4.49
4.50 if (OnWndProc!=null)
4.51 {
4.52 @@ -2562,6 +2576,27 @@
4.53 Properties.Settings.Default.CecMonitorOn,
4.54 Properties.Settings.Default.CecMonitorOff,
4.55 Properties.Settings.Default.CecReconnectToPowerTv);
4.56 +
4.57 + //Setup log level
4.58 + iCecManager.Client.LogLevel = 0;
4.59 +
4.60 + if (checkBoxCecLogError.Checked)
4.61 + iCecManager.Client.LogLevel &= (int)CecLogLevel.Error;
4.62 +
4.63 + if (checkBoxCecLogWarning.Checked)
4.64 + iCecManager.Client.LogLevel &= (int)CecLogLevel.Warning;
4.65 +
4.66 + if (checkBoxCecLogNotice.Checked)
4.67 + iCecManager.Client.LogLevel &= (int)CecLogLevel.Notice;
4.68 +
4.69 + if (checkBoxCecLogTraffic.Checked)
4.70 + iCecManager.Client.LogLevel &= (int)CecLogLevel.Traffic;
4.71 +
4.72 + if (checkBoxCecLogDebug.Checked)
4.73 + iCecManager.Client.LogLevel &= (int)CecLogLevel.Debug;
4.74 +
4.75 + iCecManager.Client.FilterOutPollLogs = checkBoxCecLogNoPoll.Checked;
4.76 +
4.77 }
4.78 }
4.79
4.80 @@ -2570,6 +2605,14 @@
4.81 StartIdleClient();
4.82 }
4.83
4.84 + private void buttonClearLogs_Click(object sender, EventArgs e)
4.85 + {
4.86 + richTextBoxLogs.Clear();
4.87 + }
4.88
4.89 + private void checkBoxCecLogs_CheckedChanged(object sender, EventArgs e)
4.90 + {
4.91 + ResetCec();
4.92 + }
4.93 }
4.94 }
5.1 --- a/Server/MainForm.resx Mon Jul 18 15:56:25 2016 +0200
5.2 +++ b/Server/MainForm.resx Tue Jul 19 15:43:04 2016 +0200
5.3 @@ -185,6 +185,9 @@
5.4 WSC3/b/CbwiR/gNzbuWksIMBOAAAAABJRU5ErkJggg==
5.5 </value>
5.6 </data>
5.7 + <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
5.8 + <value>315, 17</value>
5.9 + </metadata>
5.10 <metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
5.11 <value>405, 17</value>
5.12 </metadata>
6.1 --- a/Server/RichTextBoxTextWriter.cs Mon Jul 18 15:56:25 2016 +0200
6.2 +++ b/Server/RichTextBoxTextWriter.cs Tue Jul 19 15:43:04 2016 +0200
6.3 @@ -11,14 +11,31 @@
6.4
6.5 RichTextBox iRichTextBox = null;
6.6 string iAccumulator = "";
6.7 + private char iLastChar='\n';
6.8
6.9 public RichTextBoxTextWriter(RichTextBox aRichTextBox)
6.10 {
6.11 - iRichTextBox = aRichTextBox;
6.12 + iRichTextBox = aRichTextBox;
6.13 }
6.14
6.15 public override void Write(char aChar)
6.16 {
6.17 + if (aChar == '\r')
6.18 + {
6.19 + //Skip
6.20 + return;
6.21 + }
6.22 +
6.23 + //Put our time stamp if starting a new line
6.24 + char previousChar = iLastChar;
6.25 + iLastChar = aChar;
6.26 + if (previousChar == '\n')
6.27 + {
6.28 + //Write(DateTime.Now.ToString("yyyy/MM/dd - hh:mm:ss.fff: "));
6.29 + Write(DateTime.Now.ToString("MM/dd hh:mm:ss.fff: "));
6.30 + }
6.31 +
6.32 +
6.33 base.Write(aChar);
6.34 if (iRichTextBox.InvokeRequired)
6.35 {
6.36 @@ -27,6 +44,7 @@
6.37 iAccumulator += aChar;
6.38 }
6.39
6.40 + //Invoke was not working from here
6.41 //WriteDelegate d = new WriteDelegate(Write);
6.42 //iRichTextBox.Invoke(d, new object[] { aChar });
6.43 }
6.44 @@ -34,7 +52,7 @@
6.45 {
6.46 Flush();
6.47 iRichTextBox.AppendText(aChar.ToString()); // When character data is written, append it to the text box.
6.48 - }
6.49 + }
6.50 }
6.51
6.52 public override Encoding Encoding
6.53 @@ -42,8 +60,13 @@
6.54 get { return System.Text.Encoding.UTF8; }
6.55 }
6.56
6.57 - public void FlushAccumulator()
6.58 + /// <summary>
6.59 + ///
6.60 + /// </summary>
6.61 + public override void Flush()
6.62 {
6.63 + base.Flush();
6.64 +
6.65 lock (iAccumulator)
6.66 {
6.67 if (!string.IsNullOrEmpty(iAccumulator))
6.68 @@ -51,7 +74,6 @@
6.69 iRichTextBox.AppendText(iAccumulator); // When character data is written, append it to the text box.
6.70 iAccumulator = "";
6.71 }
6.72 -
6.73 }
6.74
6.75 }