From 1f7e2932048f8579f12b117294a39c15b87758dd Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 28 Feb 2023 23:56:11 +0100 Subject: [PATCH] add setcps to global scope --- packages/core/repl.mjs | 11 ++++++++--- packages/react/src/hooks/useStrudel.mjs | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index 045f2102..f0e6623f 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -2,6 +2,7 @@ import { Cyclist } from './cyclist.mjs'; import { evaluate as _evaluate } from './evaluate.mjs'; import { logger } from './logger.mjs'; import { setTime } from './time.mjs'; +import { evalScope } from './evaluate.mjs'; export function repl({ interval, @@ -17,13 +18,12 @@ export function repl({ }) { const scheduler = new Cyclist({ interval, - onTrigger: async (hap, deadline, duration) => { + onTrigger: async (hap, deadline, duration, cps) => { try { if (!hap.context.onTrigger || !hap.context.dominantTrigger) { await defaultOutput(hap, deadline, duration); } if (hap.context.onTrigger) { - const cps = 1; // call signature of output / onTrigger is different... await hap.context.onTrigger(getTime() + deadline, hap, getTime(), cps); } @@ -58,5 +58,10 @@ export function repl({ const stop = () => scheduler.stop(); const start = () => scheduler.start(); const pause = () => scheduler.pause(); - return { scheduler, evaluate, start, stop, pause }; + const setCps = (cps) => scheduler.setCps(cps); + evalScope({ + setCps, + setcps: setCps, + }); + return { scheduler, evaluate, start, stop, pause, setCps }; } diff --git a/packages/react/src/hooks/useStrudel.mjs b/packages/react/src/hooks/useStrudel.mjs index b0b1062c..0900ebbf 100644 --- a/packages/react/src/hooks/useStrudel.mjs +++ b/packages/react/src/hooks/useStrudel.mjs @@ -32,7 +32,7 @@ function useStrudel({ const shouldPaint = useCallback((pat) => !!(pat?.context?.onPaint && drawContext), [drawContext]); // TODO: make sure this hook reruns when scheduler.started changes - const { scheduler, evaluate, start, stop, pause } = useMemo( + const { scheduler, evaluate, start, stop, pause, setCps } = useMemo( () => repl({ interval, @@ -153,6 +153,7 @@ function useStrudel({ stop, pause, togglePlay, + setCps, }; }