From 25612fa9a13a5e2cbc7272960b703d71b3bad43b Mon Sep 17 00:00:00 2001 From: jays2kings Date: Thu, 22 May 2014 22:42:07 -0400 Subject: [PATCH] Lightbar idle fade now works in all regions, possibly fixed bug with nullexeception, use of utcnow instead of now across the board --- DS4Control/DS4LightBar.cs | 6 +++--- DS4Control/Mapping.cs | 18 +++++++++--------- DS4Tool/ScpForm.cs | 12 +++++++++++- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/DS4Control/DS4LightBar.cs b/DS4Control/DS4LightBar.cs index 8cb5181..8a8cf82 100644 --- a/DS4Control/DS4LightBar.cs +++ b/DS4Control/DS4LightBar.cs @@ -22,13 +22,13 @@ namespace DS4Control }; static double[] counters = new double[4] {0,0,0,0}; - static DateTime oldnow = DateTime.Now; + static DateTime oldnow = DateTime.UtcNow; public static void updateLightBar(DS4Device device, int deviceNum) { DS4Color color; if (Global.getRainbow(deviceNum) > 0) {// Display rainbow - DateTime now = DateTime.Now; + DateTime now = DateTime.UtcNow; if (now >= oldnow + TimeSpan.FromMilliseconds(10)) //update by the millisecond that way it's a smooth transtion { oldnow = now; @@ -74,7 +74,7 @@ namespace DS4Control if (Global.getIdleDisconnectTimeout(deviceNum) > 0) {//Fade lightbar by idle time - TimeSpan timeratio = new TimeSpan(DateTime.Now.Ticks - device.lastActive.Ticks) + new TimeSpan(4, 0, 0); //The nows are off by 4 hours, not sure why... + TimeSpan timeratio = new TimeSpan(DateTime.UtcNow.Ticks - device.lastActive.Ticks); double botratio = timeratio.TotalMilliseconds; double topratio = TimeSpan.FromSeconds(Global.getIdleDisconnectTimeout(deviceNum)).TotalMilliseconds; double ratio = ((botratio / topratio) * 100); diff --git a/DS4Control/Mapping.cs b/DS4Control/Mapping.cs index ade6aa9..4536573 100644 --- a/DS4Control/Mapping.cs +++ b/DS4Control/Mapping.cs @@ -44,7 +44,7 @@ namespace DS4Control private static SyntheticState[] deviceState = { new SyntheticState(), new SyntheticState(), new SyntheticState(), new SyntheticState() }; // TODO When we disconnect, process a null/dead state to release any keys or buttons. - public static DateTime oldnow = DateTime.Now; + public static DateTime oldnow = DateTime.UtcNow; private static bool pressagain = false; private static int wheel = 0, keyshelddown = 0; public static void Commit(int device) @@ -86,7 +86,7 @@ namespace DS4Control if (globalState.currentClicks.wUpCount != 0 && globalState.previousClicks.wUpCount == 0) { InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_WHEEL, 100); - oldnow = DateTime.Now; + oldnow = DateTime.UtcNow; wheel = 100; } else if (globalState.currentClicks.wUpCount == 0 && globalState.previousClicks.wUpCount != 0) @@ -96,7 +96,7 @@ namespace DS4Control if (globalState.currentClicks.wDownCount != 0 && globalState.previousClicks.wDownCount == 0) { InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_WHEEL, -100); - oldnow = DateTime.Now; + oldnow = DateTime.UtcNow; wheel = -100; } if (globalState.currentClicks.wDownCount == 0 && globalState.previousClicks.wDownCount != 0) @@ -104,7 +104,7 @@ namespace DS4Control if (wheel != 0) //Continue mouse wheel movement { - DateTime now = DateTime.Now; + DateTime now = DateTime.UtcNow; if (now >= oldnow + TimeSpan.FromMilliseconds(100) && !pressagain) { oldnow = now; @@ -134,14 +134,14 @@ namespace DS4Control { if (gkp.current.scanCodeCount != 0) { - oldnow = DateTime.Now; + oldnow = DateTime.UtcNow; InputMethods.performSCKeyPress(kvp.Key); pressagain = false; keyshelddown = kvp.Key; } else { - oldnow = DateTime.Now; + oldnow = DateTime.UtcNow; InputMethods.performKeyPress(kvp.Key); pressagain = false; keyshelddown = kvp.Key; @@ -152,7 +152,7 @@ namespace DS4Control { if (keyshelddown == kvp.Key) { - DateTime now = DateTime.Now; + DateTime now = DateTime.UtcNow; if (now >= oldnow + TimeSpan.FromMilliseconds(500) && !pressagain) { oldnow = now; @@ -160,7 +160,7 @@ namespace DS4Control } if (pressagain && gkp.current.scanCodeCount != 0) { - now = DateTime.Now; + now = DateTime.UtcNow; if (now >= oldnow + TimeSpan.FromMilliseconds(25) && pressagain) { oldnow = now; @@ -169,7 +169,7 @@ namespace DS4Control } else if (pressagain) { - now = DateTime.Now; + now = DateTime.UtcNow; if (now >= oldnow + TimeSpan.FromMilliseconds(25) && pressagain) { oldnow = now; diff --git a/DS4Tool/ScpForm.cs b/DS4Tool/ScpForm.cs index 23e2049..22a21f7 100644 --- a/DS4Tool/ScpForm.cs +++ b/DS4Tool/ScpForm.cs @@ -14,7 +14,7 @@ namespace ScpServer { private DS4Control.Control rootHub; delegate void LogDebugDelegate(DateTime Time, String Data); - double version = 7.4; + double version = 7.412; protected Label[] Pads; protected ComboBox[] cbs; @@ -123,6 +123,16 @@ namespace ScpServer RegistryKey KeyLoc = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false); StartWindowsCheckBox.Checked = (KeyLoc.GetValue("DS4Tool") != null); + Pads = new Label[4] { lbPad1, lbPad2, lbPad3, lbPad4 }; + cbs = new ComboBox[4] { cBController1, cBController2, cBController3, cBController4 }; + ebns = new Button[4] { bnEditC1, bnEditC2, bnEditC3, bnEditC4 }; + dbns = new Button[4] { bnDeleteC1, bnDeleteC2, bnDeleteC3, bnDeleteC4 }; + protexts = new Label[4] { lbSelPro1, lbSelPro2, lbSelPro3, lbSelPro4 }; + + shortcuts = new ToolStripMenuItem[4] { (ToolStripMenuItem)notifyIcon1.ContextMenuStrip.Items[0], + (ToolStripMenuItem)notifyIcon1.ContextMenuStrip.Items[1], + (ToolStripMenuItem)notifyIcon1.ContextMenuStrip.Items[2], + (ToolStripMenuItem)notifyIcon1.ContextMenuStrip.Items[3] }; if (startMinimizedCheckBox.Checked) { this.WindowState = FormWindowState.Minimized;