Added back multiple configs for multiple controller

...Not sure why I removed that in the first place

Signed-off-by: jays2kings <jays2kings@gmail.com>
This commit is contained in:
jays2kings 2014-04-29 04:01:13 -04:00
parent 044a38f1a9
commit efdaec8748
2 changed files with 139 additions and 143 deletions

View File

@ -91,83 +91,83 @@ namespace DS4Control
public static DS4Color loadColor(int device)
{
DS4Color color = new DS4Color();
color.red = m_Config.m_Leds[0];
color.green = m_Config.m_Leds[1];
color.blue = m_Config.m_Leds[2];
color.red = m_Config.m_Leds[device][0];
color.green = m_Config.m_Leds[device][1];
color.blue = m_Config.m_Leds[device][2];
return color;
}
public static void saveColor(int device, byte red, byte green, byte blue)
{
m_Config.m_Leds[0] = red;
m_Config.m_Leds[1] = green;
m_Config.m_Leds[2] = blue;
m_Config.m_Leds[device][0] = red;
m_Config.m_Leds[device][1] = green;
m_Config.m_Leds[device][2] = blue;
}
public static byte loadRumbleBoost(int device)
{
return m_Config.m_Rumble;
return m_Config.m_Rumble[device];
}
public static void saveRumbleBoost(int device, byte boost)
{
m_Config.m_Rumble = boost;
m_Config.m_Rumble[device] = boost;
}
public static bool getRumbleSwap(int device)
{
return m_Config.rumbleSwap;
return m_Config.rumbleSwap[device];
}
public static void setRumbleSwap(int device, bool swap)
{
m_Config.rumbleSwap = swap;
m_Config.rumbleSwap[device] = swap;
}
public static bool getFlushHIDQueue(int device)
{
return m_Config.flushHIDQueue;
return m_Config.flushHIDQueue[device];
}
public static void setFlushHIDQueue(int device, bool setting)
{
m_Config.flushHIDQueue = setting;
m_Config.flushHIDQueue[device] = setting;
}
public static int getIdleDisconnectTimeout(int device)
{
return m_Config.idleDisconnectTimeout;
return m_Config.idleDisconnectTimeout[device];
}
public static void setIdleDisconnectTimeout(int device, int seconds)
{
m_Config.idleDisconnectTimeout = seconds;
m_Config.idleDisconnectTimeout[device] = seconds;
}
public static byte getTouchSensitivity(int device)
{
return m_Config.touchSensitivity;
return m_Config.touchSensitivity[device];
}
public static void setTouchSensitivity(int device, byte sen)
{
m_Config.touchSensitivity = sen;
m_Config.touchSensitivity[device] = sen;
}
public static void setFlashWhenLowBattery(int device, bool flash)
{
m_Config.flashLedLowBattery = flash;
m_Config.flashLedLowBattery[device] = flash;
}
public static bool getFlashWhenLowBattery(int device)
{
return m_Config.flashLedLowBattery;
return m_Config.flashLedLowBattery[device];
}
public static void setLedAsBatteryIndicator(int device, bool ledAsBattery)
{
m_Config.ledAsBattery = ledAsBattery;
m_Config.ledAsBattery[device] = ledAsBattery;
}
public static bool getLedAsBatteryIndicator(int device)
{
return m_Config.ledAsBattery;
return m_Config.ledAsBattery[device];
}
public static void setUseExclusiveMode(bool exclusive)
@ -182,64 +182,64 @@ namespace DS4Control
// New settings
public static void saveLowColor(int device, byte red, byte green, byte blue)
{
m_Config.m_LowLeds[0] = red;
m_Config.m_LowLeds[1] = green;
m_Config.m_LowLeds[2] = blue;
m_Config.m_LowLeds[device][0] = red;
m_Config.m_LowLeds[device][1] = green;
m_Config.m_LowLeds[device][2] = blue;
}
public static DS4Color loadLowColor(int device)
{
DS4Color color = new DS4Color();
color.red = m_Config.m_LowLeds[0];
color.green = m_Config.m_LowLeds[1];
color.blue = m_Config.m_LowLeds[2];
color.red = m_Config.m_LowLeds[device][0];
color.green = m_Config.m_LowLeds[device][1];
color.blue = m_Config.m_LowLeds[device][2];
return color;
}
public static void setTapSensitivity(int device, byte sen)
{
m_Config.tapSensitivity = sen;
m_Config.tapSensitivity[device] = sen;
}
public static byte getTapSensitivity(int device)
{
return m_Config.tapSensitivity;
return m_Config.tapSensitivity[device];
}
public static void setDoubleTap(int device, bool on)
{
m_Config.doubleTap = on;
m_Config.doubleTap[device] = on;
}
public static bool getDoubleTap(int device)
{
return m_Config.doubleTap;
return m_Config.doubleTap[device];
}
public static bool getTap(int device)
{
if (m_Config.tapSensitivity == 0)
if (m_Config.tapSensitivity[device] == 0)
return false;
else
return true;
}
public static void setScrollSensitivity(int device, int sen)
{
m_Config.scrollSensitivity = sen;
m_Config.scrollSensitivity[device] = sen;
}
public static int getScrollSensitivity(int device)
{
return m_Config.scrollSensitivity;
return m_Config.scrollSensitivity[device];
}
public static void setLowerRCOn(int device, bool twoFingerRC)
{
m_Config.lowerRCOn = twoFingerRC;
m_Config.lowerRCOn[device] = twoFingerRC;
}
public static bool getLowerRCOn(int device)
{
return m_Config.lowerRCOn;
return m_Config.lowerRCOn[device];
}
public static void setTouchpadJitterCompensation(int device, bool enabled)
{
m_Config.touchpadJitterCompensation = enabled;
m_Config.touchpadJitterCompensation[device] = enabled;
}
public static bool getTouchpadJitterCompensation(int device)
{
return m_Config.touchpadJitterCompensation;
return m_Config.touchpadJitterCompensation[device];
}
public static void setStartMinimized(bool startMinimized)
{
@ -268,20 +268,20 @@ namespace DS4Control
public static double getLeftTriggerMiddle(int device)
{
return m_Config.m_LeftTriggerMiddle;
return m_Config.m_LeftTriggerMiddle[device];
}
public static void setLeftTriggerMiddle(int device, double value)
{
m_Config.m_LeftTriggerMiddle = value;
m_Config.m_LeftTriggerMiddle[device] = value;
}
public static double getRightTriggerMiddle(int device)
{
return m_Config.m_RightTriggerMiddle;
return m_Config.m_RightTriggerMiddle[device];
}
public static void setRightTriggerMiddle(int device, double value)
{
m_Config.m_RightTriggerMiddle = value;
m_Config.m_RightTriggerMiddle[device] = value;
}
public static void setAProfile(int device, string filepath)
{
@ -368,26 +368,37 @@ namespace DS4Control
public class BackingStore
{
protected String m_File = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + @"\ScpControl.xml";
protected String m_Profile = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + @"\Profiles.xml";
protected XmlDocument m_Xdoc = new XmlDocument();
public Boolean touchpadJitterCompensation = true;
public Boolean lowerRCOn;
public Boolean ledAsBattery = false;
public Boolean flashLedLowBattery = false;
public double m_LeftTriggerMiddle = 0.5, m_RightTriggerMiddle = 0.5;
public String customMapPath = String.Empty, buttonModeMapPath = String.Empty;
public Boolean[] touchpadJitterCompensation = {true, true, true, true};
public Boolean[] lowerRCOn = { false, false, false, false };
public Boolean[] ledAsBattery = { false, false, false, false };
public Boolean[] flashLedLowBattery = { false, false, false, false };
public double[] m_LeftTriggerMiddle = { 0.5, 0.5, 0.5, 0.5 }, m_RightTriggerMiddle = { 0.5, 0.5, 0.5, 0.5 };
public String[] profilePath = { String.Empty, String.Empty, String.Empty, String.Empty };
public Byte m_Rumble = 100;
public Boolean rumbleSwap = false;
public Byte touchSensitivity = 100;
public Byte tapSensitivity = 0;
public int scrollSensitivity = 0;
public Byte[] m_LowLeds = new Byte[] { 0, 0, 0 };
public Byte[] m_Leds = new Byte[] {0,0,255};
public bool flushHIDQueue = true;
public int idleDisconnectTimeout = 0;
public Byte[] m_Rumble = { 100, 100, 100, 100 };
public Boolean[] rumbleSwap = { false, false, false, false };
public Byte[] touchSensitivity = { 100, 100, 100, 100 };
public Byte[] tapSensitivity = {0, 0, 0, 0};
public bool[] doubleTap = { false, false, false, false };
public int[] scrollSensitivity = { 0, 0, 0, 0 };
public Byte[][] m_LowLeds = new Byte[][]
{
new Byte[] {0,0,0},
new Byte[] {0,0,0},
new Byte[] {0,0,0},
new Byte[] {0,0,0}
};
public Byte[][] m_Leds = new Byte[][]
{
new Byte[] {0,0,255},
new Byte[] {255,0,0},
new Byte[] {0,255,0},
new Byte[] {255,0,255},
};
public bool[] flushHIDQueue = { true, true, true, true };
public int[] idleDisconnectTimeout = { 0, 0, 0, 0 };
public Boolean useExclusiveMode = false;
public Int32 formWidth = 782;
@ -397,7 +408,6 @@ namespace DS4Control
public Dictionary<DS4Controls, DS4KeyType> customMapKeyTypes = null;
public Dictionary<DS4Controls, UInt16> customMapKeys = null;
public Dictionary<DS4Controls, X360Controls> customMapButtons = null;
public bool doubleTap = false;
public BackingStore()
{
//for (int i = 0; i < 4; i++)
@ -634,58 +644,55 @@ namespace DS4Control
m_Xdoc.Load(profilePath[device]);
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/flushHIDQueue"); Boolean.TryParse(Item.InnerText, out flushHIDQueue); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/flushHIDQueue"); Boolean.TryParse(Item.InnerText, out flushHIDQueue[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/idleDisconnectTimeout"); Int32.TryParse(Item.InnerText, out idleDisconnectTimeout); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/idleDisconnectTimeout"); Int32.TryParse(Item.InnerText, out idleDisconnectTimeout[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Red"); Byte.TryParse(Item.InnerText, out m_Leds[0]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Red"); Byte.TryParse(Item.InnerText, out m_Leds[device][0]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Green"); Byte.TryParse(Item.InnerText, out m_Leds[1]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Green"); Byte.TryParse(Item.InnerText, out m_Leds[device][1]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Blue"); Byte.TryParse(Item.InnerText, out m_Leds[2]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Blue"); Byte.TryParse(Item.InnerText, out m_Leds[device][2]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RumbleBoost"); Byte.TryParse(Item.InnerText, out m_Rumble); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RumbleBoost"); Byte.TryParse(Item.InnerText, out m_Rumble[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/rumbleSwap"); Boolean.TryParse(Item.InnerText, out rumbleSwap); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/rumbleSwap"); Boolean.TryParse(Item.InnerText, out rumbleSwap[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ledAsBatteryIndicator"); Boolean.TryParse(Item.InnerText, out ledAsBattery); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ledAsBatteryIndicator"); Boolean.TryParse(Item.InnerText, out ledAsBattery[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowBatteryFlash"); Boolean.TryParse(Item.InnerText, out flashLedLowBattery); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowBatteryFlash"); Boolean.TryParse(Item.InnerText, out flashLedLowBattery[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchSensitivity"); Byte.TryParse(Item.InnerText, out touchSensitivity); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchSensitivity"); Byte.TryParse(Item.InnerText, out touchSensitivity[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowRed"); Byte.TryParse(Item.InnerText, out m_LowLeds[0]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowRed"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][0]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowGreen"); Byte.TryParse(Item.InnerText, out m_LowLeds[1]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowGreen"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][1]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowBlue"); Byte.TryParse(Item.InnerText, out m_LowLeds[2]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowBlue"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][2]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchpadJitterCompensation"); Boolean.TryParse(Item.InnerText, out touchpadJitterCompensation); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchpadJitterCompensation"); Boolean.TryParse(Item.InnerText, out touchpadJitterCompensation[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowerRCOn"); Boolean.TryParse(Item.InnerText, out lowerRCOn); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowerRCOn"); Boolean.TryParse(Item.InnerText, out lowerRCOn[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/tapSensitivity"); Byte.TryParse(Item.InnerText, out tapSensitivity); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/tapSensitivity"); Byte.TryParse(Item.InnerText, out tapSensitivity[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/doubleTap"); Boolean.TryParse(Item.InnerText, out doubleTap); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/doubleTap"); Boolean.TryParse(Item.InnerText, out doubleTap[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/scrollSensitivity"); Int32.TryParse(Item.InnerText, out scrollSensitivity); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/scrollSensitivity"); Int32.TryParse(Item.InnerText, out scrollSensitivity[device]); }
catch { missingSetting = true; }
// XXX This sucks, let's do better at removing old values that are no longer valid....
if (scrollSensitivity > 10)
scrollSensitivity = 5;
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LeftTriggerMiddle"); Double.TryParse(Item.InnerText, out m_LeftTriggerMiddle); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LeftTriggerMiddle"); Double.TryParse(Item.InnerText, out m_LeftTriggerMiddle[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RightTriggerMiddle"); Double.TryParse(Item.InnerText, out m_RightTriggerMiddle); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RightTriggerMiddle"); Double.TryParse(Item.InnerText, out m_RightTriggerMiddle[device]); }
catch { missingSetting = true; }
DS4KeyType keyType;
@ -781,69 +788,57 @@ namespace DS4Control
m_Xdoc.Load(profilePath[device]);
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/flushHIDQueue"); Boolean.TryParse(Item.InnerText, out flushHIDQueue); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/flushHIDQueue"); Boolean.TryParse(Item.InnerText, out flushHIDQueue[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/idleDisconnectTimeout"); Int32.TryParse(Item.InnerText, out idleDisconnectTimeout); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/idleDisconnectTimeout"); Int32.TryParse(Item.InnerText, out idleDisconnectTimeout[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Red"); Byte.TryParse(Item.InnerText, out m_Leds[0]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Red"); Byte.TryParse(Item.InnerText, out m_Leds[device][0]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Green"); Byte.TryParse(Item.InnerText, out m_Leds[1]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Green"); Byte.TryParse(Item.InnerText, out m_Leds[device][1]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Blue"); Byte.TryParse(Item.InnerText, out m_Leds[2]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Blue"); Byte.TryParse(Item.InnerText, out m_Leds[device][2]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RumbleBoost"); Byte.TryParse(Item.InnerText, out m_Rumble); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RumbleBoost"); Byte.TryParse(Item.InnerText, out m_Rumble[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/rumbleSwap"); Boolean.TryParse(Item.InnerText, out rumbleSwap); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/rumbleSwap"); Boolean.TryParse(Item.InnerText, out rumbleSwap[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ledAsBatteryIndicator"); Boolean.TryParse(Item.InnerText, out ledAsBattery); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ledAsBatteryIndicator"); Boolean.TryParse(Item.InnerText, out ledAsBattery[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowBatteryFlash"); Boolean.TryParse(Item.InnerText, out flashLedLowBattery); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowBatteryFlash"); Boolean.TryParse(Item.InnerText, out flashLedLowBattery[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchSensitivity"); Byte.TryParse(Item.InnerText, out touchSensitivity); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchSensitivity"); Byte.TryParse(Item.InnerText, out touchSensitivity[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowRed"); Byte.TryParse(Item.InnerText, out m_LowLeds[0]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowRed"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][0]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowGreen"); Byte.TryParse(Item.InnerText, out m_LowLeds[1]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowGreen"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][1]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowBlue"); Byte.TryParse(Item.InnerText, out m_LowLeds[2]); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowBlue"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][2]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchpadJitterCompensation"); Boolean.TryParse(Item.InnerText, out touchpadJitterCompensation); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchpadJitterCompensation"); Boolean.TryParse(Item.InnerText, out touchpadJitterCompensation[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowerRCOn"); Boolean.TryParse(Item.InnerText, out lowerRCOn); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowerRCOn"); Boolean.TryParse(Item.InnerText, out lowerRCOn[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/tapSensitivity"); Byte.TryParse(Item.InnerText, out tapSensitivity); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/tapSensitivity"); Byte.TryParse(Item.InnerText, out tapSensitivity[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/doubleTap"); Boolean.TryParse(Item.InnerText, out doubleTap); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/doubleTap"); Boolean.TryParse(Item.InnerText, out doubleTap[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/scrollSensitivity"); Int32.TryParse(Item.InnerText, out scrollSensitivity); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/scrollSensitivity"); Int32.TryParse(Item.InnerText, out scrollSensitivity[device]); }
catch { missingSetting = true; }
// XXX This sucks, let's do better at removing old values that are no longer valid....
if (scrollSensitivity > 10)
scrollSensitivity = 5;
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LeftTriggerMiddle"); Double.TryParse(Item.InnerText, out m_LeftTriggerMiddle); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LeftTriggerMiddle"); Double.TryParse(Item.InnerText, out m_LeftTriggerMiddle[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RightTriggerMiddle"); Double.TryParse(Item.InnerText, out m_RightTriggerMiddle); }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RightTriggerMiddle"); Double.TryParse(Item.InnerText, out m_RightTriggerMiddle[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/useExclusiveMode"); Boolean.TryParse(Item.InnerText, out useExclusiveMode); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/startMinimized"); Boolean.TryParse(Item.InnerText, out startMinimized); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/formWidth"); Int32.TryParse(Item.InnerText, out formWidth); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/formHeight"); Int32.TryParse(Item.InnerText, out formHeight); }
catch { missingSetting = true; }
DS4KeyType keyType;
UInt16 wvk;
XmlNode ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/Control/Button");

View File

@ -124,7 +124,7 @@ namespace ScpServer
RefreshProfiles();
for (int i = 0; i < 4; i++)
{
//Global.LoadProfile(i);
Global.LoadProfile(i);
}
Global.ControllerStatusChange += ControllerStatusChange;
ControllerStatusChanged();
@ -154,13 +154,13 @@ namespace ScpServer
if (cbs[i].Items[j] + ".xml" == filename)
{
cbs[i].SelectedIndex = j;
Profile_Changed(cbs[i], null);
((ToolStripMenuItem)shortcuts[i].DropDownItems[j]).Checked = true;
Global.setAProfile(i, cbs[i].Text);
Global.LoadProfile(i);
break;
}
cbs[i].Items.Add("+New Profile");
shortcuts[i].DropDownItems.Add("-");
shortcuts[i].DropDownItems.Add("+New Profile");
}
}
@ -253,7 +253,6 @@ namespace ScpServer
dbns[Index].Enabled = true;
protexts[Index].Enabled = true;
shortcuts[Index].Enabled = true;
Global.LoadProfile(Index);
// As above
//if (checkFirst && (Pads[Index].Checked && Index != 0))
// checkFirst = false;
@ -396,6 +395,7 @@ namespace ScpServer
if (cb.SelectedIndex < cb.Items.Count - 1)
{
for (int i = 0; i < shortcuts[tdevice].DropDownItems.Count; i++)
if (!(shortcuts[tdevice].DropDownItems[i] is ToolStripSeparator))
((ToolStripMenuItem)shortcuts[tdevice].DropDownItems[i]).Checked = false;
((ToolStripMenuItem)shortcuts[tdevice].DropDownItems[cb.SelectedIndex]).Checked = true;
Global.setAProfile(tdevice, cb.Items[cb.SelectedIndex].ToString());
@ -427,10 +427,35 @@ namespace ScpServer
{
ToolStripMenuItem tS = (ToolStripMenuItem)sender;
int tdevice = Int32.Parse(tS.Tag.ToString());
if (e.ClickedItem != tS.DropDownItems[tS.DropDownItems.Count - 1])
if (((ToolStripMenuItem)e.ClickedItem).Checked)
if (!(e.ClickedItem is ToolStripSeparator))
if (e.ClickedItem != tS.DropDownItems[tS.DropDownItems.Count - 1])
if (((ToolStripMenuItem)e.ClickedItem).Checked)
{
Options opt = OptionsDialog[tdevice] = new Options(rootHub, tdevice, e.ClickedItem.Text, this);
opt.Text = "Options for Controller " + (tdevice + 1);
opt.Icon = this.Icon;
int i = tdevice;
opt.FormClosed += delegate
{
OptionsDialog[i] = null;
Enable_Controls(i, true);
};
opt.Show();
Enable_Controls(i, false);
}
else
{
for (int i = 0; i < tS.DropDownItems.Count; i++)
((ToolStripMenuItem)tS.DropDownItems[i]).Checked = false;
((ToolStripMenuItem)e.ClickedItem).Checked = true;
cbs[tdevice].SelectedIndex = tS.DropDownItems.IndexOf(e.ClickedItem);
Global.setAProfile(tdevice, e.ClickedItem.Text);
Global.Save();
Global.LoadProfile(tdevice);
}
else// if (e.ClickedItem.Text == "+New Profile") //if +New Profile selected
{
Options opt = OptionsDialog[tdevice] = new Options(rootHub, tdevice, e.ClickedItem.Text, this);
Options opt = OptionsDialog[tdevice] = new Options(rootHub, tdevice, "", this);
opt.Text = "Options for Controller " + (tdevice + 1);
opt.Icon = this.Icon;
int i = tdevice;
@ -442,30 +467,6 @@ namespace ScpServer
opt.Show();
Enable_Controls(i, false);
}
else
{
for (int i = 0; i < tS.DropDownItems.Count; i++)
((ToolStripMenuItem)tS.DropDownItems[i]).Checked = false;
((ToolStripMenuItem)e.ClickedItem).Checked = true;
cbs[tdevice].SelectedIndex = tS.DropDownItems.IndexOf(e.ClickedItem);
Global.setAProfile(tdevice, e.ClickedItem.Text);
Global.Save();
Global.LoadProfile(tdevice);
}
else if (e.ClickedItem.Text == "+New Profile") //if +New Profile selected
{
Options opt = OptionsDialog[tdevice] = new Options(rootHub, tdevice, "", this);
opt.Text = "Options for Controller " + (tdevice + 1);
opt.Icon = this.Icon;
int i = tdevice;
opt.FormClosed += delegate
{
OptionsDialog[i] = null;
Enable_Controls(i, true);
};
opt.Show();
Enable_Controls(i, false);
}
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)