Lightbar idle fade now works in all regions, possibly fixed bug with nullexeception, use of utcnow instead of now across the board

This commit is contained in:
jays2kings 2014-05-22 22:42:07 -04:00
parent 36f01ac30c
commit 25612fa9a1
3 changed files with 23 additions and 13 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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;