MIDI Documentation and optional mouse event support
Some checks failed
Deploy Website / deploy (push) Failing after 4m45s

This commit is contained in:
2026-02-01 00:51:56 +01:00
parent 2100b82dad
commit a0585b0814
14 changed files with 401 additions and 3 deletions

View File

@@ -32,6 +32,12 @@ pub struct StepContext {
pub fill: bool,
pub nudge_secs: f64,
pub cc_memory: Option<CcMemory>,
#[cfg(feature = "desktop")]
pub mouse_x: f64,
#[cfg(feature = "desktop")]
pub mouse_y: f64,
#[cfg(feature = "desktop")]
pub mouse_down: f64,
}
impl StepContext {

View File

@@ -427,6 +427,12 @@ impl Forth {
"speed" => Value::Float(ctx.speed, None),
"stepdur" => Value::Float(ctx.step_duration(), None),
"fill" => Value::Int(if ctx.fill { 1 } else { 0 }, None),
#[cfg(feature = "desktop")]
"mx" => Value::Float(ctx.mouse_x, None),
#[cfg(feature = "desktop")]
"my" => Value::Float(ctx.mouse_y, None),
#[cfg(feature = "desktop")]
"mdown" => Value::Float(ctx.mouse_down, None),
_ => Value::Int(0, None),
};
stack.push(val);

View File

@@ -753,6 +753,39 @@ pub const WORDS: &[Word] = &[
compile: Context("fill"),
varargs: false,
},
#[cfg(feature = "desktop")]
Word {
name: "mx",
aliases: &[],
category: "Desktop",
stack: "(-- x)",
desc: "Normalized mouse X position (0-1)",
example: "mx 440 880 range freq",
compile: Context("mx"),
varargs: false,
},
#[cfg(feature = "desktop")]
Word {
name: "my",
aliases: &[],
category: "Desktop",
stack: "(-- y)",
desc: "Normalized mouse Y position (0-1)",
example: "my 0.1 0.9 range gain",
compile: Context("my"),
varargs: false,
},
#[cfg(feature = "desktop")]
Word {
name: "mdown",
aliases: &[],
category: "Desktop",
stack: "(-- bool)",
desc: "1 when mouse button held, 0 otherwise",
example: "mdown { \"crash\" s . } ?",
compile: Context("mdown"),
varargs: false,
},
// Music
Word {
name: "mtof",