V 2.45 - BETA Build 80

- add Some more Layout files for devices
- update Layout to work with dual Joysticks of the same type and Gamepads
- fix for Invert mod writing to XML (#90)
- fix for some Layout files and general fixes in the layout part
pull/104/head v2.45beta
bm98 4 years ago
parent 220cd3d73d
commit 7b1ae5a052

@ -310,7 +310,7 @@ namespace SCJMapper_V2.Devices.Options
/// <returns>The XML string or an empty string</returns>
public string Options_toXML()
{
if ( ( /*SensitivityUsed ||*/ ExponentUsed || InvertForced || NonLinCurveUsed ) == false ) return ""; // not used
if ( ( /*SensitivityUsed ||*/ ExponentUsed || InvertForced || InvertUsed || NonLinCurveUsed ) == false ) return ""; // not used
if ( DevInstanceNo < 1 ) return ""; // no device to assign it to..
string tmp = "";

@ -1400,6 +1400,7 @@
//
this.meShowLayoutDialog.Name = "meShowLayoutDialog";
this.meShowLayoutDialog.Size = new System.Drawing.Size(250, 22);
this.meShowLayoutDialog.Tag = "§";
this.meShowLayoutDialog.Text = "Show Layout Dialog...";
this.meShowLayoutDialog.Click += new System.EventHandler(this.meShowLayoutDialog_Click);
//

@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA8
EAAAAk1TRnQBSQFMAgEBCQEAAWgBFAFoARQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
EAAAAk1TRnQBSQFMAgEBCQEAAXABFAFwARQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@ -582,7 +582,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACy
HQAAAk1TRnQBSQFMAgEBBAEAASgBAgEoAQIBMAEAATABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
HQAAAk1TRnQBSQFMAgEBBAEAATABAgEwAQIBMAEAATABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABwAMAAWADAAEBAQABCAYAAUgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@ -614,7 +614,7 @@
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AI8A
HP8JAAH/EgAD9AHzBPAB8wP0KgAB/wL0AfME8AHzAvQB/0MAAf8B8wG6HKwBugHzAf8TAAH0AfABuwGR
D2sBiwGRAbsB8QH0HwAB/wHyAQcBtAGLDGsBiwH3AbwB8wH/GgAB9AHwAQcB7wKSAe8BBwHwAfQYAAH/
AfMBsiCsAbIB8wH/DQAB9QHuAZEZawFsAZEB8AH/GQAB8wH3FmsBuwH0FQAB/wHxAfcB7wEHArwC8QK8
AfMBsiCsAbIB8wH/DQAB/wG8AZEZawFsAZEB8AH/GQAB8wH3FmsBuwH0FQAB/wHxAfcB7wEHArwC8QK8
AQcB7wH3AfEB/xQAAf8BCSSsAQkB/woAAfIBkSBrAbsB9BUAAfQBuxprAbsB9BIAAfEBkgHvAfAK8QHw
Ae8BkgHxEgAB/wEJJqwBCQH/BwAB9AG7JGsBuwH/EgAB8wJrGooCawH0DwAB/wHwAe8B8A7xAfAB7wHw
Af8PAAH/AfMorAHzAf8FAAHxAmskigFrAfcB8xEAAfcBaxyKAWsBuw4AAfQBvAEHBPEB8AH3AZABiwJr
@ -637,7 +637,7 @@
AfEBawKzAfQB/wEZAbMBawHwAvIBkgkAAf8GrAKzAQ0BQwGzAdsBiwINAWwBugHbAbMDiwG0A7oB2wG0
AUMBswHbAbMEDQKzBqwB/wUAAbsBigGzAZAfiwGQArMBigEHBQAB/wErEjIBMQFMAUoBBgmzAYoBuwHz
Af8SAAGSA/IBiwGzAfQB/wEZArMBawHyBvMB8gFrArMB9AH/ARkBswFrAfAC8gGSCQAB/wasArMCDQG0
AdsBswINAbMD2wKQAYsBtAXbAWwBiwLbAWYCDwENArMGrAH/BgABuwEGArMekAKzAWsB7gYAAfMBKxQy
AdsBswINAbMD2wKQAYsBtAXbAWwBiwLbAWYCDwENArMGrAH/BgABuwEGArMekAKzAWsBvAYAAfMBKxQy
AUoBigmzAYoBuxQAAfcB8gHzAfIBiwGQAbMBugOzAYoBuwH/BPMB/wG7AYoDswG6ArMBawHyAfMB8gH3
CQAB/wasArMCDQGQAtsBZgENAbQC2wG0A4sBkAO0AtsBiwFsAtsBiwMPArMGrAH/BwABuwGKA7MZkAOz
AYoBawHxBwAB9AErFDIBbAuzAWsB/xMAAQcB8AH0AfIBkQGQBrMBiwH0BP8B9AGLAZAGswGLAfIB9AHw
@ -646,7 +646,7 @@
BrMBgQGRAfMB9AG8AfAJAAH/BqwCswEPAQ0BZgbbAYsGDQGLA9sBswENAbQB2wG0AQ0CDwKzBqwB/woA
AfIBkQGKAYEFswqQBrMBgQGKAYsBvAH/CwABUhMyAVEBiguzAYoBuxMAAfMB7wH/AfMB8gFrAbMBuQaz
AYoCawGKCLMBigHwAfMB9AHvAfMJAAH/BqwCswEPAg0BugXbAbQBZgQNAZAD2wG0AWYBDQGRAtsBZgEK
AQ8CswasAf8MAAH1Ae4BkQFrAooBswqQAbMBkAGKAQYBiwGRAe4B9A4AARoBMRIyAUoBkAyzAZETAAH/
AQ8CswasAf8MAAH/AbwBkQFrAooBswqQAbMBkAGKAQYBiwGRAbwB9A4AARoBMRIyAUoBkAyzAZETAAH/
AZIB9AH/AfMBtAGKAdoBuQ+zAdoBswGRAfMB/wH0AZIB/wkAAf8GrAG5AbMCDwENAbQC2wG0BNsBkAEN
AWYBtAPbAYsBDQEPAQoBiwLbAWwBDgEPAbMBuQasAf8QAAH0AYoMswKQAfQSAAH/ASsBMgFTEDIBbA2z
AWsB/xMAAfEBvAH/AvMBawGzAdoOuQHaAbkBawHwAfMB/wG8AfEKAAH/BqwBugGzAQ8BDgEKAYsC2wFm
@ -674,7 +674,7 @@
AQ4CCgEOAgoCDgEKAw4CAAK6BqwB/w4AAQcBkBKzAbsYAAF0AVMMWQErAf8BAAHzAfABuwG8AfMB/xkA
AfEBBwH/AvMCvA4AArwC8wH/AQcB8QsAAf8GrAGzAdsBbBoNAWwB2wGzBqwB/w4AAbsBkBKzAfcYAAFS
DVkBMQH/IAAB9AHvAf8B9AHzAfIB7wHzDAAB8wHvAfIB8wH0Af8B7wH0CwAB/wesAbkB2xq6AdsBuQes
Af8OAAHuAZASswG0GAABUg1ZATEB8yEAAQcB8gH/AvMB8AH3AfQKAAH0AfcB8ALzAf8B8gEHDAAB/wis
Af8OAAG8AZASswG0GAABUg1ZATEB8yEAAQcB8gH/AvMB8AH3AfQKAAH0AfcB8ALzAf8B8gEHDAAB/wis
AbIaswGyCKwB/w4AAfABihG5AbMBtRgAAVINWQExARshAAHzAe8C/wLzAbwB9wHzCAAB8wH3AbwC8wL/
Ae8B8wwAAf8srAH/DgAB8wEGEbkBkAG7GAABUg1ZATEBGyIAAvAB/wH0AvMB8AHvAbwB8gH0Av8B9AHy
AbwB7wHwAvMB9AH/AvAOAAG6KqwBug8AAf8BaxG5AYoB8RgAAXkBUwxZATEB9CIAAfQBkgHzAf8B9APz

@ -54,5 +54,6 @@ namespace SCJMapper_V2.Layout
}
}
}
}

@ -96,95 +96,126 @@ namespace SCJMapper_V2.Layout
{
var ail = new List<ActionItem>( );
var ai = new ActionItem {
ActionMap = aMap, ControlInput = $"x", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "x", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button X", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"a", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "a", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button A", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"b", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "b", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button B", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"y", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "y", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Y", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"shoulderl", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "shoulderl", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Shoulder Left", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"shoulderr", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "shoulderr", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Shoulder Right", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"triggerl_btn", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "triggerl_btn", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Trigger Left", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"triggerr_btn", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "triggerr_btn", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Trigger Right", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"back", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "back", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Back", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"start", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "start", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Start", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"thumbl", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "thumbl", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Thumb Left", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"thumbr", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "thumbr", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Button Thumb Right", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"dpad_up", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "dpad_up", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - POV Up", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"dpad_right", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "dpad_right", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - POV Right", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"dpad_down", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "dpad_down", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - POV Down", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"dpad_left", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "dpad_left", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - POV Left", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"thumblx", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "thumblx", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - X - Axis Thumb Left", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"thumbly", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "thumbly", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Y - Axis Thumb Left", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"thumbrx", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "thumbrx", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - X - Axis Thumb Right", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = $"thumbry", DeviceName = "Debug Controller",
ActionMap = aMap, ControlInput = "thumbry", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - Y - Axis Thumb Right", InputType = $"G1"
}; ail.Add( ai );
return ail;
}
private List<ActionItem> AI_GamepadMods( string aMap )
{
var ail = new List<ActionItem>( );
var ai = new ActionItem {
ActionMap = aMap, ControlInput = "shoulderl+x", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - ShLeft + Button X", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = "shoulderl+a", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - ShLeft + Button A", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = "shoulderl+b", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - ShLeft + Button B", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = "shoulderl+y", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - ShLeft + Button Y", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = "shoulderl+triggerl_btn", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - ShLeft + Trigger Left", InputType = $"G1"
}; ail.Add( ai );
ai = new ActionItem {
ActionMap = aMap, ControlInput = "shoulderl+triggerr_btn", DeviceName = "Debug Controller",
DeviceProdGuid = GamepadCls.DevGUIDCIG, DispText = $"GP - ShLeft + Trigger Right", InputType = $"G1"
}; ail.Add( ai );
return ail;
}
@ -197,7 +228,7 @@ namespace SCJMapper_V2.Layout
// create Joysticks js1..js4 for the provided GUIDs
for ( int joy = 0; joy < guids.Length; joy++ ) {
// Joy Buttons are in "spaceship_general"
for ( int i = 1; i <= 32; i++ ) {
for ( int i = 1; i <= 60; i++ ) { // Max BUTTONS = 60
m_actionItems.Add( AI_Button( "spaceship_general", (short)i, (short)( joy + 1 ), guids[joy] ) );
}
// Joy POVs are in "spaceship_view"
@ -209,10 +240,12 @@ namespace SCJMapper_V2.Layout
}
// Create Gamepad
// Joy Analogs are in "spaceship_targeting"
// Gamepads are in "spaceship_targeting"
m_actionItems.AddRange( AI_Gamepad( "spaceship_targeting" ) );
// Create Gamepad modified
// Gamepads Mods are in "spaceship_target_hailing"
m_actionItems.AddRange( AI_GamepadMods( "spaceship_target_hailing" ) );
// Create Keyboard
}

