issue #6 and #11; can assign throttle to any axis now, sense detection limit can be set in config file if the default 150 is inconvenient

Add  pp_rebindkey mapping to allow copy  ... and then e.g. paste into the Cry console
pull/20/head
bm98 10 years ago
parent c7eb6d56c9
commit 26ec51d0bd

40
Form1.Designer.cs generated

@ -66,7 +66,6 @@
this.IL = new System.Windows.Forms.ImageList(this.components);
this.tc1 = new System.Windows.Forms.TabControl();
this.tabJS1 = new System.Windows.Forms.TabPage();
this.UC_JoyPanel = new SCJMapper_V2.UC_JoyPanel();
this.panel1 = new System.Windows.Forms.Panel();
this.linkLblReleases = new System.Windows.Forms.LinkLabel();
this.label8 = new System.Windows.Forms.Label();
@ -102,6 +101,9 @@
this.loadAndGrabToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.cbxThrottle = new System.Windows.Forms.CheckBox();
this.UC_JoyPanel = new SCJMapper_V2.UC_JoyPanel();
this.txRebind = new System.Windows.Forms.TextBox();
this.cmCopyPaste.SuspendLayout();
this.panel3.SuspendLayout();
this.panel2.SuspendLayout();
@ -332,6 +334,7 @@
// panel2
//
this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel2.Controls.Add(this.cbxThrottle);
this.panel2.Controls.Add(this.btFind);
this.panel2.Controls.Add(this.label7);
this.panel2.Controls.Add(this.label6);
@ -463,16 +466,10 @@
this.tabJS1.TabIndex = 0;
this.tabJS1.Text = "Joystick 1";
//
// UC_JoyPanel
//
this.UC_JoyPanel.Location = new System.Drawing.Point(0, 6);
this.UC_JoyPanel.Name = "UC_JoyPanel";
this.UC_JoyPanel.Size = new System.Drawing.Size(278, 234);
this.UC_JoyPanel.TabIndex = 0;
//
// panel1
//
this.tlpanel.SetColumnSpan(this.panel1, 3);
this.panel1.Controls.Add(this.txRebind);
this.panel1.Controls.Add(this.linkLblReleases);
this.panel1.Controls.Add(this.label8);
this.panel1.Controls.Add(this.lblTitle);
@ -858,6 +855,31 @@
this.loadToolStripMenuItem.Text = "Load !";
this.loadToolStripMenuItem.Click += new System.EventHandler(this.loadToolStripMenuItem_Click);
//
// cbxThrottle
//
this.cbxThrottle.AutoSize = true;
this.cbxThrottle.Location = new System.Drawing.Point(110, 72);
this.cbxThrottle.Name = "cbxThrottle";
this.cbxThrottle.Size = new System.Drawing.Size(62, 17);
this.cbxThrottle.TabIndex = 13;
this.cbxThrottle.Text = "Throttle";
this.cbxThrottle.UseVisualStyleBackColor = true;
//
// UC_JoyPanel
//
this.UC_JoyPanel.Location = new System.Drawing.Point(0, 6);
this.UC_JoyPanel.Name = "UC_JoyPanel";
this.UC_JoyPanel.Size = new System.Drawing.Size(278, 234);
this.UC_JoyPanel.TabIndex = 0;
//
// txRebind
//
this.txRebind.Location = new System.Drawing.Point(603, 39);
this.txRebind.Name = "txRebind";
this.txRebind.Size = new System.Drawing.Size(361, 20);
this.txRebind.TabIndex = 4;
this.txRebind.Text = "pp_rebindkeys";
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -964,6 +986,8 @@
private System.Windows.Forms.Label label1;
private System.Windows.Forms.LinkLabel linkLblReleases;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.CheckBox cbxThrottle;
private System.Windows.Forms.TextBox txRebind;
}
}

