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); } }
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); } }