@ -66,18 +66,34 @@ namespace SCJMapper_V2.Layout
for ( int i = 0; i < InputDevices.Count; i++ ) {
if ( InputDevices[i].DevicePIDVID.Contains( pidVid ) ) { // can have multiple PID VIDs for a device (alternates)
// input can be: {modifier+}Input
string[] e = input.Split( new char[] { '+' } );
string effInput = e[e.Length - 1]; // last item is the real input
// returns if we are asked for the first instance and it is the first one (default)
if ( firstInstance && ( InputDevices[i].InputTypeNumber == 1 ) ) {
return InputDevices[i].FindItem( input );
return InputDevices[i].FindItem( effInput );
}
else if (!firstInstance && InputDevices[i].InputTypeNumber > 1 ) {
return InputDevices[i].FindItem( input ); // not first and J2.. - return any other (more than 2 not supported)
else if ( !firstInstance && InputDevices[i].InputTypeNumber > 1 ) {
return InputDevices[i].FindItem( effInput ); // not first and J2.. - return any other (more than 2 not supported)
}
}
}
return null;
}
/// <summary>
/// Get all devices with Name (only first GUID is returned)
/// </summary>
/// <returns></returns>
public List<Device.DeviceDescriptor> Devices()
{
var ret = new List<Device.DeviceDescriptor>( );
for ( int i = 0; i < InputDevices.Count; i++ ) {
if ( !ret.Exists( x => x.DevGuid == InputDevices[i].DevDescriptor.DevGuid ) )
ret.Add( InputDevices[i].DevDescriptor );
}
return ret;
}
}
/// <summary>
@ -97,6 +113,28 @@ namespace SCJMapper_V2.Layout
// non Json
/// <summary>
/// Describes a known device
/// Used for the Layout Debug Mode
/// </summary>
public class DeviceDescriptor
{
public string DevGuid { get; set; } = "";
public string DevName { get; set; } = "";
public override string ToString()
{
return DevName;
}
}
public DeviceDescriptor DevDescriptor
{
get {
return new DeviceDescriptor( ) { DevGuid = DeviceProdGuid[0], DevName = DeviceName };
}
}
public string InputTypeLetter { get => InputType.Substring( 0, 1 ); }
public int InputTypeNumber
{
@ -132,9 +170,6 @@ namespace SCJMapper_V2.Layout
/// <returns>The found Control or Null</returns>
public Control FindItem( string input )
{
// input can be: {modifier+}Input
string[] e = input.Split( new char[] { '+' } );
string effInput = e[e.Length - 1]; // last item is the real input
for ( int i = 0; i < Controls.Count; i++ ) {
if ( input == Controls[i].Input ) {
return Controls[i];
@ -153,6 +188,7 @@ namespace SCJMapper_V2.Layout
Controls[i].CreateShapes( );
}
}
}
/// <summary>
@ -209,7 +245,7 @@ namespace SCJMapper_V2.Layout
for ( int c = 0; c < nCols; c++ ) {
var sh = new ShapeItem {
X = X + c * baseWidth,
Y = Y + l * baseHeight,
Y = Y + l * baseHeight + 2, // offset Y by 2 pix to have it more centered
Width = baseWidth,
Height = baseHeight
};

@ -32,34 +32,42 @@
this.chkLbActionGroups = new System.Windows.Forms.ListView();
this.chkLbActionMaps = new System.Windows.Forms.ListView();
this.pnlInput = new System.Windows.Forms.Panel();
this.btClose = new System.Windows.Forms.Button();
this.pnlDebug = new System.Windows.Forms.Panel();
this.cbxJs3 = new System.Windows.Forms.ComboBox();
this.cbxJs2 = new System.Windows.Forms.ComboBox();
this.cbxJs1 = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.btCreateDbgList = new System.Windows.Forms.Button();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.btColors = new System.Windows.Forms.Button();
this.btSave = new System.Windows.Forms.Button();
this.btLayout = new System.Windows.Forms.Button();
this.cbxLayouts = new System.Windows.Forms.ComboBox();
this.drawPanel = new System.Windows.Forms.Panel();
this.gbxColors = new System.Windows.Forms.GroupBox();
this.lblFontSize = new System.Windows.Forms.Label();
this.tbFontSize = new System.Windows.Forms.TrackBar();
this.label2 = new System.Windows.Forms.Label();
this.btAcceptColors = new System.Windows.Forms.Button();
this.lblLayoutNote = new System.Windows.Forms.Label();
this.btAccept = new System.Windows.Forms.Button();
this.lblTextColor = new System.Windows.Forms.Label();
this.lblTest = new System.Windows.Forms.Label();
this.lblBackColor = new System.Windows.Forms.Label();
this.chkLbActionGroupsColor = new System.Windows.Forms.ListView();
this.btCancelColors = new System.Windows.Forms.Button();
this.btCancel = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.btSave = new System.Windows.Forms.Button();
this.btColors = new System.Windows.Forms.Button();
this.SFD = new System.Windows.Forms.SaveFileDialog();
this.colDlg = new System.Windows.Forms.ColorDialog();
this.txGuid1 = new System.Windows.Forms.TextBox();
this.txGuid2 = new System.Windows.Forms.TextBox();
this.txGuid3 = new System.Windows.Forms.TextBox();
this.btCreateDbgList = new System.Windows.Forms.Button();
this.tlPanel.SuspendLayout();
this.pnlInput.SuspendLayout();
this.pnlDebug.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.drawPanel.SuspendLayout();
this.gbxColors.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.tbFontSize)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// tlPanel
@ -71,14 +79,16 @@
this.tlPanel.Controls.Add(this.chkLbActionMaps, 0, 2);
this.tlPanel.Controls.Add(this.pnlInput, 0, 0);
this.tlPanel.Controls.Add(this.drawPanel, 1, 1);
this.tlPanel.Controls.Add(this.panel1, 0, 3);
this.tlPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tlPanel.Location = new System.Drawing.Point(0, 0);
this.tlPanel.Name = "tlPanel";
this.tlPanel.RowCount = 3;
this.tlPanel.RowCount = 4;
this.tlPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 80F));
this.tlPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tlPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 75F));
this.tlPanel.Size = new System.Drawing.Size(1298, 640);
this.tlPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 80F));
this.tlPanel.Size = new System.Drawing.Size(1271, 681);
this.tlPanel.TabIndex = 0;
//
// chkLbActionGroups
@ -95,7 +105,7 @@
this.chkLbActionGroups.MultiSelect = false;
this.chkLbActionGroups.Name = "chkLbActionGroups";
this.chkLbActionGroups.ShowGroups = false;
this.chkLbActionGroups.Size = new System.Drawing.Size(174, 134);
this.chkLbActionGroups.Size = new System.Drawing.Size(174, 124);
this.chkLbActionGroups.TabIndex = 5;
this.chkLbActionGroups.UseCompatibleStateImageBehavior = false;
this.chkLbActionGroups.View = System.Windows.Forms.View.Details;
@ -111,12 +121,12 @@
this.chkLbActionMaps.HideSelection = false;
this.chkLbActionMaps.HoverSelection = true;
this.chkLbActionMaps.LabelWrap = false;
this.chkLbActionMaps.Location = new System.Drawing.Point(3, 223);
this.chkLbActionMaps.Location = new System.Drawing.Point(3, 213);
this.chkLbActionMaps.MultiSelect = false;
this.chkLbActionMaps.Name = "chkLbActionMaps";
this.chkLbActionMaps.ShowGroups = false;
this.chkLbActionMaps.ShowItemToolTips = true;
this.chkLbActionMaps.Size = new System.Drawing.Size(174, 414);
this.chkLbActionMaps.Size = new System.Drawing.Size(174, 384);
this.chkLbActionMaps.TabIndex = 6;
this.chkLbActionMaps.UseCompatibleStateImageBehavior = false;
this.chkLbActionMaps.View = System.Windows.Forms.View.Details;
@ -124,21 +134,108 @@
// pnlInput
//
this.tlPanel.SetColumnSpan(this.pnlInput, 2);
this.pnlInput.Controls.Add(this.btCreateDbgList);
this.pnlInput.Controls.Add(this.txGuid3);
this.pnlInput.Controls.Add(this.txGuid2);
this.pnlInput.Controls.Add(this.txGuid1);
this.pnlInput.Controls.Add(this.btClose);
this.pnlInput.Controls.Add(this.pnlDebug);
this.pnlInput.Controls.Add(this.pictureBox1);
this.pnlInput.Controls.Add(this.btColors);
this.pnlInput.Controls.Add(this.btSave);
this.pnlInput.Controls.Add(this.btLayout);
this.pnlInput.Controls.Add(this.cbxLayouts);
this.pnlInput.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlInput.Location = new System.Drawing.Point(3, 3);
this.pnlInput.Name = "pnlInput";
this.pnlInput.Size = new System.Drawing.Size(1292, 74);
this.pnlInput.Size = new System.Drawing.Size(1265, 74);
this.pnlInput.TabIndex = 1;
//
// btClose
//
this.btClose.Image = ((System.Drawing.Image)(resources.GetObject("btClose.Image")));
this.btClose.Location = new System.Drawing.Point(651, 16);
this.btClose.Name = "btClose";
this.btClose.Size = new System.Drawing.Size(80, 53);
this.btClose.TabIndex = 8;
this.btClose.UseVisualStyleBackColor = true;
this.btClose.Click += new System.EventHandler(this.btClose_Click);
//
// pnlDebug
//
this.pnlDebug.BackColor = System.Drawing.Color.Honeydew;
this.pnlDebug.Controls.Add(this.cbxJs3);
this.pnlDebug.Controls.Add(this.cbxJs2);
this.pnlDebug.Controls.Add(this.cbxJs1);
this.pnlDebug.Controls.Add(this.label4);
this.pnlDebug.Controls.Add(this.label3);
this.pnlDebug.Controls.Add(this.label1);
this.pnlDebug.Controls.Add(this.btCreateDbgList);
this.pnlDebug.Dock = System.Windows.Forms.DockStyle.Right;
this.pnlDebug.Location = new System.Drawing.Point(748, 0);
this.pnlDebug.Name = "pnlDebug";
this.pnlDebug.Size = new System.Drawing.Size(517, 74);
this.pnlDebug.TabIndex = 7;
this.pnlDebug.Visible = false;
//
// cbxJs3
//
this.cbxJs3.FormattingEnabled = true;
this.cbxJs3.Location = new System.Drawing.Point(42, 49);
this.cbxJs3.Name = "cbxJs3";
this.cbxJs3.Size = new System.Drawing.Size(376, 21);
this.cbxJs3.Sorted = true;
this.cbxJs3.TabIndex = 16;
//
// cbxJs2
//
this.cbxJs2.FormattingEnabled = true;
this.cbxJs2.Location = new System.Drawing.Point(42, 26);
this.cbxJs2.Name = "cbxJs2";
this.cbxJs2.Size = new System.Drawing.Size(376, 21);
this.cbxJs2.Sorted = true;
this.cbxJs2.TabIndex = 15;
//
// cbxJs1
//
this.cbxJs1.FormattingEnabled = true;
this.cbxJs1.Location = new System.Drawing.Point(42, 3);
this.cbxJs1.Name = "cbxJs1";
this.cbxJs1.Size = new System.Drawing.Size(376, 21);
this.cbxJs1.Sorted = true;
this.cbxJs1.TabIndex = 14;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(14, 52);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(22, 13);
this.label4.TabIndex = 13;
this.label4.Text = "Js3";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(14, 29);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(22, 13);
this.label3.TabIndex = 12;
this.label3.Text = "Js2";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(14, 6);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(22, 13);
this.label1.TabIndex = 11;
this.label1.Text = "Js1";
//
// btCreateDbgList
//
this.btCreateDbgList.Location = new System.Drawing.Point(424, 9);
this.btCreateDbgList.Name = "btCreateDbgList";
this.btCreateDbgList.Size = new System.Drawing.Size(74, 56);
this.btCreateDbgList.TabIndex = 10;
this.btCreateDbgList.Text = "Create Debug List";
this.btCreateDbgList.UseVisualStyleBackColor = true;
this.btCreateDbgList.Click += new System.EventHandler(this.btCreateDbgList_Click);
//
// pictureBox1
//
this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage")));
@ -151,30 +248,10 @@
this.pictureBox1.TabStop = false;
this.pictureBox1.DoubleClick += new System.EventHandler(this.pictureBox1_DoubleClick);
//
// btColors
//
this.btColors.Image = global::SCJMapper_V2.Properties.Resources.Settings;
this.btColors.Location = new System.Drawing.Point(651, 15);
this.btColors.Name = "btColors";
this.btColors.Size = new System.Drawing.Size(80, 54);
this.btColors.TabIndex = 5;
this.btColors.UseVisualStyleBackColor = true;
this.btColors.Click += new System.EventHandler(this.btColors_Click);
//
// btSave
//
this.btSave.Image = ((System.Drawing.Image)(resources.GetObject("btSave.Image")));
this.btSave.Location = new System.Drawing.Point(534, 15);
this.btSave.Name = "btSave";
this.btSave.Size = new System.Drawing.Size(80, 54);
this.btSave.TabIndex = 4;
this.btSave.UseVisualStyleBackColor = true;
this.btSave.Click += new System.EventHandler(this.btSave_Click);
//
// btLayout
//
this.btLayout.Image = ((System.Drawing.Image)(resources.GetObject("btLayout.Image")));
this.btLayout.Location = new System.Drawing.Point(383, 16);
this.btLayout.Location = new System.Drawing.Point(431, 16);
this.btLayout.Name = "btLayout";
this.btLayout.Size = new System.Drawing.Size(80, 53);
this.btLayout.TabIndex = 3;
@ -187,7 +264,8 @@
this.cbxLayouts.FormattingEnabled = true;
this.cbxLayouts.Location = new System.Drawing.Point(91, 30);
this.cbxLayouts.Name = "cbxLayouts";
this.cbxLayouts.Size = new System.Drawing.Size(269, 25);
this.cbxLayouts.Size = new System.Drawing.Size(334, 25);
this.cbxLayouts.Sorted = true;
this.cbxLayouts.TabIndex = 1;
this.cbxLayouts.SelectedIndexChanged += new System.EventHandler(this.cbxLayouts_SelectedIndexChanged);
//
@ -199,8 +277,8 @@
this.drawPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.drawPanel.Location = new System.Drawing.Point(183, 83);
this.drawPanel.Name = "drawPanel";
this.tlPanel.SetRowSpan(this.drawPanel, 2);
this.drawPanel.Size = new System.Drawing.Size(1112, 554);
this.tlPanel.SetRowSpan(this.drawPanel, 3);
this.drawPanel.Size = new System.Drawing.Size(1085, 595);
this.drawPanel.TabIndex = 2;
//
// gbxColors
@ -208,17 +286,17 @@
this.gbxColors.BackColor = System.Drawing.Color.Gray;
this.gbxColors.Controls.Add(this.lblFontSize);
this.gbxColors.Controls.Add(this.tbFontSize);
this.gbxColors.Controls.Add(this.label2);
this.gbxColors.Controls.Add(this.btAcceptColors);
this.gbxColors.Controls.Add(this.lblLayoutNote);
this.gbxColors.Controls.Add(this.btAccept);
this.gbxColors.Controls.Add(this.lblTextColor);
this.gbxColors.Controls.Add(this.lblTest);
this.gbxColors.Controls.Add(this.lblBackColor);
this.gbxColors.Controls.Add(this.chkLbActionGroupsColor);
this.gbxColors.Controls.Add(this.btCancelColors);
this.gbxColors.Controls.Add(this.btCancel);
this.gbxColors.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbxColors.Location = new System.Drawing.Point(17, 16);
this.gbxColors.Name = "gbxColors";
this.gbxColors.Size = new System.Drawing.Size(534, 418);
this.gbxColors.Size = new System.Drawing.Size(534, 455);
this.gbxColors.TabIndex = 0;
this.gbxColors.TabStop = false;
this.gbxColors.Text = "Layout Settings";
@ -228,6 +306,7 @@
//
this.lblFontSize.AutoSize = true;
this.lblFontSize.Font = new System.Drawing.Font("Segoe UI", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblFontSize.ForeColor = System.Drawing.Color.LightCyan;
this.lblFontSize.Location = new System.Drawing.Point(428, 35);
this.lblFontSize.Name = "lblFontSize";
this.lblFontSize.Size = new System.Drawing.Size(37, 30);
@ -249,25 +328,27 @@
this.tbFontSize.Value = 16;
this.tbFontSize.Scroll += new System.EventHandler(this.tbFontSize_Scroll);
//
// label2
// lblLayoutNote
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(248, 243);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(247, 78);
this.label2.TabIndex = 12;
this.label2.Text = "Select an entry in the list and then click above \r\nto assing colors.\r\n\r\nNote: \r\nW" +
this.lblLayoutNote.ForeColor = System.Drawing.Color.LightCyan;
this.lblLayoutNote.Location = new System.Drawing.Point(248, 246);
this.lblLayoutNote.Name = "lblLayoutNote";
this.lblLayoutNote.Size = new System.Drawing.Size(247, 141);
this.lblLayoutNote.TabIndex = 12;
this.lblLayoutNote.Tag = "§";
this.lblLayoutNote.Text = "Select an entry in the list and then click above \r\nto assign colors.\r\n\r\nNote: \r\nW" +
"hite background is treated as Transparent\r\nwhile drawing items to the image.";
//
// btAcceptColors
// btAccept
//
this.btAcceptColors.Location = new System.Drawing.Point(234, 370);
this.btAcceptColors.Name = "btAcceptColors";
this.btAcceptColors.Size = new System.Drawing.Size(129, 26);
this.btAcceptColors.TabIndex = 11;
this.btAcceptColors.Text = "Accept";
this.btAcceptColors.UseVisualStyleBackColor = true;
this.btAcceptColors.Click += new System.EventHandler(this.btAcceptColors_Click);
this.btAccept.Location = new System.Drawing.Point(229, 407);
this.btAccept.Name = "btAccept";
this.btAccept.Size = new System.Drawing.Size(129, 26);
this.btAccept.TabIndex = 11;
this.btAccept.Tag = "§";
this.btAccept.Text = "Accept";
this.btAccept.UseVisualStyleBackColor = true;
this.btAccept.Click += new System.EventHandler(this.btAcceptColors_Click);
//
// lblTextColor
//
@ -323,15 +404,46 @@
this.chkLbActionGroupsColor.View = System.Windows.Forms.View.Details;
this.chkLbActionGroupsColor.ItemActivate += new System.EventHandler(this.chkLbActionGroupsColor_ItemActivate);
//
// btCancelColors
// btCancel
//
this.btCancelColors.Location = new System.Drawing.Point(382, 370);
this.btCancelColors.Name = "btCancelColors";
this.btCancelColors.Size = new System.Drawing.Size(129, 26);
this.btCancelColors.TabIndex = 6;
this.btCancelColors.Text = "Cancel";
this.btCancelColors.UseVisualStyleBackColor = true;
this.btCancelColors.Click += new System.EventHandler(this.btCloseColors_Click);
this.btCancel.Location = new System.Drawing.Point(377, 407);
this.btCancel.Name = "btCancel";
this.btCancel.Size = new System.Drawing.Size(129, 26);
this.btCancel.TabIndex = 6;
this.btCancel.Tag = "§";
this.btCancel.Text = "Cancel";
this.btCancel.UseVisualStyleBackColor = true;
this.btCancel.Click += new System.EventHandler(this.btCloseColors_Click);
//
// panel1
//
this.panel1.Controls.Add(this.btSave);
this.panel1.Controls.Add(this.btColors);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(3, 603);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(174, 75);
this.panel1.TabIndex = 7;
//
// btSave
//
this.btSave.Image = ((System.Drawing.Image)(resources.GetObject("btSave.Image")));
this.btSave.Location = new System.Drawing.Point(3, 11);
this.btSave.Name = "btSave";
this.btSave.Size = new System.Drawing.Size(62, 54);
this.btSave.TabIndex = 4;
this.btSave.UseVisualStyleBackColor = true;
this.btSave.Click += new System.EventHandler(this.btSave_Click);
//
// btColors
//
this.btColors.Image = global::SCJMapper_V2.Properties.Resources.Settings;
this.btColors.Location = new System.Drawing.Point(109, 11);
this.btColors.Name = "btColors";
this.btColors.Size = new System.Drawing.Size(62, 54);
this.btColors.TabIndex = 5;
this.btColors.UseVisualStyleBackColor = true;
this.btColors.Click += new System.EventHandler(this.btColors_Click);
//
// SFD
//
@ -344,50 +456,16 @@
this.colDlg.AnyColor = true;
this.colDlg.FullOpen = true;
//
// txGuid1
//
this.txGuid1.Location = new System.Drawing.Point(842, 2);
this.txGuid1.Name = "txGuid1";
this.txGuid1.Size = new System.Drawing.Size(338, 22);
this.txGuid1.TabIndex = 7;
this.txGuid1.Visible = false;
//
// txGuid2
//
this.txGuid2.Location = new System.Drawing.Point(842, 25);
this.txGuid2.Name = "txGuid2";
this.txGuid2.Size = new System.Drawing.Size(338, 22);
this.txGuid2.TabIndex = 8;
this.txGuid2.Visible = false;
//
// txGuid3
//
this.txGuid3.Location = new System.Drawing.Point(842, 48);
this.txGuid3.Name = "txGuid3";
this.txGuid3.Size = new System.Drawing.Size(338, 22);
this.txGuid3.TabIndex = 9;
this.txGuid3.Visible = false;
//
// btCreateDbgList
//
this.btCreateDbgList.Location = new System.Drawing.Point(1190, 24);
this.btCreateDbgList.Name = "btCreateDbgList";
this.btCreateDbgList.Size = new System.Drawing.Size(74, 24);
this.btCreateDbgList.TabIndex = 10;
this.btCreateDbgList.Text = "Create List";
this.btCreateDbgList.UseVisualStyleBackColor = true;
this.btCreateDbgList.Visible = false;
this.btCreateDbgList.Click += new System.EventHandler(this.btCreateDbgList_Click);
//
// FormLayout
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1298, 640);
this.ClientSize = new System.Drawing.Size(1271, 681);
this.Controls.Add(this.tlPanel);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(770, 720);
this.Name = "FormLayout";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Device Layout";
@ -395,12 +473,14 @@
this.Load += new System.EventHandler(this.FormLayout_Load);
this.tlPanel.ResumeLayout(false);
this.pnlInput.ResumeLayout(false);
this.pnlInput.PerformLayout();
this.pnlDebug.ResumeLayout(false);
this.pnlDebug.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.drawPanel.ResumeLayout(false);
this.gbxColors.ResumeLayout(false);
this.gbxColors.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.tbFontSize)).EndInit();
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
@ -418,20 +498,26 @@
private System.Windows.Forms.SaveFileDialog SFD;
private System.Windows.Forms.Button btColors;
private System.Windows.Forms.GroupBox gbxColors;
private System.Windows.Forms.Button btCancelColors;
private System.Windows.Forms.Button btCancel;
private System.Windows.Forms.Label lblTest;
private System.Windows.Forms.ListView chkLbActionGroupsColor;
private System.Windows.Forms.Label lblBackColor;
private System.Windows.Forms.Label lblTextColor;
private System.Windows.Forms.ColorDialog colDlg;
private System.Windows.Forms.Button btAcceptColors;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button btAccept;
private System.Windows.Forms.Label lblLayoutNote;
private System.Windows.Forms.TrackBar tbFontSize;
private System.Windows.Forms.Label lblFontSize;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.TextBox txGuid3;
private System.Windows.Forms.TextBox txGuid2;
private System.Windows.Forms.TextBox txGuid1;
private System.Windows.Forms.Button btCreateDbgList;
private System.Windows.Forms.Panel pnlDebug;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button btClose;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ComboBox cbxJs1;
private System.Windows.Forms.ComboBox cbxJs3;
private System.Windows.Forms.ComboBox cbxJs2;
}
}

