"Connecting..." issue Fixed again, I think...

Pushing the Right stick down also works correctly now.
In options,when changing values on the lightbar sliders, a tooltip shows up to the side showing the number.
The lightbar now only fades out when idle when half the idle time has passed.
This commit is contained in:
jays2kings 2014-05-24 19:08:40 -04:00
parent 4b7b773e6e
commit 96268b0296
6 changed files with 96 additions and 29 deletions

View File

@ -51,14 +51,18 @@ namespace DS4Control
Log.LogToTray(message); Log.LogToTray(message);
} }
} }
public bool Start() public bool Start(bool showlog = true)
{ {
if (x360Bus.Open() && x360Bus.Start()) if (x360Bus.Open() && x360Bus.Start())
{ {
if (showlog)
LogDebug("Starting..."); LogDebug("Starting...");
DS4Devices.isExclusiveMode = Global.getUseExclusiveMode(); DS4Devices.isExclusiveMode = Global.getUseExclusiveMode();
if (showlog)
{
LogDebug("Searching for controllers...."); LogDebug("Searching for controllers....");
LogDebug("Using " + (DS4Devices.isExclusiveMode ? "Exclusive Mode" : "Shared Mode")); LogDebug("Using " + (DS4Devices.isExclusiveMode ? "Exclusive Mode" : "Shared Mode"));
}
try try
{ {
DS4Devices.findControllers(); DS4Devices.findControllers();
@ -66,6 +70,7 @@ namespace DS4Control
int ind = 0; int ind = 0;
foreach (DS4Device device in devices) foreach (DS4Device device in devices)
{ {
if (showlog)
LogDebug("Found Controller: " + device.MacAddress + " (" + device.ConnectionType + ")"); LogDebug("Found Controller: " + device.MacAddress + " (" + device.ConnectionType + ")");
WarnExclusiveModeFailure(device); WarnExclusiveModeFailure(device);
DS4Controllers[ind] = device; DS4Controllers[ind] = device;
@ -84,6 +89,7 @@ namespace DS4Control
TouchPadOn(ind, device); TouchPadOn(ind, device);
string filename = Path.GetFileName(Global.getAProfile(ind)); string filename = Path.GetFileName(Global.getAProfile(ind));
ind++; ind++;
if (showlog)
if (System.IO.File.Exists(Global.appdatapath + "\\Profiles\\" + filename)) if (System.IO.File.Exists(Global.appdatapath + "\\Profiles\\" + filename))
{ {
LogDebug("Controller " + ind + " is using Profile \"" + filename.Substring(0, filename.Length - 4) + "\""); LogDebug("Controller " + ind + " is using Profile \"" + filename.Substring(0, filename.Length - 4) + "\"");
@ -109,17 +115,21 @@ namespace DS4Control
return true; return true;
} }
public bool Stop() public bool Stop(bool showlog = true)
{ {
if (running) if (running)
{ {
running = false; running = false;
if (showlog)
LogDebug("Stopping X360 Controllers"); LogDebug("Stopping X360 Controllers");
bool anyUnplugged = false; bool anyUnplugged = false;
for (int i = 0; i < DS4Controllers.Length; i++) for (int i = 0; i < DS4Controllers.Length; i++)
{ {
if (DS4Controllers[i] != null) if (DS4Controllers[i] != null)
{ {
Global.setRainbow(i, 0);
Global.setLedAsBatteryIndicator(i, false);
Global.saveColor(i, 64, 128, 128);
CurrentState[i].Battery = PreviousState[i].Battery = 0; // Reset for the next connection's initial status change. CurrentState[i].Battery = PreviousState[i].Battery = 0; // Reset for the next connection's initial status change.
x360Bus.Unplug(i); x360Bus.Unplug(i);
anyUnplugged = true; anyUnplugged = true;
@ -130,8 +140,10 @@ namespace DS4Control
if (anyUnplugged) if (anyUnplugged)
System.Threading.Thread.Sleep(XINPUT_UNPLUG_SETTLE_TIME); System.Threading.Thread.Sleep(XINPUT_UNPLUG_SETTLE_TIME);
x360Bus.Stop(); x360Bus.Stop();
if (showlog)
LogDebug("Stopping DS4 Controllers"); LogDebug("Stopping DS4 Controllers");
DS4Devices.stopControllers(); DS4Devices.stopControllers();
if (showlog)
LogDebug("Stopped DS4 Tool"); LogDebug("Stopped DS4 Tool");
Global.ControllerStatusChanged(this); Global.ControllerStatusChanged(this);
} }
@ -145,6 +157,8 @@ namespace DS4Control
{ {
DS4Devices.findControllers(); DS4Devices.findControllers();
IEnumerable<DS4Device> devices = DS4Devices.getDS4Controllers(); IEnumerable<DS4Device> devices = DS4Devices.getDS4Controllers();
//Stop(false);
//Start(false);
foreach (DS4Device device in devices) foreach (DS4Device device in devices)
{ {
if (device.IsDisconnecting) if (device.IsDisconnecting)
@ -152,8 +166,7 @@ namespace DS4Control
if (((Func<bool>)delegate if (((Func<bool>)delegate
{ {
for (Int32 Index = 0; Index < DS4Controllers.Length; Index++) for (Int32 Index = 0; Index < DS4Controllers.Length; Index++)
if (DS4Controllers[Index] != null && if (DS4Controllers[Index] != null && DS4Controllers[Index].MacAddress == device.MacAddress)
DS4Controllers[Index].MacAddress == device.MacAddress)
return true; return true;
return false; return false;
})()) })())
@ -205,7 +218,7 @@ namespace DS4Control
Global.ControllerStatusChanged(this); Global.ControllerStatusChanged(this);
} }
public static void TimeoutConnection(DS4Device d) public void TimeoutConnection(DS4Device d)
{ {
try try
{ {
@ -224,9 +237,14 @@ namespace DS4Control
} }
sw.Reset(); sw.Reset();
} }
catch (TimeoutException e) catch (TimeoutException)
{ {
d.DisconnectBT(); //Global.setUseExclusiveMode(!Global.getUseExclusiveMode());
Stop(false);
Start(false);
//Global.setUseExclusiveMode(!Global.getUseExclusiveMode());
//Stop(false);
//Start(false);
} }
} }

View File

@ -78,7 +78,8 @@ namespace DS4Control
double botratio = timeratio.TotalMilliseconds; double botratio = timeratio.TotalMilliseconds;
double topratio = TimeSpan.FromSeconds(Global.getIdleDisconnectTimeout(deviceNum)).TotalMilliseconds; double topratio = TimeSpan.FromSeconds(Global.getIdleDisconnectTimeout(deviceNum)).TotalMilliseconds;
double ratio = ((botratio / topratio) * 100); double ratio = ((botratio / topratio) * 100);
color = Global.getTransitionedColor(color, new DS4Color { red = 0, green = 0, blue = 0 }, (uint)ratio); if (ratio >= 50)
color = Global.getTransitionedColor(color, new DS4Color { red = 0, green = 0, blue = 0 }, (uint)((ratio-50)*2));
} }
DS4HapticState haptics = new DS4HapticState DS4HapticState haptics = new DS4HapticState
{ {

View File

@ -154,7 +154,7 @@ namespace DS4Control
Output[18] = (Byte)((ThumbRX >> 0) & 0xFF); // RX Output[18] = (Byte)((ThumbRX >> 0) & 0xFF); // RX
Output[19] = (Byte)((ThumbRX >> 8) & 0xFF); Output[19] = (Byte)((ThumbRX >> 8) & 0xFF);
} }
if (state.LY > 127 + Global.getLSDeadzone(device) || state.RY < 127 - Global.getRSDeadzone(device)) if (state.RY > 127 + Global.getRSDeadzone(device) || state.RY < 127 - Global.getRSDeadzone(device))
{ {
Output[20] = (Byte)((ThumbRY >> 0) & 0xFF); // RY Output[20] = (Byte)((ThumbRY >> 0) & 0xFF); // RY
Output[21] = (Byte)((ThumbRY >> 8) & 0xFF); Output[21] = (Byte)((ThumbRY >> 8) & 0xFF);

View File

@ -989,6 +989,10 @@
this.blueBar.TickStyle = System.Windows.Forms.TickStyle.None; this.blueBar.TickStyle = System.Windows.Forms.TickStyle.None;
this.blueBar.Value = 255; this.blueBar.Value = 255;
this.blueBar.ValueChanged += new System.EventHandler(this.blueBar_ValueChanged); this.blueBar.ValueChanged += new System.EventHandler(this.blueBar_ValueChanged);
this.blueBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LightBar_MouseDown);
this.blueBar.MouseLeave += new System.EventHandler(this.Lightbar_MouseLeave);
this.blueBar.MouseHover += new System.EventHandler(this.LightbarValue_MouseHover);
this.blueBar.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Lightbar_MouseUp);
// //
// greenBar // greenBar
// //
@ -1003,6 +1007,10 @@
this.greenBar.TickStyle = System.Windows.Forms.TickStyle.None; this.greenBar.TickStyle = System.Windows.Forms.TickStyle.None;
this.greenBar.Value = 255; this.greenBar.Value = 255;
this.greenBar.ValueChanged += new System.EventHandler(this.greenBar_ValueChanged); this.greenBar.ValueChanged += new System.EventHandler(this.greenBar_ValueChanged);
this.greenBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LightBar_MouseDown);
this.greenBar.MouseLeave += new System.EventHandler(this.Lightbar_MouseLeave);
this.greenBar.MouseHover += new System.EventHandler(this.LightbarValue_MouseHover);
this.greenBar.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Lightbar_MouseUp);
// //
// redBar // redBar
// //
@ -1017,6 +1025,10 @@
this.redBar.TickStyle = System.Windows.Forms.TickStyle.None; this.redBar.TickStyle = System.Windows.Forms.TickStyle.None;
this.redBar.Value = 255; this.redBar.Value = 255;
this.redBar.ValueChanged += new System.EventHandler(this.redBar_ValueChanged); this.redBar.ValueChanged += new System.EventHandler(this.redBar_ValueChanged);
this.redBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LightBar_MouseDown);
this.redBar.MouseLeave += new System.EventHandler(this.Lightbar_MouseLeave);
this.redBar.MouseHover += new System.EventHandler(this.LightbarValue_MouseHover);
this.redBar.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Lightbar_MouseUp);
// //
// batteryLed // batteryLed
// //
@ -1533,6 +1545,10 @@
this.lowRedBar.TickStyle = System.Windows.Forms.TickStyle.None; this.lowRedBar.TickStyle = System.Windows.Forms.TickStyle.None;
this.lowRedBar.Value = 255; this.lowRedBar.Value = 255;
this.lowRedBar.ValueChanged += new System.EventHandler(this.lowRedBar_ValueChanged); this.lowRedBar.ValueChanged += new System.EventHandler(this.lowRedBar_ValueChanged);
this.lowRedBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LightBar_MouseDown);
this.lowRedBar.MouseLeave += new System.EventHandler(this.Lightbar_MouseLeave);
this.lowRedBar.MouseHover += new System.EventHandler(this.LightbarValue_MouseHover);
this.lowRedBar.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Lightbar_MouseUp);
// //
// lowGreenBar // lowGreenBar
// //
@ -1547,6 +1563,10 @@
this.lowGreenBar.TickStyle = System.Windows.Forms.TickStyle.None; this.lowGreenBar.TickStyle = System.Windows.Forms.TickStyle.None;
this.lowGreenBar.Value = 255; this.lowGreenBar.Value = 255;
this.lowGreenBar.ValueChanged += new System.EventHandler(this.lowGreenBar_ValueChanged); this.lowGreenBar.ValueChanged += new System.EventHandler(this.lowGreenBar_ValueChanged);
this.lowGreenBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LightBar_MouseDown);
this.lowGreenBar.MouseLeave += new System.EventHandler(this.Lightbar_MouseLeave);
this.lowGreenBar.MouseHover += new System.EventHandler(this.LightbarValue_MouseHover);
this.lowGreenBar.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Lightbar_MouseUp);
// //
// lowBlueBar // lowBlueBar
// //
@ -1561,6 +1581,10 @@
this.lowBlueBar.TickStyle = System.Windows.Forms.TickStyle.None; this.lowBlueBar.TickStyle = System.Windows.Forms.TickStyle.None;
this.lowBlueBar.Value = 255; this.lowBlueBar.Value = 255;
this.lowBlueBar.ValueChanged += new System.EventHandler(this.lowBlueBar_ValueChanged); this.lowBlueBar.ValueChanged += new System.EventHandler(this.lowBlueBar_ValueChanged);
this.lowBlueBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LightBar_MouseDown);
this.lowBlueBar.MouseLeave += new System.EventHandler(this.Lightbar_MouseLeave);
this.lowBlueBar.MouseHover += new System.EventHandler(this.LightbarValue_MouseHover);
this.lowBlueBar.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Lightbar_MouseUp);
// //
// lBEmpty // lBEmpty
// //
@ -1784,7 +1808,7 @@
this.gBOther.Controls.Add(this.lBControllerOff); this.gBOther.Controls.Add(this.lBControllerOff);
this.gBOther.Location = new System.Drawing.Point(6, 221); this.gBOther.Location = new System.Drawing.Point(6, 221);
this.gBOther.Name = "gBOther"; this.gBOther.Name = "gBOther";
this.gBOther.Size = new System.Drawing.Size(419, 70); this.gBOther.Size = new System.Drawing.Size(421, 70);
this.gBOther.TabIndex = 247; this.gBOther.TabIndex = 247;
this.gBOther.TabStop = false; this.gBOther.TabStop = false;
this.gBOther.Text = "Other"; this.gBOther.Text = "Other";

View File

@ -20,7 +20,7 @@ namespace ScpServer
private int alphacolor; private int alphacolor;
private Color reg, full; private Color reg, full;
private Image colored, greyscale; private Image colored, greyscale;
ToolTip tp = new ToolTip();
public Options(DS4Control.Control bus_device, int deviceNum, string name) public Options(DS4Control.Control bus_device, int deviceNum, string name)
{ {
InitializeComponent(); InitializeComponent();
@ -117,7 +117,6 @@ namespace ScpServer
b.MouseHover += button_MouseHover; b.MouseHover += button_MouseHover;
if (filename != "" && filename != "New Profile") if (filename != "" && filename != "New Profile")
Global.LoadProfile(device, buttons.ToArray()); Global.LoadProfile(device, buttons.ToArray());
ToolTip tp = new ToolTip();
tp.SetToolTip(cBlowerRCOn, "Best used with right side as a mouse function"); tp.SetToolTip(cBlowerRCOn, "Best used with right side as a mouse function");
tp.SetToolTip(cBDoubleTap, "Tap and hold to drag, slight delay with single taps"); tp.SetToolTip(cBDoubleTap, "Tap and hold to drag, slight delay with single taps");
tp.SetToolTip(lBControlTip, "You can also use your controller to change controls"); tp.SetToolTip(lBControlTip, "You can also use your controller to change controls");
@ -360,6 +359,7 @@ namespace ScpServer
full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg); full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg);
pBController.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full); pBController.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full);
Global.saveColor(device, (byte)redBar.Value, (byte)greenBar.Value, (byte)blueBar.Value); Global.saveColor(device, (byte)redBar.Value, (byte)greenBar.Value, (byte)blueBar.Value);
tp.Show(((TrackBar)sender).Value.ToString(), ((TrackBar)sender), 100, 0, 2000);
} }
private void greenBar_ValueChanged(object sender, EventArgs e) private void greenBar_ValueChanged(object sender, EventArgs e)
{ {
@ -372,6 +372,7 @@ namespace ScpServer
full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg); full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg);
pBController.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full); pBController.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full);
Global.saveColor(device, (byte)redBar.Value, (byte)greenBar.Value, (byte)blueBar.Value); Global.saveColor(device, (byte)redBar.Value, (byte)greenBar.Value, (byte)blueBar.Value);
tp.Show(((TrackBar)sender).Value.ToString(), ((TrackBar)sender), 100, 0, 2000);
} }
private void blueBar_ValueChanged(object sender, EventArgs e) private void blueBar_ValueChanged(object sender, EventArgs e)
{ {
@ -384,6 +385,7 @@ namespace ScpServer
full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg); full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg);
pBController.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full); pBController.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full);
Global.saveColor(device, (byte)redBar.Value, (byte)greenBar.Value, (byte)blueBar.Value); Global.saveColor(device, (byte)redBar.Value, (byte)greenBar.Value, (byte)blueBar.Value);
tp.Show(((TrackBar)sender).Value.ToString(), ((TrackBar)sender), 100, 0, 2000);
} }
private void lowRedBar_ValueChanged(object sender, EventArgs e) private void lowRedBar_ValueChanged(object sender, EventArgs e)
@ -397,6 +399,7 @@ namespace ScpServer
full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg); full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg);
lowColorChooserButton.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full); lowColorChooserButton.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full);
Global.saveLowColor(device, (byte)lowRedBar.Value, (byte)lowGreenBar.Value, (byte)lowBlueBar.Value); Global.saveLowColor(device, (byte)lowRedBar.Value, (byte)lowGreenBar.Value, (byte)lowBlueBar.Value);
tp.Show(((TrackBar)sender).Value.ToString(), ((TrackBar)sender), 100, 0, 2000);
} }
private void lowGreenBar_ValueChanged(object sender, EventArgs e) private void lowGreenBar_ValueChanged(object sender, EventArgs e)
@ -410,6 +413,7 @@ namespace ScpServer
full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg); full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg);
lowColorChooserButton.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full); lowColorChooserButton.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full);
Global.saveLowColor(device, (byte)lowRedBar.Value, (byte)lowGreenBar.Value, (byte)lowBlueBar.Value); Global.saveLowColor(device, (byte)lowRedBar.Value, (byte)lowGreenBar.Value, (byte)lowBlueBar.Value);
tp.Show(((TrackBar)sender).Value.ToString(), ((TrackBar)sender), 100, 0, 2000);
} }
private void lowBlueBar_ValueChanged(object sender, EventArgs e) private void lowBlueBar_ValueChanged(object sender, EventArgs e)
@ -423,6 +427,7 @@ namespace ScpServer
full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg); full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg);
lowColorChooserButton.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full); lowColorChooserButton.BackColor = Color.FromArgb((alphacolor > 205 ? 255 : (alphacolor + 50)), full);
Global.saveLowColor(device, (byte)lowRedBar.Value, (byte)lowGreenBar.Value, (byte)lowBlueBar.Value); Global.saveLowColor(device, (byte)lowRedBar.Value, (byte)lowGreenBar.Value, (byte)lowBlueBar.Value);
tp.Show(((TrackBar)sender).Value.ToString(), ((TrackBar)sender), 100, 0, 2000);
} }
public Color HuetoRGB(float hue, float light, Color rgb) public Color HuetoRGB(float hue, float light, Color rgb)
@ -815,5 +820,24 @@ namespace ScpServer
{ {
} }
private void LightbarValue_MouseHover(object sender, EventArgs e)
{
//tp.SetToolTip(((TrackBar)sender), ((TrackBar)sender).Value.ToString());
}
private void Lightbar_MouseLeave(object sender, EventArgs e)
{
}
private void LightBar_MouseDown(object sender, MouseEventArgs e)
{
tp.Show(((TrackBar)sender).Value.ToString(), ((TrackBar)sender), 100, 0);
}
private void Lightbar_MouseUp(object sender, MouseEventArgs e)
{
tp.Hide(((TrackBar)sender));
}
} }
} }

