Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import API from "renderer/lib/api"; import { defaultKeys, milkytrackerKeys, openMPTKeys } from "./defaultKeys"; interface KeyCommands { editNoteField?: (value: number | null) => void; editInstrumentField?: (value: number | null) => void; editEffectCodeField?: (value: number | null) => void; editEffectParamField?: (value: number | null) => void; editOffsetField?: (value: "+" | "-" | number | null) => void; editJumpField?: (value: number | null) => void; } export type KeyWhen = | null | "noteColumnFocus" | "instrumentColumnFocus" | "effectCodeColumnFocus" | "effectParamColumnFocus" | "offsetColumnFocus" | "jumpColumnFocus"; export type KeyBinding = | { key: string; command: "editOffsetField"; args: "+" | "-" | number | null; when: KeyWhen; } | { key: string; command: keyof Omit<KeyCommands, "editOffsetField">; args: number | null; when: KeyWhen; }; let keyBindings: KeyBinding[] = []; export const getKeys = (key: string, when: KeyWhen, cmds: KeyCommands) => { const pressedKey = keyBindings .reverse() .filter((k) => k.key === key && k.when === when)[0]; Iif (pressedKey) { if (pressedKey.command === "editOffsetField") { const command = cmds[pressedKey.command]; Iif (command) { command(pressedKey.args); } } else { const command = cmds[pressedKey.command]; Iif (command) { command(pressedKey.args); } } } }; export const initKeyBindings = async () => { const customTrackerKeyBindings = (await API.settings.get("trackerKeyBindings")) === 1 ? milkytrackerKeys : openMPTKeys; keyBindings = defaultKeys.concat(customTrackerKeyBindings); }; |