Beispiel #1
0
 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();
 }
Beispiel #2
0
        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();
             */
        }