/// <summary> /// Here we receive HID events from our HID library. /// </summary> /// <param name="aSender"></param> /// <param name="aHidEvent"></param> public void HandleHidEventThreadSafe(object aSender, SharpLib.Hid.Event aHidEvent) { if (aHidEvent.IsStray || !aHidEvent.IsValid) { //Stray event just ignore it return; } if (this.InvokeRequired) { //Not in the proper thread, invoke ourselves OnHidEventDelegate d = new OnHidEventDelegate(HandleHidEventThreadSafe); this.Invoke(d, new object[] { aSender, aHidEvent }); } else { //Trigger corresponding EAR event if any EventHid e = new EventHid(); e.Copy(aHidEvent); Properties.Settings.Default.EarManager.TriggerEvents(e); } }