@ -28,6 +28,7 @@ namespace SCJMapper_V2.Layout
private readonly Color COL_ERR = Color.Gold;
private Layouts m_layouts = null;
private List<Device.DeviceDescriptor> m_devices = null; // for debug allocated only
internal ActionItemList ActionList { get; set; } = null;
@ -40,13 +41,8 @@ namespace SCJMapper_V2.Layout
{
InitializeComponent( );
if ( IsDebug( ) ) {
// Show Debug items at startup
txGuid1.Visible = true;
txGuid2.Visible = true;
txGuid3.Visible = true;
btCreateDbgList.Visible = true;
}
// Show Debug items at startup
if ( IsDebug( ) ) pnlDebug.Visible = true;
}
/// <summary>
@ -141,6 +137,23 @@ namespace SCJMapper_V2.Layout
m_sPanel.Dock = DockStyle.Fill;
m_sPanel.BackgroundImageLayout = ImageLayout.Zoom;
if ( IsDebug( ) ) {
// get an empty on top
cbxJs1.Items.Add( new Device.DeviceDescriptor( ) );
cbxJs2.Items.Add( new Device.DeviceDescriptor( ) );
cbxJs3.Items.Add( new Device.DeviceDescriptor( ) );
// get all devices know in the layout folder
m_devices = m_layouts.Devices( );
foreach ( var dev in m_devices ) {
cbxJs1.Items.Add( dev );
cbxJs2.Items.Add( dev );
cbxJs3.Items.Add( dev );
}
cbxJs1.SelectedIndex = 0;
cbxJs2.SelectedIndex = 0;
cbxJs3.SelectedIndex = 0;
}
RefreshPanel( );
}
@ -196,11 +209,12 @@ namespace SCJMapper_V2.Layout
/// </summary>
private void Populate()
{
bool errorShown = false;
// for all actions found from action tree
m_displayList.Clear( );
( cbxLayouts.SelectedItem as DeviceLayout ).DeviceController.CreateShapes( );
foreach ( var si in ActionList ) {
// if ( si.DeviceName == cbxDevices.SelectedItem.ToString( ) ) {
// matches the selected device
if ( MatchCriteria( si ) ) {
bool firstInstance = ActionList.IsFirstInstance( si.DevicePidVid, si.InputTypeNumber );
@ -213,9 +227,17 @@ namespace SCJMapper_V2.Layout
shape.BackColor = MapProps.MapBackColor( si.ActionMap );
m_displayList.Add( shape );
}
else {
// Display elements exhausted...
if ( ! errorShown ) {
string msg = $"No more display elements left for device: {si.DeviceName}";
msg += $"\n\nTry to use a smaller font to show all actions!";
MessageBox.Show( msg, "Layout - Cannot show all actions", MessageBoxButtons.OK, MessageBoxIcon.Warning );
errorShown = true; // only once
}
}
}
}
// }
}
}
@ -369,6 +391,11 @@ namespace SCJMapper_V2.Layout
m_checkAllToggle = !m_checkAllToggle; // toggle
}
private void btClose_Click( object sender, EventArgs e )
{
this.Close( );
}
#endregion
#region DEBUG LIST
@ -378,16 +405,15 @@ namespace SCJMapper_V2.Layout
{
DBG_LIST = new DbgActionItemList( );
List<string> guids = new List<string>( );
if ( !string.IsNullOrEmpty( txGuid1.Text ) ) guids.Add( txGuid1.Text );
if ( !string.IsNullOrEmpty( txGuid2.Text ) ) guids.Add( txGuid2.Text );
if ( !string.IsNullOrEmpty( txGuid3.Text ) ) guids.Add( txGuid3.Text );
if ( !string.IsNullOrEmpty( ( cbxJs1.SelectedItem as Device.DeviceDescriptor ).DevGuid ) ) guids.Add( ( cbxJs1.SelectedItem as Device.DeviceDescriptor ).DevGuid );
if ( !string.IsNullOrEmpty( ( cbxJs2.SelectedItem as Device.DeviceDescriptor ).DevGuid ) ) guids.Add( ( cbxJs2.SelectedItem as Device.DeviceDescriptor ).DevGuid );
if ( !string.IsNullOrEmpty( ( cbxJs3.SelectedItem as Device.DeviceDescriptor ).DevGuid ) ) guids.Add( ( cbxJs3.SelectedItem as Device.DeviceDescriptor ).DevGuid );
DBG_LIST.CreateDebugList( guids.ToArray( ) );
ActionList = DBG_LIST.DbgList;
}
#endregion
#endregion
}
}

