public async Task KeyDownEvent(List <ushort> keyValues) { foreach (ushort keyValue in keyValues) { if (!SentKeys.Contains(keyValue)) { //no point in sending this key if its already being pressed if (!ReceivedKeys.Contains(keyValue)) { SentKeys.Add(keyValue); } } } await SendPressedKeys(); }
public void ReceivedKeyMessage(KeyMsg keyMsg) { List <ushort> receivedKeys = keyMsg.keyValues; List <ushort> curKeys = this.ReceivedKeys; //compaire to KeyPressed //find keys that have been released List <ushort> releasedKeys = GetMissingFromSecondList(curKeys, receivedKeys); foreach (ushort keyValue in releasedKeys) { eventMgr.TriggerKeyPress(keyValue, false); ReceivedKeys.Remove(keyValue); } //find keys that have just been pressed List <ushort> newPressedKeys = GetMissingFromSecondList(receivedKeys, curKeys); foreach (ushort keyValue in newPressedKeys) { eventMgr.TriggerKeyPress(keyValue, true); ReceivedKeys.Add(keyValue); } /* * foreach(ushort keyValue in receivedKeys) * { * eventMgr.TriggerKeyPress(keyValue, true); * } */ /* * Console.Write("Received: "); * foreach(ushort keyValue in ReceivedKeys) * { * Console.Write(keyValue); * } * Console.WriteLine(); */ }