BMTuneSource/CtrlInputSelector.cs

375 lines
12 KiB
C#

using System;
using System.ComponentModel;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Timers;
using System.Windows.Forms;
internal class CtrlInputSelector : UserControl
{
private bool bool_0 = true;
private bool bool_1;
private bool bool_2;
private bool bool_3;
private CheckBox chkInvert;
private Class18 class18_0;
private IContainer icontainer_0;
//private int int_0;
private Label lblInfo;
private ComboBox lstInput;
private string string_0 = "Always On";
//private System.Timers.Timer timer_0 = new System.Timers.Timer(250.0);
private long CheckLocation = 0L;
private bool IsLoaded = false;
public event Delegate34 delegate34_0;
public event Delegate35 delegate35_0;
public CtrlInputSelector()
{
this.InitializeComponent();
//this.timer_0.AutoReset = true;
//this.timer_0.Elapsed += new ElapsedEventHandler(this.timer_0_Elapsed);
}
private void chkInvert_CheckedChanged(object sender, EventArgs e)
{
if (!this.bool_3)
{
byte num = 0;
if (this.chkInvert.Checked)
{
num = 0xff;
}
if (this.delegate35_0 != null)
{
this.delegate35_0(num);
}
}
}
private void CtrlInputSelector_Load(object sender, EventArgs e)
{
}
protected override void Dispose(bool disposing)
{
if (disposing && (this.icontainer_0 != null))
{
this.icontainer_0.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.lstInput = new System.Windows.Forms.ComboBox();
this.chkInvert = new System.Windows.Forms.CheckBox();
this.lblInfo = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lstInput
//
this.lstInput.BackColor = System.Drawing.SystemColors.Window;
this.lstInput.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.lstInput.FormattingEnabled = true;
this.lstInput.Items.AddRange(new object[] {
"Power Steering Switch (B8)",
"Service Check Connector (D4)",
"Start Signal (B9)",
"Vtec Pressure Switch (D6)",
"AC request (B5)",
"Brake Switch (D2)",
"Park/Neutral Input (B7)"});
this.lstInput.Location = new System.Drawing.Point(3, 3);
this.lstInput.Name = "lstInput";
this.lstInput.Size = new System.Drawing.Size(177, 21);
this.lstInput.TabIndex = 3;
this.lstInput.SelectedIndexChanged += new System.EventHandler(this.lstInput_SelectedIndexChanged);
//
// chkInvert
//
this.chkInvert.AutoSize = true;
this.chkInvert.Location = new System.Drawing.Point(3, 29);
this.chkInvert.Name = "chkInvert";
this.chkInvert.Size = new System.Drawing.Size(80, 17);
this.chkInvert.TabIndex = 4;
this.chkInvert.Text = "Invert Input";
this.chkInvert.UseVisualStyleBackColor = true;
this.chkInvert.CheckedChanged += new System.EventHandler(this.chkInvert_CheckedChanged);
//
// lblInfo
//
this.lblInfo.AutoSize = true;
this.lblInfo.ForeColor = System.Drawing.Color.Red;
this.lblInfo.Location = new System.Drawing.Point(83, 30);
this.lblInfo.Name = "lblInfo";
this.lblInfo.Size = new System.Drawing.Size(97, 13);
this.lblInfo.TabIndex = 5;
this.lblInfo.Text = "Input Already Used";
this.lblInfo.Visible = false;
//
// CtrlInputSelector
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.lblInfo);
this.Controls.Add(this.chkInvert);
this.Controls.Add(this.lstInput);
this.Name = "CtrlInputSelector";
this.Size = new System.Drawing.Size(185, 49);
this.Load += new System.EventHandler(this.CtrlInputSelector_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
private void lstInput_SelectedIndexChanged(object sender, EventArgs e)
{
if (!this.bool_3)
{
this.class18_0.method_155("Input Selector setting");
/*if ((this.class18_0.class13_0.long_95 != 0L) && (this.lstInput.SelectedIndex <= 6))
{
this.class18_0.method_149(this.class18_0.class13_0.long_95 + this.method_0(), (byte) this.lstInput.SelectedIndex);
}
else if ((this.class18_0.class13_0.long_95 != 0L) && (this.lstInput.SelectedIndex == (this.lstInput.Items.Count - 1)))
{
this.class18_0.method_149(this.class18_0.class13_0.long_95 + this.method_0(), 0xff);
}*/
//this.method_17(this.lstInput.SelectedIndex);
this.class18_0.method_153();
if (this.delegate34_0 != null)
{
this.delegate34_0(this.method_16());
}
this.method_17();
if ((this.lstInput.SelectedIndex == 0) || (this.lstInput.SelectedIndex == 2))
{
this.chkInvert.Checked = true;
}
else
{
this.chkInvert.Checked = false;
}
}
}
/*public int method_0()
{
return this.int_0;
}
public void method_1(int int_1)
{
this.int_0 = int_1;
}*/
public void method_Input_location(long int_1)
{
this.CheckLocation = int_1;
}
public void method_11_Add_Disabled_In_Selection(bool bool_4)
{
this.bool_1 = bool_4;
}
public void method_12()
{
if (this.lstInput.Items.Count > 6)
{
for (int i = 7; i < this.lstInput.Items.Count; i++)
{
this.lstInput.Items.RemoveAt(i);
}
}
if (this.bool_0)
{
this.lstInput.Items.Add(this.string_0);
}
if (this.bool_1)
{
this.lstInput.Items.Add("Disabled");
}
if (this.bool_1 && (this.lstInput.SelectedIndex == (this.lstInput.Items.Count - 1)))
{
this.chkInvert.Enabled = false;
}
if (this.lstInput.SelectedIndex == 7)
{
this.chkInvert.Enabled = false;
}
else
{
this.chkInvert.Enabled = true;
}
IsLoaded = true;
}
public bool GetLoadedVars()
{
return IsLoaded;
}
internal void method_14(ref Class18 class18_1)
{
this.class18_0 = class18_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);
}
}
public void method_15(byte byte_0)
{
this.bool_3 = true;
switch (byte_0)
{
case 0x20:
this.lstInput.SelectedIndex = 5;
break;
case 0x40:
this.lstInput.SelectedIndex = 6;
break;
case 0x80:
this.lstInput.SelectedIndex = 7;
break;
case 0:
if (this.bool_1 || !this.bool_0)
{
if (this.bool_1 && this.bool_0)
{
this.lstInput.SelectedIndex = 8;
}
else if (this.bool_1 && !this.bool_0)
{
this.lstInput.SelectedIndex = 7;
}
}
break;
case 1:
this.lstInput.SelectedIndex = 0;
break;
case 2:
this.lstInput.SelectedIndex = 1;
break;
case 4:
this.lstInput.SelectedIndex = 2;
break;
case 8:
this.lstInput.SelectedIndex = 3;
break;
case 0x10:
this.lstInput.SelectedIndex = 4;
break;
}
this.bool_3 = false;
}
private byte method_16()
{
byte num = 0;
if (this.bool_1 && (this.lstInput.SelectedIndex == (this.lstInput.Items.Count - 1)))
{
this.chkInvert.Enabled = false;
return 0;
}
if (this.lstInput.SelectedIndex == 7)
{
this.chkInvert.Enabled = false;
}
else
{
this.chkInvert.Enabled = true;
}
return this.class18_0.method_261(num, this.lstInput.SelectedIndex, true);
}
//private void method_17(int int_1)
private void method_17()
{
/*if (this.class18_0.class13_0.long_95 != 0L)
{
for (int i = 0; i < 9; i++)
{
if (i != this.int_0)
{
if ((this.class18_0.method_150(this.class18_0.class13_0.long_95 + i) == ((byte) int_1)) && (this.class18_0.method_150(this.class18_0.class13_0.long_95 + i) != 0xff))
{
this.lblInfo.Visible = true;
return;
}
this.lblInfo.Visible = false;
}
}
}*/
byte CurrentPutByte = this.class18_0.GetByteAt(this.CheckLocation);
if (this.class18_0.GetInputsListLocations() != null)
{
if (this.class18_0.GetInputsListLocations().Count > 0)
{
for (int i = 0; i < this.class18_0.GetInputsListLocations().Count; i++)
{
long TestAt = this.class18_0.GetInputsListLocations()[i];
if (TestAt != this.CheckLocation)
{
//if ((this.class18_0.method_150(TestAt) == ((byte)int_1))
if ((this.class18_0.GetByteAt(TestAt) == CurrentPutByte)
&& (this.class18_0.GetByteAt(TestAt) != 0xff)
&& (this.class18_0.GetByteAt(TestAt) != 0x00) //Disabled Input
&& (this.class18_0.GetByteAt(TestAt) != 0x80)) //Always On Input
{
this.lblInfo.Visible = true;
MessageBox.Show(Form.ActiveForm, "Input already used for '" + this.class18_0.GetInputsListDesc()[i] + "'", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
this.lblInfo.Visible = false;
}
}
}
}
}
public void method_3_CustomInput(string string_2)
{
this.string_0 = string_2;
}
public void method_5(bool bool_4)
{
this.bool_3 = true;
this.bool_2 = bool_4;
this.chkInvert.Checked = bool_4;
this.bool_3 = false;
}
public void method_7_Add_CustomInput_To_Selection(bool bool_4)
{
this.bool_0 = bool_4;
}
/*private void timer_0_Elapsed(object sender, ElapsedEventArgs e)
{
this.lblInfo.Visible = !this.lblInfo.Visible;
this.Invalidate();
}*/
public delegate void Delegate34(byte byte_0);
public delegate void Delegate35(byte byte_0);
}