@ -118,6 +118,37 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="btClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAABgdJREFUaEPV
melvVGUUxm9cCqUDCLK0M1JB2tJlOjNtAZG9LSVAkUUIxCqixp1IcEGJRdkLFCSIxOhn/TfsCh1A1AiE
tRSwUKB0px8mEXN8zjtzrzPT07l3pi3JfPgl933eszzP3EnbpBoRxTWiGE+IYjwhivGEKJpRNd+eCKbw
c9chz4AIzJsCxgfvsIooRgKL1tYUOaihNJXwXP7w2zzRmBW4l2fwrPrFk3jeh9LOSIhifyjzhQ7qOJpP
vl9mkXe5P0TPYY/WWemOCu7hXp7h+3kW9f40AyGeizqEKEpg8GplvsJNhGWM7/h0I0R3pUfrOOC2BNca
5jGDfsQ80HskP+oQohiObr59j4vohwLqrXRT1wEE+R5v4lgBeQNfJ2hae4UrIlyjzKOHe3kGz+o5iHnH
MftwXlQhRDEYw/xumD+eTw8PuKhtb66iswLa0TzyAT0ENA13InxnmEcP9/IM3Cm692PesXx8QB7LIURR
BwNWKPM7nUTf5VFPRS492O0MoQOL6YiHfEAPAU3DXQisGeZRyz3cyzOC6dqHeQjWi7dSX2IeQhQZw/z2
HLWse4+TWnfkiLTvQsBDbvIB7zL106QcmoY7BT8r87jjGq7lnuAZwXQiCB12Uy/ejlkIUTTMl2djkIu6
dmXT/a+zItL2TRbRwVzyHXQZIaBpjGEed1zDtdKMYDp2YndlLvXig4sUoo+AwoTqhXZq3ZJBtB9fEQy7
+1WmJVrLM+nfCif58FXzLvWHUObxzBrfcY3UK9G2PYse7XNS2xeZVL/IwfP6/LILOTAoSuXEt7akU8uX
06Lm/rZp9Gh3Dvn25Kg3oT55PLPGd1KPGeylzh/AEe435KCDwm0c4ubmdLrzeUbU3NuaQf/syCYfBwH8
zJpUa8bNj9N081slr30EHQ7BjTc2TaXmT9KipuXTNLr3WbqCn6UaM5o+mkp1xf2bZ0RRRw9x/YMX6Nbm
qY+VRuw0M8+IYjAqBAY1vjeZbm6a8lhofHeyJfOMKIajh7j69vPU9P7kIYV31OKvXSvmGVGUUCGK7HT5
zVRqfGdouLxxEszbLZtnRLE/OAQvuLxhEl17a3C59Hr05hlRjIQe4uKrDrqyYXDgWbWF0ZtnRNEMFQIL
L6y306WygXFhnT1m84womoFle08uslPza3a6sj6ZLq6LDe5tRogTxSrALmmXGaIYCTZ/usRODzc6qKUs
hS6unUgX1sQG997FjJ43HHQKH0gsIUSxP5R5LOouS6bb62Bi1Xg6t3Jg8Iw7mNWFmd4Y3oQoSrD5U8Up
1Illza9MoPMvj6O/lg8OPOv2mglqttf/k8hyCFEMR5kvSqH2NePp1kosXTaW/lw6uPDMv1eNUzu82GU1
hCgGw+Z5YBuMN5Vi2eIx9HvJ0MCzb5Q+Sw+wq6HQWghR1FHmC5PpwfKxdH3JM/RH8Wg6WzS08I4m7GrF
zoaF5iFEkVHmFybTvSVj6NoiDF8wis48JnhXY8louovdDfAQKYQosnlubMGQK4Uj6cxcG52KAe/cUQrp
zgzeeRW778DDyQX9h+gjoHBa7fxk+m22jc5hyOmXksgbAw2zR1L1vGQFP0s1ZvDu8/Bwdo6NauAJ3tLC
/YYcGBQlVs1PoROzRlPDzBExcfJFmzKOWdsYfmZNqrUCe8EcJiHcb8hBB4UrOETdzFF0oiAxKuqnJxnm
cdYYPQTfBddagT0EzJdKXvsIOkaIGTaqzxtmiTosrJ7rN4+zFowKgTuu4Vor8G72wF4kj4wo6qgQ81Ko
tsBGda6EyHiGw/xEZR5nTYLvqjgEanGOSG1+EvHuSOYZUQxGD1GTl0S1zqdlXMOoKmAeZy0SegjuwVmE
dwXMr5Y8BSOK4eghqj0jqCb7qVCcMD/Hbx5nzQr+EBNVL86huBMtm2dEUcII4cL3PPNJPzkJhnmctWhQ
IdDLM3D2k2uYXy95kBDF/tBDVPGirP/NV2XAUCwEQqhZzuFRm2dEMRJGiID5X9Of0AaCEcJvvkzaGQlR
NAOL+N+sqfwsmYqGwLxUYAveYRVRjCdEMZ4QxXhCFOMH0v4DN4thMT89blIAAAAASUVORK5CYII=
</value>
</data>
<data name="pictureBox1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAATuVJREFUeF7t
@ -458,31 +489,6 @@
u1fvwvlzX6ckJ3VbsdzJYYL5uK09unXZR+BeJ0I8VlNu/Zxk/YmmusqNTh3aHTU2GpJpM9t6bWCAv0VR
UaHO1StXGhHw9Z88eVwb4/+bxxovry/d3dzqrlixooGzs1OjBQvsv7axmdNyzpzZrW3mzG5lZ2f7jdOy
ZY1cli9vuHLlyvoeHh51vL29a2N77fj/cfzP//w/nccJ4FnUh2gAAAAASUVORK5CYII=
</value>
</data>
<data name="btSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAABJpJREFUaEPV
mf1PW1UYx4tG46KLWYwxJgKL7ya+oFFjfN2YaIxL/MGf/Ud0vxjB+YJDw9xwIcy4GI1bWJzo4guG0K1s
FUpbWzsYAUJkl5aXthZkXRsez/dkd557zrl3x1pu2pt8Qnt4+n2+H1LWjgaIqK7RHtYT2sN6QntYT2gP
6wnlIPpmwOYFxteMPxlkM9KxjYY6GzcN5Iv7GNiPHujDu4l9HXfA5aH25N4tlI0/R5fyr7PjN66AJcvL
y+x29a9cLsfzxX3Yjx7og14mAq2pD2+isrWbyHqNKPkKlSMvU3H0JQ4WRCIRisVilEwmaWJigmZmZmh+
fp4ymQwvsba2RsVikcrlMm1sbHBwG2f4HmYWFxf5Y/DYyclJnoVM5Nu7sBf70aO8sJvOdW6FRJvY11Ee
sIGjuR9aiM6/SqUxFvRbm4NKBPAYGU8BaSd6oE/u5KMQ6Bf7OsoDNpBbP72DKMbKh19UwIJKBOQMTwFh
1gZ91kM7IVAQ+zrKAzZAxTO76NLZXfyrTMUCUoangDBrY/dBP7HvlRs2XGBkpysVC0gZngLCrIyRwEX2
FHKjUgE5w0tAnJUxEwg+70rFAlKGp4AwK2MmMPysKxULSBmeAsKsjJnA0NOuBLuaaSx86r8LCBluAtHI
WQrua3LMypgJ/PqUK/Heeyn84wFjAVwoLFMqlRSB0Z97eL5ur42ZwC9PupI+/ggNH2Q/idFTxgJulyiQ
iJ6h4MFneL5ur42ZwE+Pe3L+i/tpuLuFIoM9lIqPeArgKQRwG2f4Hmbsp9BUaoxiQ700vL+F5+r2iZgJ
nHzsqmSOPUTxQ3fT6Y+btU8RU/B45CBPt0fGSGD9+5aaxUzgu4drFjOBbx+sWcwE+h+oWcwEjt1Xs5gJ
fHOPK+kjd9HvB7ZTqKtJ+69KpSAPucjX7bUxEvj7qzu1TH7WTCM9T1Dm3Am6WLDYePUu5CEX+dij2w/M
BL7crrBwuJnCfTuotJ5lY8RflPL5PGWz2f8NcpCHC/nhw61k9TEJTQ8zgSNNCvH9jTSfOM5fVfFKurKy
UnWQi/wLyRMU627U9jAT+PwOheBHjZS+MEuFQoGWlpY2DeRnrDm+T9fDTKDvdgX8ouG9Dt7D4OtmYedj
n66HmUDvbQoITKfTHMuyKBQKVR07H3ABTQ8jgbVDtyogEMX9Avt0PcwEem5RQCDe/voFF9D0MBP4dJsC
Aufm5nyDC2h6mAl036yAwNnZWd/gApoeZgKfbFVA4PT0NGdqaooGBwerjp0PuICmh5lA140KCERxv+AC
mh5mAvu2KCAQ/4H3Cy6g6WEm0HmDAgJTqZRvcAFNDyOB1Q+uV0Ag/oziF9in62EikPvrveto9X0nCEwk
Epx4PE4DAwNVx84HXEDqgF6s31U/H+hPv3MNre691gECUdwvuIDUAb3QT+zrKA/YQNsfewKU72AS7/4L
AqPRqG9wAWE/+qAX+ol9HeUBGwDtibcCtPB2A+XbG2i1o4EHjo+P+wYXYHuxHz3QB73QT+zruAMuC4BW
xlGGxdj0z4dlhM+LsR890Id3E/s67tQj2sP6gQL/AOmff2gdyzkRAAAAAElFTkSuQmCC
</value>
</data>
<data name="btLayout.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -530,6 +536,31 @@
I2gMEmRyc3OTQi3x8PBoJJ6he3ahnt8IGoME+Tk4OMDd3V0jvlevXrriGbMQo6jnN4LGeCNqDgfBK8GB
8B8ibJN/iVm0GloZu1DPbwSNoRLmT2whiojlhCOhvq+gJ8oW1PMbQdf5NqHrfJvQdb49QPwXRx18RWhL
CIsAAAAASUVORK5CYII=
</value>
</data>
<data name="btSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAABJpJREFUaEPV
mf1PW1UYx4tG46KLWYwxJgKL7ya+oFFjfN2YaIxL/MGf/Ud0vxjB+YJDw9xwIcy4GI1bWJzo4guG0K1s
FUpbWzsYAUJkl5aXthZkXRsez/dkd557zrl3x1pu2pt8Qnt4+n2+H1LWjgaIqK7RHtYT2sN6QntYT2gP
6wnlIPpmwOYFxteMPxlkM9KxjYY6GzcN5Iv7GNiPHujDu4l9HXfA5aH25N4tlI0/R5fyr7PjN66AJcvL
y+x29a9cLsfzxX3Yjx7og14mAq2pD2+isrWbyHqNKPkKlSMvU3H0JQ4WRCIRisVilEwmaWJigmZmZmh+
fp4ymQwvsba2RsVikcrlMm1sbHBwG2f4HmYWFxf5Y/DYyclJnoVM5Nu7sBf70aO8sJvOdW6FRJvY11Ee
sIGjuR9aiM6/SqUxFvRbm4NKBPAYGU8BaSd6oE/u5KMQ6Bf7OsoDNpBbP72DKMbKh19UwIJKBOQMTwFh
1gZ91kM7IVAQ+zrKAzZAxTO76NLZXfyrTMUCUoangDBrY/dBP7HvlRs2XGBkpysVC0gZngLCrIyRwEX2
FHKjUgE5w0tAnJUxEwg+70rFAlKGp4AwK2MmMPysKxULSBmeAsKsjJnA0NOuBLuaaSx86r8LCBluAtHI
WQrua3LMypgJ/PqUK/Heeyn84wFjAVwoLFMqlRSB0Z97eL5ur42ZwC9PupI+/ggNH2Q/idFTxgJulyiQ
iJ6h4MFneL5ur42ZwE+Pe3L+i/tpuLuFIoM9lIqPeArgKQRwG2f4Hmbsp9BUaoxiQ700vL+F5+r2iZgJ
nHzsqmSOPUTxQ3fT6Y+btU8RU/B45CBPt0fGSGD9+5aaxUzgu4drFjOBbx+sWcwE+h+oWcwEjt1Xs5gJ
fHOPK+kjd9HvB7ZTqKtJ+69KpSAPucjX7bUxEvj7qzu1TH7WTCM9T1Dm3Am6WLDYePUu5CEX+dij2w/M
BL7crrBwuJnCfTuotJ5lY8RflPL5PGWz2f8NcpCHC/nhw61k9TEJTQ8zgSNNCvH9jTSfOM5fVfFKurKy
UnWQi/wLyRMU627U9jAT+PwOheBHjZS+MEuFQoGWlpY2DeRnrDm+T9fDTKDvdgX8ouG9Dt7D4OtmYedj
n66HmUDvbQoITKfTHMuyKBQKVR07H3ABTQ8jgbVDtyogEMX9Avt0PcwEem5RQCDe/voFF9D0MBP4dJsC
Aufm5nyDC2h6mAl036yAwNnZWd/gApoeZgKfbFVA4PT0NGdqaooGBwerjp0PuICmh5lA140KCERxv+AC
mh5mAvu2KCAQ/4H3Cy6g6WEm0HmDAgJTqZRvcAFNDyOB1Q+uV0Ag/oziF9in62EikPvrveto9X0nCEwk
Epx4PE4DAwNVx84HXEDqgF6s31U/H+hPv3MNre691gECUdwvuIDUAb3QT+zrKA/YQNsfewKU72AS7/4L
AqPRqG9wAWE/+qAX+ol9HeUBGwDtibcCtPB2A+XbG2i1o4EHjo+P+wYXYHuxHz3QB73QT+zruAMuC4BW
xlGGxdj0z4dlhM+LsR890Id3E/s67tQj2sP6gQL/AOmff2gdyzkRAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="SFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

