예제 #1
0
 private void RegisterCpu(KeyInputController input)
 {
     InputController = input;
     foreach (var key in PIO.Values)
     {
         foreach (var kc in key.ResolveKeys().Where(x => x.IsKey).Select(x => x.Key))
         {
             input.AddMKey(BlockBehaviour, key, kc);
             input.Add(kc);
         }
         key.SetInputController(input);
         key.SetKeycodes(input, machineHandler.IsAnyEmulating);
         machineHandler.AddExtKeyEmulator(key);
         machineHandler.AddUpdatedKey(input, BlockBehaviour, key);
     }
 }
예제 #2
0
        private void Subscribe(ref KeyEvents events, JsValue keyCodeVal, JsValue action)
        {
            List <Action> actions;
            var           keyCode = Util2.AsKeyCode(keyCodeVal);

            if (events.TryGetValue(keyCode, out actions))
            {
                events          = new KeyEvents(events);
                events[keyCode] = actions = new List <Action>(actions);
            }
            else
            {
                events          = new KeyEvents(events);
                events[keyCode] = actions = new List <Action>();
            }
            //Logger.Debug("subscribe " + keyCode);
            actions.Add(() => action.Invoke((int)keyCode));
            if (keyInputController != null)
            {
                keyInputController.Add(keyCode);
            }
        }