Fix connecting issue, small ui/gui improvements, like the start with windows doesn't hide when small, there's a tooltip on the rainbow icon, and the lightbar shows the default light blue when stopping/closing ds4windows. The lightbar also doesn't go weird when charging and idle timeout is on.

This commit is contained in:
jays2kings 2014-05-23 19:44:30 -04:00
parent 25612fa9a1
commit 12d1fe9231
8 changed files with 67 additions and 67 deletions

View File

@ -205,13 +205,45 @@ namespace DS4Control
Global.ControllerStatusChanged(this);
}
public static void TimeoutConnection(DS4Device d)
{
try
{
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
while (!d.IsAlive())
{
if (sw.ElapsedMilliseconds < 1000)
System.Threading.Thread.SpinWait(500);
//If weve been waiting less than 1 second let the thread keep its processing chunk
else
System.Threading.Thread.Sleep(500);
//If weve been waiting more than 1 second give up some resources
if (sw.ElapsedMilliseconds > 5000) throw new TimeoutException(); //Weve waited long enough
}
sw.Reset();
}
catch (TimeoutException e)
{
d.DisconnectBT();
}
}
public string getDS4ControllerInfo(int index)
{
if (DS4Controllers[index] != null)
{
DS4Device d = DS4Controllers[index];
if (!d.IsAlive())
return "Connecting..."; // awaiting the first battery charge indication
//return "Connecting..."; // awaiting the first battery charge indication
{
var TimeoutThread = new System.Threading.Thread(() => TimeoutConnection(d));
TimeoutThread.IsBackground = true;
TimeoutThread.Name = "TimeoutFor" + d.MacAddress.ToString();
TimeoutThread.Start();
return "Connecting...";
}
String battery;
if (d.Charging)
{

View File

@ -72,7 +72,7 @@ namespace DS4Control
color = Global.loadColor(deviceNum);
}
if (Global.getIdleDisconnectTimeout(deviceNum) > 0)
if (Global.getIdleDisconnectTimeout(deviceNum) > 0 && !device.Charging)
{//Fade lightbar by idle time
TimeSpan timeratio = new TimeSpan(DateTime.UtcNow.Ticks - device.lastActive.Ticks);
double botratio = timeratio.TotalMilliseconds;

View File

@ -54,7 +54,9 @@ namespace ScpServer
private void linkUninstall_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(Global.appdatapath + "\\Virtual Bus Driver\\ScpDriver.exe");
if (System.IO.File.Exists(Global.appdatapath + "\\Virtual Bus Driver\\ScpDriver.exe"))
try { System.Diagnostics.Process.Start(Global.appdatapath + "\\Virtual Bus Driver\\ScpDriver.exe"); }
catch { System.Diagnostics.Process.Start(Global.appdatapath + "\\Virtual Bus Driver"); }
}
}
}

View File

@ -119,7 +119,8 @@ namespace ScpServer
tp.SetToolTip(cBDoubleTap, "Tap and hold to drag, slight delay with one tap");
tp.SetToolTip(btnLightbar, "Click to change color");
tp.SetToolTip(lBControlTip, "You can also use your controller to change controls");
tp.SetToolTip(touchpadJitterCompensation, "Use Sixaxis to help calulate touchpad movement");
tp.SetToolTip(touchpadJitterCompensation, "Use Sixaxis to help calulate touchpad movement");
tp.SetToolTip(pBRainbow, "Always on Rainbow Mode");
advColorDialog.OnUpdateColor += advColorDialog_OnUpdateColor;
btnLeftStick.Enter += btnSticks_Enter;
btnRightStick.Enter += btnSticks_Enter;

View File

@ -121,14 +121,6 @@
<data name="DS4" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DS4.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Start" xml:space="preserve">
<value>Start</value>
<comment>To be localized.</comment>
</data>
<data name="Stop" xml:space="preserve">
<value>Stop</value>
<comment>To be localized.</comment>
</data>
<data name="_360_fades" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\360 fades.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

View File

