diff -r 448e6a616c22 -r 30a221eecc06 Server/Events/EventHid.cs
--- a/Server/Events/EventHid.cs Fri Aug 19 19:28:03 2016 +0200
+++ b/Server/Events/EventHid.cs Sat Aug 20 21:00:35 2016 +0200
@@ -41,13 +41,13 @@
public bool IsKeyUp { get; set; } = false;
[DataMember]
- public bool IsMouse { get; set; }
+ public bool IsMouse { get; set; } = false;
[DataMember]
- public bool IsKeyboard { get; set; }
+ public bool IsKeyboard { get; set; } = false;
[DataMember]
- public bool IsGeneric { get; set; }
+ public bool IsGeneric { get; set; } = false;
[DataMember]
public bool HasModifierShift { get; set; } = false;
@@ -61,6 +61,10 @@
[DataMember]
public bool HasModifierWindows { get; set; } = false;
+ [DataMember]
+ public string PersistedBrief { get; set; } = "Press a key";
+
+
protected override void DoConstruct()
{
@@ -73,7 +77,6 @@
}
-
///
/// Make sure we distinguish between various configuration of this event
///
@@ -108,7 +111,7 @@
}
else if (IsGeneric)
{
-
+ brief += PersistedBrief;
}
if (IsKeyUp)
@@ -143,5 +146,111 @@
return false;
}
+
+
+ ///
+ ///
+ ///
+ protected override void OnStateLeave()
+ {
+ if (CurrentState == State.Edit)
+ {
+ // Leaving edit mode
+ // Unhook HID events
+ Program.HidHandler.OnHidEvent -= HandleHidEvent;
+
+ }
+ }
+
+ ///
+ ///
+ ///
+ protected override void OnStateEnter()
+ {
+ if (CurrentState == State.Edit)
+ {
+ // Enter edit mode
+ // Hook-in HID events
+ Program.HidHandler.OnHidEvent += HandleHidEvent;
+
+ }
+ }
+
+ ///
+ /// Here we receive HID events from our HID library.
+ ///
+ ///
+ ///
+ public void HandleHidEvent(object aSender, SharpLib.Hid.Event aHidEvent)
+ {
+ if (CurrentState != State.Edit
+ || aHidEvent.IsMouse
+ || aHidEvent.IsButtonUp
+ || !aHidEvent.IsValid
+ || aHidEvent.IsBackground
+ || aHidEvent.IsRepeat
+ || aHidEvent.IsStray)
+ {
+ return;
+ }
+
+ PrivateCopy(aHidEvent);
+ //
+
+ //Tell observer the object itself changed
+ OnPropertyChanged("Brief");
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void Copy(Hid.Event aHidEvent)
+ {
+ PrivateCopy(aHidEvent);
+ //We need the key up/down too here
+ IsKeyUp = aHidEvent.IsButtonUp;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ private void PrivateCopy(Hid.Event aHidEvent)
+ {
+ //Copy for scan
+ UsagePage = aHidEvent.UsagePage;
+ UsageCollection = aHidEvent.UsageCollection;
+ IsGeneric = aHidEvent.IsGeneric;
+ IsKeyboard = aHidEvent.IsKeyboard;
+ IsMouse = aHidEvent.IsMouse;
+
+ if (IsGeneric)
+ {
+ if (aHidEvent.Usages.Count > 0)
+ {
+ Usage = aHidEvent.Usages[0];
+ PersistedBrief = aHidEvent.UsageName(0);
+ }
+
+ Key = Keys.None;
+ HasModifierAlt = false;
+ HasModifierControl = false;
+ HasModifierShift = false;
+ HasModifierWindows = false;
+ }
+ else if (IsKeyboard)
+ {
+ Usage = 0;
+ Key = aHidEvent.VirtualKey;
+ HasModifierAlt = aHidEvent.HasModifierAlt;
+ HasModifierControl = aHidEvent.HasModifierControl;
+ HasModifierShift = aHidEvent.HasModifierShift;
+ HasModifierWindows = aHidEvent.HasModifierWindows;
+ }
+
+ }
+
+
}
}