@ -93,6 +93,7 @@ namespace SCJMapper_V2
// load other defaults
txMappingName.Text = m_AppSettings.MyMappingName;
SetRebindField( txMappingName.Text );
// Init X things
if ( !InitDirectInput( ) )
@ -267,6 +268,8 @@ namespace SCJMapper_V2
return true;
}
/// <summary>
/// Create the jsN Joystick string from mapping (or from the JS index above item 3)
/// </summary>
@ -279,6 +282,8 @@ namespace SCJMapper_V2
return JoystickCls.JSTag( tc1.SelectedIndex + 1 ); // return the Joystick number
}
/// <summary>
/// Grab the rtb data and load them into config
/// </summary>
@ -303,6 +308,7 @@ namespace SCJMapper_V2
btGrab.BackColor = btClear.BackColor; btGrab.UseVisualStyleBackColor = btClear.UseVisualStyleBackColor; // neutral again
}
/// <summary>
/// Dump Config into rtb
/// </summary>
@ -315,6 +321,11 @@ namespace SCJMapper_V2
}
private void SetRebindField( String map )
{
txRebind.Text = "pp_rebindkeys " + map;
}
#region Event Handling
@ -331,7 +342,15 @@ namespace SCJMapper_V2
private void timer1_Tick( object sender, System.EventArgs e )
{
foreach ( JoystickCls jsc in m_JS ) { jsc.GetData( ); } // poll the devices
lblLastJ.Text = JSStr( ) + m_JS[tc1.SelectedIndex].GetLastChange( ); // show last handled JS control
String ctrl = JSStr( ) + m_JS[tc1.SelectedIndex].GetLastChange( ); // show last handled JS control
lblLastJ.Text = ctrl;
if ( JoystickCls.CanThrottle( ctrl ) ) {
cbxThrottle.Enabled = true;
}
else {
cbxThrottle.Checked = false;
cbxThrottle.Enabled = false;
}
}
@ -354,12 +373,12 @@ namespace SCJMapper_V2
private void btFind_Click( object sender, EventArgs e )
{
m_AT.FindCtrl( lblLastJ.Text ); // find the action for a Control (joystick input)
m_AT.FindCtrl( JoystickCls.MakeThrottle( lblLastJ.Text, cbxThrottle.Checked ) ); // find the action for a Control (joystick input)
}
private void btAssign_Click( object sender, EventArgs e )
{
m_AT.UpdateSelectedItem( lblLastJ.Text );
m_AT.UpdateSelectedItem( JoystickCls.MakeThrottle( lblLastJ.Text, cbxThrottle.Checked) );
if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor;
}
@ -440,6 +459,7 @@ namespace SCJMapper_V2
rtb.Text = SCMappings.Mapping( m_AppSettings.DefMappingName );
if ( SCMappings.IsUserMapping( m_AppSettings.DefMappingName ) ) {
txMappingName.Text = m_AppSettings.DefMappingName;
SetRebindField( txMappingName.Text );
}
btGrab.BackColor = MyColors.DirtyColor;
txMappingName.BackColor = MyColors.ValidColor;
@ -451,6 +471,7 @@ namespace SCJMapper_V2
Grab( );
if ( SCMappings.IsUserMapping( m_AppSettings.DefMappingName ) ) {
txMappingName.Text = m_AppSettings.DefMappingName;
SetRebindField( txMappingName.Text );
}
btDump.BackColor = MyColors.DirtyColor;
txMappingName.BackColor = MyColors.ValidColor;
@ -463,6 +484,7 @@ namespace SCJMapper_V2
rtb.Text = SCMappings.Mapping( m_AppSettings.DefMappingName );
if ( SCMappings.IsUserMapping( m_AppSettings.DefMappingName ) ) {
txMappingName.Text = m_AppSettings.DefMappingName;
SetRebindField( txMappingName.Text );
}
Grab( );
txMappingName.BackColor = MyColors.ValidColor;
@ -476,6 +498,7 @@ namespace SCJMapper_V2
Grab( );
if ( SCMappings.IsUserMapping( m_AppSettings.DefMappingName ) ) {
txMappingName.Text = m_AppSettings.DefMappingName;
SetRebindField( txMappingName.Text );
}
btDump.BackColor = MyColors.DirtyColor;
txMappingName.BackColor = MyColors.ValidColor;
@ -588,6 +611,7 @@ namespace SCJMapper_V2
if ( !cancel ) {
rtb.SaveFile( SCMappings.MappingFileName( txMappingName.Text ), RichTextBoxStreamType.PlainText );
rtb.SaveFile( TheUser.MappingFileName( txMappingName.Text ), RichTextBoxStreamType.PlainText ); // backup copy
SetRebindField( txMappingName.Text );
// get the new one into the list
SCMappings.UpdateMappingNames( );
@ -622,6 +646,7 @@ namespace SCJMapper_V2
#endregion
}

