# HG changeset patch
# User sl
# Date 1419365837 -3600
# Node ID b3e1770628490dff05cfb8461fa6a8820208ae43
# Parent 53886b25c49d38809dfc3fbc2cbbebe197168bf7
Adding colums to our listview.
diff -r 53886b25c49d -r b3e177062849 HidDevice.cs
--- a/HidDevice.cs Mon Dec 22 12:46:22 2014 +0100
+++ b/HidDevice.cs Tue Dec 23 21:17:17 2014 +0100
@@ -10,7 +10,7 @@
///
/// Represent a HID device.
///
- class HidDevice
+ public class HidDevice
{
public string Name { get; private set; }
public string Manufacturer { get; private set; }
diff -r 53886b25c49d -r b3e177062849 HidEvent.cs
--- a/HidEvent.cs Mon Dec 22 12:46:22 2014 +0100
+++ b/HidEvent.cs Tue Dec 23 21:17:17 2014 +0100
@@ -13,7 +13,7 @@
///
/// Represent a HID event.
///
- class HidEvent
+ public class HidEvent
{
public bool IsValid { get; private set; }
public bool IsForeground { get; private set; }
@@ -202,6 +202,30 @@
}
+ public ListViewItem ListViewItem
+ {
+ get
+ {
+ //TODO: What to do with multiple usage
+ string usage="";
+ UsagePage usagePage=(UsagePage)UsagePage;
+ switch (usagePage)
+ {
+ case Hid.UsagePage.Consumer:
+ usage= ((Hid.UsageTables.ConsumerControl)Usages[0]).ToString();
+ break;
+
+ case Hid.UsagePage.WindowsMediaCenterRemoteControl:
+ usage= ((Hid.UsageTables.WindowsMediaCenterRemoteControl)Usages[0]).ToString();
+ break;
+
+ }
+
+ ListViewItem item = new ListViewItem(new[] { usage, UsagePage.ToString("X2"), UsageCollection.ToString("X2") });
+ return item;
+ }
+ }
+
}
diff -r 53886b25c49d -r b3e177062849 HidHandler.cs
--- a/HidHandler.cs Mon Dec 22 12:46:22 2014 +0100
+++ b/HidHandler.cs Tue Dec 23 21:17:17 2014 +0100
@@ -15,7 +15,7 @@
///
/// Our HID handler manages raw input registrations, processes WM_INPUT messages and broadcasts HID events in return.
///
- class HidHandler
+ public class HidHandler
{
public delegate void HidEventHandler(object aSender, HidEvent aHidEvent);
public event HidEventHandler OnHidEvent;
diff -r 53886b25c49d -r b3e177062849 MainForm.cs
--- a/MainForm.cs Mon Dec 22 12:46:22 2014 +0100
+++ b/MainForm.cs Tue Dec 23 21:17:17 2014 +0100
@@ -21,7 +21,9 @@
private Label labelButtonName;
private Label labelDeviceName;
private ListView listViewEvents;
- private ColumnHeader columnHeaderEventName;
+ private ColumnHeader columnHeaderUsage;
+ private ColumnHeader columnHeaderUsagePage;
+ private ColumnHeader columnHeaderUsageCollection;
private Timer _timer;
public MainForm()
@@ -62,7 +64,9 @@
this.labelButtonName = new System.Windows.Forms.Label();
this.labelDeviceName = new System.Windows.Forms.Label();
this.listViewEvents = new System.Windows.Forms.ListView();
- this.columnHeaderEventName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderUsage = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderUsagePage = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderUsageCollection = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.SuspendLayout();
//
// labelButtonName
@@ -92,7 +96,9 @@
| System.Windows.Forms.AnchorStyles.Left)));
this.listViewEvents.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.listViewEvents.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeaderEventName});
+ this.columnHeaderUsage,
+ this.columnHeaderUsagePage,
+ this.columnHeaderUsageCollection});
this.listViewEvents.GridLines = true;
this.listViewEvents.Location = new System.Drawing.Point(12, 12);
this.listViewEvents.Name = "listViewEvents";
@@ -101,10 +107,20 @@
this.listViewEvents.UseCompatibleStateImageBehavior = false;
this.listViewEvents.View = System.Windows.Forms.View.Details;
//
- // columnHeaderEventName
+ // columnHeaderUsage
//
- this.columnHeaderEventName.Text = "Event Name";
- this.columnHeaderEventName.Width = 180;
+ this.columnHeaderUsage.Text = "Usage";
+ this.columnHeaderUsage.Width = 180;
+ //
+ // columnHeaderUsagePage
+ //
+ this.columnHeaderUsagePage.Text = "Usage Page";
+ this.columnHeaderUsagePage.Width = 120;
+ //
+ // columnHeaderUsageCollection
+ //
+ this.columnHeaderUsageCollection.Text = "Usage Collection";
+ this.columnHeaderUsageCollection.Width = 120;
//
// MainForm
//
@@ -136,8 +152,13 @@
{
_remote = new RemoteControlDevice(this.Handle);
_remote.ButtonPressed += new Devices.RemoteControl.RemoteControlDevice.RemoteControlDeviceEventHandler(_remote_ButtonPressed);
+ _remote.iHidHandler.OnHidEvent += HandleHidEvent;
}
+ void HandleHidEvent(object aSender, Hid.HidEvent aHidEvent)
+ {
+ listViewEvents.Items.Insert(0, aHidEvent.ListViewItem);
+ }
protected override void WndProc(ref Message message)
{
@@ -168,14 +189,12 @@
labelButtonName.Text += " / HP:" + ((Hid.UsageTables.HpWindowsMediaCenterRemoteControl)e.MceButton).ToString();
}
- processed = true;
- listViewEvents.Items.Insert(0,labelButtonName.Text);
+ processed = true;
}
else if (e.ConsumerControl != Hid.UsageTables.ConsumerControl.Null)
{
//Display consumer control name
labelButtonName.Text = e.ConsumerControl.ToString();
- listViewEvents.Items.Insert(0, labelButtonName.Text);
processed = true;
}
else
diff -r 53886b25c49d -r b3e177062849 RemoteControlDevice.cs
--- a/RemoteControlDevice.cs Mon Dec 22 12:46:22 2014 +0100
+++ b/RemoteControlDevice.cs Tue Dec 23 21:17:17 2014 +0100
@@ -166,7 +166,7 @@
///
public delegate bool HidUsageHandler(ushort aUsage);
- Hid.HidHandler iHidHandler;
+ public Hid.HidHandler iHidHandler;
//-------------------------------------------------------------
diff -r 53886b25c49d -r b3e177062849 Win32RawInput.cs
--- a/Win32RawInput.cs Mon Dec 22 12:46:22 2014 +0100
+++ b/Win32RawInput.cs Tue Dec 23 21:17:17 2014 +0100
@@ -190,7 +190,7 @@
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- internal struct RAWINPUTDEVICE
+ public struct RAWINPUTDEVICE
{
[MarshalAs(UnmanagedType.U2)]
public ushort usUsagePage;
@@ -203,7 +203,7 @@
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- internal struct RAWINPUTHEADER
+ public struct RAWINPUTHEADER
{
[MarshalAs(UnmanagedType.U4)]
public int dwType;
@@ -216,7 +216,7 @@
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- internal struct RAWHID
+ public struct RAWHID
{
[MarshalAs(UnmanagedType.U4)]
public uint dwSizeHid;
@@ -228,7 +228,7 @@
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- internal struct BUTTONSSTR
+ public struct BUTTONSSTR
{
[MarshalAs(UnmanagedType.U2)]
public ushort usButtonFlags;
@@ -238,7 +238,7 @@
[StructLayout(LayoutKind.Explicit, Pack = 1)]
- internal struct RAWMOUSE
+ public struct RAWMOUSE
{
[MarshalAs(UnmanagedType.U2)]
[FieldOffset(0)]
@@ -263,7 +263,7 @@
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- internal struct RAWKEYBOARD
+ public struct RAWKEYBOARD
{
[MarshalAs(UnmanagedType.U2)]
public ushort MakeCode;
@@ -281,7 +281,7 @@
[StructLayout(LayoutKind.Explicit, Pack = 1)]
- internal struct RAWINPUT
+ public struct RAWINPUT
{
[FieldOffset(0)]
public RAWINPUTHEADER header;
@@ -295,7 +295,7 @@
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- internal struct RID_DEVICE_INFO_MOUSE
+ public struct RID_DEVICE_INFO_MOUSE
{
public uint dwId;
public uint dwNumberOfButtons;
@@ -305,7 +305,7 @@
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- internal struct RID_DEVICE_INFO_KEYBOARD
+ public struct RID_DEVICE_INFO_KEYBOARD
{
public uint dwType;
public uint dwSubType;
@@ -316,7 +316,7 @@
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- internal struct RID_DEVICE_INFO_HID
+ public struct RID_DEVICE_INFO_HID
{
public uint dwVendorId;
public uint dwProductId;
@@ -326,7 +326,7 @@
}
[StructLayout(LayoutKind.Explicit, Pack = 1)]
- internal struct RID_DEVICE_INFO
+ public struct RID_DEVICE_INFO
{
[FieldOffset(0)]
public uint cbSize;