@ -17,7 +17,7 @@ namespace SCJMapper_V2.Layout
this.Clear( );
if ( !Directory.Exists( TheUser.LayoutsDir ) ) return;
var jsons = Directory.EnumerateFiles( TheUser.LayoutsDir, "*.json" );
var jsons = Directory.EnumerateFiles( TheUser.LayoutsDir, "*.json", SearchOption.TopDirectoryOnly );
foreach ( var f in jsons ) {
var devLayout = new DeviceLayout {
Filename = f,
@ -29,6 +29,24 @@ namespace SCJMapper_V2.Layout
}
}
/// <summary>
/// Collect all known devices (key is GUID), value is Name
/// </summary>
/// <returns>Dict. of all known devices</returns>
public List<Device.DeviceDescriptor> Devices()
{
var ret = new List<Device.DeviceDescriptor>( );
foreach ( var dlayout in this ) {
var devs = dlayout.DeviceController.Devices( );
foreach ( var dev in devs ) {
if ( !ret.Exists( x => x.DevGuid == dev.DevGuid ) ) {
ret.Add( dev );
}
}
}
return ret;
}
}
}

@ -1,5 +1,5 @@
SC Joystick Mapper V 2.45 - Build 80 BETA
(c) Cassini, StandardToaster - 07-Mar-2020
(c) Cassini, StandardToaster - 09-Mar-2020
Contains 14 files + graphics:
@ -50,6 +50,7 @@ Changelog:
V 2.45 - BETA Build 80
- add Some more Layout files for devices
- update Layout to work with dual Joysticks of the same type and Gamepads
- fix for Invert mod writing to XML (#90)
- fix for some Layout files and general fixes in the layout part
V 2.44 - BETA Build 79
- added Input device layout dialog and some layouts for the most common device controllers

@ -573,6 +573,18 @@ namespace SCJMapper_V2.Translation {
}
}
/// <summary>
/// Looks up a localized string similar to Select an entry in the list and then click above to assign colors.
///
///Note:
///White background is treated as Transparent while drawing items to the image..
/// </summary>
public static string lblLayoutNote {
get {
return ResourceManager.GetString("lblLayoutNote", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Loading data....
/// </summary>
@ -916,6 +928,15 @@ namespace SCJMapper_V2.Translation {
}
}
/// <summary>
/// Looks up a localized string similar to Show Layout Dialog....
/// </summary>
public static string meShowLayoutDialog {
get {
return ResourceManager.GetString("meShowLayoutDialog", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Show Options Dialog....
/// </summary>

@ -774,4 +774,15 @@ benutzen sie Abbrechen um die Arbeit erst zu speichern.</value>
<value>Ja</value>
<comment>0-General</comment>
</data>
<data name="meShowLayoutDialog" xml:space="preserve">
<value>Geräte Layout...</value>
<comment>1-Main</comment>
</data>
<data name="lblLayoutNote" xml:space="preserve">
<value>Wählen Sie einen Eintrag in der Liste aus und klicken Sie oben Farben zuweisen.
Hinweis:
Weißer Hintergrund wird beim Zeichnen von Elementen auf das Bild als transparent behandelt.</value>
<comment>9-Layout</comment>
</data>
</root>

@ -774,4 +774,15 @@ Annulez maintenant si vous voulez d'abord enregistrer votre travail.</value>
<value>Oui</value>
<comment>0-General</comment>
</data>
<data name="meShowLayoutDialog" xml:space="preserve">
<value>Disposition de l'appareil...</value>
<comment>1-Main</comment>
</data>
<data name="lblLayoutNote" xml:space="preserve">
<value>Sélectionnez une entrée dans la liste puis cliquez dessus pour attribuer des couleurs.
Remarque:
Le fond blanc est traité comme transparent tout en dessinant des éléments sur l'image.</value>
<comment>9-Layout</comment>
</data>
</root>

@ -774,4 +774,15 @@ Cancel now if you want to save your work first.</value>
<value>Yes</value>
<comment>0-General</comment>
</data>
<data name="lblLayoutNote" xml:space="preserve">
<value>Select an entry in the list and then click above to assign colors.
Note:
White background is treated as Transparent while drawing items to the image.</value>
<comment>9-Layout</comment>
</data>
<data name="meShowLayoutDialog" xml:space="preserve">
<value>Show Layout Dialog...</value>
<comment>1-Main</comment>
</data>
</root>

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 640 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 KiB

@ -1,32 +1,33 @@
{
"MapName" : "Elecom JC-U3613M (X-Input)",
"MapImage" : "gp-jcu3613m.jpg",
"MapName" : "XPad Elecom JC-U3613M (X-Input)",
"MapImage" : "gpad-jc-u3613m.jpg",
"InputDevices" :[
{
"InputType": "G1",
"DeviceName": "Elecom JC-U3613M",
"DeviceProdGuid": ["{028E045E-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input":"x", "Type": "Digital", "X":2625, "Y":1178, "Width":1192, "Height":54, "Cmt": "X"},
{ "Input":"a", "Type": "Digital", "X":2625, "Y":1083, "Width":1192, "Height":54, "Cmt": "A"},
{ "Input":"b", "Type": "Digital", "X":2625, "Y":988, "Width":1192, "Height":54, "Cmt": "B"},
{ "Input":"y", "Type": "Digital", "X":2625, "Y":894, "Width":1192, "Height":54, "Cmt": "Y"},
{ "Input":"shoulderl", "Type": "Digital", "X":74, "Y":510, "Width":1392, "Height":108, "Cmt": "Left bumper - shoulderl"},
{ "Input":"shoulderr", "Type": "Digital", "X":2368, "Y":510, "Width":1442, "Height":108, "Cmt": "Right bumper - shoulderr"},
{ "Input":"triggerl_btn", "Type": "Digital", "X":74, "Y":406, "Width":1392, "Height":54, "Cmt": "Left trigger - triggerl_btn"},
{ "Input":"triggerr_btn", "Type": "Digital", "X":2368, "Y":406, "Width":1442, "Height":54, "Cmt": "Right trigger - triggerr_btn"},
{ "Input":"back", "Type": "Digital", "X":74, "Y":706, "Width":1192, "Height":54, "Cmt": "Back"},
{ "Input":"start", "Type": "Digital", "X":2625, "Y":706, "Width":1192, "Height":54, "Cmt": "Start"},
{ "Input":"thumbl", "Type": "Digital", "X":134, "Y":1542, "Width":1032, "Height":108, "Cmt": "Left stick button thumbl"},
{ "Input":"thumbr", "Type": "Digital", "X":2765, "Y":1542, "Width":1052, "Height":108, "Cmt": "Right stick button - thumbr"},
{ "Input":"dpad_up", "Type": "Digital", "X":134, "Y":864, "Width":1032, "Height":108, "Cmt": "dpad_up"},
{ "Input":"dpad_right", "Type": "Digital", "X":134, "Y":974, "Width":1032, "Height":108, "Cmt": "dpad_right"},
{ "Input":"dpad_down", "Type": "Digital", "X":134, "Y":1084, "Width":1032, "Height":108, "Cmt": "dpad_down"},
{ "Input":"dpad_left", "Type": "Digital", "X":134, "Y":1194, "Width":1032, "Height":108, "Cmt": "dpad_left"},
{ "Input":"thumblx", "Type": "Analogue", "X":2765, "Y":1322, "Width":1052, "Height":108, "Cmt": "thumbry"},
{ "Input":"thumbly", "Type": "Analogue", "X":2765, "Y":1432, "Width":1052, "Height":108, "Cmt": "thumbrx"},
{ "Input":"thumbrx", "Type": "Analogue", "X":134, "Y":1322, "Width":1032, "Height":108, "Cmt": "thumbly"},
{ "Input":"thumbry", "Type": "Analogue", "X":134, "Y":1432, "Width":1032, "Height":108, "Cmt": "thumblx"} ]
{ "Input":"x", "Type": "Digital", "X":2586, "Y":1254, "Width":770, "Height":108, "Cmt": "X"},
{ "Input":"a", "Type": "Digital", "X":2586, "Y":1132, "Width":770, "Height":108, "Cmt": "A"},
{ "Input":"b", "Type": "Digital", "X":2586, "Y":1010, "Width":770, "Height":108, "Cmt": "B"},
{ "Input":"y", "Type": "Digital", "X":2586, "Y":888, "Width":770, "Height":108, "Cmt": "Y"},
{ "Input":"shoulderl", "Type": "Digital", "X":784, "Y":632, "Width":770, "Height":108, "Cmt": "Left bumper - shoulderl"},
{ "Input":"shoulderr", "Type": "Digital", "X":2342, "Y":630, "Width":770, "Height":108, "Cmt": "Right bumper - shoulderr"},
{ "Input":"triggerl_btn", "Type": "Digital", "X":1049, "Y":492, "Width":770, "Height":108, "Cmt": "Left trigger - triggerl_btn"},
{ "Input":"triggerr_btn", "Type": "Digital", "X":2045, "Y":492, "Width":770, "Height":108, "Cmt": "Right trigger - triggerr_btn"},
{ "Input":"back", "Type": "Digital", "X":343, "Y":806, "Width":1000, "Height":54, "Cmt": "Back"},
{ "Input":"start", "Type": "Digital", "X":2431, "Y":806, "Width":1000, "Height":54, "Cmt": "Start"},
{ "Input":"thumbl", "Type": "Digital", "X":232, "Y":1035, "Width":1000, "Height":54, "Cmt": "Left stick button thumbl"},
{ "Input":"thumbr", "Type": "Digital", "X":2675, "Y":1567, "Width":1000, "Height":54, "Cmt": "Right stick button - thumbr"},
{ "Input":"dpad_up", "Type": "Digital", "X":274, "Y":1212, "Width":1000, "Height":54, "Cmt": "dpad_up"},
{ "Input":"dpad_right", "Type": "Digital", "X":274, "Y":1262, "Width":1000, "Height":54, "Cmt": "dpad_right"},
{ "Input":"dpad_down", "Type": "Digital", "X":274, "Y":1315, "Width":1000, "Height":54, "Cmt": "dpad_down"},
{ "Input":"dpad_left", "Type": "Digital", "X":274, "Y":1366, "Width":1000, "Height":54, "Cmt": "dpad_left"},
{ "Input":"thumbry", "Type": "Analogue", "X":2675, "Y":1465, "Width":1000, "Height":54, "Cmt": "thumbry"},
{ "Input":"thumbrx", "Type": "Analogue", "X":2675, "Y":1515, "Width":1000, "Height":54, "Cmt": "thumbrx"},
{ "Input":"thumbly", "Type": "Analogue", "X":232, "Y":932, "Width":1000, "Height":54, "Cmt": "thumbly"},
{ "Input":"thumblx", "Type": "Analogue", "X":232, "Y":984, "Width":1000, "Height":54, "Cmt": "thumblx"}
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

@ -1,32 +1,33 @@
{
"MapName" : "XPad Logitech F710",
"MapImage" : "f710.jpg",
"MapImage" : "gpad-logi-f710.jpg",
"InputDevices" :[
{
"InputType": "G1",
"DeviceName": "Logitech F710",
"DeviceProdGuid": ["{028E045E-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input":"x", "Type": "Digital", "X":2625, "Y":1178, "Width":1192, "Height":54, "Cmt": "X"},
{ "Input":"a", "Type": "Digital", "X":2625, "Y":1083, "Width":1192, "Height":54, "Cmt": "A"},
{ "Input":"b", "Type": "Digital", "X":2625, "Y":988, "Width":1192, "Height":54, "Cmt": "B"},
{ "Input":"y", "Type": "Digital", "X":2625, "Y":894, "Width":1192, "Height":54, "Cmt": "Y"},
{ "Input":"shoulderl", "Type": "Digital", "X":74, "Y":510, "Width":1392, "Height":108, "Cmt": "Left bumper - shoulderl"},
{ "Input":"shoulderr", "Type": "Digital", "X":2368, "Y":510, "Width":1442, "Height":108, "Cmt": "Right bumper - shoulderr"},
{ "Input":"triggerl_btn", "Type": "Digital", "X":74, "Y":406, "Width":1392, "Height":54, "Cmt": "Left trigger - triggerl_btn"},
{ "Input":"triggerr_btn", "Type": "Digital", "X":2368, "Y":406, "Width":1442, "Height":54, "Cmt": "Right trigger - triggerr_btn"},
{ "Input":"back", "Type": "Digital", "X":74, "Y":706, "Width":1192, "Height":54, "Cmt": "Back"},
{ "Input":"start", "Type": "Digital", "X":2625, "Y":706, "Width":1192, "Height":54, "Cmt": "Start"},
{ "Input":"thumbl", "Type": "Digital", "X":134, "Y":1542, "Width":1032, "Height":108, "Cmt": "Left stick button thumbl"},
{ "Input":"thumbr", "Type": "Digital", "X":2765, "Y":1542, "Width":1052, "Height":108, "Cmt": "Right stick button - thumbr"},
{ "Input":"dpad_up", "Type": "Digital", "X":134, "Y":864, "Width":1032, "Height":108, "Cmt": "dpad_up"},
{ "Input":"dpad_right", "Type": "Digital", "X":134, "Y":974, "Width":1032, "Height":108, "Cmt": "dpad_right"},
{ "Input":"dpad_down", "Type": "Digital", "X":134, "Y":1084, "Width":1032, "Height":108, "Cmt": "dpad_down"},
{ "Input":"dpad_left", "Type": "Digital", "X":134, "Y":1194, "Width":1032, "Height":108, "Cmt": "dpad_left"},
{ "Input":"thumbry", "Type": "Analogue", "X":2765, "Y":1322, "Width":1052, "Height":108, "Cmt": "thumbry"},
{ "Input":"thumbrx", "Type": "Analogue", "X":2765, "Y":1432, "Width":1052, "Height":108, "Cmt": "thumbrx"},
{ "Input":"thumbly", "Type": "Analogue", "X":134, "Y":1322, "Width":1032, "Height":108, "Cmt": "thumbly"},
{ "Input":"thumblx", "Type": "Analogue", "X":134, "Y":1432, "Width":1032, "Height":108, "Cmt": "thumblx"} ]
{ "Input":"x", "Type": "Digital", "X":2624, "Y":1299, "Width":770, "Height":108, "Cmt": "X"},
{ "Input":"a", "Type": "Digital", "X":2624, "Y":1169, "Width":770, "Height":108, "Cmt": "A"},
{ "Input":"b", "Type": "Digital", "X":2624, "Y":1041, "Width":770, "Height":108, "Cmt": "B"},
{ "Input":"y", "Type": "Digital", "X":2624, "Y":913, "Width":770, "Height":108, "Cmt": "Y"},
{ "Input":"shoulderl", "Type": "Digital", "X":784, "Y":632, "Width":770, "Height":108, "Cmt": "Left bumper - shoulderl"},
{ "Input":"shoulderr", "Type": "Digital", "X":2342, "Y":630, "Width":770, "Height":108, "Cmt": "Right bumper - shoulderr"},
{ "Input":"triggerl_btn", "Type": "Digital", "X":1051, "Y":494, "Width":770, "Height":108, "Cmt": "Left trigger - triggerl_btn"},
{ "Input":"triggerr_btn", "Type": "Digital", "X":2051, "Y":492, "Width":770, "Height":108, "Cmt": "Right trigger - triggerr_btn"},
{ "Input":"back", "Type": "Digital", "X":343, "Y":806, "Width":1000, "Height":54, "Cmt": "Back"},
{ "Input":"start", "Type": "Digital", "X":2537, "Y":820, "Width":1000, "Height":54, "Cmt": "Start"},
{ "Input":"thumbl", "Type": "Digital", "X":208, "Y":1517, "Width":1000, "Height":54, "Cmt": "Left stick button thumbl"},
{ "Input":"thumbr", "Type": "Digital", "X":2655, "Y":1619, "Width":1000, "Height":54, "Cmt": "Right stick button - thumbr"},
{ "Input":"dpad_up", "Type": "Digital", "X":231, "Y":947, "Width":1000, "Height":54, "Cmt": "dpad_up"},
{ "Input":"dpad_right", "Type": "Digital", "X":231, "Y":997, "Width":1000, "Height":54, "Cmt": "dpad_right"},
{ "Input":"dpad_down", "Type": "Digital", "X":231, "Y":1051, "Width":1000, "Height":54, "Cmt": "dpad_down"},
{ "Input":"dpad_left", "Type": "Digital", "X":231, "Y":1103, "Width":1000, "Height":54, "Cmt": "dpad_left"},
{ "Input":"thumbry", "Type": "Analogue", "X":2655, "Y":1517, "Width":1000, "Height":54, "Cmt": "thumbry"},
{ "Input":"thumbrx", "Type": "Analogue", "X":2655, "Y":1569, "Width":1000, "Height":54, "Cmt": "thumbrx"},
{ "Input":"thumbly", "Type": "Analogue", "X":208, "Y":1415, "Width":1000, "Height":54, "Cmt": "thumbly"},
{ "Input":"thumblx", "Type": "Analogue", "X":208, "Y":1465, "Width":1000, "Height":54, "Cmt": "thumblx"}
]
}
]
}

@ -1,10 +1,10 @@
{
"MapName" : "Saitek ProFlight Combat Rudder Pedals",
"MapName" : "Saitek ProFlight Rudder Pedals",
"MapImage" : "proflightpedals.jpg",
"InputDevices" :[
{
"InputType": "J",
"DeviceName": "Saitek ProFlight Combat Rudder Pedals",
"DeviceName": "Saitek ProFlight Rudder Pedals",
"DeviceProdGuid": ["{076306A3-0000-0000-0000-504944564944}",
"{076506A3-0000-0000-0000-504944564944}"],
"Controls": [

@ -4,7 +4,7 @@
"InputDevices" :[
{
"InputType": "J",
"DeviceName": "T16000M",
"DeviceName": "T.16000M Joystick ",
"DeviceProdGuid": ["{B10A044F-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input": "button1", "Type": "Digital", "X":2124, "Y":624, "Width":1092, "Height":54, "Cmt": "Primary trigger" },

@ -4,7 +4,7 @@
"InputDevices" :[
{
"InputType": "J1",
"DeviceName": "T16000M-left",
"DeviceName": "T.16000M Joystick - left",
"DeviceProdGuid": ["{B10A044F-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input": "button1", "Type": "Digital", "X":1299, "Y":792, "Width":660, "Height":108, "Cmt": "Primary trigger" },
@ -35,7 +35,7 @@
},
{
"InputType": "J2",
"DeviceName": "T16000M-right",
"DeviceName": "T.16000M Joystick - right",
"DeviceProdGuid": ["{B10A044F-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input": "button1", "Type": "Digital", "X":1997, "Y":792, "Width":660, "Height":108, "Cmt": "Primary trigger" },

@ -4,7 +4,7 @@
"InputDevices" :[
{
"InputType": "J2",
"DeviceName": "T16000M-left",
"DeviceName": "T.16000M Joystick - left",
"DeviceProdGuid": ["{B10A044F-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input": "button1", "Type": "Digital", "X":1299, "Y":792, "Width":660, "Height":108, "Cmt": "Primary trigger" },
@ -35,7 +35,7 @@
},
{
"InputType": "J1",
"DeviceName": "T16000M-right",
"DeviceName": "T.16000M Joystick -right",
"DeviceProdGuid": ["{B10A044F-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input": "button1", "Type": "Digital", "X":1997, "Y":792, "Width":660, "Height":108, "Cmt": "Primary trigger" },

@ -4,7 +4,7 @@
"InputDevices" :[
{
"InputType": "J",
"DeviceName": "T16000M Stick",
"DeviceName": "T.16000M Joystick ",
"DeviceProdGuid": ["{B10A044F-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input": "button1", "Type": "Digital", "X":1804, "Y":844, "Width":642, "Height":54, "Cmt": "Primary trigger" },

Binary file not shown.

Before

Width:  |  Height:  |  Size: 455 KiB

After

Width:  |  Height:  |  Size: 455 KiB

@ -0,0 +1,74 @@
{
"MapName" : "VPC WarBRD Delta DUO (left - right)",
"MapImage" : "vpc-wb-delta-left-right.jpg",
"InputDevices" :[
{
"InputType": "J1",
"DeviceName": "VPC WarBRD Delta left",
"DeviceProdGuid": ["{204203EB-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input": "button1", "Type": "Digital", "X":1200, "Y":1282, "Width":770, "Height":54, "Cmt":"Trigger first stage"},
{ "Input": "button2", "Type": "Digital", "X":1200, "Y":1330, "Width":770, "Height":54, "Cmt":"Trigger second stage"},
{ "Input": "button3", "Type": "Digital", "X":1092, "Y":1488, "Width":770, "Height":54, "Cmt":"Trigger button"},
{ "Input": "button4", "Type": "Digital", "X":82, "Y":1319, "Width":770, "Height":54, "Cmt":"Wheel up"},
{ "Input": "button5", "Type": "Digital", "X":82, "Y":1369, "Width":770, "Height":54, "Cmt":"Wheel down"},
{ "Input": "button6", "Type": "Digital", "X":82, "Y":1420, "Width":770, "Height":54, "Cmt":"Wheel push"},
{ "Input": "button7", "Type": "Digital", "X":77, "Y":1131, "Width":770, "Height":54, "Cmt":"Mini-joystick push"},
{ "Input": "button8", "Type": "Digital", "X":1319, "Y":651, "Width":770, "Height":54, "Cmt":"4-way hat right up"},
{ "Input": "button9", "Type": "Digital", "X":1319, "Y":704, "Width":770, "Height":54, "Cmt":"4-way hat right righ"},
{ "Input": "button10", "Type": "Digital", "X":1319, "Y":756, "Width":770, "Height":54, "Cmt":"4-way hat right down"},
{ "Input": "button11", "Type": "Digital", "X":1319, "Y":809, "Width":770, "Height":54, "Cmt":"4-way hat right left"},
{ "Input": "button12", "Type": "Digital", "X":1319, "Y":860, "Width":770, "Height":54, "Cmt":"4-way hat right push?"},
{ "Input": "button13", "Type": "Digital", "X":100, "Y":434, "Width":770, "Height":54, "Cmt":"4-way hat left up"},
{ "Input": "button14", "Type": "Digital", "X":100, "Y":487, "Width":770, "Height":54, "Cmt":"4-way hat left righ"},
{ "Input": "button15", "Type": "Digital", "X":100, "Y":540, "Width":770, "Height":54, "Cmt":"4-way hat left down"},
{ "Input": "button16", "Type": "Digital", "X":100, "Y":593, "Width":770, "Height":54, "Cmt":"4-way hat left left"},
{ "Input": "button17", "Type": "Digital", "X":100, "Y":645, "Width":770, "Height":54, "Cmt":"4-way hat left push?"},
{ "Input": "button18", "Type": "Digital", "X":970, "Y":317, "Width":770, "Height":54, "Cmt":"8-way hat LED up"},
{ "Input": "button19", "Type": "Digital", "X":970, "Y":370, "Width":770, "Height":54, "Cmt":"8-way hat LED righ"},
{ "Input": "button20", "Type": "Digital", "X":970, "Y":423, "Width":770, "Height":54, "Cmt":"8-way hat LED down"},
{ "Input": "button21", "Type": "Digital", "X":970, "Y":476, "Width":770, "Height":54, "Cmt":"8-way hat LED left"},
{ "Input": "button22", "Type": "Digital", "X":970, "Y":528, "Width":770, "Height":54, "Cmt":"8-way hat LED push?"},
{ "Input": "x", "Type": "Analogue", "X":1150, "Y":1917, "Width":770, "Height":54, "Cmt":"Joystick axis X"},
{ "Input": "y", "Type": "Analogue", "X":1150, "Y":1867, "Width":770, "Height":54, "Cmt":"Joystick axis Y"},
{ "Input": "z", "Type": "Analogue", "X":1150, "Y":1967, "Width":770, "Height":54, "Cmt":"Joystick axis Rot"},
{ "Input": "rotx", "Type": "Analogue", "X":77, "Y":1081, "Width":770, "Height":54, "Cmt":"Mini-joysticks axis X"},
{ "Input": "roty", "Type": "Analogue", "X":77, "Y":1029, "Width":770, "Height":54, "Cmt":"Mini-joysticks axis Y"}
]
},
{
"InputType": "J1",
"DeviceName": "VPC WarBRD Delta right",
"DeviceProdGuid": ["{204403EB-0000-0000-0000-504944564944}"],
"Controls": [
{ "Input": "button1", "Type": "Digital", "X":2035, "Y":1282, "Width":770, "Height":54, "Cmt":"Trigger first stage"},
{ "Input": "button2", "Type": "Digital", "X":2035, "Y":1330, "Width":770, "Height":54, "Cmt":"Trigger second stage"},
{ "Input": "button3", "Type": "Digital", "X":2102, "Y":1488, "Width":770, "Height":54, "Cmt":"Trigger button"},
{ "Input": "button4", "Type": "Digital", "X":3178, "Y":1375, "Width":660, "Height":54, "Cmt":"Wheel up"},
{ "Input": "button5", "Type": "Digital", "X":3178, "Y":1425, "Width":660, "Height":54, "Cmt":"Wheel down"},
{ "Input": "button6", "Type": "Digital", "X":3178, "Y":1476, "Width":660, "Height":54, "Cmt":"Wheel push"},
{ "Input": "button7", "Type": "Digital", "X":3178, "Y":1216, "Width":660, "Height":54, "Cmt":"Mini-joystick push"},
{ "Input": "button8", "Type": "Digital", "X":3069, "Y":593, "Width":770, "Height":54, "Cmt":"4-way hat right up"},
{ "Input": "button9", "Type": "Digital", "X":3069, "Y":648, "Width":770, "Height":54, "Cmt":"4-way hat right righ"},
{ "Input": "button10", "Type": "Digital", "X":3069, "Y":700, "Width":770, "Height":54, "Cmt":"4-way hat right down"},
{ "Input": "button11", "Type": "Digital", "X":3069, "Y":753, "Width":770, "Height":54, "Cmt":"4-way hat right left"},
{ "Input": "button12", "Type": "Digital", "X":3069, "Y":804, "Width":770, "Height":54, "Cmt":"4-way hat right push?"},
{ "Input": "button13", "Type": "Digital", "X":1859, "Y":939, "Width":770, "Height":54, "Cmt":"4-way hat left up"},
{ "Input": "button14", "Type": "Digital", "X":1859, "Y":992, "Width":770, "Height":54, "Cmt":"4-way hat left righ"},
{ "Input": "button15", "Type": "Digital", "X":1859, "Y":1045, "Width":770, "Height":54, "Cmt":"4-way hat left down"},
{ "Input": "button16", "Type": "Digital", "X":1859, "Y":1098, "Width":770, "Height":54, "Cmt":"4-way hat left left"},
{ "Input": "button17", "Type": "Digital", "X":1859, "Y":1150, "Width":770, "Height":54, "Cmt":"4-way hat left push?"},
{ "Input": "button18", "Type": "Digital", "X":2276, "Y":288, "Width":770, "Height":54, "Cmt":"8-way hat LED up"},
{ "Input": "button19", "Type": "Digital", "X":2276, "Y":341, "Width":770, "Height":54, "Cmt":"8-way hat LED righ"},
{ "Input": "button20", "Type": "Digital", "X":2276, "Y":394, "Width":770, "Height":54, "Cmt":"8-way hat LED down"},
{ "Input": "button21", "Type": "Digital", "X":2276, "Y":446, "Width":770, "Height":54, "Cmt":"8-way hat LED left"},
{ "Input": "button22", "Type": "Digital", "X":2276, "Y":497, "Width":770, "Height":54, "Cmt":"8-way hat LED push?"},
{ "Input": "x", "Type": "Analogue", "X":2080, "Y":1917, "Width":770, "Height":54, "Cmt":"Joystick axis X"},
{ "Input": "y", "Type": "Analogue", "X":2080, "Y":1867, "Width":770, "Height":54, "Cmt":"Joystick axis Y"},
{ "Input": "z", "Type": "Analogue", "X":2080, "Y":1969, "Width":770, "Height":54, "Cmt":"Joystick axis Rot"},
{ "Input": "rotx", "Type": "Analogue", "X":3178, "Y":1164, "Width":660, "Height":54, "Cmt":"Mini-joysticks axis X"},
{ "Input": "roty", "Type": "Analogue", "X":3178, "Y":1115, "Width":660, "Height":54, "Cmt":"Mini-joysticks axis Y"}
]
}
]
}
Loading…
Cancel
Save