@ -160,15 +160,6 @@ namespace ScpServer.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Start.
/// </summary>
public static string Start {
get {
return ResourceManager.GetString("Start", resourceCulture);
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@ -179,15 +170,6 @@ namespace ScpServer.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Stop.
/// </summary>
public static string Stop {
get {
return ResourceManager.GetString("Stop", resourceCulture);
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View File

@ -39,7 +39,6 @@
this.llbHelp = new System.Windows.Forms.LinkLabel();
this.btnStartStop = new System.Windows.Forms.Button();
this.btnClear = new System.Windows.Forms.Button();
this.btnStop = new System.Windows.Forms.Button();
this.lnkControllers = new System.Windows.Forms.LinkLabel();
this.hideDS4CheckBox = new System.Windows.Forms.CheckBox();
this.startMinimizedCheckBox = new System.Windows.Forms.CheckBox();
@ -125,7 +124,6 @@
this.pnlButton.Controls.Add(this.llbHelp);
this.pnlButton.Controls.Add(this.btnStartStop);
this.pnlButton.Controls.Add(this.btnClear);
this.pnlButton.Controls.Add(this.btnStop);
this.pnlButton.Controls.Add(this.lnkControllers);
this.pnlButton.Dock = System.Windows.Forms.DockStyle.Bottom;
this.pnlButton.Location = new System.Drawing.Point(0, 477);
@ -177,19 +175,6 @@
this.btnClear.UseVisualStyleBackColor = true;
this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
//
// btnStop
//
this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStop.Enabled = false;
this.btnStop.Location = new System.Drawing.Point(710, 6);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(75, 23);
this.btnStop.TabIndex = 2;
this.btnStop.Text = "Stop";
this.btnStop.UseVisualStyleBackColor = true;
this.btnStop.Visible = false;
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
//
// lnkControllers
//
this.lnkControllers.AutoSize = true;
@ -517,11 +502,10 @@
//
this.lbLastMessage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.lbLastMessage.ForeColor = System.Drawing.SystemColors.GrayText;
this.lbLastMessage.Location = new System.Drawing.Point(12, 106);
this.lbLastMessage.Location = new System.Drawing.Point(12, 110);
this.lbLastMessage.Name = "lbLastMessage";
this.lbLastMessage.Size = new System.Drawing.Size(551, 20);
this.lbLastMessage.Size = new System.Drawing.Size(434, 17);
this.lbLastMessage.TabIndex = 41;
this.lbLastMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.lbLastMessage.Visible = false;
//
// notifyIcon1
@ -642,7 +626,6 @@
private System.Windows.Forms.ColumnHeader chData;
private System.Windows.Forms.Timer tmrUpdate;
private System.Windows.Forms.Panel pnlButton;
private System.Windows.Forms.Button btnStop;
private System.Windows.Forms.Button btnStartStop;
private System.Windows.Forms.Panel pnlDebug;
private System.Windows.Forms.Button btnClear;

View File

@ -14,7 +14,7 @@ namespace ScpServer
{
private DS4Control.Control rootHub;
delegate void LogDebugDelegate(DateTime Time, String Data);
double version = 7.412;
double version = 7.42;
protected Label[] Pads;
protected ComboBox[] cbs;
@ -260,11 +260,7 @@ namespace ScpServer
else lbLastMessage.Visible = true;
if (protexts != null)
for (int i = 0; i < 4; i++)
if (this.Width > 665)
protexts[i].Visible = true;
else
protexts[i].Visible = false;
StartWindowsCheckBox.Visible = (this.Width > 665);
protexts[i].Visible = (this.Width > 665);
}
protected void btnStartStop_Click(object sender, EventArgs e)
@ -273,21 +269,27 @@ namespace ScpServer
}
protected void btnStartStop_Clicked()
{
if (btnStartStop.Text == Properties.Resources.Start
&& rootHub.Start())
btnStartStop.Text = Properties.Resources.Stop;
else if (btnStartStop.Text == Properties.Resources.Stop
&& rootHub.Stop())
btnStartStop.Text = Properties.Resources.Start;
}
protected void btnStop_Click(object sender, EventArgs e)
{
if (rootHub.Stop())
if (btnStartStop.Text == "Start")
{
btnStartStop.Enabled = true;
btnStop.Enabled = false;
for (int i = 0; i < 4; i++)
Global.LoadProfile(i);
rootHub.Start();
btnStartStop.Text = "Stop";
}
else if (btnStartStop.Text == "Stop")
{
for (int i = 0; i < 4; i++)
{
Global.setRainbow(i, 0);
Global.setLedAsBatteryIndicator(i, false);
Global.saveColor(i, 128, 255, 255);
}
rootHub.Stop();
btnStartStop.Text = "Start";
}
}
protected void btnClear_Click(object sender, EventArgs e)
{
lvDebug.Items.Clear();
@ -571,6 +573,12 @@ namespace ScpServer
Global.setFormWidth(this.Width);
Global.setFormHeight(this.Height);
Global.Save();
for (int i = 0; i < 4; i++)
{
Global.setRainbow(i, 0);
Global.setLedAsBatteryIndicator(i, false);
Global.saveColor(i, 128, 255, 255);
}
rootHub.Stop();
}