BMTuneSource/frmOstrichInfo.cs

563 lines
24 KiB
C#

using Data;
using System;
using System.Linq;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
internal class frmOstrichInfo : Form
{
private Button btnClose;
private Button btnReset;
private Class18 class18_0;
private Class25 class25_0;
private GroupBox grpInfo;
private IContainer icontainer_0;
private Label label1;
private Label labelEmulatorName;
private Label label3;
private Label label4;
private Label label6;
private Label lblFirmVersion;
private Label lblNotConnected;
private TextBox lblSerial;
private Button ReloadInfos;
private GroupBox groupBoxAdvanced;
private TextBox textBoxSerialID;
private Label label5;
private Label label7;
private Button buttonResetSerial;
private NumericUpDown numericVendorID;
private ErrorProvider errorProvider_0;
private IContainer components;
private Label label2;
private Label lblVendorId;
internal frmOstrichInfo()
{
this.InitializeComponent();
}
private void ButtonReloadInfo_Click(object sender, EventArgs e)
{
this.class18_0.class17_0.SetDemonDatalogCheck(false);
this.class25_0.method_1(true);
this.method_2();
}
private void ButtonResetSerial_Click(object sender, EventArgs e)
{
try
{
//this.textBoxSerialID.Text = "FFFFF FFFFF FFFFF F";
if (this.textBoxSerialID.Text.Length == 16)
{
byte[] NewID = StringToByteArray(textBoxSerialID.Text);
if (NewID.Length == 8)
{
if (MessageBox.Show(Form.ActiveForm, "This will reset your Serial ID, vendorID will remain the same\nThis will remove all data on emulator!\nDo you want to continue?", "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
if (!this.class25_0.GetConnected())
{
this.class25_0.method_1(true);
}
this.class25_0.ResetSerial(NewID);
this.method_2();
}
}
else
{
MessageBox.Show(Form.ActiveForm, "The Serial ID aren't correct!", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
}
else
{
MessageBox.Show(Form.ActiveForm, "The Serial ID aren't correct in lenght!\nThe serial ID need 16x characters", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
}
catch (Exception exception)
{
MessageBox.Show(Form.ActiveForm, exception.Message);
}
}
private byte[] StringToByteArray(string hex)
{
try
{
return Enumerable.Range(0, hex.Length).Where(x => x % 2 == 0).Select(x => Convert.ToByte(hex.Substring(x, 2), 16)).ToArray();
}
catch
{
return new byte[] { };
}
}
private void btnReset_Click(object sender, EventArgs e)
{
try
{
if (MessageBox.Show(Form.ActiveForm, "This will reset your vendorID, serialID will remain the same\nThis will remove all data on emulator!\nDo you want to continue?", "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
if ((this.class18_0.class10_settings_0.emulatorMode_0 == EmulatorMode.Ostrich && numericVendorID.Value != 0)
|| (this.class18_0.class10_settings_0.emulatorMode_0 == EmulatorMode.Demon && numericVendorID.Value != 1))
{
MessageBox.Show(Form.ActiveForm, "Take note that when using a not compatible emulator vendor ID for\nBMTune, BMTune will give you warning and offer you to reset the\nvendor ID to a compatible one", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
if (!this.class25_0.GetConnected())
{
this.class25_0.method_1(true);
}
this.class25_0.ResetVendorUnknown((byte) numericVendorID.Value);
this.method_2();
}
}
catch (Exception exception)
{
MessageBox.Show(Form.ActiveForm, exception.Message);
}
}
protected override void Dispose(bool disposing)
{
if (disposing && (this.icontainer_0 != null))
{
this.icontainer_0.Dispose();
}
base.Dispose(disposing);
}
private void frmOstrichInfo_Load(object sender, EventArgs e)
{
this.method_2();
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmOstrichInfo));
this.grpInfo = new System.Windows.Forms.GroupBox();
this.ReloadInfos = new System.Windows.Forms.Button();
this.lblSerial = new System.Windows.Forms.TextBox();
this.labelEmulatorName = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.lblVendorId = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.lblFirmVersion = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.lblNotConnected = new System.Windows.Forms.Label();
this.btnReset = new System.Windows.Forms.Button();
this.btnClose = new System.Windows.Forms.Button();
this.groupBoxAdvanced = new System.Windows.Forms.GroupBox();
this.label2 = new System.Windows.Forms.Label();
this.numericVendorID = new System.Windows.Forms.NumericUpDown();
this.buttonResetSerial = new System.Windows.Forms.Button();
this.textBoxSerialID = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.errorProvider_0 = new System.Windows.Forms.ErrorProvider(this.components);
this.grpInfo.SuspendLayout();
this.groupBoxAdvanced.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericVendorID)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.errorProvider_0)).BeginInit();
this.SuspendLayout();
//
// grpInfo
//
this.grpInfo.Controls.Add(this.ReloadInfos);
this.grpInfo.Controls.Add(this.lblSerial);
this.grpInfo.Controls.Add(this.labelEmulatorName);
this.grpInfo.Controls.Add(this.label4);
this.grpInfo.Controls.Add(this.label6);
this.grpInfo.Controls.Add(this.lblVendorId);
this.grpInfo.Controls.Add(this.label3);
this.grpInfo.Controls.Add(this.lblFirmVersion);
this.grpInfo.Controls.Add(this.label1);
this.grpInfo.Location = new System.Drawing.Point(12, 12);
this.grpInfo.Name = "grpInfo";
this.grpInfo.Size = new System.Drawing.Size(259, 152);
this.grpInfo.TabIndex = 0;
this.grpInfo.TabStop = false;
this.grpInfo.Text = "Emulator Infos";
//
// ReloadInfos
//
this.ReloadInfos.Location = new System.Drawing.Point(39, 117);
this.ReloadInfos.Name = "ReloadInfos";
this.ReloadInfos.Size = new System.Drawing.Size(173, 25);
this.ReloadInfos.TabIndex = 19;
this.ReloadInfos.Text = "Reload Info (try connect)";
this.ReloadInfos.UseVisualStyleBackColor = true;
this.ReloadInfos.Click += new System.EventHandler(this.ButtonReloadInfo_Click);
//
// lblSerial
//
this.lblSerial.Location = new System.Drawing.Point(90, 90);
this.lblSerial.Name = "lblSerial";
this.lblSerial.ReadOnly = true;
this.lblSerial.Size = new System.Drawing.Size(160, 20);
this.lblSerial.TabIndex = 20;
//
// labelEmulatorName
//
this.labelEmulatorName.AutoSize = true;
this.labelEmulatorName.Location = new System.Drawing.Point(87, 22);
this.labelEmulatorName.Name = "labelEmulatorName";
this.labelEmulatorName.Size = new System.Drawing.Size(15, 14);
this.labelEmulatorName.TabIndex = 19;
this.labelEmulatorName.Text = "#";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(13, 69);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(63, 14);
this.label4.TabIndex = 18;
this.label4.Text = "Vendor ID:";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(13, 93);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(54, 14);
this.label6.TabIndex = 13;
this.label6.Text = "Serial ID:";
//
// lblVendorId
//
this.lblVendorId.AutoSize = true;
this.lblVendorId.Location = new System.Drawing.Point(87, 69);
this.lblVendorId.Name = "lblVendorId";
this.lblVendorId.Size = new System.Drawing.Size(15, 14);
this.lblVendorId.TabIndex = 3;
this.lblVendorId.Text = "#";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(13, 22);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(56, 14);
this.label3.TabIndex = 2;
this.label3.Text = "Emulator:";
//
// lblFirmVersion
//
this.lblFirmVersion.AutoSize = true;
this.lblFirmVersion.Location = new System.Drawing.Point(87, 45);
this.lblFirmVersion.Name = "lblFirmVersion";
this.lblFirmVersion.Size = new System.Drawing.Size(15, 14);
this.lblFirmVersion.TabIndex = 1;
this.lblFirmVersion.Text = "#";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(13, 45);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(58, 14);
this.label1.TabIndex = 0;
this.label1.Text = "Firmware:";
//
// lblNotConnected
//
this.lblNotConnected.AutoSize = true;
this.lblNotConnected.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNotConnected.ForeColor = System.Drawing.Color.Red;
this.lblNotConnected.Location = new System.Drawing.Point(37, 212);
this.lblNotConnected.Name = "lblNotConnected";
this.lblNotConnected.Size = new System.Drawing.Size(201, 20);
this.lblNotConnected.TabIndex = 0;
this.lblNotConnected.Text = "Emulator not connected";
//
// btnReset
//
this.btnReset.Enabled = false;
this.btnReset.ForeColor = System.Drawing.Color.Red;
this.btnReset.Location = new System.Drawing.Point(6, 81);
this.btnReset.Name = "btnReset";
this.btnReset.Size = new System.Drawing.Size(119, 25);
this.btnReset.TabIndex = 17;
this.btnReset.Text = "Reset Vendor ID";
this.btnReset.UseVisualStyleBackColor = true;
this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
//
// btnClose
//
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Abort;
this.btnClose.Location = new System.Drawing.Point(186, 289);
this.btnClose.Name = "btnClose";
this.btnClose.Size = new System.Drawing.Size(87, 25);
this.btnClose.TabIndex = 2;
this.btnClose.Text = "Close";
this.btnClose.UseVisualStyleBackColor = true;
//
// groupBoxAdvanced
//
this.groupBoxAdvanced.Controls.Add(this.label2);
this.groupBoxAdvanced.Controls.Add(this.numericVendorID);
this.groupBoxAdvanced.Controls.Add(this.buttonResetSerial);
this.groupBoxAdvanced.Controls.Add(this.textBoxSerialID);
this.groupBoxAdvanced.Controls.Add(this.label5);
this.groupBoxAdvanced.Controls.Add(this.label7);
this.groupBoxAdvanced.Controls.Add(this.btnReset);
this.groupBoxAdvanced.Location = new System.Drawing.Point(12, 170);
this.groupBoxAdvanced.Name = "groupBoxAdvanced";
this.groupBoxAdvanced.Size = new System.Drawing.Size(259, 112);
this.groupBoxAdvanced.TabIndex = 18;
this.groupBoxAdvanced.TabStop = false;
this.groupBoxAdvanced.Text = "Advanced Tools";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Lucida Sans", 6.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(163, 14);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(85, 30);
this.label2.TabIndex = 27;
this.label2.Text = "BMTune Vendor:\r\nMoates Ostrich=0\r\nMoates Demon=1";
//
// numericVendorID
//
this.numericVendorID.Location = new System.Drawing.Point(90, 27);
this.numericVendorID.Maximum = new decimal(new int[] {
255,
0,
0,
0});
this.numericVendorID.Name = "numericVendorID";
this.numericVendorID.Size = new System.Drawing.Size(55, 20);
this.numericVendorID.TabIndex = 26;
//
// buttonResetSerial
//
this.buttonResetSerial.Enabled = false;
this.buttonResetSerial.ForeColor = System.Drawing.Color.Red;
this.buttonResetSerial.Location = new System.Drawing.Point(129, 81);
this.buttonResetSerial.Name = "buttonResetSerial";
this.buttonResetSerial.Size = new System.Drawing.Size(119, 25);
this.buttonResetSerial.TabIndex = 25;
this.buttonResetSerial.Text = "Reset Serial ID";
this.buttonResetSerial.UseVisualStyleBackColor = true;
this.buttonResetSerial.Click += new System.EventHandler(this.ButtonResetSerial_Click);
//
// textBoxSerialID
//
this.textBoxSerialID.Location = new System.Drawing.Point(90, 51);
this.textBoxSerialID.Name = "textBoxSerialID";
this.textBoxSerialID.Size = new System.Drawing.Size(160, 20);
this.textBoxSerialID.TabIndex = 23;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(13, 30);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(63, 14);
this.label5.TabIndex = 22;
this.label5.Text = "Vendor ID:";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(13, 54);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(54, 14);
this.label7.TabIndex = 21;
this.label7.Text = "Serial ID:";
//
// errorProvider_0
//
this.errorProvider_0.ContainerControl = this;
//
// frmOstrichInfo
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(283, 320);
this.Controls.Add(this.groupBoxAdvanced);
this.Controls.Add(this.lblNotConnected);
this.Controls.Add(this.grpInfo);
this.Controls.Add(this.btnClose);
this.Font = new System.Drawing.Font("Lucida Sans", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "frmOstrichInfo";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Emulator Infos";
this.Load += new System.EventHandler(this.frmOstrichInfo_Load);
this.grpInfo.ResumeLayout(false);
this.grpInfo.PerformLayout();
this.groupBoxAdvanced.ResumeLayout(false);
this.groupBoxAdvanced.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericVendorID)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.errorProvider_0)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
internal void method_0(ref Class18 class18_1, ref Class25 class25_1)
{
this.class18_0 = class18_1;
this.class25_0 = class25_1;
class25_1.delegate65_0 += new Class25.Delegate65(this.method_1);
foreach (Control control in base.Controls)
{
float emSize = control.Font.Size * (class18_0.class10_settings_0.scaleRate / 100f);
control.Font = new Font(control.Font.Name, emSize, control.Font.Style, control.Font.Unit);
}
}
private void method_1(EmulatorState emulatorState_0, int int_0, bool bool_0)
{
if (emulatorState_0 == EmulatorState.Connected)
{
SetConnectedMenu(true);
}
else
{
SetConnectedMenu(false);
}
}
private void SetConnectedMenu(bool IsConnected)
{
if (IsConnected)
{
this.btnReset.Enabled = true;
this.buttonResetSerial.Enabled = true;
this.lblNotConnected.Visible = false;
this.groupBoxAdvanced.Visible = true;
}
else
{
this.btnReset.Enabled = false;
this.buttonResetSerial.Enabled = false;
this.lblNotConnected.Visible = true;
this.groupBoxAdvanced.Visible = false;
}
}
private void method_2()
{
Label_0005:
this.lblNotConnected.Visible = false;
this.btnReset.Enabled = this.class25_0.GetConnected();
if (this.class25_0.method_13() != EmulatorState.Connected)
{
SetConnectedMenu(false);
lblNotConnected.Text = "Emulator not connected";
}
else
{
SetConnectedMenu(true);
if (((this.class25_0.Vendor_ID != 1) && (this.class18_0.class10_settings_0.emulatorMode_0 == EmulatorMode.Demon)) && (MessageBox.Show(Form.ActiveForm, "Demon VendorID is not set to BMTune. Do you want to set it to BMTune?\nThis will remove all data from demon!", "BMTune", MessageBoxButtons.YesNo) == DialogResult.Yes))
{
this.class25_0.ResetVendor(false);
goto Label_0005;
}
if ((this.class25_0.emulatorMoatesType_0 != EmulatorMoatesType.ostrich_1) || (this.class25_0.emulatorMoatesType_0 == EmulatorMoatesType.ostrich_1 && this.class25_0.int_2 >= 15))
{
if (((this.class25_0.Vendor_ID != 0) && (this.class18_0.class10_settings_0.emulatorMode_0 == EmulatorMode.Ostrich)) && (MessageBox.Show(Form.ActiveForm, "Ostrich VendorID is not set to BMTune. Do you want to set it to BMTune?\nThis will remove all data from ostrich!", "BMTune", MessageBoxButtons.YesNo) == DialogResult.Yes))
{
this.class25_0.ResetVendor(true);
goto Label_0005;
}
}
if ((((this.class18_0.class10_settings_0.emulatorMode_0 != EmulatorMode.Ostrich) && (this.class18_0.class10_settings_0.emulatorMode_0 != EmulatorMode.Demon))
&& (((this.class18_0.class10_settings_0.emulatorMode_0 == EmulatorMode.Ostrich) && (this.class25_0.emulatorMoatesType_0 == EmulatorMoatesType.ostrich_1)) && (this.class25_0.int_2 < 15)))
&& (((this.class18_0.class10_settings_0.emulatorMode_0 == EmulatorMode.Ostrich) && (this.class25_0.emulatorMoatesType_0 == EmulatorMoatesType.ostrich_2)) && (this.class25_0.int_2 < 4)))
{
SetConnectedMenu(false);
lblNotConnected.Text = "Emulator not compatible";
}
else
{
if (this.class18_0.class10_settings_0.emulatorMode_0 == EmulatorMode.Demon) this.lblVendorId.Text = ((EmulatorVendorDemon)this.class25_0.Vendor_ID).ToString();
else if (this.class18_0.class10_settings_0.emulatorMode_0 == EmulatorMode.Ostrich) this.lblVendorId.Text = ((EmulatorVendorOstrich)this.class25_0.Vendor_ID).ToString();
this.numericVendorID.Value = this.class25_0.Vendor_ID;
this.lblVendorId.Text += " " + (int) this.class25_0.Vendor_ID + "(" + this.class25_0.Vendor_ID.ToString("X2") + ")";
string str = string.Empty;
bool flag = true;
for (int i = 0; i < 8; i++)
{
if (this.class25_0.Serial_ID[i] != 0xff)
{
flag = false;
break;
}
}
for (int j = 0; j < 8; j++)
{
if ((this.class25_0.Serial_ID[0] == 0xff) && (this.class25_0.Serial_ID[1] == 0xff))
{
str = str + "FF";
}
else
{
str = str + this.class25_0.Serial_ID[j].ToString("X2");
}
}
if (flag)
{
this.lblSerial.Text = "FFFFFFFFFFFFFFFF";
this.textBoxSerialID.Text = "FFFFFFFFFFFFFFFF";
}
else
{
this.lblSerial.Text = str;
this.textBoxSerialID.Text = str;
}
}
this.lblFirmVersion.Text = "V" + this.class25_0.int_1 + "." + this.class25_0.int_2 + "." + this.class25_0.string_0;
this.labelEmulatorName.Text = this.class25_0.EmulatorName;
}
}
private void txtbTpsMinRpm_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
NumericUpDown control = (NumericUpDown)sender;
this.groupBoxAdvanced.Focus();
if (this.errorProvider_0.GetError(control) == string.Empty)
{
this.method_2();
}
control.Focus();
}
}
private void txtbTpsMinRpm_Validated(object sender, EventArgs e)
{
this.method_2();
}
private void txtbTpsMinRpm_Validating(object sender, CancelEventArgs e)
{
NumericUpDown control = (NumericUpDown)sender;
if (!this.class18_0.method_256(control.Text.ToString()))
{
this.errorProvider_0.SetError(control, "Invalid input, double required");
e.Cancel = true;
}
else
{
this.errorProvider_0.SetError(control, "");
}
}
}