# HG changeset patch
# User StephaneLenclud
# Date 1424037458 -3600
# Node ID 09f1435bfb9472f420c67dcb6327752e3e3e4523
# Parent 8c2380995bb7650bbf14d9bbadbd1bc5f1972c9e
Device list now displaying input value description, those are basically your
gamepad axis.
Adding collapse and expand buttons.
diff -r 8c2380995bb7 -r 09f1435bfb94 HidDevice.cs
--- a/HidDevice.cs Sun Feb 15 22:13:33 2015 +0100
+++ b/HidDevice.cs Sun Feb 15 22:57:38 2015 +0100
@@ -47,9 +47,6 @@
public HIDP_VALUE_CAPS[] InputValueCapabilities { get { return iInputValueCapabilities; } }
private HIDP_VALUE_CAPS[] iInputValueCapabilities;
-
-
-
///
/// Class constructor will fetch this object properties from HID sub system.
///
@@ -265,6 +262,30 @@
}
///
+ ///
+ ///
+ ///
+ ///
+ public string InputValueCapabilityDescription(HIDP_VALUE_CAPS aCaps)
+ {
+ if (!aCaps.IsRange && Enum.IsDefined(typeof(UsagePage), Capabilities.UsagePage))
+ {
+ return "Input Value: " + Enum.GetName(Utils.UsageType((UsagePage)Capabilities.UsagePage), aCaps.NotRange.Usage);
+ }
+
+ return null;
+ }
+
+ public bool IsGamePad
+ {
+ get
+ {
+ return ((UsagePage)iCapabilities.UsagePage == UsagePage.GenericDesktopControls && (UsageCollectionGenericDesktop)iCapabilities.Usage == UsageCollectionGenericDesktop.GamePad);
+ }
+ }
+
+
+ ///
/// Print information about this device to our debug output.
///
public void DebugWrite()
diff -r 8c2380995bb7 -r 09f1435bfb94 HidUtils.cs
--- a/HidUtils.cs Sun Feb 15 22:13:33 2015 +0100
+++ b/HidUtils.cs Sun Feb 15 22:57:38 2015 +0100
@@ -28,5 +28,38 @@
return null;
}
}
+
+ ///
+ /// Provide the type for the usage corresponding to the given usage page.
+ ///
+ ///
+ ///
+ public static Type UsageType(UsagePage aUsagePage)
+ {
+ switch (aUsagePage)
+ {
+ case UsagePage.GenericDesktopControls:
+ return typeof(UsageTables.GenericDesktop);
+
+ case UsagePage.Consumer:
+ return typeof(UsageTables.ConsumerControl);
+
+ case UsagePage.WindowsMediaCenterRemoteControl:
+ return typeof(UsageTables.WindowsMediaCenterRemoteControl);
+
+ case UsagePage.Telephony:
+ return typeof(UsageTables.TelephonyDevice);
+
+ case UsagePage.SimulationControls:
+ return typeof(UsageTables.SimulationControl);
+
+ case UsagePage.GameControls:
+ return typeof(UsageTables.GameControl);
+
+ default:
+ return null;
+ }
+ }
+
}
}
diff -r 8c2380995bb7 -r 09f1435bfb94 MainForm.Designer.cs
--- a/MainForm.Designer.cs Sun Feb 15 22:13:33 2015 +0100
+++ b/MainForm.Designer.cs Sun Feb 15 22:57:38 2015 +0100
@@ -27,6 +27,8 @@
this.columnHeaderTime = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.tabPageDevices = new System.Windows.Forms.TabPage();
this.treeViewDevices = new System.Windows.Forms.TreeView();
+ this.buttonTreeViewCollapseAll = new System.Windows.Forms.Button();
+ this.buttonTreeViewExpandAll = new System.Windows.Forms.Button();
this.tabControl.SuspendLayout();
this.tabPageMessages.SuspendLayout();
this.tabPageDevices.SuspendLayout();
@@ -139,11 +141,13 @@
//
// tabPageDevices
//
+ this.tabPageDevices.Controls.Add(this.buttonTreeViewExpandAll);
+ this.tabPageDevices.Controls.Add(this.buttonTreeViewCollapseAll);
this.tabPageDevices.Controls.Add(this.treeViewDevices);
this.tabPageDevices.Location = new System.Drawing.Point(4, 22);
this.tabPageDevices.Name = "tabPageDevices";
this.tabPageDevices.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageDevices.Size = new System.Drawing.Size(918, 512);
+ this.tabPageDevices.Size = new System.Drawing.Size(894, 488);
this.tabPageDevices.TabIndex = 1;
this.tabPageDevices.Text = "Devices";
this.tabPageDevices.UseVisualStyleBackColor = true;
@@ -154,9 +158,29 @@
| System.Windows.Forms.AnchorStyles.Left)));
this.treeViewDevices.Location = new System.Drawing.Point(8, 6);
this.treeViewDevices.Name = "treeViewDevices";
- this.treeViewDevices.Size = new System.Drawing.Size(713, 498);
+ this.treeViewDevices.Size = new System.Drawing.Size(713, 474);
this.treeViewDevices.TabIndex = 0;
//
+ // buttonTreeViewCollapseAll
+ //
+ this.buttonTreeViewCollapseAll.Location = new System.Drawing.Point(813, 35);
+ this.buttonTreeViewCollapseAll.Name = "buttonTreeViewCollapseAll";
+ this.buttonTreeViewCollapseAll.Size = new System.Drawing.Size(75, 23);
+ this.buttonTreeViewCollapseAll.TabIndex = 1;
+ this.buttonTreeViewCollapseAll.Text = "Collapse All";
+ this.buttonTreeViewCollapseAll.UseVisualStyleBackColor = true;
+ this.buttonTreeViewCollapseAll.Click += new System.EventHandler(this.buttonTreeViewCollapseAll_Click);
+ //
+ // buttonTreeViewExpandAll
+ //
+ this.buttonTreeViewExpandAll.Location = new System.Drawing.Point(813, 6);
+ this.buttonTreeViewExpandAll.Name = "buttonTreeViewExpandAll";
+ this.buttonTreeViewExpandAll.Size = new System.Drawing.Size(75, 23);
+ this.buttonTreeViewExpandAll.TabIndex = 2;
+ this.buttonTreeViewExpandAll.Text = "Expand All";
+ this.buttonTreeViewExpandAll.UseVisualStyleBackColor = true;
+ this.buttonTreeViewExpandAll.Click += new System.EventHandler(this.buttonTreeViewExpandAll_Click);
+ //
// MainForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
@@ -175,5 +199,8 @@
}
#endregion Windows Form Designer generated code
+ private System.Windows.Forms.Button buttonTreeViewExpandAll;
+ private System.Windows.Forms.Button buttonTreeViewCollapseAll;
+
}
}
diff -r 8c2380995bb7 -r 09f1435bfb94 MainForm.cs
--- a/MainForm.cs Sun Feb 15 22:13:33 2015 +0100
+++ b/MainForm.cs Sun Feb 15 22:57:38 2015 +0100
@@ -166,5 +166,15 @@
listViewEvents.Items.Clear();
}
+ private void buttonTreeViewCollapseAll_Click(object sender, EventArgs e)
+ {
+ treeViewDevices.CollapseAll();
+ }
+
+ private void buttonTreeViewExpandAll_Click(object sender, EventArgs e)
+ {
+ treeViewDevices.ExpandAll();
+ }
+
}
}
diff -r 8c2380995bb7 -r 09f1435bfb94 RawInput.cs
--- a/RawInput.cs Sun Feb 15 22:13:33 2015 +0100
+++ b/RawInput.cs Sun Feb 15 22:57:38 2015 +0100
@@ -206,7 +206,20 @@
{
node.Nodes.Add(hidDevice.InputCapabilitiesDescription);
}
-
+
+ if (hidDevice.InputValueCapabilities != null)
+ {
+ foreach (HIDP_VALUE_CAPS caps in hidDevice.InputValueCapabilities)
+ {
+ string des = hidDevice.InputValueCapabilityDescription(caps);
+ if (des != null)
+ {
+ node.Nodes.Add(des);
+ }
+ }
+
+ }
+
node.Nodes.Add(hidDevice.Name);
}
}