remove onLog callbacks

This commit is contained in:
Felix Roos 2022-11-12 12:07:02 +01:00
parent 0b9d59bf0e
commit 27fb2d2d5b
6 changed files with 1635 additions and 1628 deletions

View file

@ -5,6 +5,7 @@ This program is free software: you can redistribute it and/or modify it under th
*/
import createClock from './zyklus.mjs';
import { logger } from './logger.mjs';
export class Cyclist {
worker;
@ -13,10 +14,9 @@ export class Cyclist {
cps = 1; // TODO
getTime;
phase = 0;
constructor({ interval, onTrigger, onToggle, onError, getTime, latency = 0.1, onLog }) {
constructor({ interval, onTrigger, onToggle, onError, getTime, latency = 0.1 }) {
this.getTime = getTime;
this.onToggle = onToggle;
this.onLog = onLog;
this.latency = latency;
const round = (x) => Math.round(x * 1000) / 1000;
this.clock = createClock(
@ -39,7 +39,7 @@ export class Cyclist {
}
});
} catch (e) {
onLog(`error: ${e.message}`);
logger(`[cyclist] error: ${e.message}`);
onError?.(e);
}
}, // called slightly before each cycle
@ -57,17 +57,17 @@ export class Cyclist {
if (!this.pattern) {
throw new Error('Scheduler: no pattern set! call .setPattern first.');
}
this.onLog?.('start');
logger('[cyclist] start');
this.clock.start();
this.setStarted(true);
}
pause() {
this.onLog?.('pause');
logger('[cyclist] pause');
this.clock.pause();
this.setStarted(false);
}
stop() {
this.onLog?.('stop');
logger('[cyclist] stop');
this.clock.stop();
this.setStarted(false);
}

View file

@ -1,5 +1,6 @@
import { Cyclist } from './cyclist.mjs';
import { evaluate as _evaluate } from './evaluate.mjs';
import { logger } from './logger.mjs';
export function repl({
interval,
@ -11,7 +12,6 @@ export function repl({
getTime,
transpiler,
onToggle,
onLog,
}) {
const scheduler = new Cyclist({
interval,
@ -24,13 +24,12 @@ export function repl({
// call signature of output / onTrigger is different...
return await hap.context.onTrigger(getTime() + deadline, hap, getTime(), cps);
} catch (err) {
onLog?.(`[cyclist] error: ${err.message}`, 'error');
logger(`[cyclist] error: ${err.message}`, 'error');
}
},
onError: onSchedulerError,
getTime,
onToggle,
onLog: (message, type) => onLog?.(`[cyclist] ${message}`, type),
});
const evaluate = async (code, autostart = true) => {
if (!code) {
@ -39,13 +38,13 @@ export function repl({
try {
beforeEval({ code });
const { pattern } = await _evaluate(code, transpiler);
onLog?.(`[eval] code updated`);
logger(`[eval] code updated`);
scheduler.setPattern(pattern, autostart);
afterEval({ code, pattern });
return pattern;
} catch (err) {
// console.warn(`[repl] eval error: ${err.message}`);
onLog?.(`[eval] error: ${err.message}`, 'error');
logger(`[eval] error: ${err.message}`, 'error');
onEvalError?.(err);
}
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -11,7 +11,6 @@ function useStrudel({
autolink = false,
afterEval,
onEvalError,
onLog,
}) {
// scheduler
const [schedulerError, setSchedulerError] = useState();
@ -27,7 +26,6 @@ function useStrudel({
() =>
repl({
interval,
onLog,
defaultOutput,
onSchedulerError: setSchedulerError,
onEvalError: (err) => {