View File

@ -12,7 +12,7 @@ namespace ScpServer
{ {
public partial class ScpForm : Form public partial class ScpForm : Form
{ {
double version = 7.6; double version = 7.7;
private DS4Control.Control rootHub; private DS4Control.Control rootHub;
delegate void LogDebugDelegate(DateTime Time, String Data); delegate void LogDebugDelegate(DateTime Time, String Data);
@ -283,7 +283,7 @@ namespace ScpServer
{ {
Global.setRainbow(i, 0); Global.setRainbow(i, 0);
Global.setLedAsBatteryIndicator(i, false); Global.setLedAsBatteryIndicator(i, false);
Global.saveColor(i, 128, 255, 255); Global.saveColor(i, 64, 128, 128);
} }
rootHub.Stop(); rootHub.Stop();
btnStartStop.Text = "Start"; btnStartStop.Text = "Start";
@ -577,7 +577,7 @@ namespace ScpServer
{ {
Global.setRainbow(i, 0); Global.setRainbow(i, 0);
Global.setLedAsBatteryIndicator(i, false); Global.setLedAsBatteryIndicator(i, false);
Global.saveColor(i, 128, 255, 255); Global.saveColor(i, 64, 128, 128);
} }
rootHub.Stop(); rootHub.Stop();
} }