From 570c7a0d6b11f474a406f86072cd5803bc56f528 Mon Sep 17 00:00:00 2001 From: "Jade (Rose) Rowland" Date: Tue, 14 Jan 2025 00:03:44 -0500 Subject: [PATCH] _keyDown --- packages/core/signal.mjs | 19 ++++++++++++++++--- packages/core/util.mjs | 13 +------------ 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index 7e948255..36f07df5 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -8,7 +8,7 @@ import { Hap } from './hap.mjs'; import { Pattern, fastcat, reify, silence, stack, register } from './pattern.mjs'; import Fraction from './fraction.mjs'; -import { id, isKeyDown } from './util.mjs'; +import { id, keyAlias, getCurrentKeyboardState } from './util.mjs'; export function steady(value) { // A continuous value @@ -641,6 +641,19 @@ export const always = register('always', function (func, pat) { return func(pat); }); +//keyname: string | Array +//keyname reference: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values +export function _keyDown(keyname) { + if (Array.isArray(keyname) === false) { + keyname = [keyname]; + } + const keyState = getCurrentKeyboardState(); + return keyname.every((x) => { + const keyName = keyAlias.get(x) ?? x; + return keyState[keyName]; + }); +} + /** * * Do something on a keypress, or array of keypresses @@ -654,7 +667,7 @@ export const always = register('always', function (func, pat) { */ export const whenKey = register('whenKey', function (input, func, pat) { - return pat.when(keyDown(input), func); + return pat.when(_keyDown(input), func); }); /** @@ -670,5 +683,5 @@ export const whenKey = register('whenKey', function (input, func, pat) { */ export const keyDown = register('keyDown', function (pat) { - return pat.fmap(isKeyDown); + return pat.fmap(_keyDown); }); diff --git a/packages/core/util.mjs b/packages/core/util.mjs index 8b623e0b..13421f7d 100644 --- a/packages/core/util.mjs +++ b/packages/core/util.mjs @@ -465,18 +465,7 @@ export function getCurrentKeyboardState() { return { ...keyState }; // Return a shallow copy of the key state object } -//keyname: string | Array -//keyname reference: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values -export function isKeyDown(keyname) { - if (Array.isArray(keyname) === false) { - keyname = [keyname]; - } - const keyState = getCurrentKeyboardState(); - return keyname.every((x) => { - const keyName = keyAlias.get(x) ?? x; - return keyState[keyName]; - }); -} + // Floating point versions, see Fraction for rational versions // // greatest common divisor