Fixed images

This commit is contained in:
2023-06-09 09:33:05 +02:00
parent a7c6ad610c
commit 1a8a73a143
106 changed files with 23563 additions and 26483 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 894 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 81 KiB

@@ -1,3 +0,0 @@
[ZoneTransfer]
LastWriterPackageFamilyName=Microsoft.Windows.Photos_8wekyb3d8bbwe
ZoneId=3
@@ -1,4 +0,0 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://hacks.mozilla.org/files/2017/12/headless-firefox.jpg
HostUrl=https://hacks.mozilla.org/files/2017/12/headless-firefox.jpg
@@ -1,4 +0,0 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://cloudconvert.com/
HostUrl=https://storage.cloudconvert.com/tasks/86d47ecf-9b36-49d7-920d-afdc5a0d7d24/logo.png?AWSAccessKeyId=cloudconvert-production&Expires=1686128919&Signature=lCf1WuDkeA1HMNtNKrFgORZJtJ4%3D&response-content-disposition=attachment%3B%20filename%3D%22logo.png%22&response-content-type=image%2Fpng
Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 17 KiB

-28
View File
@@ -379,34 +379,6 @@
<li class="md-nav__item">
<a href="/Code/Program.html" class="md-nav__link">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a href="/Code/Settings.Designer.html" class="md-nav__link">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a href="/Code/SqliteStorage.html" class="md-nav__link">
SqliteStorage.cs
-10
View File
@@ -208,16 +208,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/SqliteStorage.html">
SqliteStorage.cs
</a>
-10
View File
@@ -171,16 +171,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
+2 -12
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="datawrappercs">DataWrapper.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DataWrapper.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Class that is used to interface between the main Form (vue) and the Storage (wich is a class that wraps the sqlite database, so the model) its almost MVC :D</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
+2 -12
View File
@@ -171,16 +171,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="driverdatacs">DriverData.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DriverData.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : File containing classes that behave just like structures to store data about drivers </span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
+2 -12
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="driverdrswindowcs">DriverDrsWindow.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DriverDrsWindow.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Window containing DRS related method and infos</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
-10
View File
@@ -171,16 +171,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
+2 -12
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="driverlaptimewindowcs">DriverLapTimeWindow.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DriverLapTimeWindow</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Window containing infos about the lap time of a driver</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
+2 -12
View File
@@ -171,16 +171,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="drivernamewindowcs">DriverNameWindow.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DriverNameWindow</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Window containing infos about the name of the driver</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
+2 -12
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="driverpositionwindowcs">DriverPositionWindow.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DriverPositionWindow.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Window containing infos about the position of a driver.</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
+2 -12
View File
@@ -171,16 +171,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="driversectorwindowcs">DriverSectorWindow.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DriverSectorWindow.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Window containing infos about a driver sector time. Can be the first second or third, does not matter.</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
+2 -12
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="drivertyreswindowcs">DriverTyresWindow.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DriverTyresWindow.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Window containing infos about a driver's tyre</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
+154 -152
View File
@@ -171,16 +171,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="f1tvemulatorcs">F1TVEmulator.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : F1TVEmulator.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Class that contains methods to emulate a browser and navigate the F1TV website</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">OpenQA.Selenium</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">OpenQA.Selenium.Firefox</span><span class="p">;</span><span class="w"></span>
@@ -448,146 +438,158 @@
</span><span id="__span-0-187"><a href="#__codelineno-0-187" id="__codelineno-0-187" name="__codelineno-0-187"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">104</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-188"><a href="#__codelineno-0-188" id="__codelineno-0-188" name="__codelineno-0-188"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-189"><a href="#__codelineno-0-189" id="__codelineno-0-189" name="__codelineno-0-189"></a>
</span><span id="__span-0-190"><a href="#__codelineno-0-190" id="__codelineno-0-190" name="__codelineno-0-190"></a><span class="w"> </span><span class="c1">//Again waits for the page to fully load (when you accept cookies it takes a little time for the page to load)</span>
</span><span id="__span-0-191"><a href="#__codelineno-0-191" id="__codelineno-0-191" name="__codelineno-0-191"></a><span class="w"> </span><span class="c1">//Cannot use The timeout because the feed loading is not really loading so there is not event or anything</span>
</span><span id="__span-0-192"><a href="#__codelineno-0-192" id="__codelineno-0-192" name="__codelineno-0-192"></a><span class="w"> </span><span class="n">Thread</span><span class="p">.</span><span class="n">Sleep</span><span class="p">(</span><span class="m">5000</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-193"><a href="#__codelineno-0-193" id="__codelineno-0-193" name="__codelineno-0-193"></a>
</span><span id="__span-0-194"><a href="#__codelineno-0-194" id="__codelineno-0-194" name="__codelineno-0-194"></a><span class="w"> </span><span class="c1">//Switches to the Data channel</span>
</span><span id="__span-0-195"><a href="#__codelineno-0-195" id="__codelineno-0-195" name="__codelineno-0-195"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-196"><a href="#__codelineno-0-196" id="__codelineno-0-196" name="__codelineno-0-196"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-197"><a href="#__codelineno-0-197" id="__codelineno-0-197" name="__codelineno-0-197"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">dataChannelButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"data-button"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-198"><a href="#__codelineno-0-198" id="__codelineno-0-198" name="__codelineno-0-198"></a><span class="w"> </span><span class="n">dataChannelButton</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-199"><a href="#__codelineno-0-199" id="__codelineno-0-199" name="__codelineno-0-199"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-200"><a href="#__codelineno-0-200" id="__codelineno-0-200" name="__codelineno-0-200"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-201"><a href="#__codelineno-0-201" id="__codelineno-0-201" name="__codelineno-0-201"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-202"><a href="#__codelineno-0-202" id="__codelineno-0-202" name="__codelineno-0-202"></a><span class="w"> </span><span class="c1">//If the data button does not exists its because the user is not connected</span>
</span><span id="__span-0-203"><a href="#__codelineno-0-203" id="__codelineno-0-203" name="__codelineno-0-203"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"ERROR102"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-204"><a href="#__codelineno-0-204" id="__codelineno-0-204" name="__codelineno-0-204"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-205"><a href="#__codelineno-0-205" id="__codelineno-0-205" name="__codelineno-0-205"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">102</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-206"><a href="#__codelineno-0-206" id="__codelineno-0-206" name="__codelineno-0-206"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-207"><a href="#__codelineno-0-207" id="__codelineno-0-207" name="__codelineno-0-207"></a>
</span><span id="__span-0-208"><a href="#__codelineno-0-208" id="__codelineno-0-208" name="__codelineno-0-208"></a><span class="w"> </span><span class="c1">//Open settings </span>
</span><span id="__span-0-209"><a href="#__codelineno-0-209" id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="w"> </span><span class="c1">// Press the space key, this should make the setting button visible</span>
</span><span id="__span-0-210"><a href="#__codelineno-0-210" id="__codelineno-0-210" name="__codelineno-0-210"></a><span class="w"> </span><span class="c1">// It does not matter if the feed is paused because when changing channel it autoplays</span>
</span><span id="__span-0-211"><a href="#__codelineno-0-211" id="__codelineno-0-211" name="__codelineno-0-211"></a><span class="w"> </span><span class="n">actions</span><span class="p">.</span><span class="n">SendKeys</span><span class="p">(</span><span class="n">OpenQA</span><span class="p">.</span><span class="n">Selenium</span><span class="p">.</span><span class="n">Keys</span><span class="p">.</span><span class="n">Space</span><span class="p">).</span><span class="n">Perform</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-212"><a href="#__codelineno-0-212" id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="w"> </span><span class="c1">//Clicks on the settings Icon</span>
</span><span id="__span-0-213"><a href="#__codelineno-0-213" id="__codelineno-0-213" name="__codelineno-0-213"></a>
</span><span id="__span-0-214"><a href="#__codelineno-0-214" id="__codelineno-0-214" name="__codelineno-0-214"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">settingsClickTries</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-215"><a href="#__codelineno-0-215" id="__codelineno-0-215" name="__codelineno-0-215"></a><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">settingsClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-216"><a href="#__codelineno-0-216" id="__codelineno-0-216" name="__codelineno-0-216"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">settingsClickTries</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="m">100</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="p">!</span><span class="n">settingsClickSuccess</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-217"><a href="#__codelineno-0-217" id="__codelineno-0-217" name="__codelineno-0-217"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-218"><a href="#__codelineno-0-218" id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="w"> </span><span class="n">Thread</span><span class="p">.</span><span class="n">Sleep</span><span class="p">(</span><span class="m">100</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-219"><a href="#__codelineno-0-219" id="__codelineno-0-219" name="__codelineno-0-219"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-220"><a href="#__codelineno-0-220" id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-221"><a href="#__codelineno-0-221" id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">settingsButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"bmpui-ui-settingstogglebutton"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-222"><a href="#__codelineno-0-222" id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="w"> </span><span class="n">settingsButton</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-223"><a href="#__codelineno-0-223" id="__codelineno-0-223" name="__codelineno-0-223"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">selectElement</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"bmpui-ui-videoqualityselectbox"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-224"><a href="#__codelineno-0-224" id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="w"> </span><span class="n">SelectElement</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SelectElement</span><span class="p">(</span><span class="n">selectElement</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-225"><a href="#__codelineno-0-225" id="__codelineno-0-225" name="__codelineno-0-225"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">selectOption</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">selectElement</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">CssSelector</span><span class="p">(</span><span class="s">"option[value^='1080_']"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-226"><a href="#__codelineno-0-226" id="__codelineno-0-226" name="__codelineno-0-226"></a><span class="w"> </span><span class="n">selectOption</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-227"><a href="#__codelineno-0-227" id="__codelineno-0-227" name="__codelineno-0-227"></a><span class="w"> </span><span class="n">settingsClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-228"><a href="#__codelineno-0-228" id="__codelineno-0-228" name="__codelineno-0-228"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-229"><a href="#__codelineno-0-229" id="__codelineno-0-229" name="__codelineno-0-229"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-230"><a href="#__codelineno-0-230" id="__codelineno-0-230" name="__codelineno-0-230"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-231"><a href="#__codelineno-0-231" id="__codelineno-0-231" name="__codelineno-0-231"></a><span class="w"> </span><span class="c1">//Sometimes it can crash because it could not get the options to show up in time. When it happens just retry</span>
</span><span id="__span-0-232"><a href="#__codelineno-0-232" id="__codelineno-0-232" name="__codelineno-0-232"></a><span class="w"> </span><span class="n">settingsClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-233"><a href="#__codelineno-0-233" id="__codelineno-0-233" name="__codelineno-0-233"></a><span class="w"> </span><span class="n">settingsClickTries</span><span class="p">++;</span><span class="w"></span>
</span><span id="__span-0-234"><a href="#__codelineno-0-234" id="__codelineno-0-234" name="__codelineno-0-234"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-235"><a href="#__codelineno-0-235" id="__codelineno-0-235" name="__codelineno-0-235"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-236"><a href="#__codelineno-0-236" id="__codelineno-0-236" name="__codelineno-0-236"></a>
</span><span id="__span-0-237"><a href="#__codelineno-0-237" id="__codelineno-0-237" name="__codelineno-0-237"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(!</span><span class="n">settingsClickSuccess</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-238"><a href="#__codelineno-0-238" id="__codelineno-0-238" name="__codelineno-0-238"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-239"><a href="#__codelineno-0-239" id="__codelineno-0-239" name="__codelineno-0-239"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"ERROR105"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-240"><a href="#__codelineno-0-240" id="__codelineno-0-240" name="__codelineno-0-240"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-241"><a href="#__codelineno-0-241" id="__codelineno-0-241" name="__codelineno-0-241"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">105</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-242"><a href="#__codelineno-0-242" id="__codelineno-0-242" name="__codelineno-0-242"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-243"><a href="#__codelineno-0-243" id="__codelineno-0-243" name="__codelineno-0-243"></a>
</span><span id="__span-0-244"><a href="#__codelineno-0-244" id="__codelineno-0-244" name="__codelineno-0-244"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"BEFOREFULLSCREEN"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-245"><a href="#__codelineno-0-245" id="__codelineno-0-245" name="__codelineno-0-245"></a>
</span><span id="__span-0-246"><a href="#__codelineno-0-246" id="__codelineno-0-246" name="__codelineno-0-246"></a><span class="w"> </span><span class="c1">//Makes the feed fullscreen</span>
</span><span id="__span-0-247"><a href="#__codelineno-0-247" id="__codelineno-0-247" name="__codelineno-0-247"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fullScreenClickTries</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-248"><a href="#__codelineno-0-248" id="__codelineno-0-248" name="__codelineno-0-248"></a><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">fullScreenClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-249"><a href="#__codelineno-0-249" id="__codelineno-0-249" name="__codelineno-0-249"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Manage</span><span class="p">().</span><span class="n">Window</span><span class="p">.</span><span class="n">Maximize</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-250"><a href="#__codelineno-0-250" id="__codelineno-0-250" name="__codelineno-0-250"></a><span class="w"> </span><span class="c1">//WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(10));</span>
</span><span id="__span-0-251"><a href="#__codelineno-0-251" id="__codelineno-0-251" name="__codelineno-0-251"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">fullScreenClickTries</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="m">100</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="p">!</span><span class="n">fullScreenClickSuccess</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-252"><a href="#__codelineno-0-252" id="__codelineno-0-252" name="__codelineno-0-252"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-253"><a href="#__codelineno-0-253" id="__codelineno-0-253" name="__codelineno-0-253"></a><span class="w"> </span><span class="n">Thread</span><span class="p">.</span><span class="n">Sleep</span><span class="p">(</span><span class="m">150</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-254"><a href="#__codelineno-0-254" id="__codelineno-0-254" name="__codelineno-0-254"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-255"><a href="#__codelineno-0-255" id="__codelineno-0-255" name="__codelineno-0-255"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-256"><a href="#__codelineno-0-256" id="__codelineno-0-256" name="__codelineno-0-256"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">fullScreenButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"bmpui-ui-fullscreentogglebutton"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-257"><a href="#__codelineno-0-257" id="__codelineno-0-257" name="__codelineno-0-257"></a><span class="w"> </span><span class="n">fullScreenButton</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-258"><a href="#__codelineno-0-258" id="__codelineno-0-258" name="__codelineno-0-258"></a><span class="w"> </span><span class="n">fullScreenClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-259"><a href="#__codelineno-0-259" id="__codelineno-0-259" name="__codelineno-0-259"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-260"><a href="#__codelineno-0-260" id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-261"><a href="#__codelineno-0-261" id="__codelineno-0-261" name="__codelineno-0-261"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-262"><a href="#__codelineno-0-262" id="__codelineno-0-262" name="__codelineno-0-262"></a><span class="w"> </span><span class="n">fullScreenClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-263"><a href="#__codelineno-0-263" id="__codelineno-0-263" name="__codelineno-0-263"></a><span class="w"> </span><span class="n">fullScreenClickTries</span><span class="p">++;</span><span class="w"></span>
</span><span id="__span-0-264"><a href="#__codelineno-0-264" id="__codelineno-0-264" name="__codelineno-0-264"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-265"><a href="#__codelineno-0-265" id="__codelineno-0-265" name="__codelineno-0-265"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-266"><a href="#__codelineno-0-266" id="__codelineno-0-266" name="__codelineno-0-266"></a>
</span><span id="__span-0-267"><a href="#__codelineno-0-267" id="__codelineno-0-267" name="__codelineno-0-267"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(!</span><span class="n">fullScreenClickSuccess</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-268"><a href="#__codelineno-0-268" id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-269"><a href="#__codelineno-0-269" id="__codelineno-0-269" name="__codelineno-0-269"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"ERROR106"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-270"><a href="#__codelineno-0-270" id="__codelineno-0-270" name="__codelineno-0-270"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-271"><a href="#__codelineno-0-271" id="__codelineno-0-271" name="__codelineno-0-271"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">106</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-272"><a href="#__codelineno-0-272" id="__codelineno-0-272" name="__codelineno-0-272"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-273"><a href="#__codelineno-0-273" id="__codelineno-0-273" name="__codelineno-0-273"></a>
</span><span id="__span-0-274"><a href="#__codelineno-0-274" id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"AFTERFULLSCREEN"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-275"><a href="#__codelineno-0-275" id="__codelineno-0-275" name="__codelineno-0-275"></a>
</span><span id="__span-0-276"><a href="#__codelineno-0-276" id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="c1">//STARTUP FINISHED READY TO SCREENSHOT</span>
</span><span id="__span-0-277"><a href="#__codelineno-0-277" id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="w"> </span><span class="n">Ready</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-278"><a href="#__codelineno-0-278" id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-279"><a href="#__codelineno-0-279" id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-280"><a href="#__codelineno-0-280" id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-281"><a href="#__codelineno-0-281" id="__codelineno-0-281" name="__codelineno-0-281"></a><span class="w"> </span><span class="c1">/// Takes a screenshot of what the headless browser is displaying</span>
</span><span id="__span-0-282"><a href="#__codelineno-0-282" id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-283"><a href="#__codelineno-0-283" id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="w"> </span><span class="c1">/// &lt;param name="name"&gt;Optional ! The name of the picture so it can be saved&lt;/param&gt;</span>
</span><span id="__span-0-284"><a href="#__codelineno-0-284" id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="w"> </span><span class="c1">/// &lt;returns&gt;Returns the screenshot in the bitmap format&lt;/returns&gt;</span>
</span><span id="__span-0-285"><a href="#__codelineno-0-285" id="__codelineno-0-285" name="__codelineno-0-285"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="nf">Screenshot</span><span class="p">(</span><span class="kt">string</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"TEST"</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-286"><a href="#__codelineno-0-286" id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-287"><a href="#__codelineno-0-287" id="__codelineno-0-287" name="__codelineno-0-287"></a><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Bitmap</span><span class="p">(</span><span class="m">4242</span><span class="p">,</span><span class="w"> </span><span class="m">6969</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-288"><a href="#__codelineno-0-288" id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-289"><a href="#__codelineno-0-289" id="__codelineno-0-289" name="__codelineno-0-289"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-290"><a href="#__codelineno-0-290" id="__codelineno-0-290" name="__codelineno-0-290"></a><span class="w"> </span><span class="c1">//Screenshot scrsht = ((ITakesScreenshot)Driver).GetScreenshot();</span>
</span><span id="__span-0-291"><a href="#__codelineno-0-291" id="__codelineno-0-291" name="__codelineno-0-291"></a><span class="w"> </span><span class="c1">//profileriver.SetPreferencC:\Users\Moi\source\repos\Test_Merge\README.mde("layout.css.devPixelsPerPx", "1.0");</span>
</span><span id="__span-0-292"><a href="#__codelineno-0-292" id="__codelineno-0-292" name="__codelineno-0-292"></a>
</span><span id="__span-0-293"><a href="#__codelineno-0-293" id="__codelineno-0-293" name="__codelineno-0-293"></a><span class="w"> </span><span class="c1">//Screenshot scrsht = Driver.GetFullPageScreenshot();</span>
</span><span id="__span-0-294"><a href="#__codelineno-0-294" id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="w"> </span><span class="n">Screenshot</span><span class="w"> </span><span class="n">scrsht</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">GetScreenshot</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-295"><a href="#__codelineno-0-295" id="__codelineno-0-295" name="__codelineno-0-295"></a>
</span><span id="__span-0-296"><a href="#__codelineno-0-296" id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="w"> </span><span class="kt">byte</span><span class="p">[]</span><span class="w"> </span><span class="n">screenshotBytes</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Convert</span><span class="p">.</span><span class="n">FromBase64String</span><span class="p">(</span><span class="n">scrsht</span><span class="p">.</span><span class="n">AsBase64EncodedString</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-297"><a href="#__codelineno-0-297" id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="w"> </span><span class="n">MemoryStream</span><span class="w"> </span><span class="n">stream</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">MemoryStream</span><span class="p">(</span><span class="n">screenshotBytes</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-298"><a href="#__codelineno-0-298" id="__codelineno-0-298" name="__codelineno-0-298"></a>
</span><span id="__span-0-299"><a href="#__codelineno-0-299" id="__codelineno-0-299" name="__codelineno-0-299"></a><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Bitmap</span><span class="p">(</span><span class="n">stream</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-300"><a href="#__codelineno-0-300" id="__codelineno-0-300" name="__codelineno-0-300"></a><span class="w"> </span><span class="c1">//result.Save(name + ".png");</span>
</span><span id="__span-0-301"><a href="#__codelineno-0-301" id="__codelineno-0-301" name="__codelineno-0-301"></a><span class="w"> </span><span class="n">scrsht</span><span class="p">.</span><span class="n">SaveAsFile</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">".png"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-302"><a href="#__codelineno-0-302" id="__codelineno-0-302" name="__codelineno-0-302"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-303"><a href="#__codelineno-0-303" id="__codelineno-0-303" name="__codelineno-0-303"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-304"><a href="#__codelineno-0-304" id="__codelineno-0-304" name="__codelineno-0-304"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-305"><a href="#__codelineno-0-305" id="__codelineno-0-305" name="__codelineno-0-305"></a><span class="w"> </span><span class="c1">//Nothing for now</span>
</span><span id="__span-0-306"><a href="#__codelineno-0-306" id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-307"><a href="#__codelineno-0-307" id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-308"><a href="#__codelineno-0-308" id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-309"><a href="#__codelineno-0-309" id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-310"><a href="#__codelineno-0-310" id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="w"> </span><span class="c1">/// Stops the Emulation. Note: if you plan to start it again please use ResetDriver() instead</span>
</span><span id="__span-0-311"><a href="#__codelineno-0-311" id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-312"><a href="#__codelineno-0-312" id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Stop</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-313"><a href="#__codelineno-0-313" id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-314"><a href="#__codelineno-0-314" id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="w"> </span><span class="n">Ready</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-315"><a href="#__codelineno-0-315" id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Driver</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-316"><a href="#__codelineno-0-316" id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-317"><a href="#__codelineno-0-317" id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-318"><a href="#__codelineno-0-318" id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-319"><a href="#__codelineno-0-319" id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="w"> </span><span class="c1">/// Resets the emulation</span>
</span><span id="__span-0-320"><a href="#__codelineno-0-320" id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-321"><a href="#__codelineno-0-321" id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">ResetDriver</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-322"><a href="#__codelineno-0-322" id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-323"><a href="#__codelineno-0-323" id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="w"> </span><span class="n">Ready</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-324"><a href="#__codelineno-0-324" id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Driver</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-325"><a href="#__codelineno-0-325" id="__codelineno-0-325" name="__codelineno-0-325"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-326"><a href="#__codelineno-0-326" id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="w"> </span><span class="n">Driver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-327"><a href="#__codelineno-0-327" id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-328"><a href="#__codelineno-0-328" id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-329"><a href="#__codelineno-0-329" id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-190"><a href="#__codelineno-0-190" id="__codelineno-0-190" name="__codelineno-0-190"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-191"><a href="#__codelineno-0-191" id="__codelineno-0-191" name="__codelineno-0-191"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-192"><a href="#__codelineno-0-192" id="__codelineno-0-192" name="__codelineno-0-192"></a>
</span><span id="__span-0-193"><a href="#__codelineno-0-193" id="__codelineno-0-193" name="__codelineno-0-193"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">LiveButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"btn-manage-account"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-194"><a href="#__codelineno-0-194" id="__codelineno-0-194" name="__codelineno-0-194"></a><span class="w"> </span><span class="c1">//By.ClassName("btn btn-controls btn-main btn-manage-account no-redirect")</span>
</span><span id="__span-0-195"><a href="#__codelineno-0-195" id="__codelineno-0-195" name="__codelineno-0-195"></a><span class="w"> </span><span class="n">LiveButton</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-196"><a href="#__codelineno-0-196" id="__codelineno-0-196" name="__codelineno-0-196"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-197"><a href="#__codelineno-0-197" id="__codelineno-0-197" name="__codelineno-0-197"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-198"><a href="#__codelineno-0-198" id="__codelineno-0-198" name="__codelineno-0-198"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-199"><a href="#__codelineno-0-199" id="__codelineno-0-199" name="__codelineno-0-199"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">Write</span><span class="p">(</span><span class="s">"Going for a rediff"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-200"><a href="#__codelineno-0-200" id="__codelineno-0-200" name="__codelineno-0-200"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-201"><a href="#__codelineno-0-201" id="__codelineno-0-201" name="__codelineno-0-201"></a>
</span><span id="__span-0-202"><a href="#__codelineno-0-202" id="__codelineno-0-202" name="__codelineno-0-202"></a><span class="w"> </span><span class="c1">//Again waits for the page to fully load (when you accept cookies it takes a little time for the page to load)</span>
</span><span id="__span-0-203"><a href="#__codelineno-0-203" id="__codelineno-0-203" name="__codelineno-0-203"></a><span class="w"> </span><span class="c1">//Cannot use The timeout because the feed loading is not really loading so there is not event or anything</span>
</span><span id="__span-0-204"><a href="#__codelineno-0-204" id="__codelineno-0-204" name="__codelineno-0-204"></a><span class="w"> </span><span class="n">Thread</span><span class="p">.</span><span class="n">Sleep</span><span class="p">(</span><span class="m">5000</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-205"><a href="#__codelineno-0-205" id="__codelineno-0-205" name="__codelineno-0-205"></a>
</span><span id="__span-0-206"><a href="#__codelineno-0-206" id="__codelineno-0-206" name="__codelineno-0-206"></a><span class="w"> </span><span class="c1">//Switches to the Data channel</span>
</span><span id="__span-0-207"><a href="#__codelineno-0-207" id="__codelineno-0-207" name="__codelineno-0-207"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-208"><a href="#__codelineno-0-208" id="__codelineno-0-208" name="__codelineno-0-208"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-209"><a href="#__codelineno-0-209" id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">dataChannelButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"data-button"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-210"><a href="#__codelineno-0-210" id="__codelineno-0-210" name="__codelineno-0-210"></a><span class="w"> </span><span class="n">dataChannelButton</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-211"><a href="#__codelineno-0-211" id="__codelineno-0-211" name="__codelineno-0-211"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-212"><a href="#__codelineno-0-212" id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-213"><a href="#__codelineno-0-213" id="__codelineno-0-213" name="__codelineno-0-213"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-214"><a href="#__codelineno-0-214" id="__codelineno-0-214" name="__codelineno-0-214"></a><span class="w"> </span><span class="c1">//If the data button does not exists its because the user is not connected</span>
</span><span id="__span-0-215"><a href="#__codelineno-0-215" id="__codelineno-0-215" name="__codelineno-0-215"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"ERROR102"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-216"><a href="#__codelineno-0-216" id="__codelineno-0-216" name="__codelineno-0-216"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-217"><a href="#__codelineno-0-217" id="__codelineno-0-217" name="__codelineno-0-217"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">102</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-218"><a href="#__codelineno-0-218" id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-219"><a href="#__codelineno-0-219" id="__codelineno-0-219" name="__codelineno-0-219"></a>
</span><span id="__span-0-220"><a href="#__codelineno-0-220" id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="w"> </span><span class="c1">//Open settings </span>
</span><span id="__span-0-221"><a href="#__codelineno-0-221" id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="w"> </span><span class="c1">// Press the space key, this should make the setting button visible</span>
</span><span id="__span-0-222"><a href="#__codelineno-0-222" id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="w"> </span><span class="c1">// It does not matter if the feed is paused because when changing channel it autoplays</span>
</span><span id="__span-0-223"><a href="#__codelineno-0-223" id="__codelineno-0-223" name="__codelineno-0-223"></a><span class="w"> </span><span class="n">actions</span><span class="p">.</span><span class="n">SendKeys</span><span class="p">(</span><span class="n">OpenQA</span><span class="p">.</span><span class="n">Selenium</span><span class="p">.</span><span class="n">Keys</span><span class="p">.</span><span class="n">Space</span><span class="p">).</span><span class="n">Perform</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-224"><a href="#__codelineno-0-224" id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="w"> </span><span class="c1">//Clicks on the settings Icon</span>
</span><span id="__span-0-225"><a href="#__codelineno-0-225" id="__codelineno-0-225" name="__codelineno-0-225"></a>
</span><span id="__span-0-226"><a href="#__codelineno-0-226" id="__codelineno-0-226" name="__codelineno-0-226"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">settingsClickTries</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-227"><a href="#__codelineno-0-227" id="__codelineno-0-227" name="__codelineno-0-227"></a><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">settingsClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-228"><a href="#__codelineno-0-228" id="__codelineno-0-228" name="__codelineno-0-228"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">settingsClickTries</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="m">100</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="p">!</span><span class="n">settingsClickSuccess</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-229"><a href="#__codelineno-0-229" id="__codelineno-0-229" name="__codelineno-0-229"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-230"><a href="#__codelineno-0-230" id="__codelineno-0-230" name="__codelineno-0-230"></a><span class="w"> </span><span class="n">Thread</span><span class="p">.</span><span class="n">Sleep</span><span class="p">(</span><span class="m">100</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-231"><a href="#__codelineno-0-231" id="__codelineno-0-231" name="__codelineno-0-231"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-232"><a href="#__codelineno-0-232" id="__codelineno-0-232" name="__codelineno-0-232"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-233"><a href="#__codelineno-0-233" id="__codelineno-0-233" name="__codelineno-0-233"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">settingsButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"bmpui-ui-settingstogglebutton"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-234"><a href="#__codelineno-0-234" id="__codelineno-0-234" name="__codelineno-0-234"></a><span class="w"> </span><span class="n">settingsButton</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-235"><a href="#__codelineno-0-235" id="__codelineno-0-235" name="__codelineno-0-235"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">selectElement</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"bmpui-ui-videoqualityselectbox"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-236"><a href="#__codelineno-0-236" id="__codelineno-0-236" name="__codelineno-0-236"></a><span class="w"> </span><span class="n">SelectElement</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SelectElement</span><span class="p">(</span><span class="n">selectElement</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-237"><a href="#__codelineno-0-237" id="__codelineno-0-237" name="__codelineno-0-237"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">selectOption</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">selectElement</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">CssSelector</span><span class="p">(</span><span class="s">"option[value^='1080_']"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-238"><a href="#__codelineno-0-238" id="__codelineno-0-238" name="__codelineno-0-238"></a><span class="w"> </span><span class="n">selectOption</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-239"><a href="#__codelineno-0-239" id="__codelineno-0-239" name="__codelineno-0-239"></a><span class="w"> </span><span class="n">settingsClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-240"><a href="#__codelineno-0-240" id="__codelineno-0-240" name="__codelineno-0-240"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-241"><a href="#__codelineno-0-241" id="__codelineno-0-241" name="__codelineno-0-241"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-242"><a href="#__codelineno-0-242" id="__codelineno-0-242" name="__codelineno-0-242"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-243"><a href="#__codelineno-0-243" id="__codelineno-0-243" name="__codelineno-0-243"></a><span class="w"> </span><span class="c1">//Sometimes it can crash because it could not get the options to show up in time. When it happens just retry</span>
</span><span id="__span-0-244"><a href="#__codelineno-0-244" id="__codelineno-0-244" name="__codelineno-0-244"></a><span class="w"> </span><span class="n">settingsClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-245"><a href="#__codelineno-0-245" id="__codelineno-0-245" name="__codelineno-0-245"></a><span class="w"> </span><span class="n">settingsClickTries</span><span class="p">++;</span><span class="w"></span>
</span><span id="__span-0-246"><a href="#__codelineno-0-246" id="__codelineno-0-246" name="__codelineno-0-246"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-247"><a href="#__codelineno-0-247" id="__codelineno-0-247" name="__codelineno-0-247"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-248"><a href="#__codelineno-0-248" id="__codelineno-0-248" name="__codelineno-0-248"></a>
</span><span id="__span-0-249"><a href="#__codelineno-0-249" id="__codelineno-0-249" name="__codelineno-0-249"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(!</span><span class="n">settingsClickSuccess</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-250"><a href="#__codelineno-0-250" id="__codelineno-0-250" name="__codelineno-0-250"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-251"><a href="#__codelineno-0-251" id="__codelineno-0-251" name="__codelineno-0-251"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"ERROR105"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-252"><a href="#__codelineno-0-252" id="__codelineno-0-252" name="__codelineno-0-252"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-253"><a href="#__codelineno-0-253" id="__codelineno-0-253" name="__codelineno-0-253"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">105</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-254"><a href="#__codelineno-0-254" id="__codelineno-0-254" name="__codelineno-0-254"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-255"><a href="#__codelineno-0-255" id="__codelineno-0-255" name="__codelineno-0-255"></a>
</span><span id="__span-0-256"><a href="#__codelineno-0-256" id="__codelineno-0-256" name="__codelineno-0-256"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"BEFOREFULLSCREEN"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-257"><a href="#__codelineno-0-257" id="__codelineno-0-257" name="__codelineno-0-257"></a>
</span><span id="__span-0-258"><a href="#__codelineno-0-258" id="__codelineno-0-258" name="__codelineno-0-258"></a><span class="w"> </span><span class="c1">//Makes the feed fullscreen</span>
</span><span id="__span-0-259"><a href="#__codelineno-0-259" id="__codelineno-0-259" name="__codelineno-0-259"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fullScreenClickTries</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-260"><a href="#__codelineno-0-260" id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">fullScreenClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-261"><a href="#__codelineno-0-261" id="__codelineno-0-261" name="__codelineno-0-261"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Manage</span><span class="p">().</span><span class="n">Window</span><span class="p">.</span><span class="n">Maximize</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-262"><a href="#__codelineno-0-262" id="__codelineno-0-262" name="__codelineno-0-262"></a><span class="w"> </span><span class="c1">//WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(10));</span>
</span><span id="__span-0-263"><a href="#__codelineno-0-263" id="__codelineno-0-263" name="__codelineno-0-263"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">fullScreenClickTries</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="m">100</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="p">!</span><span class="n">fullScreenClickSuccess</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-264"><a href="#__codelineno-0-264" id="__codelineno-0-264" name="__codelineno-0-264"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-265"><a href="#__codelineno-0-265" id="__codelineno-0-265" name="__codelineno-0-265"></a><span class="w"> </span><span class="n">Thread</span><span class="p">.</span><span class="n">Sleep</span><span class="p">(</span><span class="m">150</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-266"><a href="#__codelineno-0-266" id="__codelineno-0-266" name="__codelineno-0-266"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-267"><a href="#__codelineno-0-267" id="__codelineno-0-267" name="__codelineno-0-267"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-268"><a href="#__codelineno-0-268" id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="n">IWebElement</span><span class="w"> </span><span class="n">fullScreenButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">FindElement</span><span class="p">(</span><span class="n">By</span><span class="p">.</span><span class="n">ClassName</span><span class="p">(</span><span class="s">"bmpui-ui-fullscreentogglebutton"</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-269"><a href="#__codelineno-0-269" id="__codelineno-0-269" name="__codelineno-0-269"></a><span class="w"> </span><span class="n">fullScreenButton</span><span class="p">.</span><span class="n">Click</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-270"><a href="#__codelineno-0-270" id="__codelineno-0-270" name="__codelineno-0-270"></a><span class="w"> </span><span class="n">fullScreenClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-271"><a href="#__codelineno-0-271" id="__codelineno-0-271" name="__codelineno-0-271"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-272"><a href="#__codelineno-0-272" id="__codelineno-0-272" name="__codelineno-0-272"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-273"><a href="#__codelineno-0-273" id="__codelineno-0-273" name="__codelineno-0-273"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-274"><a href="#__codelineno-0-274" id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="w"> </span><span class="n">fullScreenClickSuccess</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-275"><a href="#__codelineno-0-275" id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="w"> </span><span class="n">fullScreenClickTries</span><span class="p">++;</span><span class="w"></span>
</span><span id="__span-0-276"><a href="#__codelineno-0-276" id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-277"><a href="#__codelineno-0-277" id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-278"><a href="#__codelineno-0-278" id="__codelineno-0-278" name="__codelineno-0-278"></a>
</span><span id="__span-0-279"><a href="#__codelineno-0-279" id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(!</span><span class="n">fullScreenClickSuccess</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-280"><a href="#__codelineno-0-280" id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-281"><a href="#__codelineno-0-281" id="__codelineno-0-281" name="__codelineno-0-281"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"ERROR106"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-282"><a href="#__codelineno-0-282" id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-283"><a href="#__codelineno-0-283" id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">106</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-284"><a href="#__codelineno-0-284" id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-285"><a href="#__codelineno-0-285" id="__codelineno-0-285" name="__codelineno-0-285"></a>
</span><span id="__span-0-286"><a href="#__codelineno-0-286" id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="w"> </span><span class="n">Screenshot</span><span class="p">(</span><span class="s">"AFTERFULLSCREEN"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-287"><a href="#__codelineno-0-287" id="__codelineno-0-287" name="__codelineno-0-287"></a>
</span><span id="__span-0-288"><a href="#__codelineno-0-288" id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="w"> </span><span class="c1">//STARTUP FINISHED READY TO SCREENSHOT</span>
</span><span id="__span-0-289"><a href="#__codelineno-0-289" id="__codelineno-0-289" name="__codelineno-0-289"></a><span class="w"> </span><span class="n">Ready</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-290"><a href="#__codelineno-0-290" id="__codelineno-0-290" name="__codelineno-0-290"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-291"><a href="#__codelineno-0-291" id="__codelineno-0-291" name="__codelineno-0-291"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-292"><a href="#__codelineno-0-292" id="__codelineno-0-292" name="__codelineno-0-292"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-293"><a href="#__codelineno-0-293" id="__codelineno-0-293" name="__codelineno-0-293"></a><span class="w"> </span><span class="c1">/// Takes a screenshot of what the headless browser is displaying</span>
</span><span id="__span-0-294"><a href="#__codelineno-0-294" id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-295"><a href="#__codelineno-0-295" id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="w"> </span><span class="c1">/// &lt;param name="name"&gt;Optional ! The name of the picture so it can be saved&lt;/param&gt;</span>
</span><span id="__span-0-296"><a href="#__codelineno-0-296" id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="w"> </span><span class="c1">/// &lt;returns&gt;Returns the screenshot in the bitmap format&lt;/returns&gt;</span>
</span><span id="__span-0-297"><a href="#__codelineno-0-297" id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="nf">Screenshot</span><span class="p">(</span><span class="kt">string</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"TEST"</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-298"><a href="#__codelineno-0-298" id="__codelineno-0-298" name="__codelineno-0-298"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-299"><a href="#__codelineno-0-299" id="__codelineno-0-299" name="__codelineno-0-299"></a><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Bitmap</span><span class="p">(</span><span class="m">4242</span><span class="p">,</span><span class="w"> </span><span class="m">6969</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-300"><a href="#__codelineno-0-300" id="__codelineno-0-300" name="__codelineno-0-300"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-301"><a href="#__codelineno-0-301" id="__codelineno-0-301" name="__codelineno-0-301"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-302"><a href="#__codelineno-0-302" id="__codelineno-0-302" name="__codelineno-0-302"></a><span class="w"> </span><span class="c1">//Screenshot scrsht = ((ITakesScreenshot)Driver).GetScreenshot();</span>
</span><span id="__span-0-303"><a href="#__codelineno-0-303" id="__codelineno-0-303" name="__codelineno-0-303"></a><span class="w"> </span><span class="c1">//profileriver.SetPreferencC:\Users\Moi\source\repos\Test_Merge\README.mde("layout.css.devPixelsPerPx", "1.0");</span>
</span><span id="__span-0-304"><a href="#__codelineno-0-304" id="__codelineno-0-304" name="__codelineno-0-304"></a>
</span><span id="__span-0-305"><a href="#__codelineno-0-305" id="__codelineno-0-305" name="__codelineno-0-305"></a><span class="w"> </span><span class="c1">//Screenshot scrsht = Driver.GetFullPageScreenshot();</span>
</span><span id="__span-0-306"><a href="#__codelineno-0-306" id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="w"> </span><span class="n">Screenshot</span><span class="w"> </span><span class="n">scrsht</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">GetScreenshot</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-307"><a href="#__codelineno-0-307" id="__codelineno-0-307" name="__codelineno-0-307"></a>
</span><span id="__span-0-308"><a href="#__codelineno-0-308" id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="w"> </span><span class="kt">byte</span><span class="p">[]</span><span class="w"> </span><span class="n">screenshotBytes</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Convert</span><span class="p">.</span><span class="n">FromBase64String</span><span class="p">(</span><span class="n">scrsht</span><span class="p">.</span><span class="n">AsBase64EncodedString</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-309"><a href="#__codelineno-0-309" id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="w"> </span><span class="n">MemoryStream</span><span class="w"> </span><span class="n">stream</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">MemoryStream</span><span class="p">(</span><span class="n">screenshotBytes</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-310"><a href="#__codelineno-0-310" id="__codelineno-0-310" name="__codelineno-0-310"></a>
</span><span id="__span-0-311"><a href="#__codelineno-0-311" id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Bitmap</span><span class="p">(</span><span class="n">stream</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-312"><a href="#__codelineno-0-312" id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="w"> </span><span class="c1">//result.Save(name + ".png");</span>
</span><span id="__span-0-313"><a href="#__codelineno-0-313" id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="w"> </span><span class="n">scrsht</span><span class="p">.</span><span class="n">SaveAsFile</span><span class="p">(</span><span class="n">name</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">".png"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-314"><a href="#__codelineno-0-314" id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-315"><a href="#__codelineno-0-315" id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="w"> </span><span class="k">catch</span><span class="w"></span>
</span><span id="__span-0-316"><a href="#__codelineno-0-316" id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-317"><a href="#__codelineno-0-317" id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="w"> </span><span class="c1">//Nothing for now</span>
</span><span id="__span-0-318"><a href="#__codelineno-0-318" id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-319"><a href="#__codelineno-0-319" id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-320"><a href="#__codelineno-0-320" id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-321"><a href="#__codelineno-0-321" id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-322"><a href="#__codelineno-0-322" id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="w"> </span><span class="c1">/// Stops the Emulation. Note: if you plan to start it again please use ResetDriver() instead</span>
</span><span id="__span-0-323"><a href="#__codelineno-0-323" id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-324"><a href="#__codelineno-0-324" id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Stop</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-325"><a href="#__codelineno-0-325" id="__codelineno-0-325" name="__codelineno-0-325"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-326"><a href="#__codelineno-0-326" id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="w"> </span><span class="n">Ready</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-327"><a href="#__codelineno-0-327" id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Driver</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-328"><a href="#__codelineno-0-328" id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-329"><a href="#__codelineno-0-329" id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-330"><a href="#__codelineno-0-330" id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-331"><a href="#__codelineno-0-331" id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="w"> </span><span class="c1">/// Resets the emulation</span>
</span><span id="__span-0-332"><a href="#__codelineno-0-332" id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-333"><a href="#__codelineno-0-333" id="__codelineno-0-333" name="__codelineno-0-333"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">ResetDriver</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-334"><a href="#__codelineno-0-334" id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-335"><a href="#__codelineno-0-335" id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="n">Ready</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-336"><a href="#__codelineno-0-336" id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Driver</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-337"><a href="#__codelineno-0-337" id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="w"> </span><span class="n">Driver</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-338"><a href="#__codelineno-0-338" id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="w"> </span><span class="n">Driver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-339"><a href="#__codelineno-0-339" id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-340"><a href="#__codelineno-0-340" id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-341"><a href="#__codelineno-0-341" id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
</article>
</div>
+500 -428
View File
@@ -171,16 +171,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -259,428 +249,510 @@
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="form1cs">Form1.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.ComponentModel</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Data</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Diagnostics</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Drawing</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Linq</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Text</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Threading</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Threading.Tasks</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Windows.Forms</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.IO</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a>
</span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="k">namespace</span><span class="w"> </span><span class="nn">TrackTrends</span><span class="w"></span>
</span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">partial</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Main</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">Form</span><span class="w"></span>
</span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="w"> </span><span class="c1">//private Reader Reader = null;</span>
</span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">F1TVEmulator</span><span class="w"> </span><span class="n">Emulator</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">DataWrapper</span><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">cancelRequested</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">SemaphoreSlim</span><span class="w"> </span><span class="n">semaphore</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SemaphoreSlim</span><span class="p">(</span><span class="m">1</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-23"><a href="#__codelineno-0-23" id="__codelineno-0-23" name="__codelineno-0-23"></a>
</span><span id="__span-0-24"><a href="#__codelineno-0-24" id="__codelineno-0-24" name="__codelineno-0-24"></a><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">ConfigFile</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">""</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-25"><a href="#__codelineno-0-25" id="__codelineno-0-25" name="__codelineno-0-25"></a><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">GpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">""</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-26"><a href="#__codelineno-0-26" id="__codelineno-0-26" name="__codelineno-0-26"></a>
</span><span id="__span-0-27"><a href="#__codelineno-0-27" id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="w"> </span><span class="c1">//For the responsive content</span>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : Form1.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Class that controls the main view of the app</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.ComponentModel</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Data</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Diagnostics</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Drawing</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Linq</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Text</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Threading</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Threading.Tasks</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Windows.Forms</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.IO</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a>
</span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="k">namespace</span><span class="w"> </span><span class="nn">TrackTrends</span><span class="w"></span>
</span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">partial</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Main</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">Form</span><span class="w"></span>
</span><span id="__span-0-23"><a href="#__codelineno-0-23" id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-24"><a href="#__codelineno-0-24" id="__codelineno-0-24" name="__codelineno-0-24"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">F1TVEmulator</span><span class="w"> </span><span class="n">Emulator</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-25"><a href="#__codelineno-0-25" id="__codelineno-0-25" name="__codelineno-0-25"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">DataWrapper</span><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-26"><a href="#__codelineno-0-26" id="__codelineno-0-26" name="__codelineno-0-26"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">cancelRequested</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-27"><a href="#__codelineno-0-27" id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">SemaphoreSlim</span><span class="w"> </span><span class="n">semaphore</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SemaphoreSlim</span><span class="p">(</span><span class="m">1</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-28"><a href="#__codelineno-0-28" id="__codelineno-0-28" name="__codelineno-0-28"></a>
</span><span id="__span-0-29"><a href="#__codelineno-0-29" id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-30"><a href="#__codelineno-0-30" id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldRankingSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-31"><a href="#__codelineno-0-31" id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldLapTimesSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-32"><a href="#__codelineno-0-32" id="__codelineno-0-32" name="__codelineno-0-32"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-29"><a href="#__codelineno-0-29" id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">ConfigFile</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">""</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-30"><a href="#__codelineno-0-30" id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">GpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">""</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-31"><a href="#__codelineno-0-31" id="__codelineno-0-31" name="__codelineno-0-31"></a>
</span><span id="__span-0-32"><a href="#__codelineno-0-32" id="__codelineno-0-32" name="__codelineno-0-32"></a><span class="w"> </span><span class="c1">//For the responsive content</span>
</span><span id="__span-0-33"><a href="#__codelineno-0-33" id="__codelineno-0-33" name="__codelineno-0-33"></a>
</span><span id="__span-0-34"><a href="#__codelineno-0-34" id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldPnlBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-35"><a href="#__codelineno-0-35" id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldPnlRankings</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-36"><a href="#__codelineno-0-36" id="__codelineno-0-36" name="__codelineno-0-36"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldPnlFastest</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-37"><a href="#__codelineno-0-37" id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldPnlSlowest</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-34"><a href="#__codelineno-0-34" id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-35"><a href="#__codelineno-0-35" id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldRankingSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-36"><a href="#__codelineno-0-36" id="__codelineno-0-36" name="__codelineno-0-36"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldLapTimesSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-37"><a href="#__codelineno-0-37" id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-38"><a href="#__codelineno-0-38" id="__codelineno-0-38" name="__codelineno-0-38"></a>
</span><span id="__span-0-39"><a href="#__codelineno-0-39" id="__codelineno-0-39" name="__codelineno-0-39"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">oldRankingPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-40"><a href="#__codelineno-0-40" id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">oldBattlePosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-41"><a href="#__codelineno-0-41" id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">oldDriverInfoPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-42"><a href="#__codelineno-0-42" id="__codelineno-0-42" name="__codelineno-0-42"></a>
</span><span id="__span-0-43"><a href="#__codelineno-0-43" id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">olPnlFastestPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-44"><a href="#__codelineno-0-44" id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">oldPnlSlowestPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-45"><a href="#__codelineno-0-45" id="__codelineno-0-45" name="__codelineno-0-45"></a>
</span><span id="__span-0-46"><a href="#__codelineno-0-46" id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="nf">Main</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-47"><a href="#__codelineno-0-47" id="__codelineno-0-47" name="__codelineno-0-47"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-48"><a href="#__codelineno-0-48" id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="w"> </span><span class="n">InitializeComponent</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-49"><a href="#__codelineno-0-49" id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-50"><a href="#__codelineno-0-50" id="__codelineno-0-50" name="__codelineno-0-50"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">RefreshUI</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-51"><a href="#__codelineno-0-51" id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-52"><a href="#__codelineno-0-52" id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Directory</span><span class="p">.</span><span class="n">Exists</span><span class="p">(</span><span class="n">ConfigurationTool</span><span class="p">.</span><span class="n">CONFIGS_FOLDER_NAME</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-53"><a href="#__codelineno-0-53" id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-54"><a href="#__codelineno-0-54" id="__codelineno-0-54" name="__codelineno-0-54"></a><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">DataSource</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-55"><a href="#__codelineno-0-55" id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">DataSource</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Directory</span><span class="p">.</span><span class="n">GetFiles</span><span class="p">(</span><span class="n">ConfigurationTool</span><span class="p">.</span><span class="n">CONFIGS_FOLDER_NAME</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-56"><a href="#__codelineno-0-56" id="__codelineno-0-56" name="__codelineno-0-56"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-57"><a href="#__codelineno-0-57" id="__codelineno-0-57" name="__codelineno-0-57"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-58"><a href="#__codelineno-0-58" id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnSettings_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-39"><a href="#__codelineno-0-39" id="__codelineno-0-39" name="__codelineno-0-39"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldPnlBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-40"><a href="#__codelineno-0-40" id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldPnlRankings</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-41"><a href="#__codelineno-0-41" id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldPnlFastest</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-42"><a href="#__codelineno-0-42" id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">oldPnlSlowest</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-43"><a href="#__codelineno-0-43" id="__codelineno-0-43" name="__codelineno-0-43"></a>
</span><span id="__span-0-44"><a href="#__codelineno-0-44" id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">oldRankingPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-45"><a href="#__codelineno-0-45" id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">oldBattlePosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-46"><a href="#__codelineno-0-46" id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">oldDriverInfoPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-47"><a href="#__codelineno-0-47" id="__codelineno-0-47" name="__codelineno-0-47"></a>
</span><span id="__span-0-48"><a href="#__codelineno-0-48" id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">olPnlFastestPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-49"><a href="#__codelineno-0-49" id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">oldPnlSlowestPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-50"><a href="#__codelineno-0-50" id="__codelineno-0-50" name="__codelineno-0-50"></a>
</span><span id="__span-0-51"><a href="#__codelineno-0-51" id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="nf">Main</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-52"><a href="#__codelineno-0-52" id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-53"><a href="#__codelineno-0-53" id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="w"> </span><span class="n">InitializeComponent</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-54"><a href="#__codelineno-0-54" id="__codelineno-0-54" name="__codelineno-0-54"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-55"><a href="#__codelineno-0-55" id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-56"><a href="#__codelineno-0-56" id="__codelineno-0-56" name="__codelineno-0-56"></a><span class="w"> </span><span class="c1">/// Will update everything that is not data related</span>
</span><span id="__span-0-57"><a href="#__codelineno-0-57" id="__codelineno-0-57" name="__codelineno-0-57"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-58"><a href="#__codelineno-0-58" id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">RefreshUI</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-59"><a href="#__codelineno-0-59" id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-60"><a href="#__codelineno-0-60" id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Emulator</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-61"><a href="#__codelineno-0-61" id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">ResetDriver</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-62"><a href="#__codelineno-0-62" id="__codelineno-0-62" name="__codelineno-0-62"></a>
</span><span id="__span-0-63"><a href="#__codelineno-0-63" id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-64"><a href="#__codelineno-0-64" id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-65"><a href="#__codelineno-0-65" id="__codelineno-0-65" name="__codelineno-0-65"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Launch"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-66"><a href="#__codelineno-0-66" id="__codelineno-0-66" name="__codelineno-0-66"></a>
</span><span id="__span-0-67"><a href="#__codelineno-0-67" id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="w"> </span><span class="n">Emulator</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-68"><a href="#__codelineno-0-68" id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-69"><a href="#__codelineno-0-69" id="__codelineno-0-69" name="__codelineno-0-69"></a>
</span><span id="__span-0-70"><a href="#__codelineno-0-70" id="__codelineno-0-70" name="__codelineno-0-70"></a><span class="w"> </span><span class="n">GC</span><span class="p">.</span><span class="n">Collect</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-71"><a href="#__codelineno-0-71" id="__codelineno-0-71" name="__codelineno-0-71"></a>
</span><span id="__span-0-72"><a href="#__codelineno-0-72" id="__codelineno-0-72" name="__codelineno-0-72"></a><span class="w"> </span><span class="n">Settings</span><span class="w"> </span><span class="n">settingsForm</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Settings</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-73"><a href="#__codelineno-0-73" id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="w"> </span><span class="n">settingsForm</span><span class="p">.</span><span class="n">ShowDialog</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-74"><a href="#__codelineno-0-74" id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="w"> </span><span class="n">RefreshUI</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-75"><a href="#__codelineno-0-75" id="__codelineno-0-75" name="__codelineno-0-75"></a><span class="w"> </span><span class="c1">//MessageBox.Show(settingsForm.GrandPrixUrl + Environment.NewLine + settingsForm.GrandPrixName + Environment.NewLine + settingsForm.GrandPrixYear);</span>
</span><span id="__span-0-76"><a href="#__codelineno-0-76" id="__codelineno-0-76" name="__codelineno-0-76"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">settingsForm</span><span class="p">.</span><span class="n">GrandPrixUrl</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="n">settingsForm</span><span class="p">.</span><span class="n">SelectedConfigFile</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="s">""</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-77"><a href="#__codelineno-0-77" id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-78"><a href="#__codelineno-0-78" id="__codelineno-0-78" name="__codelineno-0-78"></a><span class="w"> </span><span class="n">GpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">settingsForm</span><span class="p">.</span><span class="n">GrandPrixUrl</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-79"><a href="#__codelineno-0-79" id="__codelineno-0-79" name="__codelineno-0-79"></a><span class="w"> </span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">GpUrl</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-80"><a href="#__codelineno-0-80" id="__codelineno-0-80" name="__codelineno-0-80"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">File</span><span class="p">.</span><span class="n">Exists</span><span class="p">(</span><span class="n">settingsForm</span><span class="p">.</span><span class="n">SelectedConfigFile</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-81"><a href="#__codelineno-0-81" id="__codelineno-0-81" name="__codelineno-0-81"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-82"><a href="#__codelineno-0-82" id="__codelineno-0-82" name="__codelineno-0-82"></a><span class="w"> </span><span class="n">ConfigFile</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">settingsForm</span><span class="p">.</span><span class="n">SelectedConfigFile</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-83"><a href="#__codelineno-0-83" id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">Count</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="p">++)</span><span class="w"></span>
</span><span id="__span-0-84"><a href="#__codelineno-0-84" id="__codelineno-0-84" name="__codelineno-0-84"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-85"><a href="#__codelineno-0-85" id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Items</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">ToString</span><span class="p">()</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="n">ConfigFile</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-86"><a href="#__codelineno-0-86" id="__codelineno-0-86" name="__codelineno-0-86"></a><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">SelectedIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-87"><a href="#__codelineno-0-87" id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-88"><a href="#__codelineno-0-88" id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-89"><a href="#__codelineno-0-89" id="__codelineno-0-89" name="__codelineno-0-89"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-90"><a href="#__codelineno-0-90" id="__codelineno-0-90" name="__codelineno-0-90"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-91"><a href="#__codelineno-0-91" id="__codelineno-0-91" name="__codelineno-0-91"></a><span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"The config file has not been found please return to the config and change it"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-92"><a href="#__codelineno-0-92" id="__codelineno-0-92" name="__codelineno-0-92"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-93"><a href="#__codelineno-0-93" id="__codelineno-0-93" name="__codelineno-0-93"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-94"><a href="#__codelineno-0-94" id="__codelineno-0-94" name="__codelineno-0-94"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-95"><a href="#__codelineno-0-95" id="__codelineno-0-95" name="__codelineno-0-95"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-96"><a href="#__codelineno-0-96" id="__codelineno-0-96" name="__codelineno-0-96"></a><span class="w"> </span><span class="c1">//WE dont care anymore, the user will choose its Grand Prix himself in the main program</span>
</span><span id="__span-0-97"><a href="#__codelineno-0-97" id="__codelineno-0-97" name="__codelineno-0-97"></a><span class="w"> </span><span class="c1">//MessageBox.Show("There is no URL for the Grand Prix you want to decode. Please return to the config and add a valid one");</span>
</span><span id="__span-0-98"><a href="#__codelineno-0-98" id="__codelineno-0-98" name="__codelineno-0-98"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-99"><a href="#__codelineno-0-99" id="__codelineno-0-99" name="__codelineno-0-99"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-100"><a href="#__codelineno-0-100" id="__codelineno-0-100" name="__codelineno-0-100"></a>
</span><span id="__span-0-101"><a href="#__codelineno-0-101" id="__codelineno-0-101" name="__codelineno-0-101"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Form1_Load</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-102"><a href="#__codelineno-0-102" id="__codelineno-0-102" name="__codelineno-0-102"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-103"><a href="#__codelineno-0-103" id="__codelineno-0-103" name="__codelineno-0-103"></a><span class="w"> </span><span class="c1">//Those are the default values but they will need to be changed later when the configuration has been done</span>
</span><span id="__span-0-104"><a href="#__codelineno-0-104" id="__codelineno-0-104" name="__codelineno-0-104"></a><span class="w"> </span><span class="n">ConfigFile</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"./Presets/Clean_4K_2023.json"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-105"><a href="#__codelineno-0-105" id="__codelineno-0-105" name="__codelineno-0-105"></a><span class="w"> </span><span class="n">GpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"https://f1tv.formula1.com/detail/1000006688/2023-azerbaijan-grand-prix?action=play"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-106"><a href="#__codelineno-0-106" id="__codelineno-0-106" name="__codelineno-0-106"></a>
</span><span id="__span-0-107"><a href="#__codelineno-0-107" id="__codelineno-0-107" name="__codelineno-0-107"></a><span class="w"> </span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">GpUrl</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-108"><a href="#__codelineno-0-108" id="__codelineno-0-108" name="__codelineno-0-108"></a>
</span><span id="__span-0-109"><a href="#__codelineno-0-109" id="__codelineno-0-109" name="__codelineno-0-109"></a><span class="w"> </span><span class="n">oldSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-110"><a href="#__codelineno-0-110" id="__codelineno-0-110" name="__codelineno-0-110"></a><span class="w"> </span><span class="n">oldRankingSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-111"><a href="#__codelineno-0-111" id="__codelineno-0-111" name="__codelineno-0-111"></a><span class="w"> </span><span class="n">oldLapTimesSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxLapTimes</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-112"><a href="#__codelineno-0-112" id="__codelineno-0-112" name="__codelineno-0-112"></a><span class="w"> </span><span class="n">oldBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-113"><a href="#__codelineno-0-113" id="__codelineno-0-113" name="__codelineno-0-113"></a>
</span><span id="__span-0-114"><a href="#__codelineno-0-114" id="__codelineno-0-114" name="__codelineno-0-114"></a><span class="w"> </span><span class="n">oldPnlRankings</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlLiveRanking</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-115"><a href="#__codelineno-0-115" id="__codelineno-0-115" name="__codelineno-0-115"></a><span class="w"> </span><span class="n">oldPnlBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-116"><a href="#__codelineno-0-116" id="__codelineno-0-116" name="__codelineno-0-116"></a><span class="w"> </span><span class="n">oldPnlFastest</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-117"><a href="#__codelineno-0-117" id="__codelineno-0-117" name="__codelineno-0-117"></a><span class="w"> </span><span class="n">oldPnlSlowest</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-118"><a href="#__codelineno-0-118" id="__codelineno-0-118" name="__codelineno-0-118"></a>
</span><span id="__span-0-119"><a href="#__codelineno-0-119" id="__codelineno-0-119" name="__codelineno-0-119"></a><span class="w"> </span><span class="n">oldRankingPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-120"><a href="#__codelineno-0-120" id="__codelineno-0-120" name="__codelineno-0-120"></a><span class="w"> </span><span class="n">oldBattlePosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-121"><a href="#__codelineno-0-121" id="__codelineno-0-121" name="__codelineno-0-121"></a><span class="w"> </span><span class="n">oldDriverInfoPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxDriverInfos</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-122"><a href="#__codelineno-0-122" id="__codelineno-0-122" name="__codelineno-0-122"></a>
</span><span id="__span-0-123"><a href="#__codelineno-0-123" id="__codelineno-0-123" name="__codelineno-0-123"></a><span class="w"> </span><span class="n">olPnlFastestPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-124"><a href="#__codelineno-0-124" id="__codelineno-0-124" name="__codelineno-0-124"></a><span class="w"> </span><span class="n">oldPnlSlowestPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-125"><a href="#__codelineno-0-125" id="__codelineno-0-125" name="__codelineno-0-125"></a>
</span><span id="__span-0-126"><a href="#__codelineno-0-126" id="__codelineno-0-126" name="__codelineno-0-126"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">btnResetEmulator</span><span class="p">,</span><span class="w"> </span><span class="s">"Starts or restarts the emulator. You need to start this to use the app"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-127"><a href="#__codelineno-0-127" id="__codelineno-0-127" name="__codelineno-0-127"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">btnSettings</span><span class="p">,</span><span class="w"> </span><span class="s">"Opens the configuration menu"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-128"><a href="#__codelineno-0-128" id="__codelineno-0-128" name="__codelineno-0-128"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">tbxGpUrl</span><span class="p">,</span><span class="w"> </span><span class="s">"Insert the URL of the Grand Prix you want to track. Dont forget the \"?action=play\" at the end"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-129"><a href="#__codelineno-0-129" id="__codelineno-0-129" name="__codelineno-0-129"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">lsbPresets</span><span class="p">,</span><span class="w"> </span><span class="s">"Select a configuration preset to use with the decoding"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-130"><a href="#__codelineno-0-130" id="__codelineno-0-130" name="__codelineno-0-130"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">pbxResult</span><span class="p">,</span><span class="s">"A preview of what the program sees. You should see the DATA page of the F1TV here"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-131"><a href="#__codelineno-0-131" id="__codelineno-0-131" name="__codelineno-0-131"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">lsbOvertakes</span><span class="p">,</span><span class="s">"A list of all the activity. You can scroll to see the most recent overtakes"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-132"><a href="#__codelineno-0-132" id="__codelineno-0-132" name="__codelineno-0-132"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">gpbxBattles</span><span class="p">,</span><span class="s">"The four first battles in the field. A battle is two drivers less than 3 seconds apart"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-133"><a href="#__codelineno-0-133" id="__codelineno-0-133" name="__codelineno-0-133"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">gpbxLapTimes</span><span class="p">,</span><span class="s">"The fastest and slowest drivers on track at the moment. It takes the average lapTime of the last 5 laps to choose who is the fastes or the slowest"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-134"><a href="#__codelineno-0-134" id="__codelineno-0-134" name="__codelineno-0-134"></a>
</span><span id="__span-0-135"><a href="#__codelineno-0-135" id="__codelineno-0-135" name="__codelineno-0-135"></a><span class="w"> </span><span class="n">RefreshUI</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-136"><a href="#__codelineno-0-136" id="__codelineno-0-136" name="__codelineno-0-136"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-137"><a href="#__codelineno-0-137" id="__codelineno-0-137" name="__codelineno-0-137"></a>
</span><span id="__span-0-138"><a href="#__codelineno-0-138" id="__codelineno-0-138" name="__codelineno-0-138"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnUpdate_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-139"><a href="#__codelineno-0-139" id="__codelineno-0-139" name="__codelineno-0-139"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-140"><a href="#__codelineno-0-140" id="__codelineno-0-140" name="__codelineno-0-140"></a><span class="w"> </span><span class="n">cancelRequested</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-141"><a href="#__codelineno-0-141" id="__codelineno-0-141" name="__codelineno-0-141"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Emulator</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-142"><a href="#__codelineno-0-142" id="__codelineno-0-142" name="__codelineno-0-142"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-143"><a href="#__codelineno-0-143" id="__codelineno-0-143" name="__codelineno-0-143"></a><span class="w"> </span><span class="c1">// Disable UI controls to prevent re-entrancy</span>
</span><span id="__span-0-144"><a href="#__codelineno-0-144" id="__codelineno-0-144" name="__codelineno-0-144"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-145"><a href="#__codelineno-0-145" id="__codelineno-0-145" name="__codelineno-0-145"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-146"><a href="#__codelineno-0-146" id="__codelineno-0-146" name="__codelineno-0-146"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-147"><a href="#__codelineno-0-147" id="__codelineno-0-147" name="__codelineno-0-147"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-148"><a href="#__codelineno-0-148" id="__codelineno-0-148" name="__codelineno-0-148"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(!</span><span class="n">cancelRequested</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-149"><a href="#__codelineno-0-149" id="__codelineno-0-149" name="__codelineno-0-149"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-150"><a href="#__codelineno-0-150" id="__codelineno-0-150" name="__codelineno-0-150"></a><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="n">semaphore</span><span class="p">.</span><span class="n">WaitAsync</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-151"><a href="#__codelineno-0-151" id="__codelineno-0-151" name="__codelineno-0-151"></a>
</span><span id="__span-0-152"><a href="#__codelineno-0-152" id="__codelineno-0-152" name="__codelineno-0-152"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-153"><a href="#__codelineno-0-153" id="__codelineno-0-153" name="__codelineno-0-153"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-154"><a href="#__codelineno-0-154" id="__codelineno-0-154" name="__codelineno-0-154"></a><span class="w"> </span><span class="c1">// Start the time-consuming task on a separate thread</span>
</span><span id="__span-0-155"><a href="#__codelineno-0-155" id="__codelineno-0-155" name="__codelineno-0-155"></a><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="n">Task</span><span class="p">.</span><span class="n">Run</span><span class="p">(</span><span class="k">async</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"></span>
</span><span id="__span-0-156"><a href="#__codelineno-0-156" id="__codelineno-0-156" name="__codelineno-0-156"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-157"><a href="#__codelineno-0-157" id="__codelineno-0-157" name="__codelineno-0-157"></a><span class="w"> </span><span class="n">Stopwatch</span><span class="w"> </span><span class="n">sw</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Stopwatch</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-158"><a href="#__codelineno-0-158" id="__codelineno-0-158" name="__codelineno-0-158"></a><span class="w"> </span><span class="n">sw</span><span class="p">.</span><span class="n">Start</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-159"><a href="#__codelineno-0-159" id="__codelineno-0-159" name="__codelineno-0-159"></a>
</span><span id="__span-0-160"><a href="#__codelineno-0-160" id="__codelineno-0-160" name="__codelineno-0-160"></a><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="n">screen</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">Screenshot</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-161"><a href="#__codelineno-0-161" id="__codelineno-0-161" name="__codelineno-0-161"></a><span class="w"> </span><span class="n">screen</span><span class="p">.</span><span class="n">Save</span><span class="p">(</span><span class="s">"HopefullyDataScreenshot.png"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-162"><a href="#__codelineno-0-162" id="__codelineno-0-162" name="__codelineno-0-162"></a>
</span><span id="__span-0-163"><a href="#__codelineno-0-163" id="__codelineno-0-163" name="__codelineno-0-163"></a><span class="w"> </span><span class="n">Invoke</span><span class="p">((</span><span class="n">MethodInvoker</span><span class="p">)</span><span class="k">delegate</span><span class="w"></span>
</span><span id="__span-0-164"><a href="#__codelineno-0-164" id="__codelineno-0-164" name="__codelineno-0-164"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-165"><a href="#__codelineno-0-165" id="__codelineno-0-165" name="__codelineno-0-165"></a><span class="w"> </span><span class="n">pbxResult</span><span class="p">.</span><span class="n">Image</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="n">Bitmap</span><span class="p">)</span><span class="n">screen</span><span class="p">.</span><span class="n">Clone</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-166"><a href="#__codelineno-0-166" id="__codelineno-0-166" name="__codelineno-0-166"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-0-167"><a href="#__codelineno-0-167" id="__codelineno-0-167" name="__codelineno-0-167"></a>
</span><span id="__span-0-168"><a href="#__codelineno-0-168" id="__codelineno-0-168" name="__codelineno-0-168"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">ChangeImage</span><span class="p">(</span><span class="n">screen</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-169"><a href="#__codelineno-0-169" id="__codelineno-0-169" name="__codelineno-0-169"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">Refresh</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-170"><a href="#__codelineno-0-170" id="__codelineno-0-170" name="__codelineno-0-170"></a>
</span><span id="__span-0-171"><a href="#__codelineno-0-171" id="__codelineno-0-171" name="__codelineno-0-171"></a><span class="w"> </span><span class="n">sw</span><span class="p">.</span><span class="n">Stop</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-172"><a href="#__codelineno-0-172" id="__codelineno-0-172" name="__codelineno-0-172"></a><span class="w"> </span><span class="c1">// Task completed</span>
</span><span id="__span-0-173"><a href="#__codelineno-0-173" id="__codelineno-0-173" name="__codelineno-0-173"></a><span class="w"> </span><span class="n">Invoke</span><span class="p">((</span><span class="n">MethodInvoker</span><span class="p">)</span><span class="k">delegate</span><span class="w"></span>
</span><span id="__span-0-174"><a href="#__codelineno-0-174" id="__codelineno-0-174" name="__codelineno-0-174"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-175"><a href="#__codelineno-0-175" id="__codelineno-0-175" name="__codelineno-0-175"></a><span class="w"> </span><span class="n">DisplayResults</span><span class="p">(</span><span class="n">errorCode</span><span class="p">,</span><span class="w"> </span><span class="n">sw</span><span class="p">,</span><span class="w"> </span><span class="n">screen</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-176"><a href="#__codelineno-0-176" id="__codelineno-0-176" name="__codelineno-0-176"></a><span class="w"> </span><span class="n">DisplayBattles</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-177"><a href="#__codelineno-0-177" id="__codelineno-0-177" name="__codelineno-0-177"></a><span class="w"> </span><span class="n">DisplayDeltas</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-178"><a href="#__codelineno-0-178" id="__codelineno-0-178" name="__codelineno-0-178"></a><span class="w"> </span><span class="n">DisplayOvertakes</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-179"><a href="#__codelineno-0-179" id="__codelineno-0-179" name="__codelineno-0-179"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-0-180"><a href="#__codelineno-0-180" id="__codelineno-0-180" name="__codelineno-0-180"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-0-181"><a href="#__codelineno-0-181" id="__codelineno-0-181" name="__codelineno-0-181"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-182"><a href="#__codelineno-0-182" id="__codelineno-0-182" name="__codelineno-0-182"></a><span class="w"> </span><span class="k">finally</span><span class="w"></span>
</span><span id="__span-0-183"><a href="#__codelineno-0-183" id="__codelineno-0-183" name="__codelineno-0-183"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-184"><a href="#__codelineno-0-184" id="__codelineno-0-184" name="__codelineno-0-184"></a><span class="w"> </span><span class="n">semaphore</span><span class="p">.</span><span class="n">Release</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-185"><a href="#__codelineno-0-185" id="__codelineno-0-185" name="__codelineno-0-185"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-186"><a href="#__codelineno-0-186" id="__codelineno-0-186" name="__codelineno-0-186"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-187"><a href="#__codelineno-0-187" id="__codelineno-0-187" name="__codelineno-0-187"></a><span class="w"> </span><span class="c1">// Re-enable UI controls</span>
</span><span id="__span-0-188"><a href="#__codelineno-0-188" id="__codelineno-0-188" name="__codelineno-0-188"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Stop"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-189"><a href="#__codelineno-0-189" id="__codelineno-0-189" name="__codelineno-0-189"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-190"><a href="#__codelineno-0-190" id="__codelineno-0-190" name="__codelineno-0-190"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-191"><a href="#__codelineno-0-191" id="__codelineno-0-191" name="__codelineno-0-191"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-192"><a href="#__codelineno-0-192" id="__codelineno-0-192" name="__codelineno-0-192"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-193"><a href="#__codelineno-0-193" id="__codelineno-0-193" name="__codelineno-0-193"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-194"><a href="#__codelineno-0-194" id="__codelineno-0-194" name="__codelineno-0-194"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-195"><a href="#__codelineno-0-195" id="__codelineno-0-195" name="__codelineno-0-195"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayOvertakes</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-196"><a href="#__codelineno-0-196" id="__codelineno-0-196" name="__codelineno-0-196"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-197"><a href="#__codelineno-0-197" id="__codelineno-0-197" name="__codelineno-0-197"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayOvertakes</span><span class="p">(</span><span class="n">lsbOvertakes</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-198"><a href="#__codelineno-0-198" id="__codelineno-0-198" name="__codelineno-0-198"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-199"><a href="#__codelineno-0-199" id="__codelineno-0-199" name="__codelineno-0-199"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayBattles</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-200"><a href="#__codelineno-0-200" id="__codelineno-0-200" name="__codelineno-0-200"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-201"><a href="#__codelineno-0-201" id="__codelineno-0-201" name="__codelineno-0-201"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayBattles</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-202"><a href="#__codelineno-0-202" id="__codelineno-0-202" name="__codelineno-0-202"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-203"><a href="#__codelineno-0-203" id="__codelineno-0-203" name="__codelineno-0-203"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayDeltas</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-204"><a href="#__codelineno-0-204" id="__codelineno-0-204" name="__codelineno-0-204"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-205"><a href="#__codelineno-0-205" id="__codelineno-0-205" name="__codelineno-0-205"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayTimesDeltas</span><span class="p">(</span><span class="n">pnlFastest</span><span class="p">,</span><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-206"><a href="#__codelineno-0-206" id="__codelineno-0-206" name="__codelineno-0-206"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-207"><a href="#__codelineno-0-207" id="__codelineno-0-207" name="__codelineno-0-207"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Form1_FormClosing</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">FormClosingEventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-208"><a href="#__codelineno-0-208" id="__codelineno-0-208" name="__codelineno-0-208"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-209"><a href="#__codelineno-0-209" id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Emulator</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-210"><a href="#__codelineno-0-210" id="__codelineno-0-210" name="__codelineno-0-210"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-211"><a href="#__codelineno-0-211" id="__codelineno-0-211" name="__codelineno-0-211"></a><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">Stop</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-212"><a href="#__codelineno-0-212" id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-213"><a href="#__codelineno-0-213" id="__codelineno-0-213" name="__codelineno-0-213"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-214"><a href="#__codelineno-0-214" id="__codelineno-0-214" name="__codelineno-0-214"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayResults</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">errorCode</span><span class="p">,</span><span class="w"> </span><span class="n">Stopwatch</span><span class="w"> </span><span class="n">sw</span><span class="p">,</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="n">screen</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-215"><a href="#__codelineno-0-215" id="__codelineno-0-215" name="__codelineno-0-215"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-216"><a href="#__codelineno-0-216" id="__codelineno-0-216" name="__codelineno-0-216"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">errorCode</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-217"><a href="#__codelineno-0-217" id="__codelineno-0-217" name="__codelineno-0-217"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-218"><a href="#__codelineno-0-218" id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="w"> </span><span class="n">cancelRequested</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-219"><a href="#__codelineno-0-219" id="__codelineno-0-219" name="__codelineno-0-219"></a><span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"An error has occured while trying to recover data from live feed. This can happen sometimes. I would advise you to restart a few times. If the problem persists check your configuration."</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-220"><a href="#__codelineno-0-220" id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-221"><a href="#__codelineno-0-221" id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-222"><a href="#__codelineno-0-222" id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-223"><a href="#__codelineno-0-223" id="__codelineno-0-223" name="__codelineno-0-223"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayLiveRanking</span><span class="p">(</span><span class="n">pnlLiveRanking</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-224"><a href="#__codelineno-0-224" id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-60"><a href="#__codelineno-0-60" id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Directory</span><span class="p">.</span><span class="n">Exists</span><span class="p">(</span><span class="n">ConfigurationTool</span><span class="p">.</span><span class="n">CONFIGS_FOLDER_NAME</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-61"><a href="#__codelineno-0-61" id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-62"><a href="#__codelineno-0-62" id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">DataSource</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-63"><a href="#__codelineno-0-63" id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">DataSource</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Directory</span><span class="p">.</span><span class="n">GetFiles</span><span class="p">(</span><span class="n">ConfigurationTool</span><span class="p">.</span><span class="n">CONFIGS_FOLDER_NAME</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-64"><a href="#__codelineno-0-64" id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-65"><a href="#__codelineno-0-65" id="__codelineno-0-65" name="__codelineno-0-65"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-66"><a href="#__codelineno-0-66" id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-67"><a href="#__codelineno-0-67" id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="w"> </span><span class="c1">/// Opens the settings page. Also disposes of the browser if there is one opened and all thos things</span>
</span><span id="__span-0-68"><a href="#__codelineno-0-68" id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-69"><a href="#__codelineno-0-69" id="__codelineno-0-69" name="__codelineno-0-69"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-70"><a href="#__codelineno-0-70" id="__codelineno-0-70" name="__codelineno-0-70"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-71"><a href="#__codelineno-0-71" id="__codelineno-0-71" name="__codelineno-0-71"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnSettings_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-72"><a href="#__codelineno-0-72" id="__codelineno-0-72" name="__codelineno-0-72"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-73"><a href="#__codelineno-0-73" id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Emulator</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-74"><a href="#__codelineno-0-74" id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">ResetDriver</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-75"><a href="#__codelineno-0-75" id="__codelineno-0-75" name="__codelineno-0-75"></a>
</span><span id="__span-0-76"><a href="#__codelineno-0-76" id="__codelineno-0-76" name="__codelineno-0-76"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-77"><a href="#__codelineno-0-77" id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-78"><a href="#__codelineno-0-78" id="__codelineno-0-78" name="__codelineno-0-78"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Launch"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-79"><a href="#__codelineno-0-79" id="__codelineno-0-79" name="__codelineno-0-79"></a>
</span><span id="__span-0-80"><a href="#__codelineno-0-80" id="__codelineno-0-80" name="__codelineno-0-80"></a><span class="w"> </span><span class="n">Emulator</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-81"><a href="#__codelineno-0-81" id="__codelineno-0-81" name="__codelineno-0-81"></a><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-82"><a href="#__codelineno-0-82" id="__codelineno-0-82" name="__codelineno-0-82"></a>
</span><span id="__span-0-83"><a href="#__codelineno-0-83" id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="w"> </span><span class="n">GC</span><span class="p">.</span><span class="n">Collect</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-84"><a href="#__codelineno-0-84" id="__codelineno-0-84" name="__codelineno-0-84"></a>
</span><span id="__span-0-85"><a href="#__codelineno-0-85" id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="w"> </span><span class="n">Settings</span><span class="w"> </span><span class="n">settingsForm</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Settings</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-86"><a href="#__codelineno-0-86" id="__codelineno-0-86" name="__codelineno-0-86"></a><span class="w"> </span><span class="n">settingsForm</span><span class="p">.</span><span class="n">ShowDialog</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-87"><a href="#__codelineno-0-87" id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="w"> </span><span class="n">RefreshUI</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-88"><a href="#__codelineno-0-88" id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="w"> </span><span class="c1">//MessageBox.Show(settingsForm.GrandPrixUrl + Environment.NewLine + settingsForm.GrandPrixName + Environment.NewLine + settingsForm.GrandPrixYear);</span>
</span><span id="__span-0-89"><a href="#__codelineno-0-89" id="__codelineno-0-89" name="__codelineno-0-89"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">settingsForm</span><span class="p">.</span><span class="n">GrandPrixUrl</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="n">settingsForm</span><span class="p">.</span><span class="n">SelectedConfigFile</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="s">""</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-90"><a href="#__codelineno-0-90" id="__codelineno-0-90" name="__codelineno-0-90"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-91"><a href="#__codelineno-0-91" id="__codelineno-0-91" name="__codelineno-0-91"></a><span class="w"> </span><span class="n">GpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">settingsForm</span><span class="p">.</span><span class="n">GrandPrixUrl</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-92"><a href="#__codelineno-0-92" id="__codelineno-0-92" name="__codelineno-0-92"></a><span class="w"> </span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">GpUrl</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-93"><a href="#__codelineno-0-93" id="__codelineno-0-93" name="__codelineno-0-93"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">File</span><span class="p">.</span><span class="n">Exists</span><span class="p">(</span><span class="n">settingsForm</span><span class="p">.</span><span class="n">SelectedConfigFile</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-94"><a href="#__codelineno-0-94" id="__codelineno-0-94" name="__codelineno-0-94"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-95"><a href="#__codelineno-0-95" id="__codelineno-0-95" name="__codelineno-0-95"></a><span class="w"> </span><span class="n">ConfigFile</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">settingsForm</span><span class="p">.</span><span class="n">SelectedConfigFile</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-96"><a href="#__codelineno-0-96" id="__codelineno-0-96" name="__codelineno-0-96"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">Count</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="p">++)</span><span class="w"></span>
</span><span id="__span-0-97"><a href="#__codelineno-0-97" id="__codelineno-0-97" name="__codelineno-0-97"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-98"><a href="#__codelineno-0-98" id="__codelineno-0-98" name="__codelineno-0-98"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Items</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">ToString</span><span class="p">()</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="n">ConfigFile</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-99"><a href="#__codelineno-0-99" id="__codelineno-0-99" name="__codelineno-0-99"></a><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">SelectedIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-100"><a href="#__codelineno-0-100" id="__codelineno-0-100" name="__codelineno-0-100"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-101"><a href="#__codelineno-0-101" id="__codelineno-0-101" name="__codelineno-0-101"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-102"><a href="#__codelineno-0-102" id="__codelineno-0-102" name="__codelineno-0-102"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-103"><a href="#__codelineno-0-103" id="__codelineno-0-103" name="__codelineno-0-103"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-104"><a href="#__codelineno-0-104" id="__codelineno-0-104" name="__codelineno-0-104"></a><span class="w"> </span><span class="c1">//Should technically never show up but we never know</span>
</span><span id="__span-0-105"><a href="#__codelineno-0-105" id="__codelineno-0-105" name="__codelineno-0-105"></a><span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"The config file has not been found please return to the config and change it"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-106"><a href="#__codelineno-0-106" id="__codelineno-0-106" name="__codelineno-0-106"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-107"><a href="#__codelineno-0-107" id="__codelineno-0-107" name="__codelineno-0-107"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-108"><a href="#__codelineno-0-108" id="__codelineno-0-108" name="__codelineno-0-108"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-109"><a href="#__codelineno-0-109" id="__codelineno-0-109" name="__codelineno-0-109"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-110"><a href="#__codelineno-0-110" id="__codelineno-0-110" name="__codelineno-0-110"></a><span class="w"> </span><span class="c1">//WE dont care anymore, the user will choose its Grand Prix himself in the main program</span>
</span><span id="__span-0-111"><a href="#__codelineno-0-111" id="__codelineno-0-111" name="__codelineno-0-111"></a><span class="w"> </span><span class="c1">//MessageBox.Show("There is no URL for the Grand Prix you want to decode. Please return to the config and add a valid one");</span>
</span><span id="__span-0-112"><a href="#__codelineno-0-112" id="__codelineno-0-112" name="__codelineno-0-112"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-113"><a href="#__codelineno-0-113" id="__codelineno-0-113" name="__codelineno-0-113"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-114"><a href="#__codelineno-0-114" id="__codelineno-0-114" name="__codelineno-0-114"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-115"><a href="#__codelineno-0-115" id="__codelineno-0-115" name="__codelineno-0-115"></a><span class="w"> </span><span class="c1">/// Will do everything that needs to be done at the first start of the app</span>
</span><span id="__span-0-116"><a href="#__codelineno-0-116" id="__codelineno-0-116" name="__codelineno-0-116"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-117"><a href="#__codelineno-0-117" id="__codelineno-0-117" name="__codelineno-0-117"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-118"><a href="#__codelineno-0-118" id="__codelineno-0-118" name="__codelineno-0-118"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-119"><a href="#__codelineno-0-119" id="__codelineno-0-119" name="__codelineno-0-119"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Form1_Load</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-120"><a href="#__codelineno-0-120" id="__codelineno-0-120" name="__codelineno-0-120"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-121"><a href="#__codelineno-0-121" id="__codelineno-0-121" name="__codelineno-0-121"></a><span class="w"> </span><span class="c1">//Those are the default values but they will need to be changed later when the configuration has been done</span>
</span><span id="__span-0-122"><a href="#__codelineno-0-122" id="__codelineno-0-122" name="__codelineno-0-122"></a><span class="w"> </span><span class="n">ConfigFile</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"./Presets/Clean_4K_2023.json"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-123"><a href="#__codelineno-0-123" id="__codelineno-0-123" name="__codelineno-0-123"></a><span class="w"> </span><span class="n">GpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"https://f1tv.formula1.com/detail/1000006688/2023-azerbaijan-grand-prix?action=play"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-124"><a href="#__codelineno-0-124" id="__codelineno-0-124" name="__codelineno-0-124"></a>
</span><span id="__span-0-125"><a href="#__codelineno-0-125" id="__codelineno-0-125" name="__codelineno-0-125"></a><span class="w"> </span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">GpUrl</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-126"><a href="#__codelineno-0-126" id="__codelineno-0-126" name="__codelineno-0-126"></a>
</span><span id="__span-0-127"><a href="#__codelineno-0-127" id="__codelineno-0-127" name="__codelineno-0-127"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">DoubleBuffered</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-128"><a href="#__codelineno-0-128" id="__codelineno-0-128" name="__codelineno-0-128"></a>
</span><span id="__span-0-129"><a href="#__codelineno-0-129" id="__codelineno-0-129" name="__codelineno-0-129"></a><span class="w"> </span><span class="n">oldSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-130"><a href="#__codelineno-0-130" id="__codelineno-0-130" name="__codelineno-0-130"></a><span class="w"> </span><span class="n">oldRankingSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-131"><a href="#__codelineno-0-131" id="__codelineno-0-131" name="__codelineno-0-131"></a><span class="w"> </span><span class="n">oldLapTimesSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxLapTimes</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-132"><a href="#__codelineno-0-132" id="__codelineno-0-132" name="__codelineno-0-132"></a><span class="w"> </span><span class="n">oldBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-133"><a href="#__codelineno-0-133" id="__codelineno-0-133" name="__codelineno-0-133"></a>
</span><span id="__span-0-134"><a href="#__codelineno-0-134" id="__codelineno-0-134" name="__codelineno-0-134"></a><span class="w"> </span><span class="n">oldPnlRankings</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlLiveRanking</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-135"><a href="#__codelineno-0-135" id="__codelineno-0-135" name="__codelineno-0-135"></a><span class="w"> </span><span class="n">oldPnlBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-136"><a href="#__codelineno-0-136" id="__codelineno-0-136" name="__codelineno-0-136"></a><span class="w"> </span><span class="n">oldPnlFastest</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-137"><a href="#__codelineno-0-137" id="__codelineno-0-137" name="__codelineno-0-137"></a><span class="w"> </span><span class="n">oldPnlSlowest</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-138"><a href="#__codelineno-0-138" id="__codelineno-0-138" name="__codelineno-0-138"></a>
</span><span id="__span-0-139"><a href="#__codelineno-0-139" id="__codelineno-0-139" name="__codelineno-0-139"></a><span class="w"> </span><span class="n">oldRankingPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-140"><a href="#__codelineno-0-140" id="__codelineno-0-140" name="__codelineno-0-140"></a><span class="w"> </span><span class="n">oldBattlePosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-141"><a href="#__codelineno-0-141" id="__codelineno-0-141" name="__codelineno-0-141"></a><span class="w"> </span><span class="n">oldDriverInfoPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">gpbxDriverInfos</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-142"><a href="#__codelineno-0-142" id="__codelineno-0-142" name="__codelineno-0-142"></a>
</span><span id="__span-0-143"><a href="#__codelineno-0-143" id="__codelineno-0-143" name="__codelineno-0-143"></a><span class="w"> </span><span class="n">olPnlFastestPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-144"><a href="#__codelineno-0-144" id="__codelineno-0-144" name="__codelineno-0-144"></a><span class="w"> </span><span class="n">oldPnlSlowestPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Location</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-145"><a href="#__codelineno-0-145" id="__codelineno-0-145" name="__codelineno-0-145"></a>
</span><span id="__span-0-146"><a href="#__codelineno-0-146" id="__codelineno-0-146" name="__codelineno-0-146"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">btnResetEmulator</span><span class="p">,</span><span class="w"> </span><span class="s">"Starts or restarts the emulator. You need to start this to use the app"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-147"><a href="#__codelineno-0-147" id="__codelineno-0-147" name="__codelineno-0-147"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">btnSettings</span><span class="p">,</span><span class="w"> </span><span class="s">"Opens the configuration menu"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-148"><a href="#__codelineno-0-148" id="__codelineno-0-148" name="__codelineno-0-148"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">tbxGpUrl</span><span class="p">,</span><span class="w"> </span><span class="s">"Insert the URL of the Grand Prix you want to track. Dont forget the \"?action=play\" at the end"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-149"><a href="#__codelineno-0-149" id="__codelineno-0-149" name="__codelineno-0-149"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">lsbPresets</span><span class="p">,</span><span class="w"> </span><span class="s">"Select a configuration preset to use with the decoding"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-150"><a href="#__codelineno-0-150" id="__codelineno-0-150" name="__codelineno-0-150"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">pbxResult</span><span class="p">,</span><span class="s">"A preview of what the program sees. You should see the DATA page of the F1TV here"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-151"><a href="#__codelineno-0-151" id="__codelineno-0-151" name="__codelineno-0-151"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">lsbOvertakes</span><span class="p">,</span><span class="s">"A list of all the activity. You can scroll to see the most recent overtakes"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-152"><a href="#__codelineno-0-152" id="__codelineno-0-152" name="__codelineno-0-152"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">gpbxBattles</span><span class="p">,</span><span class="s">"The four first battles in the field. A battle is two drivers less than 3 seconds apart"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-153"><a href="#__codelineno-0-153" id="__codelineno-0-153" name="__codelineno-0-153"></a><span class="w"> </span><span class="n">tip1</span><span class="p">.</span><span class="n">SetToolTip</span><span class="p">(</span><span class="n">gpbxLapTimes</span><span class="p">,</span><span class="s">"The fastest and slowest drivers on track at the moment. It takes the average lapTime of the last 5 laps to choose who is the fastes or the slowest"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-154"><a href="#__codelineno-0-154" id="__codelineno-0-154" name="__codelineno-0-154"></a>
</span><span id="__span-0-155"><a href="#__codelineno-0-155" id="__codelineno-0-155" name="__codelineno-0-155"></a><span class="w"> </span><span class="n">RefreshUI</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-156"><a href="#__codelineno-0-156" id="__codelineno-0-156" name="__codelineno-0-156"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-157"><a href="#__codelineno-0-157" id="__codelineno-0-157" name="__codelineno-0-157"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-158"><a href="#__codelineno-0-158" id="__codelineno-0-158" name="__codelineno-0-158"></a><span class="w"> </span><span class="c1">/// Will start or stop the process of decoding</span>
</span><span id="__span-0-159"><a href="#__codelineno-0-159" id="__codelineno-0-159" name="__codelineno-0-159"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-160"><a href="#__codelineno-0-160" id="__codelineno-0-160" name="__codelineno-0-160"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-161"><a href="#__codelineno-0-161" id="__codelineno-0-161" name="__codelineno-0-161"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-162"><a href="#__codelineno-0-162" id="__codelineno-0-162" name="__codelineno-0-162"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnUpdate_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-163"><a href="#__codelineno-0-163" id="__codelineno-0-163" name="__codelineno-0-163"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-164"><a href="#__codelineno-0-164" id="__codelineno-0-164" name="__codelineno-0-164"></a><span class="w"> </span><span class="n">cancelRequested</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-165"><a href="#__codelineno-0-165" id="__codelineno-0-165" name="__codelineno-0-165"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Emulator</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-166"><a href="#__codelineno-0-166" id="__codelineno-0-166" name="__codelineno-0-166"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-167"><a href="#__codelineno-0-167" id="__codelineno-0-167" name="__codelineno-0-167"></a><span class="w"> </span><span class="c1">// Disable UI controls to prevent re-entrancy</span>
</span><span id="__span-0-168"><a href="#__codelineno-0-168" id="__codelineno-0-168" name="__codelineno-0-168"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-169"><a href="#__codelineno-0-169" id="__codelineno-0-169" name="__codelineno-0-169"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-170"><a href="#__codelineno-0-170" id="__codelineno-0-170" name="__codelineno-0-170"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-171"><a href="#__codelineno-0-171" id="__codelineno-0-171" name="__codelineno-0-171"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-172"><a href="#__codelineno-0-172" id="__codelineno-0-172" name="__codelineno-0-172"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(!</span><span class="n">cancelRequested</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-173"><a href="#__codelineno-0-173" id="__codelineno-0-173" name="__codelineno-0-173"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-174"><a href="#__codelineno-0-174" id="__codelineno-0-174" name="__codelineno-0-174"></a><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="n">semaphore</span><span class="p">.</span><span class="n">WaitAsync</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-175"><a href="#__codelineno-0-175" id="__codelineno-0-175" name="__codelineno-0-175"></a>
</span><span id="__span-0-176"><a href="#__codelineno-0-176" id="__codelineno-0-176" name="__codelineno-0-176"></a><span class="w"> </span><span class="k">try</span><span class="w"></span>
</span><span id="__span-0-177"><a href="#__codelineno-0-177" id="__codelineno-0-177" name="__codelineno-0-177"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-178"><a href="#__codelineno-0-178" id="__codelineno-0-178" name="__codelineno-0-178"></a><span class="w"> </span><span class="c1">// Start the time-consuming task on a separate thread</span>
</span><span id="__span-0-179"><a href="#__codelineno-0-179" id="__codelineno-0-179" name="__codelineno-0-179"></a><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="n">Task</span><span class="p">.</span><span class="n">Run</span><span class="p">(</span><span class="k">async</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"></span>
</span><span id="__span-0-180"><a href="#__codelineno-0-180" id="__codelineno-0-180" name="__codelineno-0-180"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-181"><a href="#__codelineno-0-181" id="__codelineno-0-181" name="__codelineno-0-181"></a><span class="w"> </span><span class="n">Stopwatch</span><span class="w"> </span><span class="n">sw</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Stopwatch</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-182"><a href="#__codelineno-0-182" id="__codelineno-0-182" name="__codelineno-0-182"></a><span class="w"> </span><span class="n">sw</span><span class="p">.</span><span class="n">Start</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-183"><a href="#__codelineno-0-183" id="__codelineno-0-183" name="__codelineno-0-183"></a>
</span><span id="__span-0-184"><a href="#__codelineno-0-184" id="__codelineno-0-184" name="__codelineno-0-184"></a><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="n">screen</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">Screenshot</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-185"><a href="#__codelineno-0-185" id="__codelineno-0-185" name="__codelineno-0-185"></a><span class="w"> </span><span class="n">screen</span><span class="p">.</span><span class="n">Save</span><span class="p">(</span><span class="s">"HopefullyDataScreenshot.png"</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-186"><a href="#__codelineno-0-186" id="__codelineno-0-186" name="__codelineno-0-186"></a>
</span><span id="__span-0-187"><a href="#__codelineno-0-187" id="__codelineno-0-187" name="__codelineno-0-187"></a><span class="w"> </span><span class="n">Invoke</span><span class="p">((</span><span class="n">MethodInvoker</span><span class="p">)</span><span class="k">delegate</span><span class="w"></span>
</span><span id="__span-0-188"><a href="#__codelineno-0-188" id="__codelineno-0-188" name="__codelineno-0-188"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-189"><a href="#__codelineno-0-189" id="__codelineno-0-189" name="__codelineno-0-189"></a><span class="w"> </span><span class="n">pbxResult</span><span class="p">.</span><span class="n">Image</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="n">Bitmap</span><span class="p">)</span><span class="n">screen</span><span class="p">.</span><span class="n">Clone</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-190"><a href="#__codelineno-0-190" id="__codelineno-0-190" name="__codelineno-0-190"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-0-191"><a href="#__codelineno-0-191" id="__codelineno-0-191" name="__codelineno-0-191"></a>
</span><span id="__span-0-192"><a href="#__codelineno-0-192" id="__codelineno-0-192" name="__codelineno-0-192"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">ChangeImage</span><span class="p">(</span><span class="n">screen</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-193"><a href="#__codelineno-0-193" id="__codelineno-0-193" name="__codelineno-0-193"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">Refresh</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-194"><a href="#__codelineno-0-194" id="__codelineno-0-194" name="__codelineno-0-194"></a>
</span><span id="__span-0-195"><a href="#__codelineno-0-195" id="__codelineno-0-195" name="__codelineno-0-195"></a><span class="w"> </span><span class="n">sw</span><span class="p">.</span><span class="n">Stop</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-196"><a href="#__codelineno-0-196" id="__codelineno-0-196" name="__codelineno-0-196"></a><span class="w"> </span><span class="c1">// Task completed</span>
</span><span id="__span-0-197"><a href="#__codelineno-0-197" id="__codelineno-0-197" name="__codelineno-0-197"></a><span class="w"> </span><span class="n">Invoke</span><span class="p">((</span><span class="n">MethodInvoker</span><span class="p">)</span><span class="k">delegate</span><span class="w"></span>
</span><span id="__span-0-198"><a href="#__codelineno-0-198" id="__codelineno-0-198" name="__codelineno-0-198"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-199"><a href="#__codelineno-0-199" id="__codelineno-0-199" name="__codelineno-0-199"></a><span class="w"> </span><span class="n">DisplayResults</span><span class="p">(</span><span class="n">errorCode</span><span class="p">,</span><span class="w"> </span><span class="n">sw</span><span class="p">,</span><span class="w"> </span><span class="n">screen</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-200"><a href="#__codelineno-0-200" id="__codelineno-0-200" name="__codelineno-0-200"></a><span class="w"> </span><span class="n">DisplayBattles</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-201"><a href="#__codelineno-0-201" id="__codelineno-0-201" name="__codelineno-0-201"></a><span class="w"> </span><span class="n">DisplayDeltas</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-202"><a href="#__codelineno-0-202" id="__codelineno-0-202" name="__codelineno-0-202"></a><span class="w"> </span><span class="n">DisplayOvertakes</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-203"><a href="#__codelineno-0-203" id="__codelineno-0-203" name="__codelineno-0-203"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-0-204"><a href="#__codelineno-0-204" id="__codelineno-0-204" name="__codelineno-0-204"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-0-205"><a href="#__codelineno-0-205" id="__codelineno-0-205" name="__codelineno-0-205"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-206"><a href="#__codelineno-0-206" id="__codelineno-0-206" name="__codelineno-0-206"></a><span class="w"> </span><span class="k">finally</span><span class="w"></span>
</span><span id="__span-0-207"><a href="#__codelineno-0-207" id="__codelineno-0-207" name="__codelineno-0-207"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-208"><a href="#__codelineno-0-208" id="__codelineno-0-208" name="__codelineno-0-208"></a><span class="w"> </span><span class="n">semaphore</span><span class="p">.</span><span class="n">Release</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-209"><a href="#__codelineno-0-209" id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-210"><a href="#__codelineno-0-210" id="__codelineno-0-210" name="__codelineno-0-210"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-211"><a href="#__codelineno-0-211" id="__codelineno-0-211" name="__codelineno-0-211"></a><span class="w"> </span><span class="c1">// Re-enable UI controls</span>
</span><span id="__span-0-212"><a href="#__codelineno-0-212" id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Stop"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-213"><a href="#__codelineno-0-213" id="__codelineno-0-213" name="__codelineno-0-213"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-214"><a href="#__codelineno-0-214" id="__codelineno-0-214" name="__codelineno-0-214"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-215"><a href="#__codelineno-0-215" id="__codelineno-0-215" name="__codelineno-0-215"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-216"><a href="#__codelineno-0-216" id="__codelineno-0-216" name="__codelineno-0-216"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-217"><a href="#__codelineno-0-217" id="__codelineno-0-217" name="__codelineno-0-217"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-218"><a href="#__codelineno-0-218" id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-219"><a href="#__codelineno-0-219" id="__codelineno-0-219" name="__codelineno-0-219"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-220"><a href="#__codelineno-0-220" id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="w"> </span><span class="c1">/// Will display the overtakes in the overtakes list box</span>
</span><span id="__span-0-221"><a href="#__codelineno-0-221" id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-222"><a href="#__codelineno-0-222" id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayOvertakes</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-223"><a href="#__codelineno-0-223" id="__codelineno-0-223" name="__codelineno-0-223"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-224"><a href="#__codelineno-0-224" id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayOvertakes</span><span class="p">(</span><span class="n">lsbOvertakes</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-225"><a href="#__codelineno-0-225" id="__codelineno-0-225" name="__codelineno-0-225"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-226"><a href="#__codelineno-0-226" id="__codelineno-0-226" name="__codelineno-0-226"></a>
</span><span id="__span-0-227"><a href="#__codelineno-0-227" id="__codelineno-0-227" name="__codelineno-0-227"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnStopUpdating_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-228"><a href="#__codelineno-0-228" id="__codelineno-0-228" name="__codelineno-0-228"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-229"><a href="#__codelineno-0-229" id="__codelineno-0-229" name="__codelineno-0-229"></a><span class="w"> </span><span class="c1">// Set the cancellation flag</span>
</span><span id="__span-0-230"><a href="#__codelineno-0-230" id="__codelineno-0-230" name="__codelineno-0-230"></a><span class="w"> </span><span class="n">cancelRequested</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-231"><a href="#__codelineno-0-231" id="__codelineno-0-231" name="__codelineno-0-231"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-232"><a href="#__codelineno-0-232" id="__codelineno-0-232" name="__codelineno-0-232"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-233"><a href="#__codelineno-0-233" id="__codelineno-0-233" name="__codelineno-0-233"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Stopping"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-234"><a href="#__codelineno-0-234" id="__codelineno-0-234" name="__codelineno-0-234"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-235"><a href="#__codelineno-0-235" id="__codelineno-0-235" name="__codelineno-0-235"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">button1_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-236"><a href="#__codelineno-0-236" id="__codelineno-0-236" name="__codelineno-0-236"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-237"><a href="#__codelineno-0-237" id="__codelineno-0-237" name="__codelineno-0-237"></a><span class="w"> </span><span class="n">lsbOvertakes</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">Clear</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-238"><a href="#__codelineno-0-238" id="__codelineno-0-238" name="__codelineno-0-238"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Launching"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-239"><a href="#__codelineno-0-239" id="__codelineno-0-239" name="__codelineno-0-239"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-240"><a href="#__codelineno-0-240" id="__codelineno-0-240" name="__codelineno-0-240"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-241"><a href="#__codelineno-0-241" id="__codelineno-0-241" name="__codelineno-0-241"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-242"><a href="#__codelineno-0-242" id="__codelineno-0-242" name="__codelineno-0-242"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-243"><a href="#__codelineno-0-243" id="__codelineno-0-243" name="__codelineno-0-243"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-244"><a href="#__codelineno-0-244" id="__codelineno-0-244" name="__codelineno-0-244"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">-</span><span class="m">1</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-245"><a href="#__codelineno-0-245" id="__codelineno-0-245" name="__codelineno-0-245"></a><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="n">Task</span><span class="p">.</span><span class="n">Run</span><span class="p">(</span><span class="k">async</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"></span>
</span><span id="__span-0-246"><a href="#__codelineno-0-246" id="__codelineno-0-246" name="__codelineno-0-246"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-247"><a href="#__codelineno-0-247" id="__codelineno-0-247" name="__codelineno-0-247"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Emulator</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-248"><a href="#__codelineno-0-248" id="__codelineno-0-248" name="__codelineno-0-248"></a><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">ResetDriver</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-249"><a href="#__codelineno-0-249" id="__codelineno-0-249" name="__codelineno-0-249"></a>
</span><span id="__span-0-250"><a href="#__codelineno-0-250" id="__codelineno-0-250" name="__codelineno-0-250"></a><span class="w"> </span><span class="n">Emulator</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-251"><a href="#__codelineno-0-251" id="__codelineno-0-251" name="__codelineno-0-251"></a><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-252"><a href="#__codelineno-0-252" id="__codelineno-0-252" name="__codelineno-0-252"></a>
</span><span id="__span-0-253"><a href="#__codelineno-0-253" id="__codelineno-0-253" name="__codelineno-0-253"></a><span class="w"> </span><span class="n">GC</span><span class="p">.</span><span class="n">Collect</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-254"><a href="#__codelineno-0-254" id="__codelineno-0-254" name="__codelineno-0-254"></a>
</span><span id="__span-0-255"><a href="#__codelineno-0-255" id="__codelineno-0-255" name="__codelineno-0-255"></a><span class="w"> </span><span class="n">Emulator</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">F1TVEmulator</span><span class="p">(</span><span class="n">GpUrl</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-256"><a href="#__codelineno-0-256" id="__codelineno-0-256" name="__codelineno-0-256"></a><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">Start</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-257"><a href="#__codelineno-0-257" id="__codelineno-0-257" name="__codelineno-0-257"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-0-258"><a href="#__codelineno-0-258" id="__codelineno-0-258" name="__codelineno-0-258"></a>
</span><span id="__span-0-259"><a href="#__codelineno-0-259" id="__codelineno-0-259" name="__codelineno-0-259"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">errorCode</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-260"><a href="#__codelineno-0-260" id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-261"><a href="#__codelineno-0-261" id="__codelineno-0-261" name="__codelineno-0-261"></a><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">""</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-262"><a href="#__codelineno-0-262" id="__codelineno-0-262" name="__codelineno-0-262"></a><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">errorCode</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-263"><a href="#__codelineno-0-263" id="__codelineno-0-263" name="__codelineno-0-263"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-264"><a href="#__codelineno-0-264" id="__codelineno-0-264" name="__codelineno-0-264"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">100</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-265"><a href="#__codelineno-0-265" id="__codelineno-0-265" name="__codelineno-0-265"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" Could not recover cookies. It could be because of an improper installation of python or bad cookies in the chrome database. Please try to log on to the F1TV using chrome again"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-266"><a href="#__codelineno-0-266" id="__codelineno-0-266" name="__codelineno-0-266"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-267"><a href="#__codelineno-0-267" id="__codelineno-0-267" name="__codelineno-0-267"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">101</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-268"><a href="#__codelineno-0-268" id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" Could not start the driver. It could be because an other instance is runnin make sure you closed them all before trying again"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-269"><a href="#__codelineno-0-269" id="__codelineno-0-269" name="__codelineno-0-269"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-270"><a href="#__codelineno-0-270" id="__codelineno-0-270" name="__codelineno-0-270"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">102</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-271"><a href="#__codelineno-0-271" id="__codelineno-0-271" name="__codelineno-0-271"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" Could not navigate on the F1TV site. Make sure the correct URL has been given and that you logged from chrome. It can take a few minutes to update"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-272"><a href="#__codelineno-0-272" id="__codelineno-0-272" name="__codelineno-0-272"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-273"><a href="#__codelineno-0-273" id="__codelineno-0-273" name="__codelineno-0-273"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">103</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-274"><a href="#__codelineno-0-274" id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" The url is not a valid url"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-275"><a href="#__codelineno-0-275" id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-276"><a href="#__codelineno-0-276" id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">104</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-277"><a href="#__codelineno-0-277" id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" The url is not a valid url"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-278"><a href="#__codelineno-0-278" id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-279"><a href="#__codelineno-0-279" id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">105</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-280"><a href="#__codelineno-0-280" id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" There has been an error trying to emulate button presses. Please try again"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-281"><a href="#__codelineno-0-281" id="__codelineno-0-281" name="__codelineno-0-281"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-282"><a href="#__codelineno-0-282" id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">106</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-283"><a href="#__codelineno-0-283" id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" There has been an error trying to emulate button presses. Please try again"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-284"><a href="#__codelineno-0-284" id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-285"><a href="#__codelineno-0-285" id="__codelineno-0-285" name="__codelineno-0-285"></a><span class="w"> </span><span class="k">default</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-286"><a href="#__codelineno-0-286" id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Could not start the emulator Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-287"><a href="#__codelineno-0-287" id="__codelineno-0-287" name="__codelineno-0-287"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-288"><a href="#__codelineno-0-288" id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-289"><a href="#__codelineno-0-289" id="__codelineno-0-289" name="__codelineno-0-289"></a><span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="n">message</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-290"><a href="#__codelineno-0-290" id="__codelineno-0-290" name="__codelineno-0-290"></a>
</span><span id="__span-0-291"><a href="#__codelineno-0-291" id="__codelineno-0-291" name="__codelineno-0-291"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-292"><a href="#__codelineno-0-292" id="__codelineno-0-292" name="__codelineno-0-292"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-293"><a href="#__codelineno-0-293" id="__codelineno-0-293" name="__codelineno-0-293"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Retry"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-294"><a href="#__codelineno-0-294" id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-295"><a href="#__codelineno-0-295" id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-296"><a href="#__codelineno-0-296" id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-297"><a href="#__codelineno-0-297" id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">DataWrapper</span><span class="p">(</span><span class="n">ConfigFile</span><span class="p">,</span><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">Screenshot</span><span class="p">());</span><span class="w"></span>
</span><span id="__span-0-298"><a href="#__codelineno-0-298" id="__codelineno-0-298" name="__codelineno-0-298"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Re launch"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-299"><a href="#__codelineno-0-299" id="__codelineno-0-299" name="__codelineno-0-299"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-300"><a href="#__codelineno-0-300" id="__codelineno-0-300" name="__codelineno-0-300"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-301"><a href="#__codelineno-0-301" id="__codelineno-0-301" name="__codelineno-0-301"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-302"><a href="#__codelineno-0-302" id="__codelineno-0-302" name="__codelineno-0-302"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-303"><a href="#__codelineno-0-303" id="__codelineno-0-303" name="__codelineno-0-303"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-304"><a href="#__codelineno-0-304" id="__codelineno-0-304" name="__codelineno-0-304"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">removeBorders</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">PaintEventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-305"><a href="#__codelineno-0-305" id="__codelineno-0-305" name="__codelineno-0-305"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-306"><a href="#__codelineno-0-306" id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="w"> </span><span class="n">GroupBox</span><span class="w"> </span><span class="n">gpbx</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="n">GroupBox</span><span class="p">)</span><span class="n">sender</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-307"><a href="#__codelineno-0-307" id="__codelineno-0-307" name="__codelineno-0-307"></a>
</span><span id="__span-0-308"><a href="#__codelineno-0-308" id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="p">(</span><span class="n">Pen</span><span class="w"> </span><span class="n">pen</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Pen</span><span class="p">(</span><span class="n">gpbx</span><span class="p">.</span><span class="n">BackColor</span><span class="p">,</span><span class="w"> </span><span class="m">50</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-309"><a href="#__codelineno-0-309" id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-310"><a href="#__codelineno-0-310" id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="w"> </span><span class="n">e</span><span class="p">.</span><span class="n">Graphics</span><span class="p">.</span><span class="n">DrawRectangle</span><span class="p">(</span><span class="n">pen</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-311"><a href="#__codelineno-0-311" id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="w"> </span><span class="n">e</span><span class="p">.</span><span class="n">Graphics</span><span class="p">.</span><span class="n">DrawRectangle</span><span class="p">(</span><span class="n">pen</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-312"><a href="#__codelineno-0-312" id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-313"><a href="#__codelineno-0-313" id="__codelineno-0-313" name="__codelineno-0-313"></a>
</span><span id="__span-0-314"><a href="#__codelineno-0-314" id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="p">(</span><span class="kt">var</span><span class="w"> </span><span class="n">brush</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SolidBrush</span><span class="p">(</span><span class="n">gpbx</span><span class="p">.</span><span class="n">ForeColor</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-315"><a href="#__codelineno-0-315" id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-316"><a href="#__codelineno-0-316" id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="w"> </span><span class="kt">var</span><span class="w"> </span><span class="n">textPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="m">5</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// Adjust the X and Y values as needed</span>
</span><span id="__span-0-317"><a href="#__codelineno-0-317" id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="w"> </span><span class="n">e</span><span class="p">.</span><span class="n">Graphics</span><span class="p">.</span><span class="n">DrawString</span><span class="p">(</span><span class="n">gpbx</span><span class="p">.</span><span class="n">Text</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Font</span><span class="p">,</span><span class="w"> </span><span class="n">brush</span><span class="p">,</span><span class="w"> </span><span class="n">textPosition</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-318"><a href="#__codelineno-0-318" id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-319"><a href="#__codelineno-0-319" id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-320"><a href="#__codelineno-0-320" id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">lsbPresets_SelectedIndexChanged</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-321"><a href="#__codelineno-0-321" id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-322"><a href="#__codelineno-0-322" id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">SelectedIndex</span><span class="w"> </span><span class="p">&gt;=</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-323"><a href="#__codelineno-0-323" id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="w"> </span><span class="n">ConfigFile</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Items</span><span class="p">[</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">SelectedIndex</span><span class="p">].</span><span class="n">ToString</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-324"><a href="#__codelineno-0-324" id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-325"><a href="#__codelineno-0-325" id="__codelineno-0-325" name="__codelineno-0-325"></a>
</span><span id="__span-0-326"><a href="#__codelineno-0-326" id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">textBox1_TextChanged</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-327"><a href="#__codelineno-0-327" id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-328"><a href="#__codelineno-0-328" id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="s">""</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-329"><a href="#__codelineno-0-329" id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="w"> </span><span class="n">GpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Text</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-330"><a href="#__codelineno-0-330" id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-331"><a href="#__codelineno-0-331" id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnDriver_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-332"><a href="#__codelineno-0-332" id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-333"><a href="#__codelineno-0-333" id="__codelineno-0-333" name="__codelineno-0-333"></a><span class="w"> </span><span class="c1">//Removes the cover</span>
</span><span id="__span-0-334"><a href="#__codelineno-0-334" id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">pnlCover</span><span class="p">.</span><span class="n">Visible</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-335"><a href="#__codelineno-0-335" id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="n">pnlCover</span><span class="p">.</span><span class="n">Visible</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-336"><a href="#__codelineno-0-336" id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="w"> </span><span class="c1">//Happens when a driver button has been clicked</span>
</span><span id="__span-0-337"><a href="#__codelineno-0-337" id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="w"> </span><span class="c1">//MessageBox.Show((sender as Button).Name + " has been selected");</span>
</span><span id="__span-0-338"><a href="#__codelineno-0-338" id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">btn</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="n">sender</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">Button</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-339"><a href="#__codelineno-0-339" id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="w"> </span><span class="kt">string</span><span class="p">[]</span><span class="w"> </span><span class="n">parts</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">btn</span><span class="p">.</span><span class="n">Name</span><span class="p">.</span><span class="n">Split</span><span class="p">(</span><span class="sc">'_'</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-340"><a href="#__codelineno-0-340" id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="n">driver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">GetFullDriverData</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="m">0</span><span class="p">],</span><span class="w"> </span><span class="n">pnlCurrentDriverLapsHistory</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-341"><a href="#__codelineno-0-341" id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="w"> </span><span class="n">lblCurrentDriverName</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">Name</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-342"><a href="#__codelineno-0-342" id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="w"> </span><span class="n">lblCurrentDriverPosition</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">Position</span><span class="p">.</span><span class="n">ToString</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-343"><a href="#__codelineno-0-343" id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="w"> </span><span class="n">lblCurrentDriverGapToLeader</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">GapToLeader</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-344"><a href="#__codelineno-0-344" id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="w"> </span><span class="n">lblCurrentDriverLapTime</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">LapTime</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-345"><a href="#__codelineno-0-345" id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreAge</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">CurrentTyre</span><span class="p">.</span><span class="n">NumberOfLaps</span><span class="p">.</span><span class="n">ToString</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-346"><a href="#__codelineno-0-346" id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">DRS</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-347"><a href="#__codelineno-0-347" id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-348"><a href="#__codelineno-0-348" id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="w"> </span><span class="n">lblCurrentDriverDRS</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Open"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-349"><a href="#__codelineno-0-349" id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="w"> </span><span class="n">lblCurrentDriverDRS</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">164</span><span class="p">,</span><span class="w"> </span><span class="m">46</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-350"><a href="#__codelineno-0-350" id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-351"><a href="#__codelineno-0-351" id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-352"><a href="#__codelineno-0-352" id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-353"><a href="#__codelineno-0-353" id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="w"> </span><span class="n">lblCurrentDriverDRS</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Closed"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-354"><a href="#__codelineno-0-354" id="__codelineno-0-354" name="__codelineno-0-354"></a><span class="w"> </span><span class="n">lblCurrentDriverDRS</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">Black</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-355"><a href="#__codelineno-0-355" id="__codelineno-0-355" name="__codelineno-0-355"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-356"><a href="#__codelineno-0-356" id="__codelineno-0-356" name="__codelineno-0-356"></a><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">CurrentTyre</span><span class="p">.</span><span class="n">Coumpound</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-357"><a href="#__codelineno-0-357" id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-358"><a href="#__codelineno-0-358" id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Undefined</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-359"><a href="#__codelineno-0-359" id="__codelineno-0-359" name="__codelineno-0-359"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"uuuuh..."</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-360"><a href="#__codelineno-0-360" id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">Violet</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-361"><a href="#__codelineno-0-361" id="__codelineno-0-361" name="__codelineno-0-361"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-362"><a href="#__codelineno-0-362" id="__codelineno-0-362" name="__codelineno-0-362"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Hard</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-363"><a href="#__codelineno-0-363" id="__codelineno-0-363" name="__codelineno-0-363"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Hard"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-364"><a href="#__codelineno-0-364" id="__codelineno-0-364" name="__codelineno-0-364"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">164</span><span class="p">,</span><span class="w"> </span><span class="m">165</span><span class="p">,</span><span class="w"> </span><span class="m">168</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-365"><a href="#__codelineno-0-365" id="__codelineno-0-365" name="__codelineno-0-365"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-366"><a href="#__codelineno-0-366" id="__codelineno-0-366" name="__codelineno-0-366"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Medium</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-367"><a href="#__codelineno-0-367" id="__codelineno-0-367" name="__codelineno-0-367"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Medium"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-368"><a href="#__codelineno-0-368" id="__codelineno-0-368" name="__codelineno-0-368"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">245</span><span class="p">,</span><span class="w"> </span><span class="m">191</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-369"><a href="#__codelineno-0-369" id="__codelineno-0-369" name="__codelineno-0-369"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-370"><a href="#__codelineno-0-370" id="__codelineno-0-370" name="__codelineno-0-370"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Soft</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-371"><a href="#__codelineno-0-371" id="__codelineno-0-371" name="__codelineno-0-371"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Soft"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-372"><a href="#__codelineno-0-372" id="__codelineno-0-372" name="__codelineno-0-372"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">255</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-373"><a href="#__codelineno-0-373" id="__codelineno-0-373" name="__codelineno-0-373"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-374"><a href="#__codelineno-0-374" id="__codelineno-0-374" name="__codelineno-0-374"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Inter</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-375"><a href="#__codelineno-0-375" id="__codelineno-0-375" name="__codelineno-0-375"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Intermediate"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-376"><a href="#__codelineno-0-376" id="__codelineno-0-376" name="__codelineno-0-376"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">164</span><span class="p">,</span><span class="w"> </span><span class="m">46</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-377"><a href="#__codelineno-0-377" id="__codelineno-0-377" name="__codelineno-0-377"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-378"><a href="#__codelineno-0-378" id="__codelineno-0-378" name="__codelineno-0-378"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Wet</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-379"><a href="#__codelineno-0-379" id="__codelineno-0-379" name="__codelineno-0-379"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Wet"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-380"><a href="#__codelineno-0-380" id="__codelineno-0-380" name="__codelineno-0-380"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">39</span><span class="p">,</span><span class="w"> </span><span class="m">96</span><span class="p">,</span><span class="w"> </span><span class="m">166</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-381"><a href="#__codelineno-0-381" id="__codelineno-0-381" name="__codelineno-0-381"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-382"><a href="#__codelineno-0-382" id="__codelineno-0-382" name="__codelineno-0-382"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-383"><a href="#__codelineno-0-383" id="__codelineno-0-383" name="__codelineno-0-383"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-384"><a href="#__codelineno-0-384" id="__codelineno-0-384" name="__codelineno-0-384"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnLapTime_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-226"><a href="#__codelineno-0-226" id="__codelineno-0-226" name="__codelineno-0-226"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-227"><a href="#__codelineno-0-227" id="__codelineno-0-227" name="__codelineno-0-227"></a><span class="w"> </span><span class="c1">/// Will display the battles in the battles pannel</span>
</span><span id="__span-0-228"><a href="#__codelineno-0-228" id="__codelineno-0-228" name="__codelineno-0-228"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-229"><a href="#__codelineno-0-229" id="__codelineno-0-229" name="__codelineno-0-229"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayBattles</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-230"><a href="#__codelineno-0-230" id="__codelineno-0-230" name="__codelineno-0-230"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-231"><a href="#__codelineno-0-231" id="__codelineno-0-231" name="__codelineno-0-231"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayBattles</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-232"><a href="#__codelineno-0-232" id="__codelineno-0-232" name="__codelineno-0-232"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-233"><a href="#__codelineno-0-233" id="__codelineno-0-233" name="__codelineno-0-233"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-234"><a href="#__codelineno-0-234" id="__codelineno-0-234" name="__codelineno-0-234"></a><span class="w"> </span><span class="c1">/// Will display the time differences in the faster and slowest pannels</span>
</span><span id="__span-0-235"><a href="#__codelineno-0-235" id="__codelineno-0-235" name="__codelineno-0-235"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-236"><a href="#__codelineno-0-236" id="__codelineno-0-236" name="__codelineno-0-236"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayDeltas</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-237"><a href="#__codelineno-0-237" id="__codelineno-0-237" name="__codelineno-0-237"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-238"><a href="#__codelineno-0-238" id="__codelineno-0-238" name="__codelineno-0-238"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayTimesDeltas</span><span class="p">(</span><span class="n">pnlFastest</span><span class="p">,</span><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-239"><a href="#__codelineno-0-239" id="__codelineno-0-239" name="__codelineno-0-239"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-240"><a href="#__codelineno-0-240" id="__codelineno-0-240" name="__codelineno-0-240"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-241"><a href="#__codelineno-0-241" id="__codelineno-0-241" name="__codelineno-0-241"></a><span class="w"> </span><span class="c1">/// Will try to stop the emulator (usually does not work please do not count on it)</span>
</span><span id="__span-0-242"><a href="#__codelineno-0-242" id="__codelineno-0-242" name="__codelineno-0-242"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-243"><a href="#__codelineno-0-243" id="__codelineno-0-243" name="__codelineno-0-243"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-244"><a href="#__codelineno-0-244" id="__codelineno-0-244" name="__codelineno-0-244"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-245"><a href="#__codelineno-0-245" id="__codelineno-0-245" name="__codelineno-0-245"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Form1_FormClosing</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">FormClosingEventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-246"><a href="#__codelineno-0-246" id="__codelineno-0-246" name="__codelineno-0-246"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-247"><a href="#__codelineno-0-247" id="__codelineno-0-247" name="__codelineno-0-247"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Emulator</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-248"><a href="#__codelineno-0-248" id="__codelineno-0-248" name="__codelineno-0-248"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-249"><a href="#__codelineno-0-249" id="__codelineno-0-249" name="__codelineno-0-249"></a><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">Stop</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-250"><a href="#__codelineno-0-250" id="__codelineno-0-250" name="__codelineno-0-250"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-251"><a href="#__codelineno-0-251" id="__codelineno-0-251" name="__codelineno-0-251"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-252"><a href="#__codelineno-0-252" id="__codelineno-0-252" name="__codelineno-0-252"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-253"><a href="#__codelineno-0-253" id="__codelineno-0-253" name="__codelineno-0-253"></a><span class="w"> </span><span class="c1">/// Will display the live ranking on the live ranking pannel. Its called like this because historically it was the method that just recovered the bare results from the OCR</span>
</span><span id="__span-0-254"><a href="#__codelineno-0-254" id="__codelineno-0-254" name="__codelineno-0-254"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-255"><a href="#__codelineno-0-255" id="__codelineno-0-255" name="__codelineno-0-255"></a><span class="w"> </span><span class="c1">/// &lt;param name="errorCode"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-256"><a href="#__codelineno-0-256" id="__codelineno-0-256" name="__codelineno-0-256"></a><span class="w"> </span><span class="c1">/// &lt;param name="sw"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-257"><a href="#__codelineno-0-257" id="__codelineno-0-257" name="__codelineno-0-257"></a><span class="w"> </span><span class="c1">/// &lt;param name="screen"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-258"><a href="#__codelineno-0-258" id="__codelineno-0-258" name="__codelineno-0-258"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayResults</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">errorCode</span><span class="p">,</span><span class="w"> </span><span class="n">Stopwatch</span><span class="w"> </span><span class="n">sw</span><span class="p">,</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="n">screen</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-259"><a href="#__codelineno-0-259" id="__codelineno-0-259" name="__codelineno-0-259"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-260"><a href="#__codelineno-0-260" id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">errorCode</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-261"><a href="#__codelineno-0-261" id="__codelineno-0-261" name="__codelineno-0-261"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-262"><a href="#__codelineno-0-262" id="__codelineno-0-262" name="__codelineno-0-262"></a><span class="w"> </span><span class="n">cancelRequested</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-263"><a href="#__codelineno-0-263" id="__codelineno-0-263" name="__codelineno-0-263"></a><span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="s">"An error has occured while trying to recover data from live feed. This can happen sometimes. I would advise you to restart a few times. If the problem persists check your configuration."</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-264"><a href="#__codelineno-0-264" id="__codelineno-0-264" name="__codelineno-0-264"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-265"><a href="#__codelineno-0-265" id="__codelineno-0-265" name="__codelineno-0-265"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-266"><a href="#__codelineno-0-266" id="__codelineno-0-266" name="__codelineno-0-266"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-267"><a href="#__codelineno-0-267" id="__codelineno-0-267" name="__codelineno-0-267"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayLiveRanking</span><span class="p">(</span><span class="n">pnlLiveRanking</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-268"><a href="#__codelineno-0-268" id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-269"><a href="#__codelineno-0-269" id="__codelineno-0-269" name="__codelineno-0-269"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-270"><a href="#__codelineno-0-270" id="__codelineno-0-270" name="__codelineno-0-270"></a>
</span><span id="__span-0-271"><a href="#__codelineno-0-271" id="__codelineno-0-271" name="__codelineno-0-271"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-272"><a href="#__codelineno-0-272" id="__codelineno-0-272" name="__codelineno-0-272"></a><span class="w"> </span><span class="c1">/// Will stop the data recovering operation and resets some buttons and text</span>
</span><span id="__span-0-273"><a href="#__codelineno-0-273" id="__codelineno-0-273" name="__codelineno-0-273"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-274"><a href="#__codelineno-0-274" id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-275"><a href="#__codelineno-0-275" id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-276"><a href="#__codelineno-0-276" id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnStopUpdating_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-277"><a href="#__codelineno-0-277" id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-278"><a href="#__codelineno-0-278" id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="w"> </span><span class="c1">// Set the cancellation flag</span>
</span><span id="__span-0-279"><a href="#__codelineno-0-279" id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="n">cancelRequested</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-280"><a href="#__codelineno-0-280" id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-281"><a href="#__codelineno-0-281" id="__codelineno-0-281" name="__codelineno-0-281"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-282"><a href="#__codelineno-0-282" id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Stopping"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-283"><a href="#__codelineno-0-283" id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-284"><a href="#__codelineno-0-284" id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-285"><a href="#__codelineno-0-285" id="__codelineno-0-285" name="__codelineno-0-285"></a><span class="w"> </span><span class="c1">/// Will start the F1TVEmulator, again this name is historical because back at the start of this project this button did not have a name</span>
</span><span id="__span-0-286"><a href="#__codelineno-0-286" id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-287"><a href="#__codelineno-0-287" id="__codelineno-0-287" name="__codelineno-0-287"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-288"><a href="#__codelineno-0-288" id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-289"><a href="#__codelineno-0-289" id="__codelineno-0-289" name="__codelineno-0-289"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">button1_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-290"><a href="#__codelineno-0-290" id="__codelineno-0-290" name="__codelineno-0-290"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-291"><a href="#__codelineno-0-291" id="__codelineno-0-291" name="__codelineno-0-291"></a><span class="w"> </span><span class="n">lsbOvertakes</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">Clear</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-292"><a href="#__codelineno-0-292" id="__codelineno-0-292" name="__codelineno-0-292"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Launching"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-293"><a href="#__codelineno-0-293" id="__codelineno-0-293" name="__codelineno-0-293"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-294"><a href="#__codelineno-0-294" id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-295"><a href="#__codelineno-0-295" id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-296"><a href="#__codelineno-0-296" id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="w"> </span><span class="n">btnStopUpdating</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-297"><a href="#__codelineno-0-297" id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-298"><a href="#__codelineno-0-298" id="__codelineno-0-298" name="__codelineno-0-298"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">-</span><span class="m">1</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-299"><a href="#__codelineno-0-299" id="__codelineno-0-299" name="__codelineno-0-299"></a><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="n">Task</span><span class="p">.</span><span class="n">Run</span><span class="p">(</span><span class="k">async</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"></span>
</span><span id="__span-0-300"><a href="#__codelineno-0-300" id="__codelineno-0-300" name="__codelineno-0-300"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-301"><a href="#__codelineno-0-301" id="__codelineno-0-301" name="__codelineno-0-301"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Emulator</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-302"><a href="#__codelineno-0-302" id="__codelineno-0-302" name="__codelineno-0-302"></a><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">ResetDriver</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-303"><a href="#__codelineno-0-303" id="__codelineno-0-303" name="__codelineno-0-303"></a>
</span><span id="__span-0-304"><a href="#__codelineno-0-304" id="__codelineno-0-304" name="__codelineno-0-304"></a><span class="w"> </span><span class="n">Emulator</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-305"><a href="#__codelineno-0-305" id="__codelineno-0-305" name="__codelineno-0-305"></a><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-306"><a href="#__codelineno-0-306" id="__codelineno-0-306" name="__codelineno-0-306"></a>
</span><span id="__span-0-307"><a href="#__codelineno-0-307" id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="w"> </span><span class="n">GC</span><span class="p">.</span><span class="n">Collect</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-308"><a href="#__codelineno-0-308" id="__codelineno-0-308" name="__codelineno-0-308"></a>
</span><span id="__span-0-309"><a href="#__codelineno-0-309" id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="w"> </span><span class="n">Emulator</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">F1TVEmulator</span><span class="p">(</span><span class="n">GpUrl</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-310"><a href="#__codelineno-0-310" id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">Start</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-311"><a href="#__codelineno-0-311" id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-0-312"><a href="#__codelineno-0-312" id="__codelineno-0-312" name="__codelineno-0-312"></a>
</span><span id="__span-0-313"><a href="#__codelineno-0-313" id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">errorCode</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-314"><a href="#__codelineno-0-314" id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-315"><a href="#__codelineno-0-315" id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">""</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-316"><a href="#__codelineno-0-316" id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">errorCode</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-317"><a href="#__codelineno-0-317" id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-318"><a href="#__codelineno-0-318" id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">100</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-319"><a href="#__codelineno-0-319" id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" Could not recover cookies. It could be because of an improper installation of python or bad cookies in the chrome database. Please try to log on to the F1TV using chrome again"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-320"><a href="#__codelineno-0-320" id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-321"><a href="#__codelineno-0-321" id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">101</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-322"><a href="#__codelineno-0-322" id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" Could not start the driver. It could be because an other instance is runnin make sure you closed them all before trying again"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-323"><a href="#__codelineno-0-323" id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-324"><a href="#__codelineno-0-324" id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">102</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-325"><a href="#__codelineno-0-325" id="__codelineno-0-325" name="__codelineno-0-325"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" Could not navigate on the F1TV site. Make sure the correct URL has been given and that you logged from chrome. It can take a few minutes to update"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-326"><a href="#__codelineno-0-326" id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-327"><a href="#__codelineno-0-327" id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">103</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-328"><a href="#__codelineno-0-328" id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" The url is not a valid url"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-329"><a href="#__codelineno-0-329" id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-330"><a href="#__codelineno-0-330" id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">104</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-331"><a href="#__codelineno-0-331" id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" The url is not a valid url"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-332"><a href="#__codelineno-0-332" id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-333"><a href="#__codelineno-0-333" id="__codelineno-0-333" name="__codelineno-0-333"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">105</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-334"><a href="#__codelineno-0-334" id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" There has been an error trying to emulate button presses. Please try again"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-335"><a href="#__codelineno-0-335" id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-336"><a href="#__codelineno-0-336" id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="m">106</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-337"><a href="#__codelineno-0-337" id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" There has been an error trying to emulate button presses. Please try again"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-338"><a href="#__codelineno-0-338" id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-339"><a href="#__codelineno-0-339" id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="w"> </span><span class="k">default</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-340"><a href="#__codelineno-0-340" id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Could not start the emulator Error "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">errorCode</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-341"><a href="#__codelineno-0-341" id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-342"><a href="#__codelineno-0-342" id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-343"><a href="#__codelineno-0-343" id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="n">message</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-344"><a href="#__codelineno-0-344" id="__codelineno-0-344" name="__codelineno-0-344"></a>
</span><span id="__span-0-345"><a href="#__codelineno-0-345" id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-346"><a href="#__codelineno-0-346" id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-347"><a href="#__codelineno-0-347" id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Retry"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-348"><a href="#__codelineno-0-348" id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-349"><a href="#__codelineno-0-349" id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-350"><a href="#__codelineno-0-350" id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-351"><a href="#__codelineno-0-351" id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="w"> </span><span class="n">Wrapper</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">DataWrapper</span><span class="p">(</span><span class="n">ConfigFile</span><span class="p">,</span><span class="w"> </span><span class="n">Emulator</span><span class="p">.</span><span class="n">Screenshot</span><span class="p">());</span><span class="w"></span>
</span><span id="__span-0-352"><a href="#__codelineno-0-352" id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Re launch"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-353"><a href="#__codelineno-0-353" id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="w"> </span><span class="n">btnResetEmulator</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-354"><a href="#__codelineno-0-354" id="__codelineno-0-354" name="__codelineno-0-354"></a><span class="w"> </span><span class="n">btnSettings</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-355"><a href="#__codelineno-0-355" id="__codelineno-0-355" name="__codelineno-0-355"></a><span class="w"> </span><span class="n">btnStartDecoding</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-356"><a href="#__codelineno-0-356" id="__codelineno-0-356" name="__codelineno-0-356"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-357"><a href="#__codelineno-0-357" id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-358"><a href="#__codelineno-0-358" id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-359"><a href="#__codelineno-0-359" id="__codelineno-0-359" name="__codelineno-0-359"></a><span class="w"> </span><span class="c1">/// Silly way to remove borders from groupbox and make them look like pannels with titles</span>
</span><span id="__span-0-360"><a href="#__codelineno-0-360" id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-361"><a href="#__codelineno-0-361" id="__codelineno-0-361" name="__codelineno-0-361"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-362"><a href="#__codelineno-0-362" id="__codelineno-0-362" name="__codelineno-0-362"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-363"><a href="#__codelineno-0-363" id="__codelineno-0-363" name="__codelineno-0-363"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">removeBorders</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">PaintEventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-364"><a href="#__codelineno-0-364" id="__codelineno-0-364" name="__codelineno-0-364"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-365"><a href="#__codelineno-0-365" id="__codelineno-0-365" name="__codelineno-0-365"></a><span class="w"> </span><span class="n">GroupBox</span><span class="w"> </span><span class="n">gpbx</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="n">GroupBox</span><span class="p">)</span><span class="n">sender</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-366"><a href="#__codelineno-0-366" id="__codelineno-0-366" name="__codelineno-0-366"></a>
</span><span id="__span-0-367"><a href="#__codelineno-0-367" id="__codelineno-0-367" name="__codelineno-0-367"></a><span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="p">(</span><span class="n">Pen</span><span class="w"> </span><span class="n">pen</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Pen</span><span class="p">(</span><span class="n">gpbx</span><span class="p">.</span><span class="n">BackColor</span><span class="p">,</span><span class="w"> </span><span class="m">50</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-368"><a href="#__codelineno-0-368" id="__codelineno-0-368" name="__codelineno-0-368"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-369"><a href="#__codelineno-0-369" id="__codelineno-0-369" name="__codelineno-0-369"></a><span class="w"> </span><span class="n">e</span><span class="p">.</span><span class="n">Graphics</span><span class="p">.</span><span class="n">DrawRectangle</span><span class="p">(</span><span class="n">pen</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-370"><a href="#__codelineno-0-370" id="__codelineno-0-370" name="__codelineno-0-370"></a><span class="w"> </span><span class="n">e</span><span class="p">.</span><span class="n">Graphics</span><span class="p">.</span><span class="n">DrawRectangle</span><span class="p">(</span><span class="n">pen</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-371"><a href="#__codelineno-0-371" id="__codelineno-0-371" name="__codelineno-0-371"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-372"><a href="#__codelineno-0-372" id="__codelineno-0-372" name="__codelineno-0-372"></a>
</span><span id="__span-0-373"><a href="#__codelineno-0-373" id="__codelineno-0-373" name="__codelineno-0-373"></a><span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="p">(</span><span class="kt">var</span><span class="w"> </span><span class="n">brush</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SolidBrush</span><span class="p">(</span><span class="n">gpbx</span><span class="p">.</span><span class="n">ForeColor</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-374"><a href="#__codelineno-0-374" id="__codelineno-0-374" name="__codelineno-0-374"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-375"><a href="#__codelineno-0-375" id="__codelineno-0-375" name="__codelineno-0-375"></a><span class="w"> </span><span class="kt">var</span><span class="w"> </span><span class="n">textPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="m">5</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// Adjust the X and Y values as needed</span>
</span><span id="__span-0-376"><a href="#__codelineno-0-376" id="__codelineno-0-376" name="__codelineno-0-376"></a><span class="w"> </span><span class="n">e</span><span class="p">.</span><span class="n">Graphics</span><span class="p">.</span><span class="n">DrawString</span><span class="p">(</span><span class="n">gpbx</span><span class="p">.</span><span class="n">Text</span><span class="p">,</span><span class="w"> </span><span class="n">gpbx</span><span class="p">.</span><span class="n">Font</span><span class="p">,</span><span class="w"> </span><span class="n">brush</span><span class="p">,</span><span class="w"> </span><span class="n">textPosition</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-377"><a href="#__codelineno-0-377" id="__codelineno-0-377" name="__codelineno-0-377"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-378"><a href="#__codelineno-0-378" id="__codelineno-0-378" name="__codelineno-0-378"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-379"><a href="#__codelineno-0-379" id="__codelineno-0-379" name="__codelineno-0-379"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-380"><a href="#__codelineno-0-380" id="__codelineno-0-380" name="__codelineno-0-380"></a><span class="w"> </span><span class="c1">/// Will change the preset to use when starting the emulator</span>
</span><span id="__span-0-381"><a href="#__codelineno-0-381" id="__codelineno-0-381" name="__codelineno-0-381"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-382"><a href="#__codelineno-0-382" id="__codelineno-0-382" name="__codelineno-0-382"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-383"><a href="#__codelineno-0-383" id="__codelineno-0-383" name="__codelineno-0-383"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-384"><a href="#__codelineno-0-384" id="__codelineno-0-384" name="__codelineno-0-384"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">lsbPresets_SelectedIndexChanged</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-385"><a href="#__codelineno-0-385" id="__codelineno-0-385" name="__codelineno-0-385"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-386"><a href="#__codelineno-0-386" id="__codelineno-0-386" name="__codelineno-0-386"></a><span class="w"> </span><span class="c1">//Happens when a lapTime has been clicked</span>
</span><span id="__span-0-387"><a href="#__codelineno-0-387" id="__codelineno-0-387" name="__codelineno-0-387"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">btn</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">sender</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">Button</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-388"><a href="#__codelineno-0-388" id="__codelineno-0-388" name="__codelineno-0-388"></a><span class="w"> </span><span class="kt">string</span><span class="p">[]</span><span class="w"> </span><span class="n">parts</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">btn</span><span class="p">.</span><span class="n">Name</span><span class="p">.</span><span class="n">Split</span><span class="p">(</span><span class="sc">'_'</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-389"><a href="#__codelineno-0-389" id="__codelineno-0-389" name="__codelineno-0-389"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayLapTimeInfos</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="m">0</span><span class="p">],</span><span class="w"> </span><span class="n">Convert</span><span class="p">.</span><span class="n">ToInt32</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="m">1</span><span class="p">]),</span><span class="w"> </span><span class="n">btn</span><span class="p">.</span><span class="n">Text</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-390"><a href="#__codelineno-0-390" id="__codelineno-0-390" name="__codelineno-0-390"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-391"><a href="#__codelineno-0-391" id="__codelineno-0-391" name="__codelineno-0-391"></a>
</span><span id="__span-0-392"><a href="#__codelineno-0-392" id="__codelineno-0-392" name="__codelineno-0-392"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Main_Resize</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-393"><a href="#__codelineno-0-393" id="__codelineno-0-393" name="__codelineno-0-393"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-394"><a href="#__codelineno-0-394" id="__codelineno-0-394" name="__codelineno-0-394"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">oldSize</span><span class="p">.</span><span class="n">Width</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-395"><a href="#__codelineno-0-395" id="__codelineno-0-395" name="__codelineno-0-395"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">oldSize</span><span class="p">.</span><span class="n">Height</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-396"><a href="#__codelineno-0-396" id="__codelineno-0-396" name="__codelineno-0-396"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">padding</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">10</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-397"><a href="#__codelineno-0-397" id="__codelineno-0-397" name="__codelineno-0-397"></a><span class="w"> </span><span class="c1">//This will take half the newly created space</span>
</span><span id="__span-0-398"><a href="#__codelineno-0-398" id="__codelineno-0-398" name="__codelineno-0-398"></a><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldRankingSize</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">oldRankingSize</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-399"><a href="#__codelineno-0-399" id="__codelineno-0-399" name="__codelineno-0-399"></a><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">oldRankingPosition</span><span class="p">.</span><span class="n">X</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">Y</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-400"><a href="#__codelineno-0-400" id="__codelineno-0-400" name="__codelineno-0-400"></a><span class="w"> </span><span class="c1">//Will take half the new height and half the new height</span>
</span><span id="__span-0-401"><a href="#__codelineno-0-401" id="__codelineno-0-401" name="__codelineno-0-401"></a><span class="w"> </span><span class="n">gpbxLapTimes</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldLapTimesSize</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">oldLapTimesSize</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-402"><a href="#__codelineno-0-402" id="__codelineno-0-402" name="__codelineno-0-402"></a><span class="w"> </span><span class="c1">//Will take half the new height and half the new width</span>
</span><span id="__span-0-403"><a href="#__codelineno-0-403" id="__codelineno-0-403" name="__codelineno-0-403"></a><span class="w"> </span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">oldBattles</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-404"><a href="#__codelineno-0-404" id="__codelineno-0-404" name="__codelineno-0-404"></a><span class="w"> </span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">X</span><span class="p">,</span><span class="w"> </span><span class="n">oldBattlePosition</span><span class="p">.</span><span class="n">Y</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-405"><a href="#__codelineno-0-405" id="__codelineno-0-405" name="__codelineno-0-405"></a><span class="w"> </span><span class="c1">//The infos wont change width but will need to be centerd</span>
</span><span id="__span-0-406"><a href="#__codelineno-0-406" id="__codelineno-0-406" name="__codelineno-0-406"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">startOfZone</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">gpbxOvertakes</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">gpbxOvertakes</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">X</span><span class="p">,</span><span class="w"> </span><span class="n">gpbxOvertakes</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">Y</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-407"><a href="#__codelineno-0-407" id="__codelineno-0-407" name="__codelineno-0-407"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">endOfZone</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">X</span><span class="p">,</span><span class="w"> </span><span class="n">gpbxOvertakes</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">Y</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-408"><a href="#__codelineno-0-408" id="__codelineno-0-408" name="__codelineno-0-408"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">totalWidth</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">endOfZone</span><span class="p">.</span><span class="n">X</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">startOfZone</span><span class="p">.</span><span class="n">X</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-409"><a href="#__codelineno-0-409" id="__codelineno-0-409" name="__codelineno-0-409"></a><span class="w"> </span><span class="n">gpbxDriverInfos</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">startOfZone</span><span class="p">.</span><span class="n">X</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="p">(</span><span class="n">totalWidth</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">gpbxDriverInfos</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">),</span><span class="w"> </span><span class="n">oldDriverInfoPosition</span><span class="p">.</span><span class="n">Y</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-410"><a href="#__codelineno-0-410" id="__codelineno-0-410" name="__codelineno-0-410"></a><span class="w"> </span><span class="c1">//Now resizing internals</span>
</span><span id="__span-0-411"><a href="#__codelineno-0-411" id="__codelineno-0-411" name="__codelineno-0-411"></a><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldPnlFastest</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">,</span><span class="n">oldPnlFastest</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-412"><a href="#__codelineno-0-412" id="__codelineno-0-412" name="__codelineno-0-412"></a><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">olPnlFastestPosition</span><span class="p">.</span><span class="n">X</span><span class="p">,</span><span class="n">olPnlFastestPosition</span><span class="p">.</span><span class="n">Y</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-413"><a href="#__codelineno-0-413" id="__codelineno-0-413" name="__codelineno-0-413"></a>
</span><span id="__span-0-414"><a href="#__codelineno-0-414" id="__codelineno-0-414" name="__codelineno-0-414"></a><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldPnlSlowest</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">,</span><span class="w"> </span><span class="n">oldPnlSlowest</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-415"><a href="#__codelineno-0-415" id="__codelineno-0-415" name="__codelineno-0-415"></a><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">oldPnlSlowestPosition</span><span class="p">.</span><span class="n">X</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">,</span><span class="w"> </span><span class="n">oldPnlSlowestPosition</span><span class="p">.</span><span class="n">Y</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-416"><a href="#__codelineno-0-416" id="__codelineno-0-416" name="__codelineno-0-416"></a>
</span><span id="__span-0-417"><a href="#__codelineno-0-417" id="__codelineno-0-417" name="__codelineno-0-417"></a><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldPnlBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="n">oldPnlBattles</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-418"><a href="#__codelineno-0-418" id="__codelineno-0-418" name="__codelineno-0-418"></a>
</span><span id="__span-0-419"><a href="#__codelineno-0-419" id="__codelineno-0-419" name="__codelineno-0-419"></a><span class="w"> </span><span class="n">pnlLiveRanking</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldPnlRankings</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="n">oldPnlRankings</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-420"><a href="#__codelineno-0-420" id="__codelineno-0-420" name="__codelineno-0-420"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-421"><a href="#__codelineno-0-421" id="__codelineno-0-421" name="__codelineno-0-421"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-422"><a href="#__codelineno-0-422" id="__codelineno-0-422" name="__codelineno-0-422"></a><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-386"><a href="#__codelineno-0-386" id="__codelineno-0-386" name="__codelineno-0-386"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">SelectedIndex</span><span class="w"> </span><span class="p">&gt;=</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-387"><a href="#__codelineno-0-387" id="__codelineno-0-387" name="__codelineno-0-387"></a><span class="w"> </span><span class="n">ConfigFile</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Items</span><span class="p">[</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">SelectedIndex</span><span class="p">].</span><span class="n">ToString</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-388"><a href="#__codelineno-0-388" id="__codelineno-0-388" name="__codelineno-0-388"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-389"><a href="#__codelineno-0-389" id="__codelineno-0-389" name="__codelineno-0-389"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-390"><a href="#__codelineno-0-390" id="__codelineno-0-390" name="__codelineno-0-390"></a><span class="w"> </span><span class="c1">/// Will change the URL the emulator will use, historical name again</span>
</span><span id="__span-0-391"><a href="#__codelineno-0-391" id="__codelineno-0-391" name="__codelineno-0-391"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-392"><a href="#__codelineno-0-392" id="__codelineno-0-392" name="__codelineno-0-392"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-393"><a href="#__codelineno-0-393" id="__codelineno-0-393" name="__codelineno-0-393"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-394"><a href="#__codelineno-0-394" id="__codelineno-0-394" name="__codelineno-0-394"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">textBox1_TextChanged</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-395"><a href="#__codelineno-0-395" id="__codelineno-0-395" name="__codelineno-0-395"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-396"><a href="#__codelineno-0-396" id="__codelineno-0-396" name="__codelineno-0-396"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="s">""</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-397"><a href="#__codelineno-0-397" id="__codelineno-0-397" name="__codelineno-0-397"></a><span class="w"> </span><span class="n">GpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Text</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-398"><a href="#__codelineno-0-398" id="__codelineno-0-398" name="__codelineno-0-398"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-399"><a href="#__codelineno-0-399" id="__codelineno-0-399" name="__codelineno-0-399"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-400"><a href="#__codelineno-0-400" id="__codelineno-0-400" name="__codelineno-0-400"></a><span class="w"> </span><span class="c1">/// This is called by the automatically generated buttons. Its here to fill in the driver info tab whenever the user clicks on a button that contains the name of a driver</span>
</span><span id="__span-0-401"><a href="#__codelineno-0-401" id="__codelineno-0-401" name="__codelineno-0-401"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-402"><a href="#__codelineno-0-402" id="__codelineno-0-402" name="__codelineno-0-402"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-403"><a href="#__codelineno-0-403" id="__codelineno-0-403" name="__codelineno-0-403"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-404"><a href="#__codelineno-0-404" id="__codelineno-0-404" name="__codelineno-0-404"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnDriver_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-405"><a href="#__codelineno-0-405" id="__codelineno-0-405" name="__codelineno-0-405"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-406"><a href="#__codelineno-0-406" id="__codelineno-0-406" name="__codelineno-0-406"></a><span class="w"> </span><span class="c1">//Removes the cover</span>
</span><span id="__span-0-407"><a href="#__codelineno-0-407" id="__codelineno-0-407" name="__codelineno-0-407"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">pnlCover</span><span class="p">.</span><span class="n">Visible</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-408"><a href="#__codelineno-0-408" id="__codelineno-0-408" name="__codelineno-0-408"></a><span class="w"> </span><span class="n">pnlCover</span><span class="p">.</span><span class="n">Visible</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-409"><a href="#__codelineno-0-409" id="__codelineno-0-409" name="__codelineno-0-409"></a><span class="w"> </span><span class="c1">//Happens when a driver button has been clicked</span>
</span><span id="__span-0-410"><a href="#__codelineno-0-410" id="__codelineno-0-410" name="__codelineno-0-410"></a><span class="w"> </span><span class="c1">//MessageBox.Show((sender as Button).Name + " has been selected");</span>
</span><span id="__span-0-411"><a href="#__codelineno-0-411" id="__codelineno-0-411" name="__codelineno-0-411"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">btn</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="n">sender</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">Button</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-412"><a href="#__codelineno-0-412" id="__codelineno-0-412" name="__codelineno-0-412"></a><span class="w"> </span><span class="kt">string</span><span class="p">[]</span><span class="w"> </span><span class="n">parts</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">btn</span><span class="p">.</span><span class="n">Name</span><span class="p">.</span><span class="n">Split</span><span class="p">(</span><span class="sc">'_'</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-413"><a href="#__codelineno-0-413" id="__codelineno-0-413" name="__codelineno-0-413"></a><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="n">driver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">GetFullDriverData</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="m">0</span><span class="p">],</span><span class="w"> </span><span class="n">pnlCurrentDriverLapsHistory</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-414"><a href="#__codelineno-0-414" id="__codelineno-0-414" name="__codelineno-0-414"></a><span class="w"> </span><span class="n">lblCurrentDriverName</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">Name</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-415"><a href="#__codelineno-0-415" id="__codelineno-0-415" name="__codelineno-0-415"></a><span class="w"> </span><span class="n">lblCurrentDriverPosition</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">Position</span><span class="p">.</span><span class="n">ToString</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-416"><a href="#__codelineno-0-416" id="__codelineno-0-416" name="__codelineno-0-416"></a><span class="w"> </span><span class="n">lblCurrentDriverGapToLeader</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">GapToLeader</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-417"><a href="#__codelineno-0-417" id="__codelineno-0-417" name="__codelineno-0-417"></a><span class="w"> </span><span class="n">lblCurrentDriverLapTime</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">LapTime</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-418"><a href="#__codelineno-0-418" id="__codelineno-0-418" name="__codelineno-0-418"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreAge</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">CurrentTyre</span><span class="p">.</span><span class="n">NumberOfLaps</span><span class="p">.</span><span class="n">ToString</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-419"><a href="#__codelineno-0-419" id="__codelineno-0-419" name="__codelineno-0-419"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">DRS</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-420"><a href="#__codelineno-0-420" id="__codelineno-0-420" name="__codelineno-0-420"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-421"><a href="#__codelineno-0-421" id="__codelineno-0-421" name="__codelineno-0-421"></a><span class="w"> </span><span class="n">lblCurrentDriverDRS</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Open"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-422"><a href="#__codelineno-0-422" id="__codelineno-0-422" name="__codelineno-0-422"></a><span class="w"> </span><span class="n">lblCurrentDriverDRS</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">164</span><span class="p">,</span><span class="w"> </span><span class="m">46</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-423"><a href="#__codelineno-0-423" id="__codelineno-0-423" name="__codelineno-0-423"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-424"><a href="#__codelineno-0-424" id="__codelineno-0-424" name="__codelineno-0-424"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-425"><a href="#__codelineno-0-425" id="__codelineno-0-425" name="__codelineno-0-425"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-426"><a href="#__codelineno-0-426" id="__codelineno-0-426" name="__codelineno-0-426"></a><span class="w"> </span><span class="n">lblCurrentDriverDRS</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Closed"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-427"><a href="#__codelineno-0-427" id="__codelineno-0-427" name="__codelineno-0-427"></a><span class="w"> </span><span class="n">lblCurrentDriverDRS</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">Black</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-428"><a href="#__codelineno-0-428" id="__codelineno-0-428" name="__codelineno-0-428"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-429"><a href="#__codelineno-0-429" id="__codelineno-0-429" name="__codelineno-0-429"></a><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">CurrentTyre</span><span class="p">.</span><span class="n">Coumpound</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-430"><a href="#__codelineno-0-430" id="__codelineno-0-430" name="__codelineno-0-430"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-431"><a href="#__codelineno-0-431" id="__codelineno-0-431" name="__codelineno-0-431"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Undefined</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-432"><a href="#__codelineno-0-432" id="__codelineno-0-432" name="__codelineno-0-432"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"uuuuh..."</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-433"><a href="#__codelineno-0-433" id="__codelineno-0-433" name="__codelineno-0-433"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">Violet</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-434"><a href="#__codelineno-0-434" id="__codelineno-0-434" name="__codelineno-0-434"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-435"><a href="#__codelineno-0-435" id="__codelineno-0-435" name="__codelineno-0-435"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Hard</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-436"><a href="#__codelineno-0-436" id="__codelineno-0-436" name="__codelineno-0-436"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Hard"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-437"><a href="#__codelineno-0-437" id="__codelineno-0-437" name="__codelineno-0-437"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">164</span><span class="p">,</span><span class="w"> </span><span class="m">165</span><span class="p">,</span><span class="w"> </span><span class="m">168</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-438"><a href="#__codelineno-0-438" id="__codelineno-0-438" name="__codelineno-0-438"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-439"><a href="#__codelineno-0-439" id="__codelineno-0-439" name="__codelineno-0-439"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Medium</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-440"><a href="#__codelineno-0-440" id="__codelineno-0-440" name="__codelineno-0-440"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Medium"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-441"><a href="#__codelineno-0-441" id="__codelineno-0-441" name="__codelineno-0-441"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">245</span><span class="p">,</span><span class="w"> </span><span class="m">191</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-442"><a href="#__codelineno-0-442" id="__codelineno-0-442" name="__codelineno-0-442"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-443"><a href="#__codelineno-0-443" id="__codelineno-0-443" name="__codelineno-0-443"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Soft</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-444"><a href="#__codelineno-0-444" id="__codelineno-0-444" name="__codelineno-0-444"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Soft"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-445"><a href="#__codelineno-0-445" id="__codelineno-0-445" name="__codelineno-0-445"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">255</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-446"><a href="#__codelineno-0-446" id="__codelineno-0-446" name="__codelineno-0-446"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-447"><a href="#__codelineno-0-447" id="__codelineno-0-447" name="__codelineno-0-447"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Inter</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-448"><a href="#__codelineno-0-448" id="__codelineno-0-448" name="__codelineno-0-448"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Intermediate"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-449"><a href="#__codelineno-0-449" id="__codelineno-0-449" name="__codelineno-0-449"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">164</span><span class="p">,</span><span class="w"> </span><span class="m">46</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-450"><a href="#__codelineno-0-450" id="__codelineno-0-450" name="__codelineno-0-450"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-451"><a href="#__codelineno-0-451" id="__codelineno-0-451" name="__codelineno-0-451"></a><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">Tyre</span><span class="p">.</span><span class="n">Type</span><span class="p">.</span><span class="n">Wet</span><span class="p">:</span><span class="w"></span>
</span><span id="__span-0-452"><a href="#__codelineno-0-452" id="__codelineno-0-452" name="__codelineno-0-452"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Wet"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-453"><a href="#__codelineno-0-453" id="__codelineno-0-453" name="__codelineno-0-453"></a><span class="w"> </span><span class="n">lblCurrentDriverTyreType</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(</span><span class="m">39</span><span class="p">,</span><span class="w"> </span><span class="m">96</span><span class="p">,</span><span class="w"> </span><span class="m">166</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-454"><a href="#__codelineno-0-454" id="__codelineno-0-454" name="__codelineno-0-454"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-455"><a href="#__codelineno-0-455" id="__codelineno-0-455" name="__codelineno-0-455"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-456"><a href="#__codelineno-0-456" id="__codelineno-0-456" name="__codelineno-0-456"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-457"><a href="#__codelineno-0-457" id="__codelineno-0-457" name="__codelineno-0-457"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-458"><a href="#__codelineno-0-458" id="__codelineno-0-458" name="__codelineno-0-458"></a><span class="w"> </span><span class="c1">/// This is supposed to be called by an automatically generated button. It should be any button with a laptime info on it</span>
</span><span id="__span-0-459"><a href="#__codelineno-0-459" id="__codelineno-0-459" name="__codelineno-0-459"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-460"><a href="#__codelineno-0-460" id="__codelineno-0-460" name="__codelineno-0-460"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-461"><a href="#__codelineno-0-461" id="__codelineno-0-461" name="__codelineno-0-461"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-462"><a href="#__codelineno-0-462" id="__codelineno-0-462" name="__codelineno-0-462"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">btnLapTime_Click</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-463"><a href="#__codelineno-0-463" id="__codelineno-0-463" name="__codelineno-0-463"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-464"><a href="#__codelineno-0-464" id="__codelineno-0-464" name="__codelineno-0-464"></a><span class="w"> </span><span class="c1">//Happens when a lapTime has been clicked</span>
</span><span id="__span-0-465"><a href="#__codelineno-0-465" id="__codelineno-0-465" name="__codelineno-0-465"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">btn</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">sender</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">Button</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-466"><a href="#__codelineno-0-466" id="__codelineno-0-466" name="__codelineno-0-466"></a><span class="w"> </span><span class="kt">string</span><span class="p">[]</span><span class="w"> </span><span class="n">parts</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">btn</span><span class="p">.</span><span class="n">Name</span><span class="p">.</span><span class="n">Split</span><span class="p">(</span><span class="sc">'_'</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-467"><a href="#__codelineno-0-467" id="__codelineno-0-467" name="__codelineno-0-467"></a><span class="w"> </span><span class="n">Wrapper</span><span class="p">.</span><span class="n">DisplayLapTimeInfos</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="m">0</span><span class="p">],</span><span class="w"> </span><span class="n">Convert</span><span class="p">.</span><span class="n">ToInt32</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="m">1</span><span class="p">]),</span><span class="w"> </span><span class="n">btn</span><span class="p">.</span><span class="n">Text</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-468"><a href="#__codelineno-0-468" id="__codelineno-0-468" name="__codelineno-0-468"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-469"><a href="#__codelineno-0-469" id="__codelineno-0-469" name="__codelineno-0-469"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-470"><a href="#__codelineno-0-470" id="__codelineno-0-470" name="__codelineno-0-470"></a><span class="w"> </span><span class="c1">/// Will trigger responsive calculation everytime the form changes size</span>
</span><span id="__span-0-471"><a href="#__codelineno-0-471" id="__codelineno-0-471" name="__codelineno-0-471"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-472"><a href="#__codelineno-0-472" id="__codelineno-0-472" name="__codelineno-0-472"></a><span class="w"> </span><span class="c1">/// &lt;param name="sender"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-473"><a href="#__codelineno-0-473" id="__codelineno-0-473" name="__codelineno-0-473"></a><span class="w"> </span><span class="c1">/// &lt;param name="e"&gt;&lt;/param&gt;</span>
</span><span id="__span-0-474"><a href="#__codelineno-0-474" id="__codelineno-0-474" name="__codelineno-0-474"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Main_Resize</span><span class="p">(</span><span class="kt">object</span><span class="w"> </span><span class="n">sender</span><span class="p">,</span><span class="w"> </span><span class="n">EventArgs</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-475"><a href="#__codelineno-0-475" id="__codelineno-0-475" name="__codelineno-0-475"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-476"><a href="#__codelineno-0-476" id="__codelineno-0-476" name="__codelineno-0-476"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">oldSize</span><span class="p">.</span><span class="n">Width</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-477"><a href="#__codelineno-0-477" id="__codelineno-0-477" name="__codelineno-0-477"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">oldSize</span><span class="p">.</span><span class="n">Height</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-478"><a href="#__codelineno-0-478" id="__codelineno-0-478" name="__codelineno-0-478"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">padding</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">10</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-479"><a href="#__codelineno-0-479" id="__codelineno-0-479" name="__codelineno-0-479"></a><span class="w"> </span><span class="c1">//This will take half the newly created space</span>
</span><span id="__span-0-480"><a href="#__codelineno-0-480" id="__codelineno-0-480" name="__codelineno-0-480"></a><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldRankingSize</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">oldRankingSize</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-481"><a href="#__codelineno-0-481" id="__codelineno-0-481" name="__codelineno-0-481"></a><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">oldRankingPosition</span><span class="p">.</span><span class="n">X</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">Y</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-482"><a href="#__codelineno-0-482" id="__codelineno-0-482" name="__codelineno-0-482"></a><span class="w"> </span><span class="c1">//Will take half the new height and half the new height</span>
</span><span id="__span-0-483"><a href="#__codelineno-0-483" id="__codelineno-0-483" name="__codelineno-0-483"></a><span class="w"> </span><span class="n">gpbxLapTimes</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldLapTimesSize</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">oldLapTimesSize</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-484"><a href="#__codelineno-0-484" id="__codelineno-0-484" name="__codelineno-0-484"></a><span class="w"> </span><span class="c1">//Will take half the new height and half the new width</span>
</span><span id="__span-0-485"><a href="#__codelineno-0-485" id="__codelineno-0-485" name="__codelineno-0-485"></a><span class="w"> </span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">oldBattles</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-486"><a href="#__codelineno-0-486" id="__codelineno-0-486" name="__codelineno-0-486"></a><span class="w"> </span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">gpbxBattles</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">X</span><span class="p">,</span><span class="w"> </span><span class="n">oldBattlePosition</span><span class="p">.</span><span class="n">Y</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-487"><a href="#__codelineno-0-487" id="__codelineno-0-487" name="__codelineno-0-487"></a><span class="w"> </span><span class="c1">//The infos wont change width but will need to be centerd</span>
</span><span id="__span-0-488"><a href="#__codelineno-0-488" id="__codelineno-0-488" name="__codelineno-0-488"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">startOfZone</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">gpbxOvertakes</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">gpbxOvertakes</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">X</span><span class="p">,</span><span class="w"> </span><span class="n">gpbxOvertakes</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">Y</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-489"><a href="#__codelineno-0-489" id="__codelineno-0-489" name="__codelineno-0-489"></a><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">endOfZone</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">gpbxRanking</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">X</span><span class="p">,</span><span class="w"> </span><span class="n">gpbxOvertakes</span><span class="p">.</span><span class="n">Location</span><span class="p">.</span><span class="n">Y</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-490"><a href="#__codelineno-0-490" id="__codelineno-0-490" name="__codelineno-0-490"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">totalWidth</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">endOfZone</span><span class="p">.</span><span class="n">X</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">startOfZone</span><span class="p">.</span><span class="n">X</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-491"><a href="#__codelineno-0-491" id="__codelineno-0-491" name="__codelineno-0-491"></a><span class="w"> </span><span class="n">gpbxDriverInfos</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">startOfZone</span><span class="p">.</span><span class="n">X</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="p">(</span><span class="n">totalWidth</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">gpbxDriverInfos</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">),</span><span class="w"> </span><span class="n">oldDriverInfoPosition</span><span class="p">.</span><span class="n">Y</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-492"><a href="#__codelineno-0-492" id="__codelineno-0-492" name="__codelineno-0-492"></a><span class="w"> </span><span class="c1">//Now resizing internals</span>
</span><span id="__span-0-493"><a href="#__codelineno-0-493" id="__codelineno-0-493" name="__codelineno-0-493"></a><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldPnlFastest</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">,</span><span class="n">oldPnlFastest</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-494"><a href="#__codelineno-0-494" id="__codelineno-0-494" name="__codelineno-0-494"></a><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">olPnlFastestPosition</span><span class="p">.</span><span class="n">X</span><span class="p">,</span><span class="n">olPnlFastestPosition</span><span class="p">.</span><span class="n">Y</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-495"><a href="#__codelineno-0-495" id="__codelineno-0-495" name="__codelineno-0-495"></a>
</span><span id="__span-0-496"><a href="#__codelineno-0-496" id="__codelineno-0-496" name="__codelineno-0-496"></a><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldPnlSlowest</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">,</span><span class="w"> </span><span class="n">oldPnlSlowest</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-497"><a href="#__codelineno-0-497" id="__codelineno-0-497" name="__codelineno-0-497"></a><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">oldPnlSlowestPosition</span><span class="p">.</span><span class="n">X</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">,</span><span class="w"> </span><span class="n">oldPnlSlowestPosition</span><span class="p">.</span><span class="n">Y</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-498"><a href="#__codelineno-0-498" id="__codelineno-0-498" name="__codelineno-0-498"></a>
</span><span id="__span-0-499"><a href="#__codelineno-0-499" id="__codelineno-0-499" name="__codelineno-0-499"></a><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldPnlBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="n">oldPnlBattles</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-500"><a href="#__codelineno-0-500" id="__codelineno-0-500" name="__codelineno-0-500"></a>
</span><span id="__span-0-501"><a href="#__codelineno-0-501" id="__codelineno-0-501" name="__codelineno-0-501"></a><span class="w"> </span><span class="n">pnlLiveRanking</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">oldPnlRankings</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">xDiff</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="n">oldPnlRankings</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">yDiff</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-502"><a href="#__codelineno-0-502" id="__codelineno-0-502" name="__codelineno-0-502"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-503"><a href="#__codelineno-0-503" id="__codelineno-0-503" name="__codelineno-0-503"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-504"><a href="#__codelineno-0-504" id="__codelineno-0-504" name="__codelineno-0-504"></a><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
</article>
</div>
@@ -701,13 +773,13 @@
</div>
</div>
</a>
<a aria-label="Next: Program.cs" class="md-footer__link md-footer__link--next" href="Program.html" rel="next">
<a aria-label="Next: SqliteStorage.cs" class="md-footer__link md-footer__link--next" href="SqliteStorage.html" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
Program.cs
SqliteStorage.cs
</div>
</div>
<div class="md-footer__button md-icon">
+651 -647
View File
File diff suppressed because it is too large Load Diff
-341
View File
@@ -1,341 +0,0 @@
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1" name="viewport"/>
<meta content="Rohmer Maxime" name="author"/>
<link href="../assets/images/favicon.png" rel="icon"/>
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
<title>Program.cs - Documentation Track Trends</title>
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a class="md-skip" href="#programcs">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav aria-label="Header" class="md-header__inner md-grid">
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Documentation Track Trends
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Program.cs
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
</form>
<label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label>
<nav aria-label="Search" class="md-search__options">
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a>
Documentation Track Trends
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../index.html">
Rapport Track Trends V1.0
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../CahierDesCharges.html">
Cahier des charges
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../ManuelUtilisateur.html">
Manuel utilisateur
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../jdb.html">
Journal de bord
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" id="__nav_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_5">
Code
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-label="Code" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Code
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="ConfigurationTool.html">
ConfigurationTool.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverData.html">
DriverData.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
DriverGapToLeaderWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverNameWindow.html">
DriverNameWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverSectorWindow.html">
DriverSectorWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="F1TVEmulator.html">
F1TVEmulator.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Form1.html">
Form1.cs
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Zone.html">
Zone.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DataWrapper.html">
DataWrapper.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverDrsWindow.html">
DriverDrsWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverLapTimeWindow.html">
DriverLapTimeWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverPositionWindow.html">
DriverPositionWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverTyresWindow.html">
DriverTyresWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="OcrImage.html">
OcrImage.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Reader.html">
Reader.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.html">
Settings.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Window.html">
Window.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="recoverCookiesCSV.html">
recoverCookiesCSV.py
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="Table of contents" class="md-nav md-nav--secondary">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="programcs">Program.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Linq</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Threading.Tasks</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Windows.Forms</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">namespace</span><span class="w"> </span><span class="nn">TrackTrends</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="w"> </span><span class="k">internal</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Program</span><span class="w"></span>
</span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="w"> </span><span class="c1">/// The main entry point for the application.</span>
</span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="w"> </span><span class="na">[STAThread]</span><span class="w"></span>
</span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Main</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="w"> </span><span class="n">Application</span><span class="p">.</span><span class="n">EnableVisualStyles</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="w"> </span><span class="n">Application</span><span class="p">.</span><span class="n">SetCompatibleTextRenderingDefault</span><span class="p">(</span><span class="k">false</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="w"> </span><span class="n">Application</span><span class="p">.</span><span class="n">Run</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Main</span><span class="p">());</span><span class="w"></span>
</span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<nav aria-label="Footer" class="md-footer__inner md-grid">
<a aria-label="Previous: Form1.cs" class="md-footer__link md-footer__link--prev" href="Form1.html" rel="prev">
<div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Previous
</span>
Form1.cs
</div>
</div>
</a>
<a aria-label="Next: Settings.Designer.cs" class="md-footer__link md-footer__link--next" href="Settings.Designer.html" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
Settings.Designer.cs
</div>
</div>
<div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"></path></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
©CFPTI Tech2
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" rel="noopener" target="_blank">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
</html>
+2 -12
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="readercs">Reader.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : Reader.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Class used to Read the config file for the OCR</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
-813
View File
@@ -1,813 +0,0 @@
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1" name="viewport"/>
<meta content="Rohmer Maxime" name="author"/>
<link href="../assets/images/favicon.png" rel="icon"/>
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
<title>Settings.Designer.cs - Documentation Track Trends</title>
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a class="md-skip" href="#settingsdesignercs">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav aria-label="Header" class="md-header__inner md-grid">
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Documentation Track Trends
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Settings.Designer.cs
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
</form>
<label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label>
<nav aria-label="Search" class="md-search__options">
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a>
Documentation Track Trends
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../index.html">
Rapport Track Trends V1.0
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../CahierDesCharges.html">
Cahier des charges
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../ManuelUtilisateur.html">
Manuel utilisateur
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../jdb.html">
Journal de bord
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" id="__nav_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_5">
Code
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-label="Code" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Code
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="ConfigurationTool.html">
ConfigurationTool.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverData.html">
DriverData.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
DriverGapToLeaderWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverNameWindow.html">
DriverNameWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverSectorWindow.html">
DriverSectorWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="F1TVEmulator.html">
F1TVEmulator.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Form1.html">
Form1.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Zone.html">
Zone.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DataWrapper.html">
DataWrapper.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverDrsWindow.html">
DriverDrsWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverLapTimeWindow.html">
DriverLapTimeWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverPositionWindow.html">
DriverPositionWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverTyresWindow.html">
DriverTyresWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="OcrImage.html">
OcrImage.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Reader.html">
Reader.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.html">
Settings.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Window.html">
Window.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="recoverCookiesCSV.html">
recoverCookiesCSV.py
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="Table of contents" class="md-nav md-nav--secondary">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="settingsdesignercs">Settings.Designer.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="k">namespace</span><span class="w"> </span><span class="nn">TrackTrends</span><span class="w"></span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="w"> </span><span class="k">partial</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Settings</span><span class="w"></span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="w"> </span><span class="c1">/// Required designer variable.</span>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">ComponentModel</span><span class="p">.</span><span class="n">IContainer</span><span class="w"> </span><span class="n">components</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a>
</span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="w"> </span><span class="c1">/// Clean up any resources being used.</span>
</span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="w"> </span><span class="c1">/// &lt;param name="disposing"&gt;true if managed resources should be disposed; otherwise, false.&lt;/param&gt;</span>
</span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="w"> </span><span class="k">protected</span><span class="w"> </span><span class="k">override</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Dispose</span><span class="p">(</span><span class="kt">bool</span><span class="w"> </span><span class="n">disposing</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">disposing</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="p">(</span><span class="n">components</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="w"> </span><span class="n">components</span><span class="p">.</span><span class="n">Dispose</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="w"> </span><span class="k">base</span><span class="p">.</span><span class="n">Dispose</span><span class="p">(</span><span class="n">disposing</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a>
</span><span id="__span-0-23"><a href="#__codelineno-0-23" id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="w"> </span><span class="cp">#region Windows Form Designer generated code</span><span class="w"></span>
</span><span id="__span-0-24"><a href="#__codelineno-0-24" id="__codelineno-0-24" name="__codelineno-0-24"></a>
</span><span id="__span-0-25"><a href="#__codelineno-0-25" id="__codelineno-0-25" name="__codelineno-0-25"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-26"><a href="#__codelineno-0-26" id="__codelineno-0-26" name="__codelineno-0-26"></a><span class="w"> </span><span class="c1">/// Required method for Designer support - do not modify</span>
</span><span id="__span-0-27"><a href="#__codelineno-0-27" id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="w"> </span><span class="c1">/// the contents of this method with the code editor.</span>
</span><span id="__span-0-28"><a href="#__codelineno-0-28" id="__codelineno-0-28" name="__codelineno-0-28"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-29"><a href="#__codelineno-0-29" id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">InitializeComponent</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-30"><a href="#__codelineno-0-30" id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-31"><a href="#__codelineno-0-31" id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">components</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">ComponentModel</span><span class="p">.</span><span class="n">Container</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-32"><a href="#__codelineno-0-32" id="__codelineno-0-32" name="__codelineno-0-32"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-33"><a href="#__codelineno-0-33" id="__codelineno-0-33" name="__codelineno-0-33"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-34"><a href="#__codelineno-0-34" id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-35"><a href="#__codelineno-0-35" id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">TextBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-36"><a href="#__codelineno-0-36" id="__codelineno-0-36" name="__codelineno-0-36"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-37"><a href="#__codelineno-0-37" id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">ListBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-38"><a href="#__codelineno-0-38" id="__codelineno-0-38" name="__codelineno-0-38"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-39"><a href="#__codelineno-0-39" id="__codelineno-0-39" name="__codelineno-0-39"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-40"><a href="#__codelineno-0-40" id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">TextBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-41"><a href="#__codelineno-0-41" id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-42"><a href="#__codelineno-0-42" id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-43"><a href="#__codelineno-0-43" id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-44"><a href="#__codelineno-0-44" id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-45"><a href="#__codelineno-0-45" id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-46"><a href="#__codelineno-0-46" id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-47"><a href="#__codelineno-0-47" id="__codelineno-0-47" name="__codelineno-0-47"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-48"><a href="#__codelineno-0-48" id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PictureBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-49"><a href="#__codelineno-0-49" id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-50"><a href="#__codelineno-0-50" id="__codelineno-0-50" name="__codelineno-0-50"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-51"><a href="#__codelineno-0-51" id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PictureBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-52"><a href="#__codelineno-0-52" id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-53"><a href="#__codelineno-0-53" id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">ListBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-54"><a href="#__codelineno-0-54" id="__codelineno-0-54" name="__codelineno-0-54"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">TextBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-55"><a href="#__codelineno-0-55" id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-56"><a href="#__codelineno-0-56" id="__codelineno-0-56" name="__codelineno-0-56"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-57"><a href="#__codelineno-0-57" id="__codelineno-0-57" name="__codelineno-0-57"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-58"><a href="#__codelineno-0-58" id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tip1</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">ToolTip</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">components</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-59"><a href="#__codelineno-0-59" id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">SuspendLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-60"><a href="#__codelineno-0-60" id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">SuspendLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-61"><a href="#__codelineno-0-61" id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">SuspendLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-62"><a href="#__codelineno-0-62" id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">ComponentModel</span><span class="p">.</span><span class="n">ISupportInitialize</span><span class="p">)(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">)).</span><span class="n">BeginInit</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-63"><a href="#__codelineno-0-63" id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">SuspendLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-64"><a href="#__codelineno-0-64" id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">ComponentModel</span><span class="p">.</span><span class="n">ISupportInitialize</span><span class="p">)(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">)).</span><span class="n">BeginInit</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-65"><a href="#__codelineno-0-65" id="__codelineno-0-65" name="__codelineno-0-65"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">SuspendLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-66"><a href="#__codelineno-0-66" id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">SuspendLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-67"><a href="#__codelineno-0-67" id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-68"><a href="#__codelineno-0-68" id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="w"> </span><span class="c1">// label1</span>
</span><span id="__span-0-69"><a href="#__codelineno-0-69" id="__codelineno-0-69" name="__codelineno-0-69"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-70"><a href="#__codelineno-0-70" id="__codelineno-0-70" name="__codelineno-0-70"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">.</span><span class="n">AutoSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-71"><a href="#__codelineno-0-71" id="__codelineno-0-71" name="__codelineno-0-71"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">19.8F</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">FontStyle</span><span class="p">.</span><span class="n">Regular</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">GraphicsUnit</span><span class="p">.</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">0</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-72"><a href="#__codelineno-0-72" id="__codelineno-0-72" name="__codelineno-0-72"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-73"><a href="#__codelineno-0-73" id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">12</span><span class="p">,</span><span class="w"> </span><span class="m">14</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-74"><a href="#__codelineno-0-74" id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"label1"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-75"><a href="#__codelineno-0-75" id="__codelineno-0-75" name="__codelineno-0-75"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">309</span><span class="p">,</span><span class="w"> </span><span class="m">43</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-76"><a href="#__codelineno-0-76" id="__codelineno-0-76" name="__codelineno-0-76"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-77"><a href="#__codelineno-0-77" id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Configuration tool"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-78"><a href="#__codelineno-0-78" id="__codelineno-0-78" name="__codelineno-0-78"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-79"><a href="#__codelineno-0-79" id="__codelineno-0-79" name="__codelineno-0-79"></a><span class="w"> </span><span class="c1">// label2</span>
</span><span id="__span-0-80"><a href="#__codelineno-0-80" id="__codelineno-0-80" name="__codelineno-0-80"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-81"><a href="#__codelineno-0-81" id="__codelineno-0-81" name="__codelineno-0-81"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">.</span><span class="n">AutoSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-82"><a href="#__codelineno-0-82" id="__codelineno-0-82" name="__codelineno-0-82"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10.2F</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">FontStyle</span><span class="p">.</span><span class="n">Regular</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">GraphicsUnit</span><span class="p">.</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">0</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-83"><a href="#__codelineno-0-83" id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-84"><a href="#__codelineno-0-84" id="__codelineno-0-84" name="__codelineno-0-84"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="m">25</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-85"><a href="#__codelineno-0-85" id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"label2"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-86"><a href="#__codelineno-0-86" id="__codelineno-0-86" name="__codelineno-0-86"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">132</span><span class="p">,</span><span class="w"> </span><span class="m">23</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-87"><a href="#__codelineno-0-87" id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-88"><a href="#__codelineno-0-88" id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Grand Prix URL"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-89"><a href="#__codelineno-0-89" id="__codelineno-0-89" name="__codelineno-0-89"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-90"><a href="#__codelineno-0-90" id="__codelineno-0-90" name="__codelineno-0-90"></a><span class="w"> </span><span class="c1">// gpbxRaceSettings</span>
</span><span id="__span-0-91"><a href="#__codelineno-0-91" id="__codelineno-0-91" name="__codelineno-0-91"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-92"><a href="#__codelineno-0-92" id="__codelineno-0-92" name="__codelineno-0-92"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">)((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Top</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Right</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-93"><a href="#__codelineno-0-93" id="__codelineno-0-93" name="__codelineno-0-93"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-94"><a href="#__codelineno-0-94" id="__codelineno-0-94" name="__codelineno-0-94"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-95"><a href="#__codelineno-0-95" id="__codelineno-0-95" name="__codelineno-0-95"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">label2</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-96"><a href="#__codelineno-0-96" id="__codelineno-0-96" name="__codelineno-0-96"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10.2F</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">FontStyle</span><span class="p">.</span><span class="n">Regular</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">GraphicsUnit</span><span class="p">.</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">0</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-97"><a href="#__codelineno-0-97" id="__codelineno-0-97" name="__codelineno-0-97"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-98"><a href="#__codelineno-0-98" id="__codelineno-0-98" name="__codelineno-0-98"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">733</span><span class="p">,</span><span class="w"> </span><span class="m">9</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-99"><a href="#__codelineno-0-99" id="__codelineno-0-99" name="__codelineno-0-99"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"gpbxRaceSettings"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-100"><a href="#__codelineno-0-100" id="__codelineno-0-100" name="__codelineno-0-100"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Padding</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Padding</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-101"><a href="#__codelineno-0-101" id="__codelineno-0-101" name="__codelineno-0-101"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">521</span><span class="p">,</span><span class="w"> </span><span class="m">58</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-102"><a href="#__codelineno-0-102" id="__codelineno-0-102" name="__codelineno-0-102"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-103"><a href="#__codelineno-0-103" id="__codelineno-0-103" name="__codelineno-0-103"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">TabStop</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-104"><a href="#__codelineno-0-104" id="__codelineno-0-104" name="__codelineno-0-104"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"RaceSettings"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-105"><a href="#__codelineno-0-105" id="__codelineno-0-105" name="__codelineno-0-105"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">Paint</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PaintEventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">removeBorders</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-106"><a href="#__codelineno-0-106" id="__codelineno-0-106" name="__codelineno-0-106"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-107"><a href="#__codelineno-0-107" id="__codelineno-0-107" name="__codelineno-0-107"></a><span class="w"> </span><span class="c1">// tbxGpUrl</span>
</span><span id="__span-0-108"><a href="#__codelineno-0-108" id="__codelineno-0-108" name="__codelineno-0-108"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-109"><a href="#__codelineno-0-109" id="__codelineno-0-109" name="__codelineno-0-109"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-110"><a href="#__codelineno-0-110" id="__codelineno-0-110" name="__codelineno-0-110"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">BorderStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">BorderStyle</span><span class="p">.</span><span class="n">None</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-111"><a href="#__codelineno-0-111" id="__codelineno-0-111" name="__codelineno-0-111"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10.2F</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">FontStyle</span><span class="p">.</span><span class="n">Regular</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">GraphicsUnit</span><span class="p">.</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">0</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-112"><a href="#__codelineno-0-112" id="__codelineno-0-112" name="__codelineno-0-112"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-113"><a href="#__codelineno-0-113" id="__codelineno-0-113" name="__codelineno-0-113"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">141</span><span class="p">,</span><span class="w"> </span><span class="m">25</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-114"><a href="#__codelineno-0-114" id="__codelineno-0-114" name="__codelineno-0-114"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"tbxGpUrl"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-115"><a href="#__codelineno-0-115" id="__codelineno-0-115" name="__codelineno-0-115"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">367</span><span class="p">,</span><span class="w"> </span><span class="m">22</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-116"><a href="#__codelineno-0-116" id="__codelineno-0-116" name="__codelineno-0-116"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">4</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-117"><a href="#__codelineno-0-117" id="__codelineno-0-117" name="__codelineno-0-117"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl</span><span class="p">.</span><span class="n">TextChanged</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">tbxGpUrl_TextChanged</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-118"><a href="#__codelineno-0-118" id="__codelineno-0-118" name="__codelineno-0-118"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-119"><a href="#__codelineno-0-119" id="__codelineno-0-119" name="__codelineno-0-119"></a><span class="w"> </span><span class="c1">// gpbxDriverList</span>
</span><span id="__span-0-120"><a href="#__codelineno-0-120" id="__codelineno-0-120" name="__codelineno-0-120"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-121"><a href="#__codelineno-0-121" id="__codelineno-0-121" name="__codelineno-0-121"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">)((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Top</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Right</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-122"><a href="#__codelineno-0-122" id="__codelineno-0-122" name="__codelineno-0-122"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-123"><a href="#__codelineno-0-123" id="__codelineno-0-123" name="__codelineno-0-123"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-124"><a href="#__codelineno-0-124" id="__codelineno-0-124" name="__codelineno-0-124"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-125"><a href="#__codelineno-0-125" id="__codelineno-0-125" name="__codelineno-0-125"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-126"><a href="#__codelineno-0-126" id="__codelineno-0-126" name="__codelineno-0-126"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-127"><a href="#__codelineno-0-127" id="__codelineno-0-127" name="__codelineno-0-127"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-128"><a href="#__codelineno-0-128" id="__codelineno-0-128" name="__codelineno-0-128"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-129"><a href="#__codelineno-0-129" id="__codelineno-0-129" name="__codelineno-0-129"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-130"><a href="#__codelineno-0-130" id="__codelineno-0-130" name="__codelineno-0-130"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">995</span><span class="p">,</span><span class="w"> </span><span class="m">73</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-131"><a href="#__codelineno-0-131" id="__codelineno-0-131" name="__codelineno-0-131"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"gpbxDriverList"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-132"><a href="#__codelineno-0-132" id="__codelineno-0-132" name="__codelineno-0-132"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Padding</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Padding</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-133"><a href="#__codelineno-0-133" id="__codelineno-0-133" name="__codelineno-0-133"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">259</span><span class="p">,</span><span class="w"> </span><span class="m">269</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-134"><a href="#__codelineno-0-134" id="__codelineno-0-134" name="__codelineno-0-134"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">3</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-135"><a href="#__codelineno-0-135" id="__codelineno-0-135" name="__codelineno-0-135"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">TabStop</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-136"><a href="#__codelineno-0-136" id="__codelineno-0-136" name="__codelineno-0-136"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"DriverList"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-137"><a href="#__codelineno-0-137" id="__codelineno-0-137" name="__codelineno-0-137"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">Paint</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PaintEventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">removeBorders</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-138"><a href="#__codelineno-0-138" id="__codelineno-0-138" name="__codelineno-0-138"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-139"><a href="#__codelineno-0-139" id="__codelineno-0-139" name="__codelineno-0-139"></a><span class="w"> </span><span class="c1">// lsbDrivers</span>
</span><span id="__span-0-140"><a href="#__codelineno-0-140" id="__codelineno-0-140" name="__codelineno-0-140"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-141"><a href="#__codelineno-0-141" id="__codelineno-0-141" name="__codelineno-0-141"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-142"><a href="#__codelineno-0-142" id="__codelineno-0-142" name="__codelineno-0-142"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">BorderStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">BorderStyle</span><span class="p">.</span><span class="n">None</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-143"><a href="#__codelineno-0-143" id="__codelineno-0-143" name="__codelineno-0-143"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-144"><a href="#__codelineno-0-144" id="__codelineno-0-144" name="__codelineno-0-144"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-145"><a href="#__codelineno-0-145" id="__codelineno-0-145" name="__codelineno-0-145"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">FormattingEnabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-146"><a href="#__codelineno-0-146" id="__codelineno-0-146" name="__codelineno-0-146"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">ItemHeight</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">23</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-147"><a href="#__codelineno-0-147" id="__codelineno-0-147" name="__codelineno-0-147"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">23</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-148"><a href="#__codelineno-0-148" id="__codelineno-0-148" name="__codelineno-0-148"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"lsbDrivers"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-149"><a href="#__codelineno-0-149" id="__codelineno-0-149" name="__codelineno-0-149"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">243</span><span class="p">,</span><span class="w"> </span><span class="m">138</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-150"><a href="#__codelineno-0-150" id="__codelineno-0-150" name="__codelineno-0-150"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbDrivers</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">10</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-151"><a href="#__codelineno-0-151" id="__codelineno-0-151" name="__codelineno-0-151"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-152"><a href="#__codelineno-0-152" id="__codelineno-0-152" name="__codelineno-0-152"></a><span class="w"> </span><span class="c1">// btnRemoveDriver</span>
</span><span id="__span-0-153"><a href="#__codelineno-0-153" id="__codelineno-0-153" name="__codelineno-0-153"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-154"><a href="#__codelineno-0-154" id="__codelineno-0-154" name="__codelineno-0-154"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-155"><a href="#__codelineno-0-155" id="__codelineno-0-155" name="__codelineno-0-155"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-156"><a href="#__codelineno-0-156" id="__codelineno-0-156" name="__codelineno-0-156"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10.2F</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">FontStyle</span><span class="p">.</span><span class="n">Regular</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">GraphicsUnit</span><span class="p">.</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">0</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-157"><a href="#__codelineno-0-157" id="__codelineno-0-157" name="__codelineno-0-157"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-158"><a href="#__codelineno-0-158" id="__codelineno-0-158" name="__codelineno-0-158"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">132</span><span class="p">,</span><span class="w"> </span><span class="m">167</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-159"><a href="#__codelineno-0-159" id="__codelineno-0-159" name="__codelineno-0-159"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnRemoveDriver"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-160"><a href="#__codelineno-0-160" id="__codelineno-0-160" name="__codelineno-0-160"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">121</span><span class="p">,</span><span class="w"> </span><span class="m">62</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-161"><a href="#__codelineno-0-161" id="__codelineno-0-161" name="__codelineno-0-161"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">9</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-162"><a href="#__codelineno-0-162" id="__codelineno-0-162" name="__codelineno-0-162"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Remove"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-163"><a href="#__codelineno-0-163" id="__codelineno-0-163" name="__codelineno-0-163"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-164"><a href="#__codelineno-0-164" id="__codelineno-0-164" name="__codelineno-0-164"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnRemoveDriver_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-165"><a href="#__codelineno-0-165" id="__codelineno-0-165" name="__codelineno-0-165"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-166"><a href="#__codelineno-0-166" id="__codelineno-0-166" name="__codelineno-0-166"></a><span class="w"> </span><span class="c1">// btnAddDriver</span>
</span><span id="__span-0-167"><a href="#__codelineno-0-167" id="__codelineno-0-167" name="__codelineno-0-167"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-168"><a href="#__codelineno-0-168" id="__codelineno-0-168" name="__codelineno-0-168"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-169"><a href="#__codelineno-0-169" id="__codelineno-0-169" name="__codelineno-0-169"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-170"><a href="#__codelineno-0-170" id="__codelineno-0-170" name="__codelineno-0-170"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10.2F</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">FontStyle</span><span class="p">.</span><span class="n">Regular</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">GraphicsUnit</span><span class="p">.</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">0</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-171"><a href="#__codelineno-0-171" id="__codelineno-0-171" name="__codelineno-0-171"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-172"><a href="#__codelineno-0-172" id="__codelineno-0-172" name="__codelineno-0-172"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">167</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-173"><a href="#__codelineno-0-173" id="__codelineno-0-173" name="__codelineno-0-173"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnAddDriver"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-174"><a href="#__codelineno-0-174" id="__codelineno-0-174" name="__codelineno-0-174"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">116</span><span class="p">,</span><span class="w"> </span><span class="m">62</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-175"><a href="#__codelineno-0-175" id="__codelineno-0-175" name="__codelineno-0-175"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">8</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-176"><a href="#__codelineno-0-176" id="__codelineno-0-176" name="__codelineno-0-176"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Add"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-177"><a href="#__codelineno-0-177" id="__codelineno-0-177" name="__codelineno-0-177"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-178"><a href="#__codelineno-0-178" id="__codelineno-0-178" name="__codelineno-0-178"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnAddDriver_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-179"><a href="#__codelineno-0-179" id="__codelineno-0-179" name="__codelineno-0-179"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-180"><a href="#__codelineno-0-180" id="__codelineno-0-180" name="__codelineno-0-180"></a><span class="w"> </span><span class="c1">// tbxDriverName</span>
</span><span id="__span-0-181"><a href="#__codelineno-0-181" id="__codelineno-0-181" name="__codelineno-0-181"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-182"><a href="#__codelineno-0-182" id="__codelineno-0-182" name="__codelineno-0-182"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-183"><a href="#__codelineno-0-183" id="__codelineno-0-183" name="__codelineno-0-183"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">.</span><span class="n">BorderStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">BorderStyle</span><span class="p">.</span><span class="n">None</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-184"><a href="#__codelineno-0-184" id="__codelineno-0-184" name="__codelineno-0-184"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">11F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-185"><a href="#__codelineno-0-185" id="__codelineno-0-185" name="__codelineno-0-185"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-186"><a href="#__codelineno-0-186" id="__codelineno-0-186" name="__codelineno-0-186"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">235</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-187"><a href="#__codelineno-0-187" id="__codelineno-0-187" name="__codelineno-0-187"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"tbxDriverName"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-188"><a href="#__codelineno-0-188" id="__codelineno-0-188" name="__codelineno-0-188"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">243</span><span class="p">,</span><span class="w"> </span><span class="m">24</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-189"><a href="#__codelineno-0-189" id="__codelineno-0-189" name="__codelineno-0-189"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxDriverName</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">7</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-190"><a href="#__codelineno-0-190" id="__codelineno-0-190" name="__codelineno-0-190"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-191"><a href="#__codelineno-0-191" id="__codelineno-0-191" name="__codelineno-0-191"></a><span class="w"> </span><span class="c1">// gpbxPreview</span>
</span><span id="__span-0-192"><a href="#__codelineno-0-192" id="__codelineno-0-192" name="__codelineno-0-192"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-193"><a href="#__codelineno-0-193" id="__codelineno-0-193" name="__codelineno-0-193"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-194"><a href="#__codelineno-0-194" id="__codelineno-0-194" name="__codelineno-0-194"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-195"><a href="#__codelineno-0-195" id="__codelineno-0-195" name="__codelineno-0-195"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-196"><a href="#__codelineno-0-196" id="__codelineno-0-196" name="__codelineno-0-196"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-197"><a href="#__codelineno-0-197" id="__codelineno-0-197" name="__codelineno-0-197"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-198"><a href="#__codelineno-0-198" id="__codelineno-0-198" name="__codelineno-0-198"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-199"><a href="#__codelineno-0-199" id="__codelineno-0-199" name="__codelineno-0-199"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-200"><a href="#__codelineno-0-200" id="__codelineno-0-200" name="__codelineno-0-200"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-201"><a href="#__codelineno-0-201" id="__codelineno-0-201" name="__codelineno-0-201"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-202"><a href="#__codelineno-0-202" id="__codelineno-0-202" name="__codelineno-0-202"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Flat</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-203"><a href="#__codelineno-0-203" id="__codelineno-0-203" name="__codelineno-0-203"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-204"><a href="#__codelineno-0-204" id="__codelineno-0-204" name="__codelineno-0-204"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-205"><a href="#__codelineno-0-205" id="__codelineno-0-205" name="__codelineno-0-205"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">18</span><span class="p">,</span><span class="w"> </span><span class="m">73</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-206"><a href="#__codelineno-0-206" id="__codelineno-0-206" name="__codelineno-0-206"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"gpbxPreview"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-207"><a href="#__codelineno-0-207" id="__codelineno-0-207" name="__codelineno-0-207"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Padding</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Padding</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-208"><a href="#__codelineno-0-208" id="__codelineno-0-208" name="__codelineno-0-208"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">968</span><span class="p">,</span><span class="w"> </span><span class="m">608</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-209"><a href="#__codelineno-0-209" id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">4</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-210"><a href="#__codelineno-0-210" id="__codelineno-0-210" name="__codelineno-0-210"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">TabStop</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-211"><a href="#__codelineno-0-211" id="__codelineno-0-211" name="__codelineno-0-211"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Preview"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-212"><a href="#__codelineno-0-212" id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">Paint</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PaintEventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">removeBorders</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-213"><a href="#__codelineno-0-213" id="__codelineno-0-213" name="__codelineno-0-213"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-214"><a href="#__codelineno-0-214" id="__codelineno-0-214" name="__codelineno-0-214"></a><span class="w"> </span><span class="c1">// lblWindowsRemaining</span>
</span><span id="__span-0-215"><a href="#__codelineno-0-215" id="__codelineno-0-215" name="__codelineno-0-215"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-216"><a href="#__codelineno-0-216" id="__codelineno-0-216" name="__codelineno-0-216"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">.</span><span class="n">AutoSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-217"><a href="#__codelineno-0-217" id="__codelineno-0-217" name="__codelineno-0-217"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">Transparent</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-218"><a href="#__codelineno-0-218" id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-219"><a href="#__codelineno-0-219" id="__codelineno-0-219" name="__codelineno-0-219"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">215</span><span class="p">,</span><span class="w"> </span><span class="m">82</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-220"><a href="#__codelineno-0-220" id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"lblWindowsRemaining"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-221"><a href="#__codelineno-0-221" id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">183</span><span class="p">,</span><span class="w"> </span><span class="m">23</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-222"><a href="#__codelineno-0-222" id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">6</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-223"><a href="#__codelineno-0-223" id="__codelineno-0-223" name="__codelineno-0-223"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowsRemaining</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"7 windows remaining"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-224"><a href="#__codelineno-0-224" id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-225"><a href="#__codelineno-0-225" id="__codelineno-0-225" name="__codelineno-0-225"></a><span class="w"> </span><span class="c1">// btnResetDriver</span>
</span><span id="__span-0-226"><a href="#__codelineno-0-226" id="__codelineno-0-226" name="__codelineno-0-226"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-227"><a href="#__codelineno-0-227" id="__codelineno-0-227" name="__codelineno-0-227"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">)((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Top</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Right</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-228"><a href="#__codelineno-0-228" id="__codelineno-0-228" name="__codelineno-0-228"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-229"><a href="#__codelineno-0-229" id="__codelineno-0-229" name="__codelineno-0-229"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-230"><a href="#__codelineno-0-230" id="__codelineno-0-230" name="__codelineno-0-230"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-231"><a href="#__codelineno-0-231" id="__codelineno-0-231" name="__codelineno-0-231"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-232"><a href="#__codelineno-0-232" id="__codelineno-0-232" name="__codelineno-0-232"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">748</span><span class="p">,</span><span class="w"> </span><span class="m">20</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-233"><a href="#__codelineno-0-233" id="__codelineno-0-233" name="__codelineno-0-233"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnResetDriver"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-234"><a href="#__codelineno-0-234" id="__codelineno-0-234" name="__codelineno-0-234"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">211</span><span class="p">,</span><span class="w"> </span><span class="m">33</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-235"><a href="#__codelineno-0-235" id="__codelineno-0-235" name="__codelineno-0-235"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-236"><a href="#__codelineno-0-236" id="__codelineno-0-236" name="__codelineno-0-236"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Reset the emulator"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-237"><a href="#__codelineno-0-237" id="__codelineno-0-237" name="__codelineno-0-237"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-238"><a href="#__codelineno-0-238" id="__codelineno-0-238" name="__codelineno-0-238"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnResetDriver_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-239"><a href="#__codelineno-0-239" id="__codelineno-0-239" name="__codelineno-0-239"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-240"><a href="#__codelineno-0-240" id="__codelineno-0-240" name="__codelineno-0-240"></a><span class="w"> </span><span class="c1">// btnRefresh</span>
</span><span id="__span-0-241"><a href="#__codelineno-0-241" id="__codelineno-0-241" name="__codelineno-0-241"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-242"><a href="#__codelineno-0-242" id="__codelineno-0-242" name="__codelineno-0-242"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">)((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Top</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Right</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-243"><a href="#__codelineno-0-243" id="__codelineno-0-243" name="__codelineno-0-243"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-244"><a href="#__codelineno-0-244" id="__codelineno-0-244" name="__codelineno-0-244"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-245"><a href="#__codelineno-0-245" id="__codelineno-0-245" name="__codelineno-0-245"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-246"><a href="#__codelineno-0-246" id="__codelineno-0-246" name="__codelineno-0-246"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">549</span><span class="p">,</span><span class="w"> </span><span class="m">20</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-247"><a href="#__codelineno-0-247" id="__codelineno-0-247" name="__codelineno-0-247"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnRefresh"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-248"><a href="#__codelineno-0-248" id="__codelineno-0-248" name="__codelineno-0-248"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">193</span><span class="p">,</span><span class="w"> </span><span class="m">33</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-249"><a href="#__codelineno-0-249" id="__codelineno-0-249" name="__codelineno-0-249"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-250"><a href="#__codelineno-0-250" id="__codelineno-0-250" name="__codelineno-0-250"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Start the browser"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-251"><a href="#__codelineno-0-251" id="__codelineno-0-251" name="__codelineno-0-251"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-252"><a href="#__codelineno-0-252" id="__codelineno-0-252" name="__codelineno-0-252"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnRefresh_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-253"><a href="#__codelineno-0-253" id="__codelineno-0-253" name="__codelineno-0-253"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-254"><a href="#__codelineno-0-254" id="__codelineno-0-254" name="__codelineno-0-254"></a><span class="w"> </span><span class="c1">// lblWindowPointsRemaining</span>
</span><span id="__span-0-255"><a href="#__codelineno-0-255" id="__codelineno-0-255" name="__codelineno-0-255"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-256"><a href="#__codelineno-0-256" id="__codelineno-0-256" name="__codelineno-0-256"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="p">.</span><span class="n">AutoSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-257"><a href="#__codelineno-0-257" id="__codelineno-0-257" name="__codelineno-0-257"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-258"><a href="#__codelineno-0-258" id="__codelineno-0-258" name="__codelineno-0-258"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">215</span><span class="p">,</span><span class="w"> </span><span class="m">59</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-259"><a href="#__codelineno-0-259" id="__codelineno-0-259" name="__codelineno-0-259"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"lblWindowPointsRemaining"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-260"><a href="#__codelineno-0-260" id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">163</span><span class="p">,</span><span class="w"> </span><span class="m">23</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-261"><a href="#__codelineno-0-261" id="__codelineno-0-261" name="__codelineno-0-261"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">4</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-262"><a href="#__codelineno-0-262" id="__codelineno-0-262" name="__codelineno-0-262"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblWindowPointsRemaining</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"0 points remaining"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-263"><a href="#__codelineno-0-263" id="__codelineno-0-263" name="__codelineno-0-263"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-264"><a href="#__codelineno-0-264" id="__codelineno-0-264" name="__codelineno-0-264"></a><span class="w"> </span><span class="c1">// lblZonePointsRemaning</span>
</span><span id="__span-0-265"><a href="#__codelineno-0-265" id="__codelineno-0-265" name="__codelineno-0-265"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-266"><a href="#__codelineno-0-266" id="__codelineno-0-266" name="__codelineno-0-266"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="p">.</span><span class="n">AutoSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-267"><a href="#__codelineno-0-267" id="__codelineno-0-267" name="__codelineno-0-267"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-268"><a href="#__codelineno-0-268" id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">19</span><span class="p">,</span><span class="w"> </span><span class="m">59</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-269"><a href="#__codelineno-0-269" id="__codelineno-0-269" name="__codelineno-0-269"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"lblZonePointsRemaning"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-270"><a href="#__codelineno-0-270" id="__codelineno-0-270" name="__codelineno-0-270"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">163</span><span class="p">,</span><span class="w"> </span><span class="m">23</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-271"><a href="#__codelineno-0-271" id="__codelineno-0-271" name="__codelineno-0-271"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">5</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-272"><a href="#__codelineno-0-272" id="__codelineno-0-272" name="__codelineno-0-272"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lblZonePointsRemaning</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"0 points remaining"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-273"><a href="#__codelineno-0-273" id="__codelineno-0-273" name="__codelineno-0-273"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-274"><a href="#__codelineno-0-274" id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="w"> </span><span class="c1">// btnCreateWindow</span>
</span><span id="__span-0-275"><a href="#__codelineno-0-275" id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-276"><a href="#__codelineno-0-276" id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-277"><a href="#__codelineno-0-277" id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-278"><a href="#__codelineno-0-278" id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-279"><a href="#__codelineno-0-279" id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-280"><a href="#__codelineno-0-280" id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">213</span><span class="p">,</span><span class="w"> </span><span class="m">23</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-281"><a href="#__codelineno-0-281" id="__codelineno-0-281" name="__codelineno-0-281"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnCreateWindow"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-282"><a href="#__codelineno-0-282" id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">201</span><span class="p">,</span><span class="w"> </span><span class="m">33</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-283"><a href="#__codelineno-0-283" id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-284"><a href="#__codelineno-0-284" id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Create the windows"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-285"><a href="#__codelineno-0-285" id="__codelineno-0-285" name="__codelineno-0-285"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-286"><a href="#__codelineno-0-286" id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnCreateWindow_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-287"><a href="#__codelineno-0-287" id="__codelineno-0-287" name="__codelineno-0-287"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-288"><a href="#__codelineno-0-288" id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="w"> </span><span class="c1">// pbxPreview</span>
</span><span id="__span-0-289"><a href="#__codelineno-0-289" id="__codelineno-0-289" name="__codelineno-0-289"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-290"><a href="#__codelineno-0-290" id="__codelineno-0-290" name="__codelineno-0-290"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-291"><a href="#__codelineno-0-291" id="__codelineno-0-291" name="__codelineno-0-291"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">62</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-292"><a href="#__codelineno-0-292" id="__codelineno-0-292" name="__codelineno-0-292"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"pbxPreview"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-293"><a href="#__codelineno-0-293" id="__codelineno-0-293" name="__codelineno-0-293"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">950</span><span class="p">,</span><span class="w"> </span><span class="m">540</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-294"><a href="#__codelineno-0-294" id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">SizeMode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PictureBoxSizeMode</span><span class="p">.</span><span class="n">StretchImage</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-295"><a href="#__codelineno-0-295" id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-296"><a href="#__codelineno-0-296" id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">TabStop</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-297"><a href="#__codelineno-0-297" id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxMain_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-298"><a href="#__codelineno-0-298" id="__codelineno-0-298" name="__codelineno-0-298"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">.</span><span class="n">MouseClick</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">MouseEventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxMain_MouseClick</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-299"><a href="#__codelineno-0-299" id="__codelineno-0-299" name="__codelineno-0-299"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-300"><a href="#__codelineno-0-300" id="__codelineno-0-300" name="__codelineno-0-300"></a><span class="w"> </span><span class="c1">// btnCreatZone</span>
</span><span id="__span-0-301"><a href="#__codelineno-0-301" id="__codelineno-0-301" name="__codelineno-0-301"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-302"><a href="#__codelineno-0-302" id="__codelineno-0-302" name="__codelineno-0-302"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-303"><a href="#__codelineno-0-303" id="__codelineno-0-303" name="__codelineno-0-303"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-304"><a href="#__codelineno-0-304" id="__codelineno-0-304" name="__codelineno-0-304"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-305"><a href="#__codelineno-0-305" id="__codelineno-0-305" name="__codelineno-0-305"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-306"><a href="#__codelineno-0-306" id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">6</span><span class="p">,</span><span class="w"> </span><span class="m">23</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-307"><a href="#__codelineno-0-307" id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnCreatZone"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-308"><a href="#__codelineno-0-308" id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">201</span><span class="p">,</span><span class="w"> </span><span class="m">33</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-309"><a href="#__codelineno-0-309" id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-310"><a href="#__codelineno-0-310" id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Create the main zone"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-311"><a href="#__codelineno-0-311" id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-312"><a href="#__codelineno-0-312" id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnCreatZone_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-313"><a href="#__codelineno-0-313" id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-314"><a href="#__codelineno-0-314" id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="w"> </span><span class="c1">// gpbxWindowPreview</span>
</span><span id="__span-0-315"><a href="#__codelineno-0-315" id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-316"><a href="#__codelineno-0-316" id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">)((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Bottom</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Left</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-317"><a href="#__codelineno-0-317" id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-318"><a href="#__codelineno-0-318" id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-319"><a href="#__codelineno-0-319" id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-320"><a href="#__codelineno-0-320" id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-321"><a href="#__codelineno-0-321" id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-322"><a href="#__codelineno-0-322" id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">18</span><span class="p">,</span><span class="w"> </span><span class="m">688</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-323"><a href="#__codelineno-0-323" id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"gpbxWindowPreview"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-324"><a href="#__codelineno-0-324" id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Padding</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Padding</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-325"><a href="#__codelineno-0-325" id="__codelineno-0-325" name="__codelineno-0-325"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">1237</span><span class="p">,</span><span class="w"> </span><span class="m">88</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-326"><a href="#__codelineno-0-326" id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">5</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-327"><a href="#__codelineno-0-327" id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">TabStop</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-328"><a href="#__codelineno-0-328" id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"DriverZonePreview"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-329"><a href="#__codelineno-0-329" id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">Paint</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PaintEventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">removeBorders</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-330"><a href="#__codelineno-0-330" id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-331"><a href="#__codelineno-0-331" id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="w"> </span><span class="c1">// pbxWindowPreview</span>
</span><span id="__span-0-332"><a href="#__codelineno-0-332" id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-333"><a href="#__codelineno-0-333" id="__codelineno-0-333" name="__codelineno-0-333"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-334"><a href="#__codelineno-0-334" id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">6</span><span class="p">,</span><span class="w"> </span><span class="m">30</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-335"><a href="#__codelineno-0-335" id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"pbxWindowPreview"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-336"><a href="#__codelineno-0-336" id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">1225</span><span class="p">,</span><span class="w"> </span><span class="m">50</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-337"><a href="#__codelineno-0-337" id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">SizeMode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PictureBoxSizeMode</span><span class="p">.</span><span class="n">StretchImage</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-338"><a href="#__codelineno-0-338" id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-339"><a href="#__codelineno-0-339" id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">TabStop</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-340"><a href="#__codelineno-0-340" id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxDriverZone_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-341"><a href="#__codelineno-0-341" id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">.</span><span class="n">MouseClick</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">MouseEventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxDriverZone_MouseClick</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-342"><a href="#__codelineno-0-342" id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-343"><a href="#__codelineno-0-343" id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="w"> </span><span class="c1">// btnLoadPreset</span>
</span><span id="__span-0-344"><a href="#__codelineno-0-344" id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-345"><a href="#__codelineno-0-345" id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-346"><a href="#__codelineno-0-346" id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-347"><a href="#__codelineno-0-347" id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-348"><a href="#__codelineno-0-348" id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">213</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-349"><a href="#__codelineno-0-349" id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnLoadPreset"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-350"><a href="#__codelineno-0-350" id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">243</span><span class="p">,</span><span class="w"> </span><span class="m">40</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-351"><a href="#__codelineno-0-351" id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">10</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-352"><a href="#__codelineno-0-352" id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Load the preset"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-353"><a href="#__codelineno-0-353" id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-354"><a href="#__codelineno-0-354" id="__codelineno-0-354" name="__codelineno-0-354"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-355"><a href="#__codelineno-0-355" id="__codelineno-0-355" name="__codelineno-0-355"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-356"><a href="#__codelineno-0-356" id="__codelineno-0-356" name="__codelineno-0-356"></a><span class="w"> </span><span class="c1">// lsbPresets</span>
</span><span id="__span-0-357"><a href="#__codelineno-0-357" id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-358"><a href="#__codelineno-0-358" id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-359"><a href="#__codelineno-0-359" id="__codelineno-0-359" name="__codelineno-0-359"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">BorderStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">BorderStyle</span><span class="p">.</span><span class="n">None</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-360"><a href="#__codelineno-0-360" id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-361"><a href="#__codelineno-0-361" id="__codelineno-0-361" name="__codelineno-0-361"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">252</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-362"><a href="#__codelineno-0-362" id="__codelineno-0-362" name="__codelineno-0-362"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">FormattingEnabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-363"><a href="#__codelineno-0-363" id="__codelineno-0-363" name="__codelineno-0-363"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">ItemHeight</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">23</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-364"><a href="#__codelineno-0-364" id="__codelineno-0-364" name="__codelineno-0-364"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">23</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-365"><a href="#__codelineno-0-365" id="__codelineno-0-365" name="__codelineno-0-365"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"lsbPresets"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-366"><a href="#__codelineno-0-366" id="__codelineno-0-366" name="__codelineno-0-366"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">243</span><span class="p">,</span><span class="w"> </span><span class="m">138</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-367"><a href="#__codelineno-0-367" id="__codelineno-0-367" name="__codelineno-0-367"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">8</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-368"><a href="#__codelineno-0-368" id="__codelineno-0-368" name="__codelineno-0-368"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">.</span><span class="n">SelectedIndexChanged</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets_SelectedIndexChanged</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-369"><a href="#__codelineno-0-369" id="__codelineno-0-369" name="__codelineno-0-369"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-370"><a href="#__codelineno-0-370" id="__codelineno-0-370" name="__codelineno-0-370"></a><span class="w"> </span><span class="c1">// tbxPresetName</span>
</span><span id="__span-0-371"><a href="#__codelineno-0-371" id="__codelineno-0-371" name="__codelineno-0-371"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-372"><a href="#__codelineno-0-372" id="__codelineno-0-372" name="__codelineno-0-372"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-373"><a href="#__codelineno-0-373" id="__codelineno-0-373" name="__codelineno-0-373"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">.</span><span class="n">BorderStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">BorderStyle</span><span class="p">.</span><span class="n">None</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-374"><a href="#__codelineno-0-374" id="__codelineno-0-374" name="__codelineno-0-374"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">11F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-375"><a href="#__codelineno-0-375" id="__codelineno-0-375" name="__codelineno-0-375"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-376"><a href="#__codelineno-0-376" id="__codelineno-0-376" name="__codelineno-0-376"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">303</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-377"><a href="#__codelineno-0-377" id="__codelineno-0-377" name="__codelineno-0-377"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"tbxPresetName"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-378"><a href="#__codelineno-0-378" id="__codelineno-0-378" name="__codelineno-0-378"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">243</span><span class="p">,</span><span class="w"> </span><span class="m">24</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-379"><a href="#__codelineno-0-379" id="__codelineno-0-379" name="__codelineno-0-379"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">7</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-380"><a href="#__codelineno-0-380" id="__codelineno-0-380" name="__codelineno-0-380"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-381"><a href="#__codelineno-0-381" id="__codelineno-0-381" name="__codelineno-0-381"></a><span class="w"> </span><span class="c1">// btnSavePreset</span>
</span><span id="__span-0-382"><a href="#__codelineno-0-382" id="__codelineno-0-382" name="__codelineno-0-382"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-383"><a href="#__codelineno-0-383" id="__codelineno-0-383" name="__codelineno-0-383"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-384"><a href="#__codelineno-0-384" id="__codelineno-0-384" name="__codelineno-0-384"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-385"><a href="#__codelineno-0-385" id="__codelineno-0-385" name="__codelineno-0-385"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-386"><a href="#__codelineno-0-386" id="__codelineno-0-386" name="__codelineno-0-386"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">259</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-387"><a href="#__codelineno-0-387" id="__codelineno-0-387" name="__codelineno-0-387"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnSavePreset"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-388"><a href="#__codelineno-0-388" id="__codelineno-0-388" name="__codelineno-0-388"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">243</span><span class="p">,</span><span class="w"> </span><span class="m">40</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-389"><a href="#__codelineno-0-389" id="__codelineno-0-389" name="__codelineno-0-389"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">7</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-390"><a href="#__codelineno-0-390" id="__codelineno-0-390" name="__codelineno-0-390"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Save current preset"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-391"><a href="#__codelineno-0-391" id="__codelineno-0-391" name="__codelineno-0-391"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-392"><a href="#__codelineno-0-392" id="__codelineno-0-392" name="__codelineno-0-392"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-393"><a href="#__codelineno-0-393" id="__codelineno-0-393" name="__codelineno-0-393"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-394"><a href="#__codelineno-0-394" id="__codelineno-0-394" name="__codelineno-0-394"></a><span class="w"> </span><span class="c1">// gpbxPresets</span>
</span><span id="__span-0-395"><a href="#__codelineno-0-395" id="__codelineno-0-395" name="__codelineno-0-395"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-396"><a href="#__codelineno-0-396" id="__codelineno-0-396" name="__codelineno-0-396"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">)((</span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Top</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Right</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-397"><a href="#__codelineno-0-397" id="__codelineno-0-397" name="__codelineno-0-397"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">79</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-398"><a href="#__codelineno-0-398" id="__codelineno-0-398" name="__codelineno-0-398"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnSavePreset</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-399"><a href="#__codelineno-0-399" id="__codelineno-0-399" name="__codelineno-0-399"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-400"><a href="#__codelineno-0-400" id="__codelineno-0-400" name="__codelineno-0-400"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">tbxPresetName</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-401"><a href="#__codelineno-0-401" id="__codelineno-0-401" name="__codelineno-0-401"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnLoadPreset</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-402"><a href="#__codelineno-0-402" id="__codelineno-0-402" name="__codelineno-0-402"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">lsbPresets</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-403"><a href="#__codelineno-0-403" id="__codelineno-0-403" name="__codelineno-0-403"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-404"><a href="#__codelineno-0-404" id="__codelineno-0-404" name="__codelineno-0-404"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">10F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-405"><a href="#__codelineno-0-405" id="__codelineno-0-405" name="__codelineno-0-405"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-406"><a href="#__codelineno-0-406" id="__codelineno-0-406" name="__codelineno-0-406"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">995</span><span class="p">,</span><span class="w"> </span><span class="m">348</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-407"><a href="#__codelineno-0-407" id="__codelineno-0-407" name="__codelineno-0-407"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"gpbxPresets"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-408"><a href="#__codelineno-0-408" id="__codelineno-0-408" name="__codelineno-0-408"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Padding</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Padding</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-409"><a href="#__codelineno-0-409" id="__codelineno-0-409" name="__codelineno-0-409"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">259</span><span class="p">,</span><span class="w"> </span><span class="m">333</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-410"><a href="#__codelineno-0-410" id="__codelineno-0-410" name="__codelineno-0-410"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">6</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-411"><a href="#__codelineno-0-411" id="__codelineno-0-411" name="__codelineno-0-411"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">TabStop</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-412"><a href="#__codelineno-0-412" id="__codelineno-0-412" name="__codelineno-0-412"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Presets"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-413"><a href="#__codelineno-0-413" id="__codelineno-0-413" name="__codelineno-0-413"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">Paint</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PaintEventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">removeBorders</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-414"><a href="#__codelineno-0-414" id="__codelineno-0-414" name="__codelineno-0-414"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-415"><a href="#__codelineno-0-415" id="__codelineno-0-415" name="__codelineno-0-415"></a><span class="w"> </span><span class="c1">// btnDeletePreset</span>
</span><span id="__span-0-416"><a href="#__codelineno-0-416" id="__codelineno-0-416" name="__codelineno-0-416"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-417"><a href="#__codelineno-0-417" id="__codelineno-0-417" name="__codelineno-0-417"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-418"><a href="#__codelineno-0-418" id="__codelineno-0-418" name="__codelineno-0-418"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-419"><a href="#__codelineno-0-419" id="__codelineno-0-419" name="__codelineno-0-419"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">White</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-420"><a href="#__codelineno-0-420" id="__codelineno-0-420" name="__codelineno-0-420"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Point</span><span class="p">(</span><span class="m">10</span><span class="p">,</span><span class="w"> </span><span class="m">167</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-421"><a href="#__codelineno-0-421" id="__codelineno-0-421" name="__codelineno-0-421"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"btnDeletePreset"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-422"><a href="#__codelineno-0-422" id="__codelineno-0-422" name="__codelineno-0-422"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">243</span><span class="p">,</span><span class="w"> </span><span class="m">40</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-423"><a href="#__codelineno-0-423" id="__codelineno-0-423" name="__codelineno-0-423"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">TabIndex</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">11</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-424"><a href="#__codelineno-0-424" id="__codelineno-0-424" name="__codelineno-0-424"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Delete the preset"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-425"><a href="#__codelineno-0-425" id="__codelineno-0-425" name="__codelineno-0-425"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">UseVisualStyleBackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-426"><a href="#__codelineno-0-426" id="__codelineno-0-426" name="__codelineno-0-426"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">btnDeletePreset_Click</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-427"><a href="#__codelineno-0-427" id="__codelineno-0-427" name="__codelineno-0-427"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-428"><a href="#__codelineno-0-428" id="__codelineno-0-428" name="__codelineno-0-428"></a><span class="w"> </span><span class="c1">// Settings</span>
</span><span id="__span-0-429"><a href="#__codelineno-0-429" id="__codelineno-0-429" name="__codelineno-0-429"></a><span class="w"> </span><span class="c1">// </span>
</span><span id="__span-0-430"><a href="#__codelineno-0-430" id="__codelineno-0-430" name="__codelineno-0-430"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">AutoScaleDimensions</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">SizeF</span><span class="p">(</span><span class="m">8F</span><span class="p">,</span><span class="w"> </span><span class="m">19F</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-431"><a href="#__codelineno-0-431" id="__codelineno-0-431" name="__codelineno-0-431"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">AutoScaleMode</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">AutoScaleMode</span><span class="p">.</span><span class="n">Font</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-432"><a href="#__codelineno-0-432" id="__codelineno-0-432" name="__codelineno-0-432"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">BackColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Color</span><span class="p">.</span><span class="n">FromArgb</span><span class="p">(((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))),</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="p">)(((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">51</span><span class="p">)))));</span><span class="w"></span>
</span><span id="__span-0-433"><a href="#__codelineno-0-433" id="__codelineno-0-433" name="__codelineno-0-433"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">ClientSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">1266</span><span class="p">,</span><span class="w"> </span><span class="m">788</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-434"><a href="#__codelineno-0-434" id="__codelineno-0-434" name="__codelineno-0-434"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-435"><a href="#__codelineno-0-435" id="__codelineno-0-435" name="__codelineno-0-435"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-436"><a href="#__codelineno-0-436" id="__codelineno-0-436" name="__codelineno-0-436"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-437"><a href="#__codelineno-0-437" id="__codelineno-0-437" name="__codelineno-0-437"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-438"><a href="#__codelineno-0-438" id="__codelineno-0-438" name="__codelineno-0-438"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">label1</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-439"><a href="#__codelineno-0-439" id="__codelineno-0-439" name="__codelineno-0-439"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-440"><a href="#__codelineno-0-440" id="__codelineno-0-440" name="__codelineno-0-440"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Font</span><span class="p">(</span><span class="s">"Microsoft YaHei UI"</span><span class="p">,</span><span class="w"> </span><span class="m">7.8F</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">FontStyle</span><span class="p">.</span><span class="n">Regular</span><span class="p">,</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">GraphicsUnit</span><span class="p">.</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">byte</span><span class="p">)(</span><span class="m">0</span><span class="p">)));</span><span class="w"></span>
</span><span id="__span-0-441"><a href="#__codelineno-0-441" id="__codelineno-0-441" name="__codelineno-0-441"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Margin</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Padding</span><span class="p">(</span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="m">4</span><span class="p">,</span><span class="w"> </span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="m">4</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-442"><a href="#__codelineno-0-442" id="__codelineno-0-442" name="__codelineno-0-442"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">MinimumSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Size</span><span class="p">(</span><span class="m">1284</span><span class="p">,</span><span class="w"> </span><span class="m">835</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-443"><a href="#__codelineno-0-443" id="__codelineno-0-443" name="__codelineno-0-443"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Settings"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-444"><a href="#__codelineno-0-444" id="__codelineno-0-444" name="__codelineno-0-444"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">StartPosition</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FormStartPosition</span><span class="p">.</span><span class="n">CenterScreen</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-445"><a href="#__codelineno-0-445" id="__codelineno-0-445" name="__codelineno-0-445"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Settings"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-446"><a href="#__codelineno-0-446" id="__codelineno-0-446" name="__codelineno-0-446"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">FormClosing</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">FormClosingEventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">Settings_FormClosing</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-447"><a href="#__codelineno-0-447" id="__codelineno-0-447" name="__codelineno-0-447"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">Resize</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">EventHandler</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">Settings_Resize</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-448"><a href="#__codelineno-0-448" id="__codelineno-0-448" name="__codelineno-0-448"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">ResumeLayout</span><span class="p">(</span><span class="k">false</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-449"><a href="#__codelineno-0-449" id="__codelineno-0-449" name="__codelineno-0-449"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxRaceSettings</span><span class="p">.</span><span class="n">PerformLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-450"><a href="#__codelineno-0-450" id="__codelineno-0-450" name="__codelineno-0-450"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">ResumeLayout</span><span class="p">(</span><span class="k">false</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-451"><a href="#__codelineno-0-451" id="__codelineno-0-451" name="__codelineno-0-451"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxDriverList</span><span class="p">.</span><span class="n">PerformLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-452"><a href="#__codelineno-0-452" id="__codelineno-0-452" name="__codelineno-0-452"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">ResumeLayout</span><span class="p">(</span><span class="k">false</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-453"><a href="#__codelineno-0-453" id="__codelineno-0-453" name="__codelineno-0-453"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPreview</span><span class="p">.</span><span class="n">PerformLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-454"><a href="#__codelineno-0-454" id="__codelineno-0-454" name="__codelineno-0-454"></a><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">ComponentModel</span><span class="p">.</span><span class="n">ISupportInitialize</span><span class="p">)(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxPreview</span><span class="p">)).</span><span class="n">EndInit</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-455"><a href="#__codelineno-0-455" id="__codelineno-0-455" name="__codelineno-0-455"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxWindowPreview</span><span class="p">.</span><span class="n">ResumeLayout</span><span class="p">(</span><span class="k">false</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-456"><a href="#__codelineno-0-456" id="__codelineno-0-456" name="__codelineno-0-456"></a><span class="w"> </span><span class="p">((</span><span class="n">System</span><span class="p">.</span><span class="n">ComponentModel</span><span class="p">.</span><span class="n">ISupportInitialize</span><span class="p">)(</span><span class="k">this</span><span class="p">.</span><span class="n">pbxWindowPreview</span><span class="p">)).</span><span class="n">EndInit</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-457"><a href="#__codelineno-0-457" id="__codelineno-0-457" name="__codelineno-0-457"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">ResumeLayout</span><span class="p">(</span><span class="k">false</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-458"><a href="#__codelineno-0-458" id="__codelineno-0-458" name="__codelineno-0-458"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">gpbxPresets</span><span class="p">.</span><span class="n">PerformLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-459"><a href="#__codelineno-0-459" id="__codelineno-0-459" name="__codelineno-0-459"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">ResumeLayout</span><span class="p">(</span><span class="k">false</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-460"><a href="#__codelineno-0-460" id="__codelineno-0-460" name="__codelineno-0-460"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">PerformLayout</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-461"><a href="#__codelineno-0-461" id="__codelineno-0-461" name="__codelineno-0-461"></a>
</span><span id="__span-0-462"><a href="#__codelineno-0-462" id="__codelineno-0-462" name="__codelineno-0-462"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-463"><a href="#__codelineno-0-463" id="__codelineno-0-463" name="__codelineno-0-463"></a>
</span><span id="__span-0-464"><a href="#__codelineno-0-464" id="__codelineno-0-464" name="__codelineno-0-464"></a><span class="w"> </span><span class="cp">#endregion</span><span class="w"></span>
</span><span id="__span-0-465"><a href="#__codelineno-0-465" id="__codelineno-0-465" name="__codelineno-0-465"></a>
</span><span id="__span-0-466"><a href="#__codelineno-0-466" id="__codelineno-0-466" name="__codelineno-0-466"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="w"> </span><span class="n">label1</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-467"><a href="#__codelineno-0-467" id="__codelineno-0-467" name="__codelineno-0-467"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="w"> </span><span class="n">label2</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-468"><a href="#__codelineno-0-468" id="__codelineno-0-468" name="__codelineno-0-468"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="w"> </span><span class="n">gpbxRaceSettings</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-469"><a href="#__codelineno-0-469" id="__codelineno-0-469" name="__codelineno-0-469"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">TextBox</span><span class="w"> </span><span class="n">tbxGpUrl</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-470"><a href="#__codelineno-0-470" id="__codelineno-0-470" name="__codelineno-0-470"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="w"> </span><span class="n">gpbxDriverList</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-471"><a href="#__codelineno-0-471" id="__codelineno-0-471" name="__codelineno-0-471"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">ListBox</span><span class="w"> </span><span class="n">lsbDrivers</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-472"><a href="#__codelineno-0-472" id="__codelineno-0-472" name="__codelineno-0-472"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnRemoveDriver</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-473"><a href="#__codelineno-0-473" id="__codelineno-0-473" name="__codelineno-0-473"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnAddDriver</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-474"><a href="#__codelineno-0-474" id="__codelineno-0-474" name="__codelineno-0-474"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">TextBox</span><span class="w"> </span><span class="n">tbxDriverName</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-475"><a href="#__codelineno-0-475" id="__codelineno-0-475" name="__codelineno-0-475"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="w"> </span><span class="n">gpbxPreview</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-476"><a href="#__codelineno-0-476" id="__codelineno-0-476" name="__codelineno-0-476"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PictureBox</span><span class="w"> </span><span class="n">pbxPreview</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-477"><a href="#__codelineno-0-477" id="__codelineno-0-477" name="__codelineno-0-477"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="w"> </span><span class="n">gpbxWindowPreview</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-478"><a href="#__codelineno-0-478" id="__codelineno-0-478" name="__codelineno-0-478"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">PictureBox</span><span class="w"> </span><span class="n">pbxWindowPreview</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-479"><a href="#__codelineno-0-479" id="__codelineno-0-479" name="__codelineno-0-479"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnCreateWindow</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-480"><a href="#__codelineno-0-480" id="__codelineno-0-480" name="__codelineno-0-480"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnCreatZone</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-481"><a href="#__codelineno-0-481" id="__codelineno-0-481" name="__codelineno-0-481"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">ListBox</span><span class="w"> </span><span class="n">lsbPresets</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-482"><a href="#__codelineno-0-482" id="__codelineno-0-482" name="__codelineno-0-482"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">TextBox</span><span class="w"> </span><span class="n">tbxPresetName</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-483"><a href="#__codelineno-0-483" id="__codelineno-0-483" name="__codelineno-0-483"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnSavePreset</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-484"><a href="#__codelineno-0-484" id="__codelineno-0-484" name="__codelineno-0-484"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="w"> </span><span class="n">lblWindowsRemaining</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-485"><a href="#__codelineno-0-485" id="__codelineno-0-485" name="__codelineno-0-485"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="w"> </span><span class="n">lblZonePointsRemaning</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-486"><a href="#__codelineno-0-486" id="__codelineno-0-486" name="__codelineno-0-486"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Label</span><span class="w"> </span><span class="n">lblWindowPointsRemaining</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-487"><a href="#__codelineno-0-487" id="__codelineno-0-487" name="__codelineno-0-487"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnRefresh</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-488"><a href="#__codelineno-0-488" id="__codelineno-0-488" name="__codelineno-0-488"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnResetDriver</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-489"><a href="#__codelineno-0-489" id="__codelineno-0-489" name="__codelineno-0-489"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnLoadPreset</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-490"><a href="#__codelineno-0-490" id="__codelineno-0-490" name="__codelineno-0-490"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">GroupBox</span><span class="w"> </span><span class="n">gpbxPresets</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-491"><a href="#__codelineno-0-491" id="__codelineno-0-491" name="__codelineno-0-491"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">Button</span><span class="w"> </span><span class="n">btnDeletePreset</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-492"><a href="#__codelineno-0-492" id="__codelineno-0-492" name="__codelineno-0-492"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Windows</span><span class="p">.</span><span class="n">Forms</span><span class="p">.</span><span class="n">ToolTip</span><span class="w"> </span><span class="n">tip1</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-493"><a href="#__codelineno-0-493" id="__codelineno-0-493" name="__codelineno-0-493"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-494"><a href="#__codelineno-0-494" id="__codelineno-0-494" name="__codelineno-0-494"></a><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<nav aria-label="Footer" class="md-footer__inner md-grid">
<a aria-label="Previous: Program.cs" class="md-footer__link md-footer__link--prev" href="Program.html" rel="prev">
<div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Previous
</span>
Program.cs
</div>
</div>
</a>
<a aria-label="Next: SqliteStorage.cs" class="md-footer__link md-footer__link--next" href="SqliteStorage.html" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
SqliteStorage.cs
</div>
</div>
<div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"></path></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
©CFPTI Tech2
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" rel="noopener" target="_blank">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
</html>
+581 -481
View File
File diff suppressed because it is too large Load Diff
+4 -14
View File
@@ -169,16 +169,6 @@
Form1.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="SqliteStorage.html">
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="sqlitestoragecs">SqliteStorage.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/08/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : SqliteStorage.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Class that controls the sqlite database</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
@@ -528,7 +518,7 @@
</main>
<footer class="md-footer">
<nav aria-label="Footer" class="md-footer__inner md-grid">
<a aria-label="Previous: Settings.Designer.cs" class="md-footer__link md-footer__link--prev" href="Settings.Designer.html" rel="prev">
<a aria-label="Previous: Form1.cs" class="md-footer__link md-footer__link--prev" href="Form1.html" rel="prev">
<div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</div>
@@ -537,7 +527,7 @@
<span class="md-footer__direction">
Previous
</span>
Settings.Designer.cs
Form1.cs
</div>
</div>
</a>
+2 -12
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="windowcs">Window.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : Window.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Default Window object that is mainly expected to be inherited.</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
+2 -12
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -260,10 +250,10 @@
<article class="md-content__inner md-typeset">
<h1 id="zonecs">Zone.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : Zone.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Class that contains all the methods and infos for a zone. This is designed to be potentially be inherited.</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
-10
View File
@@ -170,16 +170,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

-10
View File
@@ -294,16 +294,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/SqliteStorage.html">
SqliteStorage.cs
</a>
+1087 -473
View File
File diff suppressed because it is too large Load Diff
+66 -33
View File
@@ -337,6 +337,11 @@
Mercredi 7 Juin
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#jeudi-8-juin-2023">
Jeudi 8 Juin 2023
</a>
</li>
</ul>
</nav>
</li>
@@ -388,16 +393,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -679,6 +674,11 @@
Mercredi 7 Juin
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#jeudi-8-juin-2023">
Jeudi 8 Juin 2023
</a>
</li>
</ul>
</nav>
</div>
@@ -3311,7 +3311,8 @@ Pour detecter un arrêt je pense que la meilleure manière est de regarder si le
<h2 id="mercredi-7-juin">Mercredi 7 Juin</h2>
<p>La je suis en train de parler de l'optimisation de mon application et je viens de me rappeller qu'il manquait des methodes avec de la paralellisation alors je vais les convertir avant de continuer la doc.</p>
<p>En fait je viens de me rendre compte qu'aucunes de mes methodes de filtres n'étaient en parralel... Je ne sais pas si jaurai le temps de le faire aujourd'hui en fait</p>
<div class="language-Csharp highlight"><pre><span></span><code><span id="__span-39-1"><a href="#__codelineno-39-1" id="__codelineno-39-1" name="__codelineno-39-1"></a><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="nf">Grayscale</span><span class="p">(</span><span class="n">Bitmap</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">)</span><span class="w"></span>
<p>Voici le code avant la paralellisation : </p>
<div class="language-Csharp highlight"><pre><span></span><code><span id="__span-39-1"><a href="#__codelineno-39-1" id="__codelineno-39-1" name="__codelineno-39-1"></a><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="nf">VanishOxyAction</span><span class="p">(</span><span class="n">Bitmap</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-39-2"><a href="#__codelineno-39-2" id="__codelineno-39-2" name="__codelineno-39-2"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-39-3"><a href="#__codelineno-39-3" id="__codelineno-39-3" name="__codelineno-39-3"></a><span class="w"> </span><span class="n">Rectangle</span><span class="w"> </span><span class="n">rect</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Rectangle</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">Width</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">Height</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-4"><a href="#__codelineno-39-4" id="__codelineno-39-4" name="__codelineno-39-4"></a><span class="w"> </span><span class="n">BitmapData</span><span class="w"> </span><span class="n">bmpData</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">LockBits</span><span class="p">(</span><span class="n">rect</span><span class="p">,</span><span class="w"> </span><span class="n">ImageLockMode</span><span class="p">.</span><span class="n">ReadWrite</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">PixelFormat</span><span class="p">);</span><span class="w"></span>
@@ -3327,30 +3328,62 @@ Pour detecter un arrêt je pense que la meilleure manière est de regarder si le
</span><span id="__span-39-14"><a href="#__codelineno-39-14" id="__codelineno-39-14" name="__codelineno-39-14"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-39-15"><a href="#__codelineno-39-15" id="__codelineno-39-15" name="__codelineno-39-15"></a><span class="w"> </span><span class="kt">byte</span><span class="p">*</span><span class="w"> </span><span class="n">pixel</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">bytesPerPixel</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-16"><a href="#__codelineno-39-16" id="__codelineno-39-16" name="__codelineno-39-16"></a>
</span><span id="__span-39-17"><a href="#__codelineno-39-17" id="__codelineno-39-17" name="__codelineno-39-17"></a><span class="w"> </span><span class="kt">byte</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-18"><a href="#__codelineno-39-18" id="__codelineno-39-18" name="__codelineno-39-18"></a><span class="w"> </span><span class="kt">byte</span><span class="w"> </span><span class="n">green</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-19"><a href="#__codelineno-39-19" id="__codelineno-39-19" name="__codelineno-39-19"></a><span class="w"> </span><span class="kt">byte</span><span class="w"> </span><span class="n">red</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-17"><a href="#__codelineno-39-17" id="__codelineno-39-17" name="__codelineno-39-17"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-18"><a href="#__codelineno-39-18" id="__codelineno-39-18" name="__codelineno-39-18"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">green</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-19"><a href="#__codelineno-39-19" id="__codelineno-39-19" name="__codelineno-39-19"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">red</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-20"><a href="#__codelineno-39-20" id="__codelineno-39-20" name="__codelineno-39-20"></a>
</span><span id="__span-39-21"><a href="#__codelineno-39-21" id="__codelineno-39-21" name="__codelineno-39-21"></a><span class="w"> </span><span class="c1">//Those a specific values to correct the weights so its more pleasing to the human eye</span>
</span><span id="__span-39-22"><a href="#__codelineno-39-22" id="__codelineno-39-22" name="__codelineno-39-22"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">gray</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)(</span><span class="n">red</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">0.3</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">green</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">0.59</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">0.11</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-23"><a href="#__codelineno-39-23" id="__codelineno-39-23" name="__codelineno-39-23"></a>
</span><span id="__span-39-24"><a href="#__codelineno-39-24" id="__codelineno-39-24" name="__codelineno-39-24"></a><span class="w"> </span><span class="c1">//This is not a proper treshold method but it is helping the sobel edge detection</span>
</span><span id="__span-39-25"><a href="#__codelineno-39-25" id="__codelineno-39-25" name="__codelineno-39-25"></a><span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="n">gray</span><span class="w"> </span><span class="p">&lt;=</span><span class="w"> </span><span class="n">F1TV_BACKGROUND_TRESHOLD</span><span class="p">.</span><span class="n">R</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-39-26"><a href="#__codelineno-39-26" id="__codelineno-39-26" name="__codelineno-39-26"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-39-27"><a href="#__codelineno-39-27" id="__codelineno-39-27" name="__codelineno-39-27"></a><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-28"><a href="#__codelineno-39-28" id="__codelineno-39-28" name="__codelineno-39-28"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-29"><a href="#__codelineno-39-29" id="__codelineno-39-29" name="__codelineno-39-29"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-39-30"><a href="#__codelineno-39-30" id="__codelineno-39-30" name="__codelineno-39-30"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-39-31"><a href="#__codelineno-39-31" id="__codelineno-39-31" name="__codelineno-39-31"></a><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="n">gray</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-32"><a href="#__codelineno-39-32" id="__codelineno-39-32" name="__codelineno-39-32"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-33"><a href="#__codelineno-39-33" id="__codelineno-39-33" name="__codelineno-39-33"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-34"><a href="#__codelineno-39-34" id="__codelineno-39-34" name="__codelineno-39-34"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-35"><a href="#__codelineno-39-35" id="__codelineno-39-35" name="__codelineno-39-35"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-36"><a href="#__codelineno-39-36" id="__codelineno-39-36" name="__codelineno-39-36"></a><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">UnlockBits</span><span class="p">(</span><span class="n">bmpData</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-37"><a href="#__codelineno-39-37" id="__codelineno-39-37" name="__codelineno-39-37"></a>
</span><span id="__span-39-38"><a href="#__codelineno-39-38" id="__codelineno-39-38" name="__codelineno-39-38"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-39"><a href="#__codelineno-39-39" id="__codelineno-39-39" name="__codelineno-39-39"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-21"><a href="#__codelineno-39-21" id="__codelineno-39-21" name="__codelineno-39-21"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">max</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">blue</span><span class="p">,</span><span class="w"> </span><span class="n">green</span><span class="p">),</span><span class="w"> </span><span class="n">red</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-22"><a href="#__codelineno-39-22" id="__codelineno-39-22" name="__codelineno-39-22"></a>
</span><span id="__span-39-23"><a href="#__codelineno-39-23" id="__codelineno-39-23" name="__codelineno-39-23"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">max</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">255</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-39-24"><a href="#__codelineno-39-24" id="__codelineno-39-24" name="__codelineno-39-24"></a><span class="w"> </span><span class="n">max</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">255</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-25"><a href="#__codelineno-39-25" id="__codelineno-39-25" name="__codelineno-39-25"></a>
</span><span id="__span-39-26"><a href="#__codelineno-39-26" id="__codelineno-39-26" name="__codelineno-39-26"></a><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="n">max</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-27"><a href="#__codelineno-39-27" id="__codelineno-39-27" name="__codelineno-39-27"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-28"><a href="#__codelineno-39-28" id="__codelineno-39-28" name="__codelineno-39-28"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-29"><a href="#__codelineno-39-29" id="__codelineno-39-29" name="__codelineno-39-29"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-30"><a href="#__codelineno-39-30" id="__codelineno-39-30" name="__codelineno-39-30"></a><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">UnlockBits</span><span class="p">(</span><span class="n">bmpData</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-31"><a href="#__codelineno-39-31" id="__codelineno-39-31" name="__codelineno-39-31"></a>
</span><span id="__span-39-32"><a href="#__codelineno-39-32" id="__codelineno-39-32" name="__codelineno-39-32"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-33"><a href="#__codelineno-39-33" id="__codelineno-39-33" name="__codelineno-39-33"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
<p>Et voici à quoi ca ressemble avec la paralellisation :</p>
<div class="language-Csharp highlight"><pre><span></span><code><span id="__span-40-1"><a href="#__codelineno-40-1" id="__codelineno-40-1" name="__codelineno-40-1"></a><span class="k">public</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="nf">VanishOxyAction</span><span class="p">(</span><span class="n">Bitmap</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-40-2"><a href="#__codelineno-40-2" id="__codelineno-40-2" name="__codelineno-40-2"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-40-3"><a href="#__codelineno-40-3" id="__codelineno-40-3" name="__codelineno-40-3"></a><span class="w"> </span><span class="k">unsafe</span><span class="w"></span>
</span><span id="__span-40-4"><a href="#__codelineno-40-4" id="__codelineno-40-4" name="__codelineno-40-4"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-40-5"><a href="#__codelineno-40-5" id="__codelineno-40-5" name="__codelineno-40-5"></a><span class="w"> </span><span class="n">BitmapData</span><span class="w"> </span><span class="n">bitmapData</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">LockBits</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Rectangle</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">Width</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">Height</span><span class="p">),</span><span class="w"> </span><span class="n">ImageLockMode</span><span class="p">.</span><span class="n">ReadWrite</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">PixelFormat</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-40-6"><a href="#__codelineno-40-6" id="__codelineno-40-6" name="__codelineno-40-6"></a>
</span><span id="__span-40-7"><a href="#__codelineno-40-7" id="__codelineno-40-7" name="__codelineno-40-7"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">bytesPerPixel</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Bitmap</span><span class="p">.</span><span class="n">GetPixelFormatSize</span><span class="p">(</span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">PixelFormat</span><span class="p">)</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">8</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-8"><a href="#__codelineno-40-8" id="__codelineno-40-8" name="__codelineno-40-8"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">heightInPixels</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">bitmapData</span><span class="p">.</span><span class="n">Height</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-9"><a href="#__codelineno-40-9" id="__codelineno-40-9" name="__codelineno-40-9"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">widthInBytes</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">bitmapData</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">bytesPerPixel</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-10"><a href="#__codelineno-40-10" id="__codelineno-40-10" name="__codelineno-40-10"></a><span class="w"> </span><span class="kt">byte</span><span class="p">*</span><span class="w"> </span><span class="n">PtrFirstPixel</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">byte</span><span class="p">*)</span><span class="n">bitmapData</span><span class="p">.</span><span class="n">Scan0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-11"><a href="#__codelineno-40-11" id="__codelineno-40-11" name="__codelineno-40-11"></a>
</span><span id="__span-40-12"><a href="#__codelineno-40-12" id="__codelineno-40-12" name="__codelineno-40-12"></a><span class="w"> </span><span class="n">Parallel</span><span class="p">.</span><span class="n">For</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">heightInPixels</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"></span>
</span><span id="__span-40-13"><a href="#__codelineno-40-13" id="__codelineno-40-13" name="__codelineno-40-13"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-40-14"><a href="#__codelineno-40-14" id="__codelineno-40-14" name="__codelineno-40-14"></a><span class="w"> </span><span class="kt">byte</span><span class="p">*</span><span class="w"> </span><span class="n">currentLine</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">PtrFirstPixel</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="p">(</span><span class="n">y</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">bitmapData</span><span class="p">.</span><span class="n">Stride</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-40-15"><a href="#__codelineno-40-15" id="__codelineno-40-15" name="__codelineno-40-15"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">widthInBytes</span><span class="p">;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">bytesPerPixel</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-40-16"><a href="#__codelineno-40-16" id="__codelineno-40-16" name="__codelineno-40-16"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-40-17"><a href="#__codelineno-40-17" id="__codelineno-40-17" name="__codelineno-40-17"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-40-18"><a href="#__codelineno-40-18" id="__codelineno-40-18" name="__codelineno-40-18"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">green</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">1</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-40-19"><a href="#__codelineno-40-19" id="__codelineno-40-19" name="__codelineno-40-19"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">red</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">2</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-40-20"><a href="#__codelineno-40-20" id="__codelineno-40-20" name="__codelineno-40-20"></a>
</span><span id="__span-40-21"><a href="#__codelineno-40-21" id="__codelineno-40-21" name="__codelineno-40-21"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">max</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">blue</span><span class="p">,</span><span class="w"> </span><span class="n">green</span><span class="p">),</span><span class="w"> </span><span class="n">red</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-40-22"><a href="#__codelineno-40-22" id="__codelineno-40-22" name="__codelineno-40-22"></a>
</span><span id="__span-40-23"><a href="#__codelineno-40-23" id="__codelineno-40-23" name="__codelineno-40-23"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">max</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">255</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-40-24"><a href="#__codelineno-40-24" id="__codelineno-40-24" name="__codelineno-40-24"></a><span class="w"> </span><span class="n">max</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">255</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-25"><a href="#__codelineno-40-25" id="__codelineno-40-25" name="__codelineno-40-25"></a>
</span><span id="__span-40-26"><a href="#__codelineno-40-26" id="__codelineno-40-26" name="__codelineno-40-26"></a><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">2</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="n">max</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-27"><a href="#__codelineno-40-27" id="__codelineno-40-27" name="__codelineno-40-27"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-40-28"><a href="#__codelineno-40-28" id="__codelineno-40-28" name="__codelineno-40-28"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-40-29"><a href="#__codelineno-40-29" id="__codelineno-40-29" name="__codelineno-40-29"></a><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">UnlockBits</span><span class="p">(</span><span class="n">bitmapData</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-40-30"><a href="#__codelineno-40-30" id="__codelineno-40-30" name="__codelineno-40-30"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-40-31"><a href="#__codelineno-40-31" id="__codelineno-40-31" name="__codelineno-40-31"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-32"><a href="#__codelineno-40-32" id="__codelineno-40-32" name="__codelineno-40-32"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
<p>Les performances n'ont pas beaucoup augmenté mais au moins comme ca c'est fait</p>
<h2 id="jeudi-8-juin-2023">Jeudi 8 Juin 2023</h2>
<p>Aujourd'hui, le but est de finir la documentation et de mettre les derniers commentaires dans le code et faire une première release en BETA.</p>
<p>Pour ce genre de travail un peu pénible je conseille une bonne playlist de phonk. Ca permet d'écrire en rythme.</p>
</article>
</div>
</div>
+20497 -17614
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
-266
View File
@@ -1,266 +0,0 @@
# ConfigurationTool.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : ConfigurationTool.cs
/// Brief : Class that contains all the methods used to create config files for the main programm
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tesseract;
using System.IO;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace TrackTrends
{
public class ConfigurationTool
{
public Zone MainZone;
public const int NUMBER_OF_DRIVERS = 20;
public const int NUMBER_OF_ZONES = 9;
public const string CONFIGS_FOLDER_NAME = "./Presets/";
/// <summary>
/// Creates the configuration tool. It can only be created if you already have the dimensions of the main zone
/// </summary>
/// <param name="fullImage">The full image coming from the F1TV Data Channel</param>
/// <param name="mainZoneDimensions">The dimensions of the zone where all the drivers data are situated</param>
public ConfigurationTool(Bitmap fullImage, Rectangle mainZoneDimensions)
{
MainZone = new Zone(fullImage, mainZoneDimensions,"Main");
AutoCalibrate();
}
/// <summary>
/// Resets the main zone
/// </summary>
public void ResetMainZone()
{
MainZone.ResetZones();
}
/// <summary>
/// Reset the windows
/// </summary>
public void ResetWindows()
{
MainZone.ResetWindows();
}
/// <summary>
/// Save the current config in a JSON file stored in /Presets/
/// </summary>
/// <param name="drivers">A list of all the drivers in the GP. IMPORTANT, they need to ALL be mentionned or the program wont be able to detect the missing ones and will F up everything</param>
/// <param name="configName">The name the config should have</param>
public void SaveToJson(List<string> drivers, string configName)
{
string JSON = "";
JsonObject jsonFileObject = new JsonObject();
//Creates the mainZone object
JsonObject mainZoneObject = new JsonObject();
mainZoneObject.Add("x",MainZone.Bounds.X);
mainZoneObject.Add("y",MainZone.Bounds.Y);
mainZoneObject.Add("width",MainZone.Bounds.Width);
mainZoneObject.Add("height",MainZone.Bounds.Height);
JsonArray driverZonesArray = new JsonArray();
//Creates all the subzones that contain driver infos
int DriverID = 0;
foreach (Zone driverZone in MainZone.Zones)
{
DriverID++;
JsonObject driverZoneObject = new JsonObject();
driverZoneObject.Add("name","Driver"+DriverID);
driverZoneObject.Add("x", driverZone.Bounds.X);
driverZoneObject.Add("y", driverZone.Bounds.Y);
driverZoneObject.Add("width", driverZone.Bounds.Width);
driverZoneObject.Add("height", driverZone.Bounds.Height);
JsonArray windowsArray = new JsonArray();
JsonObject windowObject = new JsonObject();
//Creates all the windows of the current driver zone
//Note : We store ALL the windows and zones in the JSON because they are not spaced exactly the same on the main zone
foreach (Window window in driverZone.Windows)
{
windowObject.Add(window.Name, new JsonObject {
{ "x", window.Bounds.X },
{ "y", window.Bounds.Y },
{ "width", window.Bounds.Width },
{ "height", window.Bounds.Height }
});
}
windowsArray.Add(windowObject);
driverZoneObject.Add("Windows",windowsArray);
driverZonesArray.Add(driverZoneObject);
}
mainZoneObject.Add("DriverZones",driverZonesArray);
JsonArray driversArray = new JsonArray();
foreach (string driver in drivers)
{
driversArray.Add(driver);
}
mainZoneObject.Add("Drivers",driversArray);
jsonFileObject.Add("Main",mainZoneObject);
JSON = jsonFileObject.ToString();
//Saving the file
string path = CONFIGS_FOLDER_NAME + configName;
if (File.Exists(path + ".json"))
{
//We need to create a new name
int count = 2;
while (File.Exists(path + "_" + count + ".json"))
{
count++;
}
path += "_" + count + ".json";
}
else
{
path += ".json";
}
File.WriteAllText(path, JSON);
}
/// <summary>
/// Adds a window in the windows list
/// Be carefull of the order. It cant be random or it will crash. The programm expect the first to be position, second Gap to leader etc...
/// </summary>
/// <param name="rectangles">The bounds of the window</param>
public void AddWindows(List<Rectangle> rectangles)
{
foreach (Zone driverZone in MainZone.Zones)
{
Bitmap zoneImage = driverZone.ZoneImage;
for (int i = 1; i <= rectangles.Count; i++)
{
switch (i)
{
case 1:
//First zone should be the driver's Position
driverZone.AddWindow(new DriverPositionWindow(driverZone.ZoneImage, rectangles[i - 1], false));
break;
case 2:
//Second zone should be the Gap to leader
driverZone.AddWindow(new DriverGapToLeaderWindow(driverZone.ZoneImage, rectangles[i - 1], false));
break;
case 3:
//Third zone should be the driver's Lap Time
driverZone.AddWindow(new DriverLapTimeWindow(driverZone.ZoneImage, rectangles[i - 1], false));
break;
case 4:
//Fourth zone should be the driver's DRS status
driverZone.AddWindow(new DriverDrsWindow(driverZone.ZoneImage, rectangles[i - 1], false));
break;
case 5:
//Fifth zone should be the driver's Tyre's informations
driverZone.AddWindow(new DriverTyresWindow(driverZone.ZoneImage, rectangles[i - 1], false));
break;
case 6:
//Sixth zone should be the driver's Name
driverZone.AddWindow(new DriverNameWindow(driverZone.ZoneImage, rectangles[i - 1], false));
break;
case 7:
//Seventh zone should be the driver's First Sector
driverZone.AddWindow(new DriverSectorWindow(driverZone.ZoneImage, rectangles[i - 1], 1, false));
break;
case 8:
//Zone number eight should be the driver's Second Sector
driverZone.AddWindow(new DriverSectorWindow(driverZone.ZoneImage, rectangles[i - 1], 2, false));
break;
case 9:
//Zone number nine should be the driver's Position Sector
driverZone.AddWindow(new DriverSectorWindow(driverZone.ZoneImage, rectangles[i - 1], 3, false));
break;
}
}
}
}
/// <summary>
/// This will automatically create all the driver zones at the correct places if the main zone has been weel positionned
/// You cant just divide the image by the number of pilots or it will be messy and inconsistent at the end (Garbage in Garbage Out)
/// </summary>
public void AutoCalibrate()
{
List<Rectangle> detectedText = new List<Rectangle>();
List<Zone> zones = new List<Zone>();
TesseractEngine engine = new TesseractEngine(Window.TESS_DATA_FOLDER.FullName, "eng", EngineMode.Default);
Image image = MainZone.ZoneImage;
var tessImage = Pix.LoadFromMemory(Window.ImageToByte(image));
Page page = engine.Process(tessImage);
//Runs a quick OCR detection. Not to detect any content but just to detect where is all the text positionned.
//For each row it decides the best Zone location and adds it to the Driver zone list
using (var iter = page.GetIterator())
{
iter.Begin();
do
{
Rect boundingBox;
if (iter.TryGetBoundingBox(PageIteratorLevel.Word, out boundingBox))
{
//We remove all the rectangles that are definitely too big
if (boundingBox.Height < image.Height / NUMBER_OF_DRIVERS)
{
//Now we add a filter to only get the boxes in the right because they are much more reliable in size
if (boundingBox.X1 > image.Width / 2)
{
//Now we check if an other square box has been found roughly in the same y axis
bool match = false;
//The tolerance is roughly half the size that a window will be
int tolerance = (image.Height / NUMBER_OF_DRIVERS) / 2;
foreach (Rectangle rect in detectedText)
{
if (rect.Y > boundingBox.Y1 - tolerance && rect.Y < boundingBox.Y1 + tolerance)
{
//There already is a rectangle in this line
match = true;
}
}
//if nothing matched we can add it
if (!match)
detectedText.Add(new Rectangle(boundingBox.X1, boundingBox.Y1, boundingBox.Width, boundingBox.Height));
}
}
}
} while (iter.Next(PageIteratorLevel.Word));
}
//DEBUG
int i = 1;
foreach (Rectangle Rectangle in detectedText)
{
Rectangle windowRectangle;
Size windowSize = new Size(image.Width, image.Height / NUMBER_OF_DRIVERS);
Point windowLocation = new Point(0, (Rectangle.Y + Rectangle.Height / 2) - windowSize.Height / 2);
windowRectangle = new Rectangle(windowLocation, windowSize);
//We add the driver zones
Zone driverZone = new Zone(MainZone.ZoneImage, windowRectangle, "DriverZone");
MainZone.AddZone(driverZone);
//driverZone.ZoneImage.Save("Driver" + i+".png");
i++;
}
}
}
}
```
-384
View File
@@ -1,384 +0,0 @@
# DataWrapper.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DataWrapper.cs
/// Brief : Class that is used to interface between the main Form (vue) and the Storage (wich is a class that wraps the sqlite database, so the model) its almost MVC :D
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
namespace TrackTrends
{
internal class DataWrapper
{
private Reader Reader;
private SqliteStorage Storage;
List<List<DriverData>> LiveDriverDataLogs = new List<List<DriverData>>();
//Note : It could be usefull to get the mainForm at the start of the programm and not have to take it in half of the methods.
/// <summary>
/// Constructs a new DataWrapper. It needs the config file so it can create a Reader, It also needs a first screenshot for the same reason
/// </summary>
/// <param name="configFile">The JSON config file that is created by the configuration tool</param>
/// <param name="screenshot">A screenshot of the </param>
public DataWrapper(string configFile, Bitmap screenshot)
{
Reader = new Reader(configFile, screenshot, true);
//The Storage is here and on the Reader. It seems bad but it is ok as we dont use it at all to insert data and are only using it here to read some. The reader takes care of the inserts (Note: We could technically do both here but I did not find it usefull to transfer everything here)
Storage = Reader.Storage;
}
/// <summary>
/// Refreshes the controller so it has the latest driver datas (Be sure to call it everytime you need to use any other method and expects the data to be up to date)
/// </summary>
/// <returns>Error code, 0 is success, 1 is not (Note: Maybe it could be interesting in the future to add some more error handling here)</returns>
public int Refresh()
{
LiveDriverDataLogs.Add(Reader.Decode(Reader.MainZones, Reader.Drivers));
if (LiveDriverDataLogs.Count > 0)
return 0;
return 1;
}
/// <summary>
/// Changes the image to the newest screenshot in all of the zones and windows
/// </summary>
/// <param name="image">The new screenshot to put everywhere (Do not mix resolutions)</param>
public void ChangeImage(Bitmap image)
{
Reader.ChangeImage(image);
}
/// <summary>
/// Gets all the data from one driver and also displays into the given panel the last five laps (or less if its the sart of the race) Note: Its responsive :D
/// </summary>
/// <param name="driverName">The name of the driver (should not be case sensitive but it MUST already exist in the first list that has been inserted into the DB)</param>
/// <param name="lastFiveLapsPanel">The pannel where you want the five last laps to be displayed</param>
/// <param name="form1">The Main form.</param>
/// <returns></returns>
public DriverData GetFullDriverData(string driverName, Panel lastFiveLapsPanel, Main form1)
{
//Note : I know that its a bad idea to ask the Form in this method and some others because it means that it wont work with any main form. And to that Ill say that... your right !
DriverData result = new DriverData();
if (LiveDriverDataLogs.Count > 0)
{
//Searches the most recent live data from the given driverName
foreach (DriverData data in LiveDriverDataLogs[LiveDriverDataLogs.Count - 1])
{
if (data.Name == driverName)
result = data;
}
if (result.Name != "")
{
//Recovers and displays the last five laps from the driver
lastFiveLapsPanel.Controls.Clear();
Size labelDimensions = new Size(lastFiveLapsPanel.Width, lastFiveLapsPanel.Height / 5);
List<(int LapTime, int Lap)> lapsInfos = Storage.GetDriverLaptimes(driverName, 5);
int id = 0;
foreach ((int LapTime, int Lap) lapData in lapsInfos)
{
//Hardcodes the new button.
//Note : It could be smart to have like a default button for all the methods to use without needing to rewrite everything.
Button newButton = new Button();
lastFiveLapsPanel.Controls.Add(newButton);
newButton.Name = driverName + "_" + lapData.Lap;
newButton.Text = Reader.ConvertMsToTime(lapData.LapTime);
newButton.Size = labelDimensions;
newButton.FlatStyle = FlatStyle.Popup;
newButton.Click += form1.btnLapTime_Click;
newButton.Location = new Point(0, id * newButton.Height);
id++;
}
}
}
return result;
}
/// <summary>
/// Runs trough every drivers live data to recover the drivers that are close to each others
/// </summary>
/// <param name="pnlBattles">The control that will host the displayed battles</param>
/// <param name="form1">The main form. It needs to have a method called 'btnDriver_Click' so it can reads the buttons clicks</param>
public void DisplayBattles(Panel pnlBattles,Main form1)
{
DriverData oldDriver = null;
List<(DriverData d1, DriverData d2, int gap)> battles = new List<(DriverData d1, DriverData d2, int gap)>();
//Search trough all the drivers and finds the one battling
foreach (DriverData driver in LiveDriverDataLogs[LiveDriverDataLogs.Count - 1])
{
if (oldDriver != null && driver.Position != -1 && oldDriver.Position != -1)
{
if (driver.GapToLeader < oldDriver.GapToLeader)
{
//There is a problem with the drivers gaps
}
else
{
int gap = driver.GapToLeader - oldDriver.GapToLeader;
//3000ms is 3s. If drivers are that close then they are definitely in battle. If they are farther then maybe not
if (gap <= 3000)
{
battles.Add((oldDriver, driver, gap));
}
}
oldDriver = driver;
}
else
{
oldDriver = driver;
}
}
//We will only display 4 battles max
int maxBattles = 4;
if (battles.Count > 0)
{
pnlBattles.Controls.Clear();
int maxUiHeight = Math.Max(pnlBattles.Height / maxBattles, pnlBattles.Height / battles.Count);
int id = 0;
foreach ((DriverData d1, DriverData d2, int gap) battle in battles)
{
if(id < maxBattles)
{
//*hardcoding* the different controls that needs to be added to the panel.
//Note : this stuff could totally be handled by the Form with method returning a list of the drivers. It was just easier for me at the time to code it this way but its not the prettiest
Button btnFirstDriver = new Button();
Button btnSecondDriver = new Button();
Label lblGap = new Label();
pnlBattles.Controls.Add(btnFirstDriver);
pnlBattles.Controls.Add(lblGap);
pnlBattles.Controls.Add(btnSecondDriver);
btnFirstDriver.Anchor = AnchorStyles.Left | AnchorStyles.Top;
btnSecondDriver.Anchor = AnchorStyles.Right | AnchorStyles.Top;
lblGap.Anchor = AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top;
lblGap.TextAlign = ContentAlignment.MiddleCenter;
lblGap.Font = new Font(lblGap.Font.FontFamily, 15);
btnFirstDriver.Click += form1.btnDriver_Click;
btnSecondDriver.Click += form1.btnDriver_Click;
btnFirstDriver.FlatStyle = FlatStyle.Popup;
btnSecondDriver.FlatStyle = FlatStyle.Popup;
lblGap.FlatStyle = FlatStyle.Popup;
btnFirstDriver.Size = new Size(pnlBattles.Width / 3, maxUiHeight);
btnSecondDriver.Size = new Size(pnlBattles.Width / 3, maxUiHeight);
lblGap.Size = new Size(pnlBattles.Width / 3, maxUiHeight);
btnFirstDriver.Location = new Point(pnlBattles.Width / 3 * 0, id * maxUiHeight);
lblGap.Location = new Point(pnlBattles.Width / 3 * 1, id * maxUiHeight);
btnSecondDriver.Location = new Point(pnlBattles.Width / 3 * 2, id * maxUiHeight);
btnFirstDriver.Text = battle.d1.Name;
lblGap.Text = "+ " + Reader.ConvertMsToTime(battle.gap);
if (battle.gap <= 2000)
lblGap.ForeColor = Color.Yellow;
if (battle.gap <= 1000)
lblGap.ForeColor = Color.Green;
btnSecondDriver.Text = battle.d2.Name;
btnFirstDriver.Name = battle.d1.Name + "_" + id;
lblGap.Name = "lbl_Gap_" + id;
btnSecondDriver.Name = battle.d2.Name + "_" + id;
}
else
{
break;
}
id++;
}
}
}
/// <summary>
/// Searches the fastest and slowests drivers and displays them in the given panels
/// </summary>
/// <param name="pnlFastest">Panel that will contain the constructed controls</param>
/// <param name="pnlSlowest">Panel that will contain the constructed controls</param>
/// <param name="form1">The main form that needs to implement the method btnDriver_Click to allow it to recover custom buttons click</param>
public void DisplayTimesDeltas(Panel pnlFastest,Panel pnlSlowest, Main form1)
{
List<(int avg, string driverName)> averages = new List<(int avg, string driverName)>();
foreach (DriverData driver in LiveDriverDataLogs[LiveDriverDataLogs.Count - 1])
{
//We want to recover the last 5 lap times
List<(int lapTime,int lap)> laps = Storage.GetDriverLaptimes(driver.Name,5);
if(laps.Count > 0)
{
int avg = 0;
foreach ((int lapTime, int lap) lap in laps)
{
avg += lap.lapTime;
}
avg = avg / laps.Count;
averages.Add((avg, driver.Name));
}
}
int numberOfDriversToShow = 5;
if (averages.Count > 0 && averages.Count > numberOfDriversToShow)
{
averages = averages.OrderBy(item => item.avg).ToList();
pnlFastest.Controls.Clear();
pnlSlowest.Controls.Clear();
int maxUiSize = pnlFastest.Height / numberOfDriversToShow;
//Displays the fastest drivers
for (int i = 0; i < numberOfDriversToShow; i++)
{
Button newButton = new Button();
(int avg, string driver) data = averages[i];
pnlFastest.Controls.Add(newButton);
newButton.Size = new Size(pnlFastest.Width, maxUiSize);
newButton.Location = new Point(0, i * maxUiSize);
newButton.Text = data.driver;
newButton.FlatStyle = FlatStyle.Popup;
newButton.Name = data.driver + "_fastest_" + i;
newButton.Click += form1.btnDriver_Click;
//We take the average time lost per lap
if (i != 0)
newButton.Text += " + " + Reader.ConvertMsToTime(Convert.ToInt32(((float)data.avg - (float)averages[0].avg) / 5.0f));
}
//Displays the slowests drivers
int badId = 0;
for (int i = averages.Count -1; i >= averages.Count - numberOfDriversToShow; i--)
{
Button newButton = new Button();
(int avg, string driver) data = averages[i];
pnlSlowest.Controls.Add(newButton);
newButton.Size = new Size(pnlFastest.Width, maxUiSize);
newButton.Location = new Point(0, badId * maxUiSize);
newButton.Text = data.driver;
newButton.FlatStyle = FlatStyle.Popup;
newButton.Name = data.driver + "_slowest_" + i;
newButton.Click += form1.btnDriver_Click;
//We take the average time lost per lap
newButton.Text += " + " + Reader.ConvertMsToTime(Convert.ToInt32(((float)data.avg - (float)averages[0].avg) / 5.0f));
badId++;
}
}
}
/// <summary>
/// Will add to the list of overtakes the different changes of position
/// </summary>
/// <param name="lsbResult">The listbox containing all the infos</param>
public void DisplayOvertakes(ListBox lsbResult)
{
//Note : This method SHOULD REALLY not do this but just return a string or a list of string with the new overtakes so the form can handle it as it wishes
if (LiveDriverDataLogs.Count > 1)
{
List<DriverData> oldList = LiveDriverDataLogs[LiveDriverDataLogs.Count - 2];
List<DriverData> newList = LiveDriverDataLogs[LiveDriverDataLogs.Count - 1];
for (int i = 0; i < LiveDriverDataLogs[LiveDriverDataLogs.Count - 1].Count;i++)
{
if (oldList[i].Name != newList[i].Name) {
//There has been a change in the standings
for(int y = 0; y < oldList.Count;y++)
{
if (newList[y].Name == oldList[i].Name)
{
//We found its new location
if (y > i)
{
//The driver overtook someone
lsbResult.Items.Add(newList[y].Name + " climbed to " + y);
}
else
{
//The driver got overtook by someone
lsbResult.Items.Add(newList[y].Name + " fell to " + y);
}
}
}
}
}
}
}
/// <summary>
/// Displays a messageBox containing the infos about a lap time
/// </summary>
/// <param name="driverName">The name of the driver that has done the lapTime</param>
/// <param name="Lap">The number of the lap on wich the lapTime has been set (CAUTION ITS NOT THE RACING LAP ITS FROM THE DB)</param>
/// <param name="LapTime">The time (in ms) of the lap</param>
public void DisplayLapTimeInfos(string driverName, int Lap, string LapTime)
{
List<int> sectors = Storage.GetSectorsFromLapTime(driverName, Lap);
string message = "Lap time infos" + Environment.NewLine;
message += LapTime + Environment.NewLine;
if (sectors.Count > 0)
message += "Sector 1 : " + Reader.ConvertMsToTime(sectors[0]) + Environment.NewLine;
if (sectors.Count > 1)
message += "Sector 2 : " + Reader.ConvertMsToTime(sectors[1]) + Environment.NewLine;
if (sectors.Count > 2)
message += "Sector 3 : " + Reader.ConvertMsToTime(sectors[2]) + Environment.NewLine;
MessageBox.Show(message);
}
/// <summary>
/// Displays the live ranking with the names of the drivers and their gap to the leader in the right order
/// </summary>
/// <param name="pnl">The control that will host all the new controls</param>
/// <param name="form1">The main form</param>
public void DisplayLiveRanking(Panel pnl, Main form1)
{
if (LiveDriverDataLogs.Count > 0)
{
pnl.Controls.Clear();
//Gets the last item that should be the most recent data
List<DriverData> liveData = LiveDriverDataLogs[LiveDriverDataLogs.Count - 1];
Button[] buttons = new Button[liveData.Count];
Size buttonDimensions = new Size(pnl.Width, pnl.Height / liveData.Count);
for (int driverCount = 0; driverCount < liveData.Count; driverCount++)
{
Button newButton = new Button();
newButton.Size = buttonDimensions;
newButton.Location = new Point(0, driverCount * buttonDimensions.Height);
newButton.FlatStyle = FlatStyle.Popup;
DriverData driver = liveData[driverCount];
if (driver.Position == -1)
{
//Its a DNF
newButton.Enabled = false;
}
if (driver.Position > 1)
{
newButton.Text = driver.Name + " +" + Reader.ConvertMsToTime(driver.GapToLeader);
}
else
{
newButton.Text = driver.Name;
}
newButton.Name = liveData[driverCount].Name;
newButton.TextAlign = ContentAlignment.MiddleLeft;
newButton.FlatStyle = FlatStyle.Popup;
newButton.Click += form1.btnDriver_Click;
buttons[driverCount] = newButton;
}
//Note : It could be better to have this directly in the same loop
foreach (Button button in buttons)
{
pnl.Controls.Add(button);
}
}
}
}
}
```
-110
View File
@@ -1,110 +0,0 @@
# DriverData.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverData.cs
/// Brief : File containing classes that behave just like structures to store data about drivers
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TrackTrends
{
public class DriverData
{
public bool DRS; //True = Drs is opened
public int GapToLeader; //In ms
public int LapTime; //In ms
public string Name; //Ex: LECLERC
public int Position; //Ex: 1
public int Sector1; //in ms
public int Sector2; //in ms
public int Sector3; //in ms
public Tyre CurrentTyre;//Ex Soft 11 laps
public DriverData(bool dRS, int gapToLeader, int lapTime, string name, int position, int sector1, int sector2, int sector3, Tyre tyre)
{
DRS = dRS;
GapToLeader = gapToLeader;
LapTime = lapTime;
Name = name;
Position = position;
Sector1 = sector1;
Sector2 = sector2;
Sector3 = sector3;
CurrentTyre = tyre;
}
/// <summary>
/// Creates a default driver data with empty values
/// </summary>
public DriverData()
{
DRS = false;
GapToLeader = -1;
LapTime = -1;
Name = "Unknown";
Position = -1;
Sector1 = -1;
Sector2 = -1;
Sector3 = -1;
CurrentTyre = new Tyre(Tyre.Type.Undefined, -1);
}
/// <summary>
/// Method that displays all the data found in a string
/// </summary>
/// <returns>string containing all the driver datas</returns>
public override string ToString()
{
string result = "";
//Position
result += "Position : " + Position + Environment.NewLine;
//Gap
result += "GapToLeader : " + Reader.ConvertMsToTime(GapToLeader) + Environment.NewLine;
//LapTime
result += "LapTime : " + Reader.ConvertMsToTime(LapTime) + Environment.NewLine;
//DRS
result += "DRS : " + DRS + Environment.NewLine;
//Tyres
result += "Uses " + CurrentTyre.Coumpound + " tyre " + CurrentTyre.NumberOfLaps + " laps old" + Environment.NewLine;
//Name
result += "DriverName : " + Name + Environment.NewLine;
//Sector 1
result += "Sector1 : " + Reader.ConvertMsToTime(Sector1) + Environment.NewLine;
//Sector 1
result += "Sector2 : " + Reader.ConvertMsToTime(Sector2) + Environment.NewLine;
//Sector 1
result += "Sector3 : " + Reader.ConvertMsToTime(Sector3) + Environment.NewLine;
return result;
}
}
//Structure to store tyres infos
public struct Tyre
{
//If new tyres were to be added you will have to need to change this enum
public enum Type
{
Soft,
Medium,
Hard,
Inter,
Wet,
Undefined
}
public Type Coumpound;
public int NumberOfLaps;
public Tyre(Type type, int laps)
{
Coumpound = type;
NumberOfLaps = laps;
}
}
}
```
-119
View File
@@ -1,119 +0,0 @@
# DriverDrsWindow.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverDrsWindow.cs
/// Brief : Window containing DRS related method and infos
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tesseract;
namespace TrackTrends
{
public class DriverDrsWindow:Window
{
private static int EmptyDrsGreenValue = -1;
private static Random rnd = new Random();
public DriverDrsWindow(Bitmap image, Rectangle bounds,bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "DRS";
}
/// <summary>
/// Method that will decode the content of the window
/// </summary>
/// <returns>returns a boolean (true = DRS OPEN, false = DRS CLOSED)</returns>
public override object DecodePng()
{
bool result = false;
//DEBUG
//WindowImage.Save("./DRS/"+rnd.Next(0,99999)+".png");
int greenValue = GetGreenPixels();
if (EmptyDrsGreenValue == -1)
EmptyDrsGreenValue = greenValue;
if (greenValue > EmptyDrsGreenValue + EmptyDrsGreenValue / 100 * 30)
result = true;
return result;
}
/// <summary>
/// Method that will get the green pixel proportion in the image, this can be used to determin if the DRS has been actuated
/// </summary>
/// <returns>The number of clearely green pixels</returns>
private unsafe int GetGreenPixels()
{
int tot = 0;
Bitmap bmp = WindowImage;
Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadOnly, bmp.PixelFormat);
int bytesPerPixel = Bitmap.GetPixelFormatSize(bmp.PixelFormat) / 8;
unsafe
{
byte* ptr = (byte*)bmpData.Scan0.ToPointer();
for (int y = 0; y < bmp.Height; y++)
{
byte* currentLine = ptr + (y * bmpData.Stride);
for (int x = 0; x < bmp.Width; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
byte blue = pixel[0];
byte green = pixel[1];
byte red = pixel[2];
if (green > blue * 1.5 && green > red * 1.5)
{
tot++;
}
}
}
}
bmp.UnlockBits(bmpData);
return tot;
}
/// <summary>
/// This method is used to lock on where exactly the DRS window is
/// </summary>
/// <returns>Returns a rectangle containing the DRS</returns>
public Rectangle GetBox()
{
var tessImage = Pix.LoadFromMemory(ImageToByte(WindowImage));
Engine.SetVariable("tessedit_char_whitelist", "");
Page page = Engine.Process(tessImage);
using (var iter = page.GetIterator())
{
iter.Begin();
do
{
Rect boundingBox;
// Get the bounding box for the current element
if (iter.TryGetBoundingBox(PageIteratorLevel.Word, out boundingBox))
{
page.Dispose();
return new Rectangle(boundingBox.X1, boundingBox.X2, boundingBox.Width, boundingBox.Height);
}
} while (iter.Next(PageIteratorLevel.Word));
page.Dispose();
return new Rectangle(0, 0, 0, 0);
}
}
}
}
```
@@ -1,37 +0,0 @@
# DriverGapToLeaderWindow.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverGapToLeaderWindow.cs
/// Brief : Window containing infos about the gap to the leader of a driver
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TrackTrends
{
public class DriverGapToLeaderWindow:Window
{
public DriverGapToLeaderWindow(Bitmap image, Rectangle bounds, bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "GapToLeader";
}
/// <summary>
/// Decodes the gap to leader using Tesseract OCR
/// </summary>
/// <returns>Returns the gap to the leader in miliseconds (int)</returns>
public override object DecodePng()
{
int result = GetTimeFromPng(WindowImage, OcrImage.WindowType.Gap, Engine);
return result;
}
}
}
```
-37
View File
@@ -1,37 +0,0 @@
# DriverLapTimeWindow.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverLapTimeWindow
/// Brief : Window containing infos about the lap time of a driver
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace TrackTrends
{
public class DriverLapTimeWindow:Window
{
public DriverLapTimeWindow(Bitmap image, Rectangle bounds, bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "LapTime";
}
/// <summary>
/// Decodes the lap time contained in the image using OCR Tesseract
/// </summary>
/// <returns>The laptime in int (ms)</returns>
public override object DecodePng()
{
int result = GetTimeFromPng(WindowImage, OcrImage.WindowType.LapTime, Engine);
return result;
}
}
}
```
-62
View File
@@ -1,62 +0,0 @@
# DriverNameWindow.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverNameWindow
/// Brief : Window containing infos about the name of the driver
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace TrackTrends
{
public class DriverNameWindow : Window
{
public DriverNameWindow(Bitmap image, Rectangle bounds, bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "Name";
}
/// <summary>
/// Decodes using OCR wich driver name is in the image
/// </summary>
/// <param name="DriverList">A list of all the names that can be on the image</param>
/// <returns>a string representing the found driver name. It will be one of the ones given in the list</returns>
public override object DecodePng(List<string> DriverList)
{
string result = "";
result = GetStringFromPng(WindowImage, Engine);
if (!IsADriver(DriverList, result))
{
//I put everything in uppercase to try to lower the chances of bad answers
result = FindClosestMatch(DriverList.ConvertAll(d => d.ToUpper()), result.ToUpper());
}
return result;
}
/// <summary>
/// Verifies that the name found in the OCR is a valid name
/// </summary>
/// <param name="driverList">The list of all the drivers name that can be found in the image</param>
/// <param name="potentialDriver">The driver you want to be sure if it exists or not</param>
/// <returns>If ye or no the driver exists</returns>
private static bool IsADriver(List<string> driverList, string potentialDriver)
{
bool result = false;
//I cant use drivers.Contains because it has missmatched cases and all
foreach (string name in driverList)
{
if (name.ToUpper() == potentialDriver.ToUpper())
result = true;
}
return result;
}
}
}
```
-47
View File
@@ -1,47 +0,0 @@
# DriverPositionWindow.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverPositionWindow.cs
/// Brief : Window containing infos about the position of a driver.
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace TrackTrends
{
public class DriverPositionWindow:Window
{
public DriverPositionWindow(Bitmap image, Rectangle bounds, bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "Position";
}
/// <summary>
/// Decodes the position number using Tesseract OCR
/// </summary>
/// <returns>An int representing the position of the driver (should be between 1 and 20 included)</returns>
public override object DecodePng()
{
string ocrResult = GetStringFromPng(WindowImage, Engine, "0123456789");
int position;
try
{
position = Convert.ToInt32(ocrResult);
}
catch
{
position = -1;
}
return position;
}
}
}
```
-37
View File
@@ -1,37 +0,0 @@
# DriverSectorWindow.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverSectorWindow.cs
/// Brief : Window containing infos about a driver sector time. Can be the first second or third, does not matter.
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace TrackTrends
{
public class DriverSectorWindow:Window
{
public DriverSectorWindow(Bitmap image, Rectangle bounds, int sectorId, bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "Sector"+sectorId;
}
/// <summary>
/// Decodes the sector
/// </summary>
/// <returns>the sector time in int (ms)</returns>
public override object DecodePng()
{
int ocrResult = GetTimeFromPng(WindowImage, OcrImage.WindowType.Sector, Engine);
return ocrResult;
}
}
}
```
-151
View File
@@ -1,151 +0,0 @@
# DriverTyresWindow.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverTyresWindow.cs
/// Brief : Window containing infos about a driver's tyre
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace TrackTrends
{
public class DriverTyresWindow:Window
{
private static Random rnd = new Random();
//Those are the colors I found but you can change them if they change in the future like in 2019
public static Color SOFT_TYRE_COLOR = Color.FromArgb(0xff, 0x00, 0x00);
public static Color MEDIUM_TYRE_COLOR = Color.FromArgb(0xf5, 0xbf, 0x00);
public static Color HARD_TYRE_COLOR = Color.FromArgb(0xa4, 0xa5, 0xa8);
public static Color INTER_TYRE_COLOR = Color.FromArgb(0x00, 0xa4, 0x2e);
public static Color WET_TYRE_COLOR = Color.FromArgb(0x27, 0x60, 0xa6);
public static Color EMPTY_COLOR = Color.FromArgb(0x20, 0x20, 0x20);
public DriverTyresWindow(Bitmap image, Rectangle bounds, bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "Tyres";
}
/// <summary>
/// This will decode the content of the image
/// </summary>
/// <returns>And object containing what was on the image</returns>
public override object DecodePng()
{
return GetTyreInfos();
}
/// <summary>
/// Method that will decode whats on the image and return the tyre infos it could manage to recover
/// </summary>
/// <returns>A tyre object containing tyre infos</returns>
private Tyre GetTyreInfos()
{
//DEBUG
//WindowImage.Save("./Tyre/raw_"+rnd.Next(0,99999)+".png");
Bitmap tyreZone = GetSmallBitmapFromBigOne(WindowImage, FindTyreZone());
Tyre.Type type = Tyre.Type.Undefined;
type = GetTyreTypeFromColor(OcrImage.GetAvgColorFromBitmap(tyreZone));
int laps = -1;
string number = GetStringFromPng(tyreZone, Engine, "0123456789", OcrImage.WindowType.Tyre);
try
{
laps = Convert.ToInt32(number);
}
catch
{
//We could not convert the number so its a letter so its 0 laps old
laps = 0;
}
//71 is the most laps an f1 race is ever going to have (mexico) so any more would be considered as bad (and remember you cant go trough a full race without making at least one pitstop)
if (laps > 75)
laps = 0;
return new Tyre(type, laps);
}
/// <summary>
/// Finds where the important part of the image is
/// </summary>
/// <returns>A rectangle containing position and dimensions of the important part of the image</returns>
private Rectangle FindTyreZone()
{
Bitmap bmp = WindowImage;
int currentPosition = bmp.Width;
int height = bmp.Height / 2;
Color limitColor = Color.FromArgb(0x50, 0x50, 0x50);
Color currentColor = Color.FromArgb(0, 0, 0);
//25F
Size newWindowSize = new Size(bmp.Height - Convert.ToInt32((float)bmp.Height / 100f * 25f), bmp.Height - Convert.ToInt32((float)bmp.Height / 100f * 35f));
while (currentColor.R <= limitColor.R && currentColor.G <= limitColor.G && currentColor.B <= limitColor.B && currentPosition > 0)
{
currentPosition--;
currentColor = bmp.GetPixel(currentPosition, height);
}
//Its here to let the new window include a little bit of the right
int CorrectedX = currentPosition - (newWindowSize.Width) + Convert.ToInt32((float)newWindowSize.Width / 100f * 10f);
int CorrectedY = Convert.ToInt32((float)newWindowSize.Height / 100f * 35f);
if (CorrectedX <= 0)
return new Rectangle(0, 0, newWindowSize.Width, newWindowSize.Height);
return new Rectangle(CorrectedX, CorrectedY, newWindowSize.Width, newWindowSize.Height);
}
//This method has been created with the help of chatGPT
/// <summary>
/// Methods that compares a list of colors to see wich is the closest from the input color and decide wich tyre type it is
/// </summary>
/// <param name="inputColor">The color that you found</param>
/// <returns>The tyre type</returns>
public Tyre.Type GetTyreTypeFromColor(Color inputColor)
{
Tyre.Type type = Tyre.Type.Undefined;
List<Color> colors = new List<Color>();
//dont forget that if for some reason someday F1 adds a new Tyre type you will need to add it in the constants but also here in the list
//You will also need to add it below in the Tyre object's enum and add an if in the end of this method
colors.Add(SOFT_TYRE_COLOR);
colors.Add(MEDIUM_TYRE_COLOR);
colors.Add(HARD_TYRE_COLOR);
colors.Add(INTER_TYRE_COLOR);
colors.Add(WET_TYRE_COLOR);
colors.Add(EMPTY_COLOR);
Color closestColor = colors[0];
int closestDistance = int.MaxValue;
foreach (Color color in colors)
{
int distance = Math.Abs(color.R - inputColor.R) + Math.Abs(color.G - inputColor.G) + Math.Abs(color.B - inputColor.B);
if (distance < closestDistance)
{
closestColor = color;
closestDistance = distance;
}
}
//We cant use a switch as the colors cant be constants ...
if (closestColor == SOFT_TYRE_COLOR)
type = Tyre.Type.Soft;
if (closestColor == MEDIUM_TYRE_COLOR)
type = Tyre.Type.Medium;
if (closestColor == HARD_TYRE_COLOR)
type = Tyre.Type.Hard;
if (closestColor == INTER_TYRE_COLOR)
type = Tyre.Type.Inter;
if (closestColor == WET_TYRE_COLOR)
type = Tyre.Type.Wet;
if (closestColor == EMPTY_COLOR)
return Tyre.Type.Undefined;
return type;
}
}
}
```
-334
View File
@@ -1,334 +0,0 @@
# F1TVEmulator.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : F1TVEmulator.cs
/// Brief : Class that contains methods to emulate a browser and navigate the F1TV website
/// Version : Alpha 1.0
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Support.UI;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace TrackTrends
{
internal class F1TVEmulator
{
public const string COOKIE_HOST = ".formula1.com";
public const string PYTHON_COOKIE_RETRIEVAL_FILENAME = "recoverCookiesCSV.py";
public const string GECKODRIVER_FILENAME = @"geckodriver-v0.27.0-win64\geckodriver.exe";
//BE CAREFULL IF YOU CHANGE IT HERE YOU NEED TO CHANGE IT IN THE PYTHON SCRIPT TOO
public const string COOKIES_CSV_FILENAME = "cookies.csv";
private FirefoxDriver Driver;
private bool _ready;
private string _grandPrixUrl;
public string GrandPrixUrl { get => _grandPrixUrl; private set => _grandPrixUrl = value; }
public bool Ready { get => _ready; set => _ready = value; }
public F1TVEmulator(string grandPrixUrl)
{
GrandPrixUrl = grandPrixUrl;
Ready = false;
}
/// <summary>
/// Will start the python programm that runs the Cookie Recovering
/// </summary>
private void StartCookieRecovering()
{
string scriptPath = PYTHON_COOKIE_RETRIEVAL_FILENAME;
Process process = new Process();
process.StartInfo.FileName = "python.exe";
process.StartInfo.Arguments = scriptPath;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
}
/// <summary>
/// Method that will recover the needed cookies in the DB
/// </summary>
/// <param name="host"> The host of the wanted cookie ex: ./formula1.com</param>
/// <param name="name">The name of the wanted cookie ex: login</param>
/// <returns>returns the value of the cookie if it has been found</returns>
/// <exception cref="InvalidOperationException"></exception>
public string GetCookie(string host, string name)
{
StartCookieRecovering();
string value = "";
List<Cookie> cookies = new List<Cookie>();
if (File.Exists(COOKIES_CSV_FILENAME))
{
using (var reader = new StreamReader(COOKIES_CSV_FILENAME))
{
// Read the header row and validate column order
string header = reader.ReadLine();
string[] expectedColumns = { "host_key", "name", "value", "path", "expires_utc", "is_secure", "is_httponly" };
string[] actualColumns = header.Split(',');
for (int i = 0; i < expectedColumns.Length; i++)
{
if (expectedColumns[i] != actualColumns[i])
{
throw new InvalidOperationException($"Expected column '{expectedColumns[i]}' at index {i} but found '{actualColumns[i]}'");
}
}
// Read each data row and parse values into a Cookie object
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] fields = line.Split(',');
string hostname = fields[0];
string cookieName = fields[1];
if (hostname == host && cookieName == name)
{
value = fields[2];
}
}
}
}
return value;
}
/// <summary>
/// Starts the headless browser
/// </summary>
/// <returns>Error code 1xx</returns>
public async Task<int> Start()
{
Ready = false;
string loginCookieName = "login";
string loginSessionCookieName = "login-session";
string loginCookieValue = GetCookie(COOKIE_HOST, loginCookieName);
string loginSessionValue = GetCookie(COOKIE_HOST, loginSessionCookieName);
//Cookie retreival has gone wrong (usually its because of python not being installed properly)
if (loginCookieValue == "" || loginSessionValue == "")
return 100;
var service = FirefoxDriverService.CreateDefaultService(GECKODRIVER_FILENAME);
service.Host = "127.0.0.1";
service.Port = 5555;
FirefoxProfile profile = new FirefoxProfile();
FirefoxOptions options = new FirefoxOptions();
//profile.SetPreference("full-screen-api.ignore-widgets", true);
//profile.SetPreference("media.hardware-video-decoding.enabled", true);
//profile.SetPreference("full-screen-api.enabled", true);
options.Profile = profile;
profile.SetPreference("layout.css.devPixelsPerPx", "1.0");
options.AcceptInsecureCertificates = true;
options.AddArgument("--headless");
//options.AddArgument("--start-maximized");
//options.AddArgument("--window-size=1920x1080");
//options.AddArgument("--width=" + windowWidth);
//options.AddArgument("--height=" + windowHeight);
//options.AddArgument("-window-size=1920x1080");
//options.AddArgument("--width=1920");
//options.AddArgument("--height=1080");
//profile
try
{
Driver = new FirefoxDriver(service, options);
}
catch
{
Ready = false;
return 101;
}
Actions actions = new Actions(Driver);
var loginCookie = new Cookie(loginCookieName, loginCookieValue, COOKIE_HOST, "/", DateTime.Now.AddDays(5));
var loginSessionCookie = new Cookie(loginSessionCookieName, loginSessionValue, COOKIE_HOST, "/", DateTime.Now.AddDays(5));
Driver.Navigate().GoToUrl("https://f1tv.formula1.com/");
Driver.Manage().Cookies.AddCookie(loginCookie);
Driver.Manage().Cookies.AddCookie(loginSessionCookie);
try
{
Driver.Navigate().GoToUrl(GrandPrixUrl);
}
catch
{
//The url is not a valid url
Driver.Dispose();
return 103;
}
//Waits for the page to fully load
Driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(30);
//Removes the cookie prompt
try
{
IWebElement conscentButton = Driver.FindElement(By.Id("truste-consent-button"));
conscentButton.Click();
}
catch
{
//Could not locate the cookie button
Screenshot("ERROR104");
Driver.Dispose();
return 104;
}
//Again waits for the page to fully load (when you accept cookies it takes a little time for the page to load)
//Cannot use The timeout because the feed loading is not really loading so there is not event or anything
Thread.Sleep(5000);
//Switches to the Data channel
try
{
IWebElement dataChannelButton = Driver.FindElement(By.ClassName("data-button"));
dataChannelButton.Click();
}
catch
{
//If the data button does not exists its because the user is not connected
Screenshot("ERROR102");
Driver.Dispose();
return 102;
}
//Open settings
// Press the space key, this should make the setting button visible
// It does not matter if the feed is paused because when changing channel it autoplays
actions.SendKeys(OpenQA.Selenium.Keys.Space).Perform();
//Clicks on the settings Icon
int settingsClickTries = 0;
bool settingsClickSuccess = false;
while (settingsClickTries < 100 && !settingsClickSuccess)
{
Thread.Sleep(100);
try
{
IWebElement settingsButton = Driver.FindElement(By.ClassName("bmpui-ui-settingstogglebutton"));
settingsButton.Click();
IWebElement selectElement = Driver.FindElement(By.ClassName("bmpui-ui-videoqualityselectbox"));
SelectElement select = new SelectElement(selectElement);
IWebElement selectOption = selectElement.FindElement(By.CssSelector("option[value^='1080_']"));
selectOption.Click();
settingsClickSuccess = true;
}
catch
{
//Sometimes it can crash because it could not get the options to show up in time. When it happens just retry
settingsClickSuccess = false;
settingsClickTries++;
}
}
if (!settingsClickSuccess)
{
Screenshot("ERROR105");
Driver.Dispose();
return 105;
}
Screenshot("BEFOREFULLSCREEN");
//Makes the feed fullscreen
int fullScreenClickTries = 0;
bool fullScreenClickSuccess = false;
Driver.Manage().Window.Maximize();
//WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(10));
while (fullScreenClickTries < 100 && !fullScreenClickSuccess)
{
Thread.Sleep(150);
try
{
IWebElement fullScreenButton = Driver.FindElement(By.ClassName("bmpui-ui-fullscreentogglebutton"));
fullScreenButton.Click();
fullScreenClickSuccess = true;
}
catch
{
fullScreenClickSuccess = false;
fullScreenClickTries++;
}
}
if (!fullScreenClickSuccess)
{
Screenshot("ERROR106");
Driver.Dispose();
return 106;
}
Screenshot("AFTERFULLSCREEN");
//STARTUP FINISHED READY TO SCREENSHOT
Ready = true;
return 0;
}
/// <summary>
/// Takes a screenshot of what the headless browser is displaying
/// </summary>
/// <param name="name">Optional ! The name of the picture so it can be saved</param>
/// <returns>Returns the screenshot in the bitmap format</returns>
public Bitmap Screenshot(string name = "TEST")
{
Bitmap result = new Bitmap(4242, 6969);
try
{
//Screenshot scrsht = ((ITakesScreenshot)Driver).GetScreenshot();
//profileriver.SetPreferencC:\Users\Moi\source\repos\Test_Merge\README.mde("layout.css.devPixelsPerPx", "1.0");
//Screenshot scrsht = Driver.GetFullPageScreenshot();
Screenshot scrsht = Driver.GetScreenshot();
byte[] screenshotBytes = Convert.FromBase64String(scrsht.AsBase64EncodedString);
MemoryStream stream = new MemoryStream(screenshotBytes);
result = new Bitmap(stream);
//result.Save(name + ".png");
scrsht.SaveAsFile(name + ".png");
}
catch
{
//Nothing for now
}
return result;
}
/// <summary>
/// Stops the Emulation. Note: if you plan to start it again please use ResetDriver() instead
/// </summary>
public void Stop()
{
Ready = false;
if (Driver != null)
Driver.Dispose();
}
/// <summary>
/// Resets the emulation
/// </summary>
public void ResetDriver()
{
Ready = false;
if (Driver != null)
Driver.Dispose();
Driver = null;
}
}
}
```
-427
View File
@@ -1,427 +0,0 @@
# Form1.cs
``` cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace TrackTrends
{
public partial class Main : Form
{
//private Reader Reader = null;
private F1TVEmulator Emulator = null;
private DataWrapper Wrapper = null;
private bool cancelRequested = false;
private SemaphoreSlim semaphore = new SemaphoreSlim(1);
string ConfigFile = "";
string GpUrl = "";
//For the responsive content
Size oldSize = new Size();
Size oldRankingSize = new Size();
Size oldLapTimesSize = new Size();
Size oldBattles = new Size();
Size oldPnlBattles = new Size();
Size oldPnlRankings = new Size();
Size oldPnlFastest = new Size();
Size oldPnlSlowest = new Size();
Point oldRankingPosition = new Point();
Point oldBattlePosition = new Point();
Point oldDriverInfoPosition = new Point();
Point olPnlFastestPosition = new Point();
Point oldPnlSlowestPosition = new Point();
public Main()
{
InitializeComponent();
}
public async void RefreshUI()
{
if (Directory.Exists(ConfigurationTool.CONFIGS_FOLDER_NAME))
{
lsbPresets.DataSource = null;
lsbPresets.DataSource = Directory.GetFiles(ConfigurationTool.CONFIGS_FOLDER_NAME);
}
}
private async void btnSettings_Click(object sender, EventArgs e)
{
if (Emulator != null)
Emulator.ResetDriver();
btnStartDecoding.Enabled = false;
btnStopUpdating.Enabled = false;
btnResetEmulator.Text = "Launch";
Emulator = null;
Wrapper = null;
GC.Collect();
Settings settingsForm = new Settings();
settingsForm.ShowDialog();
RefreshUI();
//MessageBox.Show(settingsForm.GrandPrixUrl + Environment.NewLine + settingsForm.GrandPrixName + Environment.NewLine + settingsForm.GrandPrixYear);
if (settingsForm.GrandPrixUrl != "" && settingsForm.SelectedConfigFile != "")
{
GpUrl = settingsForm.GrandPrixUrl;
tbxGpUrl.Text = GpUrl;
if (File.Exists(settingsForm.SelectedConfigFile))
{
ConfigFile = settingsForm.SelectedConfigFile;
for(int i = 0; i < lsbPresets.Items.Count; i++)
{
if (lsbPresets.Items[i].ToString() == ConfigFile)
lsbPresets.SelectedIndex = i;
}
}
else
{
MessageBox.Show("The config file has not been found please return to the config and change it");
}
}
else
{
//WE dont care anymore, the user will choose its Grand Prix himself in the main program
//MessageBox.Show("There is no URL for the Grand Prix you want to decode. Please return to the config and add a valid one");
}
}
private async void Form1_Load(object sender, EventArgs e)
{
//Those are the default values but they will need to be changed later when the configuration has been done
ConfigFile = "./Presets/Clean_4K_2023.json";
GpUrl = "https://f1tv.formula1.com/detail/1000006688/2023-azerbaijan-grand-prix?action=play";
tbxGpUrl.Text = GpUrl;
oldSize = this.Size;
oldRankingSize = gpbxRanking.Size;
oldLapTimesSize = gpbxLapTimes.Size;
oldBattles = gpbxBattles.Size;
oldPnlRankings = pnlLiveRanking.Size;
oldPnlBattles = pnlBattles.Size;
oldPnlFastest = pnlFastest.Size;
oldPnlSlowest = pnlSlowest.Size;
oldRankingPosition = gpbxRanking.Location;
oldBattlePosition = gpbxBattles.Location;
oldDriverInfoPosition = gpbxDriverInfos.Location;
olPnlFastestPosition = pnlFastest.Location;
oldPnlSlowestPosition = pnlSlowest.Location;
tip1.SetToolTip(btnResetEmulator, "Starts or restarts the emulator. You need to start this to use the app");
tip1.SetToolTip(btnSettings, "Opens the configuration menu");
tip1.SetToolTip(tbxGpUrl, "Insert the URL of the Grand Prix you want to track. Dont forget the \"?action=play\" at the end");
tip1.SetToolTip(lsbPresets, "Select a configuration preset to use with the decoding");
tip1.SetToolTip(pbxResult,"A preview of what the program sees. You should see the DATA page of the F1TV here");
tip1.SetToolTip(lsbOvertakes,"A list of all the activity. You can scroll to see the most recent overtakes");
tip1.SetToolTip(gpbxBattles,"The four first battles in the field. A battle is two drivers less than 3 seconds apart");
tip1.SetToolTip(gpbxLapTimes,"The fastest and slowest drivers on track at the moment. It takes the average lapTime of the last 5 laps to choose who is the fastes or the slowest");
RefreshUI();
}
private async void btnUpdate_Click(object sender, EventArgs e)
{
cancelRequested = false;
if (Emulator != null && Wrapper != null)
{
// Disable UI controls to prevent re-entrancy
btnResetEmulator.Enabled = false;
btnStartDecoding.Enabled = false;
btnStopUpdating.Enabled = true;
btnSettings.Enabled = false;
while (!cancelRequested)
{
await semaphore.WaitAsync();
try
{
// Start the time-consuming task on a separate thread
await Task.Run(async () =>
{
Stopwatch sw = new Stopwatch();
sw.Start();
Bitmap screen = Emulator.Screenshot();
screen.Save("HopefullyDataScreenshot.png");
Invoke((MethodInvoker)delegate
{
pbxResult.Image = (Bitmap)screen.Clone();
});
Wrapper.ChangeImage(screen);
int errorCode = Wrapper.Refresh();
sw.Stop();
// Task completed
Invoke((MethodInvoker)delegate
{
DisplayResults(errorCode, sw, screen);
DisplayBattles();
DisplayDeltas();
DisplayOvertakes();
});
});
}
finally
{
semaphore.Release();
}
}
// Re-enable UI controls
btnStopUpdating.Text = "Stop";
btnStartDecoding.Enabled = true;
btnStopUpdating.Enabled = false;
btnResetEmulator.Enabled = true;
btnSettings.Enabled = true;
}
}
private void DisplayOvertakes()
{
Wrapper.DisplayOvertakes(lsbOvertakes);
}
private void DisplayBattles()
{
Wrapper.DisplayBattles(pnlBattles, this);
}
private void DisplayDeltas()
{
Wrapper.DisplayTimesDeltas(pnlFastest, pnlSlowest, this);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (Emulator != null)
{
Emulator.Stop();
}
}
private void DisplayResults(int errorCode, Stopwatch sw, Bitmap screen)
{
if (errorCode != 0)
{
cancelRequested = true;
MessageBox.Show("An error has occured while trying to recover data from live feed. This can happen sometimes. I would advise you to restart a few times. If the problem persists check your configuration.");
}
else
{
Wrapper.DisplayLiveRanking(pnlLiveRanking, this);
}
}
private void btnStopUpdating_Click(object sender, EventArgs e)
{
// Set the cancellation flag
cancelRequested = true;
btnStopUpdating.Enabled = false;
btnResetEmulator.Enabled = false;
btnStopUpdating.Text = "Stopping";
}
private async void button1_Click(object sender, EventArgs e)
{
lsbOvertakes.Items.Clear();
btnResetEmulator.Text = "Launching";
btnResetEmulator.Enabled = false;
btnSettings.Enabled = true;
btnStartDecoding.Enabled = false;
btnStopUpdating.Enabled = false;
btnSettings.Enabled = false;
int errorCode = -1;
await Task.Run(async () =>
{
if (Emulator != null)
Emulator.ResetDriver();
Emulator = null;
Wrapper = null;
GC.Collect();
Emulator = new F1TVEmulator(GpUrl);
errorCode = await Emulator.Start();
});
if (errorCode != 0)
{
string message = "";
switch (errorCode)
{
case 100:
message = "Error " + errorCode + " Could not recover cookies. It could be because of an improper installation of python or bad cookies in the chrome database. Please try to log on to the F1TV using chrome again";
break;
case 101:
message = "Error " + errorCode + " Could not start the driver. It could be because an other instance is runnin make sure you closed them all before trying again";
break;
case 102:
message = "Error " + errorCode + " Could not navigate on the F1TV site. Make sure the correct URL has been given and that you logged from chrome. It can take a few minutes to update";
break;
case 103:
message = "Error " + errorCode + " The url is not a valid url";
break;
case 104:
message = "Error " + errorCode + " The url is not a valid url";
break;
case 105:
message = "Error " + errorCode + " There has been an error trying to emulate button presses. Please try again";
break;
case 106:
message = "Error " + errorCode + " There has been an error trying to emulate button presses. Please try again";
break;
default:
message = "Could not start the emulator Error " + errorCode;
break;
}
MessageBox.Show(message);
btnResetEmulator.Enabled = true;
btnSettings.Enabled = true;
btnResetEmulator.Text = "Retry";
}
else
{
Wrapper = new DataWrapper(ConfigFile, Emulator.Screenshot());
btnResetEmulator.Text = "Re launch";
btnResetEmulator.Enabled = true;
btnSettings.Enabled = true;
btnStartDecoding.Enabled = true;
}
}
private void removeBorders(object sender, PaintEventArgs e)
{
GroupBox gpbx = (GroupBox)sender;
using (Pen pen = new Pen(gpbx.BackColor, 50))
{
e.Graphics.DrawRectangle(pen, 0, 0, gpbx.Width - 1, gpbx.Height - 1);
e.Graphics.DrawRectangle(pen, 0, 0, gpbx.Width - 1, gpbx.Height - 1);
}
using (var brush = new SolidBrush(gpbx.ForeColor))
{
var textPosition = new Point(5, 0); // Adjust the X and Y values as needed
e.Graphics.DrawString(gpbx.Text, gpbx.Font, brush, textPosition);
}
}
private void lsbPresets_SelectedIndexChanged(object sender, EventArgs e)
{
if (lsbPresets.SelectedIndex >= 0)
ConfigFile = lsbPresets.Items[lsbPresets.SelectedIndex].ToString();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (tbxGpUrl.Text != "")
GpUrl = tbxGpUrl.Text;
}
public void btnDriver_Click(object sender, EventArgs e)
{
//Removes the cover
if (pnlCover.Visible = true)
pnlCover.Visible = false;
//Happens when a driver button has been clicked
//MessageBox.Show((sender as Button).Name + " has been selected");
Button btn = (sender as Button);
string[] parts = btn.Name.Split('_');
DriverData driver = Wrapper.GetFullDriverData(parts[0], pnlCurrentDriverLapsHistory, this);
lblCurrentDriverName.Text = driver.Name;
lblCurrentDriverPosition.Text = driver.Position.ToString();
lblCurrentDriverGapToLeader.Text = Reader.ConvertMsToTime(driver.GapToLeader);
lblCurrentDriverLapTime.Text = Reader.ConvertMsToTime(driver.LapTime);
lblCurrentDriverTyreAge.Text = driver.CurrentTyre.NumberOfLaps.ToString();
if (driver.DRS)
{
lblCurrentDriverDRS.Text = "Open";
lblCurrentDriverDRS.ForeColor = Color.FromArgb(0, 164, 46);
}
else
{
lblCurrentDriverDRS.Text = "Closed";
lblCurrentDriverDRS.ForeColor = Color.Black;
}
switch (driver.CurrentTyre.Coumpound)
{
case Tyre.Type.Undefined:
lblCurrentDriverTyreType.Text = "uuuuh...";
lblCurrentDriverTyreType.ForeColor = Color.Violet;
break;
case Tyre.Type.Hard:
lblCurrentDriverTyreType.Text = "Hard";
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(164, 165, 168);
break;
case Tyre.Type.Medium:
lblCurrentDriverTyreType.Text = "Medium";
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(245, 191, 0);
break;
case Tyre.Type.Soft:
lblCurrentDriverTyreType.Text = "Soft";
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(255, 0, 0);
break;
case Tyre.Type.Inter:
lblCurrentDriverTyreType.Text = "Intermediate";
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(0, 164, 46);
break;
case Tyre.Type.Wet:
lblCurrentDriverTyreType.Text = "Wet";
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(39, 96, 166);
break;
}
}
public void btnLapTime_Click(object sender, EventArgs e)
{
//Happens when a lapTime has been clicked
Button btn = sender as Button;
string[] parts = btn.Name.Split('_');
Wrapper.DisplayLapTimeInfos(parts[0], Convert.ToInt32(parts[1]), btn.Text);
}
private void Main_Resize(object sender, EventArgs e)
{
int xDiff = this.Width - oldSize.Width;
int yDiff = this.Height - oldSize.Height;
int padding = 10;
//This will take half the newly created space
gpbxRanking.Size = new Size(oldRankingSize.Width + xDiff / 2, oldRankingSize.Height + yDiff);
gpbxRanking.Location = new Point(oldRankingPosition.X + xDiff / 2, gpbxRanking.Location.Y);
//Will take half the new height and half the new height
gpbxLapTimes.Size = new Size(oldLapTimesSize.Width + xDiff / 2, oldLapTimesSize.Height + yDiff / 2);
//Will take half the new height and half the new width
gpbxBattles.Size = new Size(oldBattles.Width + xDiff / 2, oldBattles.Height + yDiff / 2);
gpbxBattles.Location = new Point(gpbxBattles.Location.X, oldBattlePosition.Y + yDiff / 2);
//The infos wont change width but will need to be centerd
Point startOfZone = new Point(gpbxOvertakes.Width + gpbxOvertakes.Location.X, gpbxOvertakes.Location.Y);
Point endOfZone = new Point(gpbxRanking.Location.X, gpbxOvertakes.Location.Y);
int totalWidth = endOfZone.X - startOfZone.X;
gpbxDriverInfos.Location = new Point(startOfZone.X + (totalWidth / 2 - gpbxDriverInfos.Width / 2), oldDriverInfoPosition.Y + yDiff);
//Now resizing internals
pnlFastest.Size = new Size(oldPnlFastest.Width + xDiff / 4,oldPnlFastest.Height + yDiff / 4);
pnlFastest.Location = new Point(olPnlFastestPosition.X,olPnlFastestPosition.Y + yDiff / 4);
pnlSlowest.Size = new Size(oldPnlSlowest.Width + xDiff / 4, oldPnlSlowest.Height + yDiff / 4);
pnlSlowest.Location = new Point(oldPnlSlowestPosition.X + xDiff / 4, oldPnlSlowestPosition.Y + yDiff / 4);
pnlBattles.Size = new Size(oldPnlBattles.Width + xDiff / 2,oldPnlBattles.Height + yDiff / 2);
pnlLiveRanking.Size = new Size(oldPnlRankings.Width + xDiff / 2,oldPnlRankings.Height + yDiff);
}
}
}
```
-678
View File
@@ -1,678 +0,0 @@
# OcrImage.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : OcrImage.cs
/// Brief : Class containing all the methods used to enhance images for OCR
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
namespace TrackTrends
{
public class OcrImage
{
//this is a hardcoded value based on the colors of the F1TV data channel background you can change it if sometime in the future the color changes
//Any color that has any of its R,G or B channel higher than the treshold will be considered as being usefull information
public static Color F1TV_BACKGROUND_TRESHOLD = Color.FromArgb(0x50, 0x50, 0x50);
Bitmap InputBitmap;
public enum WindowType
{
LapTime,
Text,
Sector,
Gap,
Tyre,
}
/// <summary>
/// Create a new Ocr image to help enhance the given bitmap for OCR
/// </summary>
/// <param name="inputBitmap">The image you want to enhance</param>
public OcrImage(Bitmap inputBitmap)
{
InputBitmap = inputBitmap;
}
/// <summary>
/// Enhances the image depending on wich type of window the image comes from
/// </summary>
/// <param name="type">The type of the window. Depending on it different enhancing features will be applied</param>
/// <returns>The enhanced Bitmap</returns>
public Bitmap Enhance(WindowType type = WindowType.Text)
{
Bitmap outputBitmap = (Bitmap)InputBitmap.Clone();
//Note : If you plan to activate all the comments that I used to debug the OCR I would advise to make sure that the debug folder exists
switch (type)
{
case WindowType.Gap:
//outputBitmap.Save(Window.GAPTOLEADER_DEBUG_FOLDER + @"\raw_" + id + ".png");
outputBitmap = Tresholding(outputBitmap, 165);
//outputBitmap.Save(Window.GAPTOLEADER_DEBUG_FOLDER + @"\treshold_" + id + ".png");
outputBitmap = Resize(outputBitmap, 2);
//outputBitmap.Save(Window.GAPTOLEADER_DEBUG_FOLDER + @"\resize_" + id + ".png");
outputBitmap = Dilatation(outputBitmap, 1);
//outputBitmap.Save(Window.GAPTOLEADER_DEBUG_FOLDER + @"\Final_dilatation_" + id + ".png");
break;
case WindowType.Sector:
//outputBitmap.Save(Window.SECTOR1_DEBUG_FOLDER + @"\raw_" + id + ".png");
outputBitmap = VanishOxyAction(outputBitmap);
//outputBitmap.Save(Window.SECTOR1_DEBUG_FOLDER + @"\vanish_" + id + ".png");
outputBitmap = Tresholding(outputBitmap, 150);
//outputBitmap.Save(Window.SECTOR1_DEBUG_FOLDER + @"\Final_treshold_" + id + ".png");
break;
case WindowType.LapTime:
//outputBitmap.Save(Window.LAPTIME_DEBUG_FOLDER + @"\raw_" + id + ".png");
outputBitmap = Tresholding(outputBitmap,185);
//outputBitmap.Save(Window.LAPTIME_DEBUG_FOLDER + @"\Treshold_" + id + ".png");
outputBitmap = SobelEdgeDetection(outputBitmap);
//outputBitmap.Save(Window.LAPTIME_DEBUG_FOLDER + @"\SobelDetection_" + id + ".png");
break;
case WindowType.Text:
//outputBitmap.Save(Window.STRING_DEBUG_FOLDER + @"\raw_" + id + ".png");
outputBitmap = Tresholding(outputBitmap, 165);
//outputBitmap.Save(Window.STRING_DEBUG_FOLDER + @"\Final_treshold_" + id + ".png");
break;
case WindowType.Tyre:
//outputBitmap.Save(Window.TYRE_DEBUG_FOLDER + @"\raw_" + id + ".png");
outputBitmap = RemoveUseless(outputBitmap);
//outputBitmap.Save(Window.TYRE_DEBUG_FOLDER + @"\uselessRemoved_" + id + ".png");
outputBitmap = Dilatation(outputBitmap, 1);
//outputBitmap.Save(Window.TYRE_DEBUG_FOLDER + @"\Final_dilatation_" + id + ".png");
break;
default:
outputBitmap = Tresholding(outputBitmap, 165);
outputBitmap = Resize(outputBitmap, 2);
outputBitmap = Erode(outputBitmap, 1);
break;
}
return outputBitmap;
}
/// <summary>
/// Method that convert a colored RGB bitmap into a GrayScale image
/// </summary>
/// <param name="inputBitmap">The Bitmap you want to convert</param>
/// <returns>The bitmap in grayscale</returns>
public static Bitmap Grayscale(Bitmap inputBitmap)
{
Rectangle rect = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
BitmapData bmpData = inputBitmap.LockBits(rect, ImageLockMode.ReadWrite, inputBitmap.PixelFormat);
int bytesPerPixel = Bitmap.GetPixelFormatSize(inputBitmap.PixelFormat) / 8;
unsafe
{
byte* ptr = (byte*)bmpData.Scan0.ToPointer();
for (int y = 0; y < inputBitmap.Height; y++)
{
byte* currentLine = ptr + (y * bmpData.Stride);
for (int x = 0; x < inputBitmap.Width; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
byte blue = pixel[0];
byte green = pixel[1];
byte red = pixel[2];
//Those a specific values to correct the weights so its more pleasing to the human eye
int gray = (int)(red * 0.3 + green * 0.59 + blue * 0.11);
//This is not a proper treshold method but it is helping the sobel edge detection
if(gray <= F1TV_BACKGROUND_TRESHOLD.R)
{
pixel[0] = pixel[1] = pixel[2] = 0;
}
else
{
pixel[0] = pixel[1] = pixel[2] = (byte)gray;
}
}
}
}
inputBitmap.UnlockBits(bmpData);
return inputBitmap;
}
/// <summary>
/// Method that uses the Sobel Edge detection to outline the edges of the characters to help with the OCR
/// </summary>
/// <param name="grayscaleImage">The image with the sobel edge detection used</param>
/// <returns></returns>
private Bitmap SobelEdgeDetection(Bitmap grayscaleImage)
{
// Create a new bitmap for the edges
Bitmap edgesImage = new Bitmap(grayscaleImage.Width, grayscaleImage.Height);
// Define the Sobel operators
// Its just a matrix that we will use on the all image
int[,] sobelX = { { -1, 0, 1 }, { -2, 0, 2 }, { -1, 0, 1 } };
int[,] sobelY = { { -1, -2, -1 }, { 0, 0, 0 }, { 1, 2, 1 } };
// Apply the Sobel operators and normalize the gradients
// NOTE: I dont know how easy or hard it would be to make this paralel but it could be a good idea to do so if possible.
for (int y = 1; y < grayscaleImage.Height - 1; y++)
{
for (int x = 1; x < grayscaleImage.Width - 1; x++)
{
int gradientX = CalculateGradient(grayscaleImage, sobelX, x, y);
int gradientY = CalculateGradient(grayscaleImage, sobelY, x, y);
int gradient = (int)Math.Sqrt(gradientX * gradientX + gradientY * gradientY);
// Normalize the gradient value
// In some rare cases the value can exceed 255 so we limit it with the Math.Min method
gradient = Math.Min(255, Math.Max(0, gradient));
edgesImage.SetPixel(x, y, Color.FromArgb(gradient, gradient, gradient));
}
}
return edgesImage;
}
/// <summary>
/// Method that's here to be used by the sobel edge detection method (Chat GPT has been used for parts of this method)
/// </summary>
/// <param name="grayscaleImage">The input image with the grayscale processing already done</param>
/// <param name="sobelOperator">The matrix to apply</param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns>Returns the processed gradient</returns>
private int CalculateGradient(Bitmap grayscaleImage, int[,] sobelOperator, int x, int y)
{
int gradient = 0;
for (int j = -1; j <= 1; j++)
{
for (int i = -1; i <= 1; i++)
{
int pixelX = grayscaleImage.GetPixel(x + i, y + j).R;
gradient += sobelOperator[j + 1, i + 1] * pixelX;
}
}
return gradient;
}
/// <summary>
/// Method that is used to whiten an image. Ignore the funny name. Its used to prevent colored text to trouble the OCR when it uses grayscaling
/// </summary>
/// <param name="inputBitmap">The bitmap to vanish</param>
/// <returns></returns>
public static Bitmap VanishOxyAction(Bitmap inputBitmap)
{
Rectangle rect = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
BitmapData bmpData = inputBitmap.LockBits(rect, ImageLockMode.ReadWrite, inputBitmap.PixelFormat);
int bytesPerPixel = Bitmap.GetPixelFormatSize(inputBitmap.PixelFormat) / 8;
unsafe
{
//Note : MAKE THIS PARALELL OMG WY DID I LEFT IT LIKE THAT
byte* ptr = (byte*)bmpData.Scan0.ToPointer();
for (int y = 0; y < inputBitmap.Height; y++)
{
byte* currentLine = ptr + (y * bmpData.Stride);
for (int x = 0; x < inputBitmap.Width; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
int blue = (int)pixel[0];
int green = (int)pixel[1];
int red = (int)pixel[2];
int max = Math.Max(Math.Max(blue, green), red);
if (max > 255 / 3)
max = 255;
pixel[0] = pixel[1] = pixel[2] = (byte)max;
}
}
}
inputBitmap.UnlockBits(bmpData);
return inputBitmap;
}
/// <summary>
/// Method that binaries the input image up to a certain treshold given
/// </summary>
/// <param name="inputBitmap">the bitmap you want to convert to binary colors</param>
/// <param name="threshold">The floor at wich the color is considered as white or black</param>
/// <returns>The binarised bitmap</returns>
public static Bitmap Tresholding(Bitmap inputBitmap, int threshold)
{
Rectangle rect = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
BitmapData bmpData = inputBitmap.LockBits(rect, ImageLockMode.ReadWrite, inputBitmap.PixelFormat);
int bytesPerPixel = Bitmap.GetPixelFormatSize(inputBitmap.PixelFormat) / 8;
unsafe
{
byte* ptr = (byte*)bmpData.Scan0.ToPointer();
int bmpHeight = inputBitmap.Height;
int bmpWidth = inputBitmap.Width;
Parallel.For(0, bmpHeight, y =>
{
byte* currentLine = ptr + (y * bmpData.Stride);
for (int x = 0; x < bmpWidth; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
byte blue = pixel[0];
byte green = pixel[1];
byte red = pixel[2];
//Those a specific values to correct the weights so its more pleasing to the human eye
int gray = (int)(red * 0.3 + green * 0.59 + blue * 0.11);
int value = gray < threshold ? 0 : 255;
pixel[0] = pixel[1] = pixel[2] = (byte)value;
}
});
}
inputBitmap.UnlockBits(bmpData);
return inputBitmap;
}
/// <summary>
/// Method that removes the pixels that are flagged as background
/// </summary>
/// <param name="inputBitmap">The bitmap you want to remove the background from</param>
/// <returns>The Bitmap without the background</returns>
public static Bitmap RemoveBG(Bitmap inputBitmap)
{
Rectangle rect = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
BitmapData bmpData = inputBitmap.LockBits(rect, ImageLockMode.ReadWrite, inputBitmap.PixelFormat);
int bytesPerPixel = Bitmap.GetPixelFormatSize(inputBitmap.PixelFormat) / 8;
unsafe
{
byte* ptr = (byte*)bmpData.Scan0.ToPointer();
for (int y = 0; y < inputBitmap.Height; y++)
{
byte* currentLine = ptr + (y * bmpData.Stride);
for (int x = 0; x < inputBitmap.Width; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
int B = pixel[0];
int G = pixel[1];
int R = pixel[2];
if (R <= F1TV_BACKGROUND_TRESHOLD.R && G <= F1TV_BACKGROUND_TRESHOLD.G && B <= F1TV_BACKGROUND_TRESHOLD.B)
pixel[0] = pixel[1] = pixel[2] = 0;
}
}
}
inputBitmap.UnlockBits(bmpData);
return inputBitmap;
}
/// <summary>
/// Method that removes all the useless things from the image and returns hopefully only the numbers
/// </summary>
/// <param name="inputBitmap">The bitmap you want to remove useless things from (Expects a cropped part of the TyreWindow)</param>
/// <returns>The bitmap with (hopefully) only the digits</returns>
public unsafe static Bitmap RemoveUseless(Bitmap inputBitmap)
{
//Note you can use something else than a cropped tyre window but I would recommend checking the code first to see if it fits your intended use
Rectangle rect = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
BitmapData bmpData = inputBitmap.LockBits(rect, ImageLockMode.ReadWrite, inputBitmap.PixelFormat);
int bytesPerPixel = Bitmap.GetPixelFormatSize(inputBitmap.PixelFormat) / 8;
byte* ptr = (byte*)bmpData.Scan0.ToPointer();
for (int y = 0; y < inputBitmap.Height; y++)
{
byte* currentLine = ptr + (y * bmpData.Stride);
List<int> pixelsToRemove = new List<int>();
bool fromBorder = true;
for (int x = 0; x < inputBitmap.Width; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
int B = pixel[0];
int G = pixel[1];
int R = pixel[2];
if (fromBorder && B < F1TV_BACKGROUND_TRESHOLD.B && G < F1TV_BACKGROUND_TRESHOLD.G && R < F1TV_BACKGROUND_TRESHOLD.R)
{
pixelsToRemove.Add(x);
}
else
{
if (fromBorder)
{
fromBorder = false;
pixelsToRemove.Add(x);
}
}
}
fromBorder = true;
for (int x = inputBitmap.Width - 1; x > 0; x--)
{
byte* pixel = currentLine + (x * bytesPerPixel);
int B = pixel[0];
int G = pixel[1];
int R = pixel[2];
if (fromBorder && B < F1TV_BACKGROUND_TRESHOLD.B && G < F1TV_BACKGROUND_TRESHOLD.G && R < F1TV_BACKGROUND_TRESHOLD.R)
{
pixelsToRemove.Add(x);
}
else
{
if (fromBorder)
{
fromBorder = false;
pixelsToRemove.Add(x);
}
}
}
foreach (int pxPos in pixelsToRemove)
{
byte* pixel = currentLine + (pxPos * bytesPerPixel);
pixel[0] = 0xFF;
pixel[1] = 0xFF;
pixel[2] = 0xFF;
}
}
//Removing the color parts
for (int y = 0; y < inputBitmap.Height; y++)
{
byte* currentLine = ptr + (y * bmpData.Stride);
for (int x = 0; x < inputBitmap.Width; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
int B = pixel[0];
int G = pixel[1];
int R = pixel[2];
if (R >= F1TV_BACKGROUND_TRESHOLD.R +25|| G >= F1TV_BACKGROUND_TRESHOLD.G +25|| B >= F1TV_BACKGROUND_TRESHOLD.B +25)
{
pixel[0] = 0xFF;
pixel[1] = 0xFF;
pixel[2] = 0xFF;
}
}
}
inputBitmap.UnlockBits(bmpData);
return inputBitmap;
}
/// <summary>
/// Recovers the average colors from the Image. NOTE : It wont take in account colors that are lower than the background
/// </summary>
/// <param name="inputBitmap">The bitmap you want to get the average color from</param>
/// <returns>The average color of the bitmap</returns>
public static Color GetAvgColorFromBitmap(Bitmap inputBitmap)
{
Rectangle rect = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
BitmapData bmpData = inputBitmap.LockBits(rect, ImageLockMode.ReadWrite, inputBitmap.PixelFormat);
int bytesPerPixel = Bitmap.GetPixelFormatSize(inputBitmap.PixelFormat) / 8;
int totR = 0;
int totG = 0;
int totB = 0;
int totPixels = 1;
unsafe
{
byte* ptr = (byte*)bmpData.Scan0.ToPointer();
int bmpHeight = inputBitmap.Height;
int bmpWidth = inputBitmap.Width;
Parallel.For(0, bmpHeight, y =>
{
byte* currentLine = ptr + (y * bmpData.Stride);
for (int x = 0; x < bmpWidth; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
int B = pixel[0];
int G = pixel[1];
int R = pixel[2];
if (R >= F1TV_BACKGROUND_TRESHOLD.R || G >= F1TV_BACKGROUND_TRESHOLD.G || B >= F1TV_BACKGROUND_TRESHOLD.B)
{
totPixels++;
totB += pixel[0];
totG += pixel[1];
totR += pixel[2];
}
}
});
}
inputBitmap.UnlockBits(bmpData);
return Color.FromArgb(255,Math.Min(Convert.ToInt32((float)totR / (float)totPixels),255), Math.Min(Convert.ToInt32((float)totG / (float)totPixels),255), Math.Min(Convert.ToInt32((float)totB / (float)totPixels),255));
}
/// <summary>
/// This method simply inverts all the colors in a Bitmap
/// </summary>
/// <param name="inputBitmap">the bitmap you want to invert the colors from</param>
/// <returns>The bitmap with inverted colors</returns>
public static Bitmap InvertColors(Bitmap inputBitmap)
{
Rectangle rect = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
BitmapData bmpData = inputBitmap.LockBits(rect, ImageLockMode.ReadWrite, inputBitmap.PixelFormat);
int bytesPerPixel = Bitmap.GetPixelFormatSize(inputBitmap.PixelFormat) / 8;
unsafe
{
byte* ptr = (byte*)bmpData.Scan0.ToPointer();
for (int y = 0; y < inputBitmap.Height; y++)
{
byte* currentLine = ptr + (y * bmpData.Stride);
for (int x = 0; x < inputBitmap.Width; x++)
{
byte* pixel = currentLine + (x * bytesPerPixel);
pixel[0] = (byte)(255 - pixel[0]);
pixel[1] = (byte)(255 - pixel[1]);
pixel[2] = (byte)(255 - pixel[2]);
}
}
}
inputBitmap.UnlockBits(bmpData);
return inputBitmap;
}
/// <summary>
/// Methods that applies Bicubic interpolation to increase the size and resolution of an image
/// </summary>
/// <param name="inputBitmap">The bitmap you want to resize</param>
/// <param name="resizeFactor">The factor of resizing you want to use. I recommend using even numbers</param>
/// <returns>The bitmap witht the new size</returns>
public static Bitmap Resize(Bitmap inputBitmap, int resizeFactor)
{
var resultBitmap = new Bitmap(inputBitmap.Width * resizeFactor, inputBitmap.Height * resizeFactor);
using (var graphics = Graphics.FromImage(resultBitmap))
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.DrawImage(inputBitmap, new Rectangle(0, 0, resultBitmap.Width, resultBitmap.Height));
}
return resultBitmap;
}
/// <summary>
/// method that Highlights the countours of a Bitmap
/// </summary>
/// <param name="inputBitmap">The bitmap you want to highlight the countours of</param>
/// <returns>The bitmap with countours highlighted</returns>
public static Bitmap HighlightContours(Bitmap inputBitmap)
{
Bitmap outputBitmap = new Bitmap(inputBitmap.Width, inputBitmap.Height);
Bitmap grayscale = Grayscale(inputBitmap);
Bitmap thresholded = Tresholding(grayscale, 128);
Bitmap dilated = Dilatation(thresholded, 3);
Bitmap eroded = Erode(dilated, 3);
for (int y = 0; y < inputBitmap.Height; y++)
{
for (int x = 0; x < inputBitmap.Width; x++)
{
Color pixel = inputBitmap.GetPixel(x, y);
Color dilatedPixel = dilated.GetPixel(x, y);
Color erodedPixel = eroded.GetPixel(x, y);
int gray = (int)(pixel.R * 0.3 + pixel.G * 0.59 + pixel.B * 0.11);
int threshold = dilatedPixel.R;
if (gray > threshold)
{
outputBitmap.SetPixel(x, y, Color.FromArgb(255, 255, 255));
}
else if (gray <= threshold && erodedPixel.R == 0)
{
outputBitmap.SetPixel(x, y, Color.FromArgb(255, 0, 0));
}
else
{
outputBitmap.SetPixel(x, y, Color.FromArgb(0, 0, 0));
}
}
}
return outputBitmap;
}
/// <summary>
/// Method that that erodes the morphology of a bitmap
/// </summary>
/// <param name="inputBitmap">The bitmap you want to erode</param>
/// <param name="kernelSize">The amount of Erosion you want (be carefull its expensive on ressources)</param>
/// <returns>The Bitmap with the eroded contents</returns>
public static Bitmap Erode(Bitmap inputBitmap, int kernelSize)
{
Bitmap outputBitmap = new Bitmap(inputBitmap.Width, inputBitmap.Height);
int[,] kernel = new int[kernelSize, kernelSize];
for (int i = 0; i < kernelSize; i++)
{
for (int j = 0; j < kernelSize; j++)
{
kernel[i, j] = 1;
}
}
for (int y = kernelSize / 2; y < inputBitmap.Height - kernelSize / 2; y++)
{
for (int x = kernelSize / 2; x < inputBitmap.Width - kernelSize / 2; x++)
{
bool flag = true;
for (int i = -kernelSize / 2; i <= kernelSize / 2; i++)
{
for (int j = -kernelSize / 2; j <= kernelSize / 2; j++)
{
Color pixel = inputBitmap.GetPixel(x + i, y + j);
int gray = (int)(pixel.R * 0.3 + pixel.G * 0.59 + pixel.B * 0.11);
if (gray >= 128 && kernel[i + kernelSize / 2, j + kernelSize / 2] == 1)
{
flag = false;
break;
}
}
if (!flag)
{
break;
}
}
if (flag)
{
outputBitmap.SetPixel(x, y, Color.FromArgb(255, 255, 255));
}
else
{
outputBitmap.SetPixel(x, y, Color.FromArgb(0, 0, 0));
}
}
}
return outputBitmap;
}
/// <summary>
/// Method that that use dilatation of the morphology of a bitmap
/// </summary>
/// <param name="inputBitmap">The bitmap you want to use dilatation on</param>
/// <param name="kernelSize">The amount of dilatation you want (be carefull its expensive on ressources)</param>
/// <returns>The Bitmap after Dilatation</returns>
public static Bitmap Dilatation(Bitmap inputBitmap, int kernelSize)
{
Bitmap outputBitmap = new Bitmap(inputBitmap.Width, inputBitmap.Height);
int[,] kernel = new int[kernelSize, kernelSize];
for (int i = 0; i < kernelSize; i++)
{
for (int j = 0; j < kernelSize; j++)
{
kernel[i, j] = 1;
}
}
for (int y = kernelSize / 2; y < inputBitmap.Height - kernelSize / 2; y++)
{
for (int x = kernelSize / 2; x < inputBitmap.Width - kernelSize / 2; x++)
{
bool flag = false;
for (int i = -kernelSize / 2; i <= kernelSize / 2; i++)
{
for (int j = -kernelSize / 2; j <= kernelSize / 2; j++)
{
Color pixel = inputBitmap.GetPixel(x + i, y + j);
int gray = (int)(pixel.R * 0.3 + pixel.G * 0.59 + pixel.B * 0.11);
if (gray < 128 && kernel[i + kernelSize / 2, j + kernelSize / 2] == 1)
{
flag = true;
break;
}
}
if (flag)
{
break;
}
}
if (flag)
{
outputBitmap.SetPixel(x, y, Color.FromArgb(0, 0, 0));
}
else
{
outputBitmap.SetPixel(x, y, Color.FromArgb(255, 255, 255));
}
}
}
return outputBitmap;
}
}
}
```
-27
View File
@@ -1,27 +0,0 @@
# Program.cs
``` cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TrackTrends
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main());
}
}
}
```
-343
View File
@@ -1,343 +0,0 @@
# Reader.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : Reader.cs
/// Brief : Class used to Read the config file for the OCR
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Text.Json;
namespace TrackTrends
{
public class Reader
{
const int NUMBER_OF_DRIVERS = 20;
public List<string> Drivers;
public List<Zone> MainZones;
private SqliteStorage _storage;
private List<DriverData>[] DriverDataLogs = new List<DriverData>[NUMBER_OF_DRIVERS];
private int[] DriverLaps = new int[NUMBER_OF_DRIVERS];
public SqliteStorage Storage { get => _storage; private set => _storage = value; }
public Reader(string configFile, Bitmap image, bool loadOCR = true)
{
Storage = new SqliteStorage();
MainZones = Load(image, configFile, ref Drivers, loadOCR);
}
/// <summary>
/// Method that reads the JSON config file and create all the Zones and Windows
/// </summary>
/// <param name="imageNumber">The image #id on wich you want to create the zones on</param>
public List<Zone> Load(Bitmap image, string configFilePath, ref List<string> driverListToFill, bool LoadOCR)
{
// Note : You may wonder why in the H... I have all the zones and windows stored in a JSON file and not just for example the first and the last
// Its because they are not perfectly aligned to each others and every zone has his own alignement to the main image
List<Zone> mainZones = new List<Zone>();
Bitmap fullImage = image;
Zone mainZone;
for (int i = 0; i < NUMBER_OF_DRIVERS; i++)
{
DriverDataLogs[i] = new List<DriverData>();
DriverLaps[i] = 0;
}
try
{
string jsonString = File.ReadAllText(configFilePath);
JsonDocument document = JsonDocument.Parse(jsonString);
JsonElement root = document.RootElement;
mainZones = new List<Zone>();
driverListToFill = new List<string>();
JsonElement main = root.GetProperty("Main");
int x = main.GetProperty("x").GetInt32();
int y = main.GetProperty("y").GetInt32();
int width = main.GetProperty("width").GetInt32();
int height = main.GetProperty("height").GetInt32();
mainZone = new Zone(fullImage, new Rectangle(x, y, width, height), "Main");
mainZone.ResetWindows();
mainZone.ResetZones();
JsonElement driverZones = main.GetProperty("DriverZones");
foreach (JsonElement driverZoneElement in driverZones.EnumerateArray())
{
string name = driverZoneElement.GetProperty("name").GetString();
int driverX = driverZoneElement.GetProperty("x").GetInt32() + mainZone.Bounds.X;
int driverY = driverZoneElement.GetProperty("y").GetInt32() + mainZone.Bounds.Y;
int driverWidth = driverZoneElement.GetProperty("width").GetInt32();
int driverHeight = driverZoneElement.GetProperty("height").GetInt32();
Zone driverZone = new Zone(fullImage, new Rectangle(driverX, driverY, driverWidth, driverHeight), "Driver");
JsonElement windowsElement = driverZoneElement.GetProperty("Windows");
//string[] windowNames = new string[] { "Position","GapToLeader","LapTime","DRS","Tyres","Name","Sector1","Sector2","Sector3" };
foreach (JsonElement windowElement in windowsElement.EnumerateArray())
{
//Position
JsonElement posEl = windowElement.GetProperty("Position");
DriverPositionWindow positionWindow = new DriverPositionWindow(driverZone.ZoneImage,
new Rectangle(
posEl.GetProperty("x").GetInt32(),
posEl.GetProperty("y").GetInt32(),
posEl.GetProperty("width").GetInt32(),
posEl.GetProperty("height").GetInt32()),
LoadOCR);
//GapToLeader
JsonElement gapEl = windowElement.GetProperty("GapToLeader");
DriverGapToLeaderWindow gapWindow = new DriverGapToLeaderWindow(driverZone.ZoneImage,
new Rectangle(
gapEl.GetProperty("x").GetInt32(),
gapEl.GetProperty("y").GetInt32(),
gapEl.GetProperty("width").GetInt32(),
gapEl.GetProperty("height").GetInt32()),
LoadOCR);
//LapTime
JsonElement lapEl = windowElement.GetProperty("LapTime");
DriverLapTimeWindow lapWindow = new DriverLapTimeWindow(driverZone.ZoneImage,
new Rectangle(
lapEl.GetProperty("x").GetInt32(),
lapEl.GetProperty("y").GetInt32(),
lapEl.GetProperty("width").GetInt32(),
lapEl.GetProperty("height").GetInt32()),
LoadOCR);
//DRS
JsonElement drsEl = windowElement.GetProperty("DRS");
DriverDrsWindow drsWindow = new DriverDrsWindow(driverZone.ZoneImage,
new Rectangle(
drsEl.GetProperty("x").GetInt32(),
drsEl.GetProperty("y").GetInt32(),
drsEl.GetProperty("width").GetInt32(),
drsEl.GetProperty("height").GetInt32()),
LoadOCR);
//Tyre
JsonElement tyresEl = windowElement.GetProperty("Tyres");
DriverTyresWindow tyreWindow = new DriverTyresWindow(driverZone.ZoneImage,
new Rectangle(
tyresEl.GetProperty("x").GetInt32(),
tyresEl.GetProperty("y").GetInt32(),
tyresEl.GetProperty("width").GetInt32(),
tyresEl.GetProperty("height").GetInt32()),
LoadOCR);
//Name
JsonElement nameEl = windowElement.GetProperty("Name");
DriverNameWindow nameWindow = new DriverNameWindow(driverZone.ZoneImage,
new Rectangle(
nameEl.GetProperty("x").GetInt32(),
nameEl.GetProperty("y").GetInt32(),
nameEl.GetProperty("width").GetInt32(),
nameEl.GetProperty("height").GetInt32()),
LoadOCR);
//Sector1
JsonElement sec1El = windowElement.GetProperty("Sector1");
DriverSectorWindow sec1Window = new DriverSectorWindow(driverZone.ZoneImage,
new Rectangle(
sec1El.GetProperty("x").GetInt32(),
sec1El.GetProperty("y").GetInt32(),
sec1El.GetProperty("width").GetInt32(),
sec1El.GetProperty("height").GetInt32()),
1, LoadOCR);
//Sector2
JsonElement sec2El = windowElement.GetProperty("Sector2");
DriverSectorWindow sec2Window = new DriverSectorWindow(driverZone.ZoneImage,
new Rectangle(
sec2El.GetProperty("x").GetInt32(),
sec2El.GetProperty("y").GetInt32(),
sec2El.GetProperty("width").GetInt32(),
sec2El.GetProperty("height").GetInt32()),
2, LoadOCR);
//Sector3
JsonElement sec3El = windowElement.GetProperty("Sector3");
DriverSectorWindow sec3Window = new DriverSectorWindow(driverZone.ZoneImage,
new Rectangle(
sec3El.GetProperty("x").GetInt32(),
sec3El.GetProperty("y").GetInt32(),
sec3El.GetProperty("width").GetInt32(),
sec3El.GetProperty("height").GetInt32()),
3, LoadOCR);
driverZone.AddWindow(positionWindow);
driverZone.AddWindow(gapWindow);
driverZone.AddWindow(lapWindow);
driverZone.AddWindow(drsWindow);
driverZone.AddWindow(tyreWindow);
driverZone.AddWindow(nameWindow);
driverZone.AddWindow(sec1Window);
driverZone.AddWindow(sec2Window);
driverZone.AddWindow(sec3Window);
}
mainZone.AddZone(driverZone);
}
JsonElement driversElement = main.GetProperty("Drivers");
foreach (JsonElement driverElement in driversElement.EnumerateArray())
{
string driverName = driverElement.GetString();
driverListToFill.Add(driverName);
Storage.AddDriver(driverName);
}
mainZones.Add(mainZone);
}
catch (IOException ex)
{
MessageBox.Show("Error reading JSON file: " + ex.Message);
}
catch (JsonException ex)
{
MessageBox.Show("Invalid JSON format: " + ex.Message);
}
int driverID = 0;
foreach (Zone z in mainZones[0].Zones)
{
driverID++;
z.ZoneImage.Save("LoadedDriver" + driverID + ".png");
}
return mainZones;
}
/// <summary>
/// Method that calls all the zones and windows to get the content they can find on the image to display them
/// </summary>
/// <param name="idImage">The id of the image we are working with</param>
/// <returns>a string representation of all the returns</returns>
public List<DriverData> Decode(List<Zone> mainZones, List<string> drivers)
{
List<DriverData> mainResults = new List<DriverData>();
//Decode
for (int mainZoneId = 0; mainZoneId < mainZones.Count; mainZoneId++)
{
switch (mainZoneId)
{
case 0:
//object lockObject = new object();
//Main Zone
Parallel.For(0, mainZones[mainZoneId].Zones.Count, async i =>
//for (int i = 0; i < mainZones[mainZoneId].Zones.Count; i++)
{
DriverData data = mainZones[mainZoneId].Zones[i].Decode(new List<string>(drivers));
mainResults.Add(data);
DriverDataLogs[i].Add(data);
if (data.Position != -1 && DriverDataLogs[i].Count > 1)
{
//Tries to fix the tyres
if (data.CurrentTyre.NumberOfLaps > DriverDataLogs[i][DriverDataLogs[i].Count - 2].CurrentTyre.NumberOfLaps + 3)
data.CurrentTyre.NumberOfLaps = DriverDataLogs[i][DriverDataLogs[i].Count - 2].CurrentTyre.NumberOfLaps + 1;
//Checking if its a new lap
//If the third sector is filled but it was'nt the last time, then it means that a new Lap has been started
//Lap detection can be f***ed if the OCR takes so much time that an entire sector can be raced without us knowing.
if (
DriverDataLogs[i][DriverDataLogs[i].Count - 1].Sector3 != 0
&& DriverDataLogs[i][DriverDataLogs[i].Count - 2].Sector3 == 0
&& DriverDataLogs[i][DriverDataLogs[i].Count - 2].Position != -1
&& DriverDataLogs[i][DriverDataLogs[i].Count - 1].Position != -1)
{
DriverData stats = new DriverData();
stats = DriverDataLogs[i][DriverDataLogs[i].Count - 1];
DriverLaps[i]++;
Storage.AddDriverStat(stats, DriverLaps[i]);
}
//Checking if its a pitstop
//Forget this the best way to know if a tyre has been changed is if the number of laps is zero
if (data.CurrentTyre.Coumpound != Tyre.Type.Undefined && data.CurrentTyre.NumberOfLaps == 0 && DriverDataLogs[i][DriverDataLogs[i].Count - 2].CurrentTyre.NumberOfLaps != 0)
{
Storage.AddPitstop(data.Name, DriverLaps[i] - 1, data.CurrentTyre.Coumpound.ToString());
//Driver laps -1 because it would take AT LEAST one lap for this program to detect a pitstop
}
}
DriverDataLogs[i].Add(data);
});
break;
//Next there could be a Title Zone and TrackInfoZone
}
}
//mainResults = mainResults.OrderBy(driver => driver.Position >= 0).ThenBy(driver => driver.Position).ToList();
mainResults = mainResults.OrderBy(driver => driver.Position).ToList();
return mainResults;
}
/// <summary>
/// Changes the image in all of the zones wich then will do the same for theyre own subzones and windows
/// </summary>
/// <param name="Image">The new Image from the F1TV data channel</param>
public void ChangeImage(Bitmap Image)
{
foreach (Zone z in MainZones)
{
z.Image = Image;
}
}
/// <summary>
/// Method that can be used to convert an amount of miliseconds into a more readable human form
/// </summary>
/// <param name="amountOfMs">The given amount of miliseconds ton convert</param>
/// <returns>A human readable string that represents the ms</returns>
public static string ConvertMsToTime(int amountOfMs)
{
//Convert.ToInt32 would round upand I dont want that
int minuts = (int)((float)amountOfMs / (1000f * 60f));
int seconds = (int)((amountOfMs - (minuts * 60f * 1000f)) / 1000);
int ms = amountOfMs - ((minuts * 60 * 1000) + (seconds * 1000));
return minuts + ":" + seconds.ToString("00") + ":" + ms.ToString("000");
}
/// <summary>
/// Old method that can draw on an image where the windows and zones are created. mostly used for debugging
/// </summary>
/// <param name="idImage">the #id of the image we are working with</param>
/// <returns>the drawed bitmap</returns>
public Bitmap Draw(Bitmap image, List<Zone> mainZones)
{
Graphics g = Graphics.FromImage(image);
foreach (Zone z in mainZones)
{
int count = 0;
foreach (Zone zz in z.Zones)
{
g.DrawRectangle(Pens.Red, z.Bounds);
foreach (Window w in zz.Windows)
{
g.DrawRectangle(Pens.Blue, new Rectangle(z.Bounds.X + zz.Bounds.X, z.Bounds.Y + zz.Bounds.Y, zz.Bounds.Width, zz.Bounds.Height));
}
count++;
}
}
return image;
}
}
}
```

Some files were not shown because too many files have changed in this diff Show More