diff --git a/DS4Control/Mapping.cs b/DS4Control/Mapping.cs
index 72138db..2ec6b46 100644
--- a/DS4Control/Mapping.cs
+++ b/DS4Control/Mapping.cs
@@ -285,8 +285,8 @@ namespace DS4Control
{
SyntheticState deviceState = Mapping.deviceState[device];
string macro = Global.getCustomMacro(device, what);
- if (!string.IsNullOrEmpty(macro))
- {
+ if (macro != "0")
+ {
DS4KeyType keyType = Global.getCustomKeyType(device, what);
SyntheticState.KeyPresses kp;
string[] skeys = macro.Split('/');
diff --git a/DS4Control/Mouse.cs b/DS4Control/Mouse.cs
index d7d0614..496a69e 100644
--- a/DS4Control/Mouse.cs
+++ b/DS4Control/Mouse.cs
@@ -180,10 +180,8 @@ namespace DS4Control
}
else
{
- //leftRumble = rightRumble = 0; // Ignore ambiguous pushes.
}
}
- //dev.setRumble(rightRumble, leftRumble); // sustain while pressed
dev.getCurrentState(s);
synthesizeMouseButtons();
}
diff --git a/DS4Tool/Hotkeys.Designer.cs b/DS4Tool/Hotkeys.Designer.cs
index dc9e1a3..2663ad5 100644
--- a/DS4Tool/Hotkeys.Designer.cs
+++ b/DS4Tool/Hotkeys.Designer.cs
@@ -127,6 +127,7 @@
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button1.Location = new System.Drawing.Point(215, 399);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
@@ -499,8 +500,10 @@
//
// Hotkeys
//
+ this.AcceptButton = this.button1;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.CancelButton = this.button1;
this.ClientSize = new System.Drawing.Size(520, 426);
this.Controls.Add(this.lLBUpdate);
this.Controls.Add(this.tableLayoutPanel1);
diff --git a/DS4Tool/ScpForm.Designer.cs b/DS4Tool/ScpForm.Designer.cs
index faa5dac..2d5cefd 100644
--- a/DS4Tool/ScpForm.Designer.cs
+++ b/DS4Tool/ScpForm.Designer.cs
@@ -91,6 +91,17 @@
this.tSBImportProfile = new System.Windows.Forms.ToolStripButton();
this.tSBExportProfile = new System.Windows.Forms.ToolStripButton();
this.lBProfiles = new System.Windows.Forms.ListBox();
+ this.cMProfile = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.newProfileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.assignToController1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.assignToController2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.assignToController3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.assignToController4ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.duplicateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.importToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tabLog = new System.Windows.Forms.TabPage();
this.tabAutoProfiles = new System.Windows.Forms.TabPage();
this.saveProfiles = new System.Windows.Forms.SaveFileDialog();
@@ -105,6 +116,7 @@
((System.ComponentModel.ISupportInitialize)(this.pBStatus4)).BeginInit();
this.tabProfiles.SuspendLayout();
this.toolStrip1.SuspendLayout();
+ this.cMProfile.SuspendLayout();
this.tabLog.SuspendLayout();
this.SuspendLayout();
//
@@ -378,7 +390,7 @@
this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 23.34039F));
this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.31077F));
this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 117F));
- this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 44F));
+ this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F));
this.tLPControllers.Controls.Add(this.pBStatus1, 1, 1);
this.tLPControllers.Controls.Add(this.lbPad1, 0, 1);
this.tLPControllers.Controls.Add(this.lbPad2, 0, 2);
@@ -452,7 +464,7 @@
// bnEditC3
//
this.bnEditC3.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.bnEditC3.Location = new System.Drawing.Point(743, 76);
+ this.bnEditC3.Location = new System.Drawing.Point(742, 76);
this.bnEditC3.Name = "bnEditC3";
this.bnEditC3.Size = new System.Drawing.Size(40, 23);
this.bnEditC3.TabIndex = 43;
@@ -464,7 +476,7 @@
// bnEditC4
//
this.bnEditC4.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.bnEditC4.Location = new System.Drawing.Point(743, 105);
+ this.bnEditC4.Location = new System.Drawing.Point(742, 105);
this.bnEditC4.Name = "bnEditC4";
this.bnEditC4.Size = new System.Drawing.Size(40, 23);
this.bnEditC4.TabIndex = 43;
@@ -499,7 +511,7 @@
//
this.cBController1.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.cBController1.FormattingEnabled = true;
- this.cBController1.Location = new System.Drawing.Point(626, 19);
+ this.cBController1.Location = new System.Drawing.Point(625, 19);
this.cBController1.Name = "cBController1";
this.cBController1.Size = new System.Drawing.Size(111, 21);
this.cBController1.TabIndex = 42;
@@ -509,7 +521,7 @@
// bnEditC2
//
this.bnEditC2.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.bnEditC2.Location = new System.Drawing.Point(743, 47);
+ this.bnEditC2.Location = new System.Drawing.Point(742, 47);
this.bnEditC2.Name = "bnEditC2";
this.bnEditC2.Size = new System.Drawing.Size(40, 23);
this.bnEditC2.TabIndex = 43;
@@ -522,7 +534,7 @@
//
this.cBController2.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.cBController2.FormattingEnabled = true;
- this.cBController2.Location = new System.Drawing.Point(626, 48);
+ this.cBController2.Location = new System.Drawing.Point(625, 48);
this.cBController2.Name = "cBController2";
this.cBController2.Size = new System.Drawing.Size(111, 21);
this.cBController2.TabIndex = 42;
@@ -533,7 +545,7 @@
//
this.cBController3.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.cBController3.FormattingEnabled = true;
- this.cBController3.Location = new System.Drawing.Point(626, 77);
+ this.cBController3.Location = new System.Drawing.Point(625, 77);
this.cBController3.Name = "cBController3";
this.cBController3.Size = new System.Drawing.Size(111, 21);
this.cBController3.TabIndex = 42;
@@ -543,7 +555,7 @@
// bnEditC1
//
this.bnEditC1.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.bnEditC1.Location = new System.Drawing.Point(743, 18);
+ this.bnEditC1.Location = new System.Drawing.Point(742, 18);
this.bnEditC1.Name = "bnEditC1";
this.bnEditC1.Size = new System.Drawing.Size(40, 23);
this.bnEditC1.TabIndex = 43;
@@ -556,7 +568,7 @@
//
this.cBController4.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.cBController4.FormattingEnabled = true;
- this.cBController4.Location = new System.Drawing.Point(626, 106);
+ this.cBController4.Location = new System.Drawing.Point(625, 106);
this.cBController4.Name = "cBController4";
this.cBController4.Size = new System.Drawing.Size(111, 21);
this.cBController4.TabIndex = 42;
@@ -568,7 +580,7 @@
this.label2.Anchor = System.Windows.Forms.AnchorStyles.None;
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label2.Location = new System.Drawing.Point(627, 0);
+ this.label2.Location = new System.Drawing.Point(626, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(109, 15);
this.label2.TabIndex = 45;
@@ -784,6 +796,7 @@
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lBProfiles.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.lBProfiles.ContextMenuStrip = this.cMProfile;
this.lBProfiles.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lBProfiles.FormattingEnabled = true;
this.lBProfiles.ItemHeight = 16;
@@ -792,8 +805,98 @@
this.lBProfiles.Name = "lBProfiles";
this.lBProfiles.Size = new System.Drawing.Size(780, 272);
this.lBProfiles.TabIndex = 0;
+ this.lBProfiles.MouseClick += new System.Windows.Forms.MouseEventHandler(this.lBProfiles_MouseClick);
this.lBProfiles.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lBProfiles_KeyDown);
this.lBProfiles.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lBProfiles_MouseDoubleClick);
+ this.lBProfiles.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lBProfiles_MouseDown);
+ //
+ // cMProfile
+ //
+ this.cMProfile.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.newProfileToolStripMenuItem,
+ this.editToolStripMenuItem,
+ this.assignToController1ToolStripMenuItem,
+ this.assignToController2ToolStripMenuItem,
+ this.assignToController3ToolStripMenuItem,
+ this.assignToController4ToolStripMenuItem,
+ this.deleteToolStripMenuItem,
+ this.duplicateToolStripMenuItem,
+ this.importToolStripMenuItem,
+ this.exportToolStripMenuItem});
+ this.cMProfile.Name = "cMProfile";
+ this.cMProfile.ShowImageMargin = false;
+ this.cMProfile.Size = new System.Drawing.Size(164, 246);
+ //
+ // newProfileToolStripMenuItem
+ //
+ this.newProfileToolStripMenuItem.Name = "newProfileToolStripMenuItem";
+ this.newProfileToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.newProfileToolStripMenuItem.Text = "New Profile";
+ this.newProfileToolStripMenuItem.Click += new System.EventHandler(this.tsBNewProfile_Click);
+ //
+ // editToolStripMenuItem
+ //
+ this.editToolStripMenuItem.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.editToolStripMenuItem.Name = "editToolStripMenuItem";
+ this.editToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.editToolStripMenuItem.Text = "Edit";
+ this.editToolStripMenuItem.Click += new System.EventHandler(this.tsBNEditProfile_Click);
+ //
+ // assignToController1ToolStripMenuItem
+ //
+ this.assignToController1ToolStripMenuItem.Name = "assignToController1ToolStripMenuItem";
+ this.assignToController1ToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.assignToController1ToolStripMenuItem.Text = "Assign to Controller 1";
+ this.assignToController1ToolStripMenuItem.Click += new System.EventHandler(this.assignToController1ToolStripMenuItem_Click);
+ //
+ // assignToController2ToolStripMenuItem
+ //
+ this.assignToController2ToolStripMenuItem.Name = "assignToController2ToolStripMenuItem";
+ this.assignToController2ToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.assignToController2ToolStripMenuItem.Text = "Assign to Controller 2";
+ this.assignToController2ToolStripMenuItem.Click += new System.EventHandler(this.assignToController2ToolStripMenuItem_Click);
+ //
+ // assignToController3ToolStripMenuItem
+ //
+ this.assignToController3ToolStripMenuItem.Name = "assignToController3ToolStripMenuItem";
+ this.assignToController3ToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.assignToController3ToolStripMenuItem.Text = "Assign to Controller 3";
+ this.assignToController3ToolStripMenuItem.Click += new System.EventHandler(this.assignToController3ToolStripMenuItem_Click);
+ //
+ // assignToController4ToolStripMenuItem
+ //
+ this.assignToController4ToolStripMenuItem.Name = "assignToController4ToolStripMenuItem";
+ this.assignToController4ToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.assignToController4ToolStripMenuItem.Text = "Assign to Controller 4";
+ this.assignToController4ToolStripMenuItem.Click += new System.EventHandler(this.assignToController4ToolStripMenuItem_Click);
+ //
+ // deleteToolStripMenuItem
+ //
+ this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
+ this.deleteToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.deleteToolStripMenuItem.Text = "Delete (Del)";
+ this.deleteToolStripMenuItem.Click += new System.EventHandler(this.tsBDeleteProfle_Click);
+ //
+ // duplicateToolStripMenuItem
+ //
+ this.duplicateToolStripMenuItem.Name = "duplicateToolStripMenuItem";
+ this.duplicateToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.duplicateToolStripMenuItem.Text = "Duplicate (Ctrl+C)";
+ this.duplicateToolStripMenuItem.Click += new System.EventHandler(this.tsBDeleteProfle_Click);
+ //
+ // importToolStripMenuItem
+ //
+ this.importToolStripMenuItem.Name = "importToolStripMenuItem";
+ this.importToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.importToolStripMenuItem.Text = "Import";
+ this.importToolStripMenuItem.Click += new System.EventHandler(this.tSBImportProfile_Click);
+ //
+ // exportToolStripMenuItem
+ //
+ this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
+ this.exportToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
+ this.exportToolStripMenuItem.Text = "Export";
+ this.exportToolStripMenuItem.Click += new System.EventHandler(this.tSBExportProfile_Click);
//
// tabLog
//
@@ -849,6 +952,7 @@
this.tabProfiles.PerformLayout();
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
+ this.cMProfile.ResumeLayout(false);
this.tabLog.ResumeLayout(false);
this.ResumeLayout(false);
@@ -920,6 +1024,17 @@
private System.Windows.Forms.ToolStripButton tSBImportProfile;
private System.Windows.Forms.ToolStripButton tSBExportProfile;
private System.Windows.Forms.SaveFileDialog saveProfiles;
+ private System.Windows.Forms.ContextMenuStrip cMProfile;
+ private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem assignToController1ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem assignToController2ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem assignToController3ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem assignToController4ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem deleteToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem duplicateToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem newProfileToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem importToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem exportToolStripMenuItem;
//private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
}
}
diff --git a/DS4Tool/ScpForm.cs b/DS4Tool/ScpForm.cs
index bbc2d37..4856ebf 100644
--- a/DS4Tool/ScpForm.cs
+++ b/DS4Tool/ScpForm.cs
@@ -15,7 +15,7 @@ namespace ScpServer
{
public partial class ScpForm : Form
{
- double version = 9.111;
+ double version = 9.15;
private DS4Control.Control rootHub;
delegate void LogDebugDelegate(DateTime Time, String Data);
@@ -467,11 +467,11 @@ namespace ScpServer
{
Pads[Index].Text = "Disconnected";
Enable_Controls(Index, false);
- if (opt != null && opt.device == Index)
+ /*if (opt != null && opt.device == Index)
{
opt.Close();
opt = null;
- }
+ }*/
shortcuts[Index].Enabled = false;
}
if (rootHub.getShortDS4ControllerInfo(Index) != "None")
@@ -484,6 +484,7 @@ namespace ScpServer
private void Enable_Controls(int device, bool on)
{
+ Pads[device].Enabled = on;
ebns[device].Enabled = on;
cbs[device].Enabled = on;
shortcuts[device].Enabled = on;
@@ -505,24 +506,17 @@ namespace ScpServer
{
string slide = rootHub.TouchpadSlide(0);
if (slide == "left")
- {
if (cbs[i].SelectedIndex <= 0)
cbs[i].SelectedIndex = cbs[0].Items.Count - 2;
else
cbs[i].SelectedIndex--;
- }
else if (slide == "right")
- {
if (cbs[i].SelectedIndex == cbs[0].Items.Count - 2)
cbs[i].SelectedIndex = 0;
else
cbs[i].SelectedIndex++;
- }
if (slide.Contains("t"))
- {
- LogDebug(DateTime.Now, "Controller " + (i + 1) + " is now using Profile \"" + cbs[i].Text + "\"");
ShowNotification(this, "Controller " + (i + 1) + " is now using Profile \"" + cbs[i].Text + "\"");
- }
}
}
@@ -553,7 +547,27 @@ namespace ScpServer
}
- private void tsBNewProfile_Click(object sender, EventArgs e)
+ private void assignToController1ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ cbs[0].SelectedIndex = lBProfiles.SelectedIndex;
+ }
+
+ private void assignToController2ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ cbs[1].SelectedIndex = lBProfiles.SelectedIndex;
+ }
+
+ private void assignToController3ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ cbs[2].SelectedIndex = lBProfiles.SelectedIndex;
+ }
+
+ private void assignToController4ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ cbs[3].SelectedIndex = lBProfiles.SelectedIndex;
+ }
+
+ private void tsBNewProfile_Click(object sender, EventArgs e) //Also used for context menu
{
ShowOptions(4, "");
}
@@ -633,7 +647,6 @@ namespace ScpServer
private System.Drawing.Size oldsize;
private void ShowOptions(int devID, string profile)
{
- //if (OptionsDialog[devID] == null)
if (opt == null)
{
this.Show();
@@ -854,7 +867,46 @@ namespace ScpServer
}
Global.Save();
rootHub.Stop();
- }
+ }
+
+ private void lBProfiles_MouseClick(object sender, MouseEventArgs e)
+ {
+ //lBProfiles.SelectedIndex = lBProfiles.IndexFromPoint(e.X, e.Y);
+ //if (e.Button == System.Windows.Forms.MouseButtons.Right)
+ {
+ //
+ }
+ }
+
+ private void lBProfiles_MouseDown(object sender, MouseEventArgs e)
+ {
+ lBProfiles.SelectedIndex = lBProfiles.IndexFromPoint(e.X, e.Y);
+ if (e.Button == System.Windows.Forms.MouseButtons.Right)
+ {
+ if (lBProfiles.SelectedIndex < 0)
+ {
+ assignToController1ToolStripMenuItem.Visible = false;
+ assignToController2ToolStripMenuItem.Visible = false;
+ assignToController3ToolStripMenuItem.Visible = false;
+ assignToController4ToolStripMenuItem.Visible = false;
+ deleteToolStripMenuItem.Visible = false;
+ editToolStripMenuItem.Visible = false;
+ duplicateToolStripMenuItem.Visible = false;
+ exportToolStripMenuItem.Visible = false;
+ }
+ else
+ {
+ assignToController1ToolStripMenuItem.Visible = true;
+ assignToController2ToolStripMenuItem.Visible = true;
+ assignToController3ToolStripMenuItem.Visible = true;
+ assignToController4ToolStripMenuItem.Visible = true;
+ deleteToolStripMenuItem.Visible = true;
+ editToolStripMenuItem.Visible = true;
+ duplicateToolStripMenuItem.Visible = true;
+ exportToolStripMenuItem.Visible = true;
+ }
+ }
+ }
}
public class ThemeUtil
diff --git a/DS4Tool/ScpForm.resx b/DS4Tool/ScpForm.resx
index ae85d3f..1861e27 100644
--- a/DS4Tool/ScpForm.resx
+++ b/DS4Tool/ScpForm.resx
@@ -6302,6 +6302,12 @@
449, 17
+
+ 568, 17
+
+
+ 788, 17
+
iVBORw0KGgoAAAANSUhEUgAAACcAAAAUCAYAAAAOTSQ2AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
@@ -6526,9 +6532,6 @@
1WDefQHxFbbcLCQjmgAAAABJRU5ErkJggg==
-
- 568, 17
-
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8