@ -120,6 +120,77 @@
<metadata name="cmCopyPaste.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>296, 17</value>
</metadata>
<metadata name="IL.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>494, 17</value>
</metadata>
<data name="IL.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ
DgAAAk1TRnQBSQFMAgEBBwEAAagBCAGoAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/yYAAXQFRgHyFQAB/wH0
CwABBxUAAUYHJQHyFAACQwEVCQABQwEVAUMCAAHwCwAB8AQAAUYJJQHyEwABQwIVCAAB8gFDARUBQwEA
AgcB7QgAAf8BkgG8Ae8CAAFGAiUB/wFMAyUCGgIlARsRAAEHAUMBFQETAUMB9AUAAQcBFQEUARUBQwEA
AfcBvAHtCQAB9wHwAZIBAAF0AiUB9gL/AUwBJQH2Av8DJREAAfQBQwEVAeoB+QIPAx8BQwEUAR8BFAEV
AUMB/wHtAfAB7AHqAW0B7wMAAe8BDgHsAe8B8AHsAQABRgIlAUYD/wH2A/8DJRIAAUMBbQHqAUQCEAMg
AQ4BbQEUAhABEQEAAewBvAH3AeoB6wESAewBBwHsARIB6wFtAgcB6wEAAUYDKwFMBf8EKxIAAUMBFQES
ASABDgEPAR8CIAIVAREBFAEQAUMBAAFtAuwB7QEUAW0BkgHsAZIBbQHqAe0B7AHtAQ4BAAFGBEwB9gP/
AXQETBIAAUMB7AEUAQ8CHwEAAQ4BDwEBAR4BRAFDARABEQIAAfcB7wHrAu8B7QGSAe0B7wH3AZEC7wIA
AUYDTAH2Bf8BdANMEgABvAEUAQ4BEAFDAUUBHgEBAUMBHgFvAQ4CEAMAAuwBvAHsAQcBvAFtArwBjQG8
ARUBvAIAAUYCTAEaA/8BTAP/A0wTAAFDARABbQEVAQEBEQEVAQ4BHgELAR8CDgMAAfIB8wHsAfIF9AHy
ARIB8gHzAgAB8wFTAUwBmgL/A0wC/wJMAU0TAAEVAhEBHgEABw4FAAG8AvAFAALwAbwBEQMAAfMBUwpN
FQAB7AEQAQ8BFQMAAUMCDwH0BQABEQcAAf8BAAETBQAB8wlTNwAB8wdTlAAg/wcAAUMBAAHyFgAB/w7x
AfAG/wH0AygG/wUAAQ4BkQGuApEB6gH/BwAL/wIAAf8B8QNrAYsBkQGLBIoBSQFKAZEB8Qb/ASgDKQEo
Bf8EAAFDAZoBegFSAZEBtQESAfEGAAH3AQcBvAIHAu8DBwHwAfIBBwEAAf8B8QIGAYsBkAG7BYsCUAFr
AfEG/wFQBCkBKAT/AwABDwEHAZECcwGRAbUBtAFDAfQEAAH/AbwB7wO8AwcBvAEHAfAB8gHxAQAB/wHx
AgYBiwGQAbsEkAFsAVABUQFrAfEH/wVQAXMD/wEAARQBUgHzArwBBwH3AZECtAEOAfQEAAH/AbwB7wPw
ArwC8AG8AfEB8gHwAQAB/wHxAosBkAGzAbsBKQGzAXEDUAGQAWsB8QL/AXMFKAVQAXMC/wIAARoB9AH3
ARIBQwERAbsBkQF6AewB/wLxAfMBAAH/Ae8B9wG8BvABvALxAbwBAAH/AfIDkAGzAbsCswNRASkBswFr
AfIB/w1QAZkB/wIAAQ4B7wETAeoBFQEPAZEBDwEOBfEBAAH/Ae0BvAnyAfABBwEAAf8B8gSzAboBiwEp
BHgBUQFrAfIB/w5QAf8EAAFtAREBQwEQARUB8QL/AfQC/wIAAf8B9wHxCPIB8QHwAbwBAAH/AfIEswG6
AbsBKAJ4AVABeAEoAWsB8gH/ASkMUAEoAf8EAAG7AbQBkQFtCQAB/wGSAfEB8gbzAfIC8QHwAQAB/wHz
BLMBuQG6AdwBtAFJAlABSQFrAfMC/wFQBXgBVwRRASkC/wMAAfMBAAGRARMLAAGSAfEB8gbzAfIB8QHy
AfMBAAH/AfMGuQG6AdsD3AHbAWsB8wf/ASgEVwFQA/8DAAHwAQ4B7AEVCwAB7QHxAfIG8wHyAfEB8gH/
AQAB/wHzDNoBiwHzBv8BmQR4AVcE/wEAAfEBAAEHAe0B7AGuAfIKAAEHAvIG8wHyAfEB8gIAAf8P8wb/
ASkEeAX/AQABbgF5AbwB9wETAfAMAALyBvMB8gHxAfQCAAH/CPMB8gH3AfIB9wHyAfcB8wb/ARwDeAb/
Ae0B6wG8Au8OAALxBvIC8QMAAf8B8w3/Ae8H/wGZAVAI/wETAfAB6hwAIP8CAAHzAfcB/xsAAUIBTQE+
BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAT/AfgBDwIAAZ8B/QL/AfABBwIAAY8B+AHf
Af0B4AEDAgABjwHwAY8B8AHAAQECAAEDAeABBwHwAYABAQUAAoABAQIAAYABAAGAAQABgAEBAgABgAEA
AYABAAGAAQECAAGAAQABgAEAAYABAQIAAYABAQGAAQABgAEBAgABwAEBAcABAQGAAQECAAHAAQEBwwHh
AcABAwIAAeABAwHnAeMB4AEHAgAE/wHwAQ8CAAb/AgAG/wYAAfwBPwL/BAAB+AEPAeABAwQAAfABDwHA
AQEEAAHAAQcBgAEBBAABgAEHAYABAQQAAYABAAGAAQEEAAHAAQABgAEBBAAB4AEBAYABAQQAAeAB/wGA
AQEEAAHgAf8BwAEBBAAB4QH/AcABAQQAAYAB/wHAAQMEAAGBAf8B4AEDBAABAwH/AeABBwQAAQcD/wQA
AccD/ws=
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@ -384,77 +455,15 @@
x1//2Q==
</value>
</data>
<metadata name="IL.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>494, 17</value>
<metadata name="OFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 17</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>209, 17</value>
</metadata>
<metadata name="SFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>421, 17</value>
</metadata>
<data name="IL.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ
DgAAAk1TRnQBSQFMAgEBBwEAAUABCAFAAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/yYAAXQFRgHyFQAB/wH0
CwABBxUAAUYHJQHyFAACQwEVCQABQwEVAUMCAAHwCwAB8AQAAUYJJQHyEwABQwIVCAAB8gFDARUBQwEA
AgcB7QgAAf8BkgG8Ae8CAAFGAiUB/wFMAyUCGgIlARsRAAEHAUMBFQETAUMB9AUAAQcBFQEUARUBQwEA
AfcBvAHtCQAB9wHwAZIBAAF0AiUB9gL/AUwBJQH2Av8DJREAAfQBQwEVAeoB+QIPAx8BQwEUAR8BFAEV
AUMB/wHtAfAB7AHqAW0B7wMAAe8BDgHsAe8B8AHsAQABRgIlAUYD/wH2A/8DJRIAAUMBbQHqAUQCEAMg
AQ4BbQEUAhABEQEAAewBvAH3AeoB6wESAewBBwHsARIB6wFtAgcB6wEAAUYDKwFMBf8EKxIAAUMBFQES
ASABDgEPAR8CIAIVAREBFAEQAUMBAAFtAuwB7QEUAW0BkgHsAZIBbQHqAe0B7AHtAQ4BAAFGBEwB9gP/
AXQETBIAAUMB7AEUAQ8CHwEAAQ4BDwEBAR4BRAFDARABEQIAAfcB7wHrAu8B7QGSAe0B7wH3AZEC7wIA
AUYDTAH2Bf8BdANMEgABvAEUAQ4BEAFDAUUBHgEBAUMBHgFvAQ4CEAMAAuwBvAHsAQcBvAFtArwBjQG8
ARUBvAIAAUYCTAEaA/8BTAP/A0wTAAFDARABbQEVAQEBEQEVAQ4BHgELAR8CDgMAAfIB8wHsAfIF9AHy
ARIB8gHzAgAB8wFTAUwBmgL/A0wC/wJMAU0TAAEVAhEBHgEABw4FAAG8AvAFAALwAbwBEQMAAfMBUwpN
FQAB7AEQAQ8BFQMAAUMCDwH0BQABEQcAAf8BAAETBQAB8wlTNwAB8wdTlAAg/wcAAUMBAAHyFgAB/w7x
AfAG/wH0AygG/wUAAQ4BkQGuApEB6gH/BwAL/wIAAf8B8QNrAYsBkQGLBIoBSQFKAZEB8Qb/ASgDKQEo
Bf8EAAFDAZoBegFSAZEBtQESAfEGAAH3AQcBvAIHAu8DBwHwAfIBBwEAAf8B8QIGAYsBkAG7BYsCUAFr
AfEG/wFQBCkBKAT/AwABDwEHAZECcwGRAbUBtAFDAfQEAAH/AbwB7wO8AwcBvAEHAfAB8gHxAQAB/wHx
AgYBiwGQAbsEkAFsAVABUQFrAfEH/wVQAXMD/wEAARQBUgHzArwBBwH3AZECtAEOAfQEAAH/AbwB7wPw
ArwC8AG8AfEB8gHwAQAB/wHxAosBkAGzAbsBKQGzAXEDUAGQAWsB8QL/AXMFKAVQAXMC/wIAARoB9AH3
ARIBQwERAbsBkQF6AewB/wLxAfMBAAH/Ae8B9wG8BvABvALxAbwBAAH/AfIDkAGzAbsCswNRASkBswFr
AfIB/w1QAZkB/wIAAQ4B7wETAeoBFQEPAZEBDwEOBfEBAAH/Ae0BvAnyAfABBwEAAf8B8gSzAboBiwEp
BHgBUQFrAfIB/w5QAf8EAAFtAREBQwEQARUB8QL/AfQC/wIAAf8B9wHxCPIB8QHwAbwBAAH/AfIEswG6
AbsBKAJ4AVABeAEoAWsB8gH/ASkMUAEoAf8EAAG7AbQBkQFtCQAB/wGSAfEB8gbzAfIC8QHwAQAB/wHz
BLMBuQG6AdwBtAFJAlABSQFrAfMC/wFQBXgBVwRRASkC/wMAAfMBAAGRARMLAAGSAfEB8gbzAfIB8QHy
AfMBAAH/AfMGuQG6AdsD3AHbAWsB8wf/ASgEVwFQA/8DAAHwAQ4B7AEVCwAB7QHxAfIG8wHyAfEB8gH/
AQAB/wHzDNoBiwHzBv8BmQR4AVcE/wEAAfEBAAEHAe0B7AGuAfIKAAEHAvIG8wHyAfEB8gIAAf8P8wb/
ASkEeAX/AQABbgF5AbwB9wETAfAMAALyBvMB8gHxAfQCAAH/CPMB8gH3AfIB9wHyAfcB8wb/ARwDeAb/
Ae0B6wG8Au8OAALxBvIC8QMAAf8B8w3/Ae8H/wGZAVAI/wETAfAB6hwAIP8CAAHzAfcB/xsAAUIBTQE+
BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAT/AfgBDwIAAZ8B/QL/AfABBwIAAY8B+AHf
Af0B4AEDAgABjwHwAY8B8AHAAQECAAEDAeABBwHwAYABAQUAAoABAQIAAYABAAGAAQABgAEBAgABgAEA
AYABAAGAAQECAAGAAQABgAEAAYABAQIAAYABAQGAAQABgAEBAgABwAEBAcABAQGAAQECAAHAAQEBwwHh
AcABAwIAAeABAwHnAeMB4AEHAgAE/wHwAQ8CAAb/AgAG/wYAAfwBPwL/BAAB+AEPAeABAwQAAfABDwHA
AQEEAAHAAQcBgAEBBAABgAEHAYABAQQAAYABAAGAAQEEAAHAAQABgAEBBAAB4AEBAYABAQQAAeAB/wGA
AQEEAAHgAf8BwAEBBAAB4QH/AcABAQQAAYAB/wHAAQMEAAGBAf8B4AEDBAABAwH/AeABBwQAAQcD/wQA
AccD/ws=
</value>
</data>
<data name="btSaveMyMapping.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
@ -502,7 +511,7 @@
XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDgAACw4BQL7hQQAABQpJREFUSEu1lWtQVGUY
6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDAAACwwBP0AiyAAABQpJREFUSEu1lWtQVGUY
gI/3C4q3ykuGSOYlTc2ULGkap5hm0ulPUzNZTT/7Yz+abBIJNTQSARXTvBFeQCdNFgRFcfPKTcRdZUFh
z9nFZbnshXWxs8sKuyxPH9TosGn8yZ155t35Lu+z+37feY8EPFUeO/h/8vDLja+loYZNQ9aaD0dolYxx
2hv7orXVuZ9razSfaatzPtUaTq7SVp34RHs7/0ut/EectvbsN2JczIlx3bGPtVW/TNHWH3pBa9wzIVv3
@ -527,49 +536,39 @@
Tesk88046SuRb2gfwdMB6S/DHs/UzS4d0QAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="OFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 17</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>209, 17</value>
</metadata>
<metadata name="SFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>421, 17</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="tsDDbtProfiles.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
gg==
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
</value>
</data>
<data name="tsBtReset.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -625,21 +624,21 @@
<data name="tsBtLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
namespace SCJMapper_V2
{
@ -69,6 +70,45 @@ namespace SCJMapper_V2
return ( jsNum > JSnum_UNKNOWN );
}
const string js_pattern = @"^js\d_[xyz]$";
static Regex rgx_js = new Regex( js_pattern, RegexOptions.IgnoreCase );
const string jsr_pattern = @"^js\d_rot[xyz]$";
static Regex rgx_jsr = new Regex( jsr_pattern, RegexOptions.IgnoreCase );
/// <summary>
/// Makes a throttle from the given ctrl
/// accepts js#_(rot)[xyz] and returns js#_throttle[xyz]
/// </summary>
/// <param name="control"></param>
/// <param name="makeIt"></param>
/// <returns></returns>
static public String MakeThrottle( String control, Boolean makeIt )
{
if ( makeIt == false ) return control;
if ( control.Length < 5 ) return control;
String retVal = control;
if ( rgx_js.IsMatch( control ) ) {
retVal = retVal.Insert( 4, "throttle" );
}
else if ( rgx_jsr.IsMatch( control ) ) {
retVal = retVal.Remove( 4, 3 ); // remove rot
retVal = retVal.Insert( 4, "throttle" );
}
return retVal;
}
/// <summary>
/// returns true if the ctrl can be a throttle - for now this is js#_[xyz]
/// </summary>
/// <param name="control"></param>
/// <returns></returns>
static public Boolean CanThrottle( String control )
{
return rgx_js.IsMatch( control ) || rgx_jsr.IsMatch( control );
}
#endregion
private Joystick m_device;
@ -80,6 +120,7 @@ namespace SCJMapper_V2
private int m_numPOVs = 0; // static counter for UpdateControls
private int m_sliderCount = 0; // static counter for UpdateControls
private String m_lastItem = "";
private int m_senseLimit = 150; // axis jitter avoidance...
private UC_JoyPanel m_jPanel = null; // the GUI panel
@ -120,6 +161,8 @@ namespace SCJMapper_V2
m_hwnd = hwnd;
m_jPanel = panel;
m_senseLimit = AppConfiguration.AppConfig.jsSenseLimit; // can be changed in the app.config file if it is still too little
// Set BufferSize in order to use buffered data.
m_device.Properties.BufferSize = 128;
@ -236,7 +279,7 @@ namespace SCJMapper_V2
{
{"X","x"},
{"Y","y"},
{"Z","throttlez"}, // this is not z because it usually maps the throttle
{"Z","z"},
{"RotationX","rotx"},
{"RotationY","roty"},
{"RotationZ","rotz"}
@ -286,7 +329,7 @@ namespace SCJMapper_V2
return false;
int change = Math.Abs( prev - current );
// if the axis has changed more than x units to it's last value
return change > 100 ? true : false;
return change > m_senseLimit ? true : false;
}

@ -67,6 +67,7 @@
<HintPath>$(SharpDXPackageBinDir)\SharpDX.DirectInput.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
@ -78,6 +79,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="appConfiguration.cs" />
<Compile Include="AppSettings.cs" />
<Compile Include="Form1.cs">
<SubType>Form</SubType>

@ -1,6 +1,19 @@
<?xml version="1.0"?>
<configuration>
<configSections>
</configSections>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
<configSections>
<section name="AppConfiguration"
type="SCJMapper_V2.AppConfiguration, SCJMapper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<!-- This is the minimal change that detects a movement of an axis
default is 150 - you may change it to get the detection less sensitive -->
<AppConfiguration jsSenseLimit="150" />
</configuration>

@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Collections;
namespace SCJMapper_V2
{
public sealed class AppConfiguration : ConfigurationSection
{
// The collection (property bag) that contains the section properties.
private static ConfigurationPropertyCollection _Properties;
// The jsSenseLimit property.
private static readonly ConfigurationProperty _jsSenseLimit =
new ConfigurationProperty( "jsSenseLimit", typeof( int ), ( int )150, ConfigurationPropertyOptions.None );
// ctor
public AppConfiguration( )
{
// initialization
_Properties = new ConfigurationPropertyCollection( );
_Properties.Add( _jsSenseLimit );
}
protected override ConfigurationPropertyCollection Properties
{
get
{
return _Properties;
}
}
[IntegerValidator( MinValue = 1, MaxValue = 1000, ExcludeRange = false )]
public int jsSenseLimit
{
get
{
return ( int )this["jsSenseLimit"];
}
set
{
this["jsSenseLimit"] = value;
}
}
/// <summary>
/// Provide access to configuration props
/// </summary>
public class AppConfig
{
static private AppConfiguration GetAppSection( )
{
try {
AppConfiguration appConfiguration = ConfigurationManager.GetSection( "AppConfiguration" ) as AppConfiguration;
if ( appConfiguration == null )
Console.WriteLine( "Failed to load AppConfiguration Section." );
else {
return appConfiguration;
}
}
catch ( ConfigurationErrorsException err ) {
Console.WriteLine( err.ToString( ) );
}
return null;
}
/// <summary>
/// The axis detection sense limit
/// </summary>
static public int jsSenseLimit
{
get
{
AppConfiguration s = GetAppSection( );
if ( s != null ) return s.jsSenseLimit;
else return 150; // default if things go wrong...
}
}
}
}
}
Loading…
Cancel
Save