From e907fd0adac1895bbc7c6ef0c952349b5322b6e8 Mon Sep 17 00:00:00 2001 From: breel Date: Tue, 10 Mar 2026 20:53:44 -0600 Subject: [PATCH] text useful --- src/main.rs | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 6ccd31e..4f18372 100644 --- a/src/main.rs +++ b/src/main.rs @@ -50,28 +50,47 @@ fn main() { enum Syn { Real(Synthesizer), - Text(std::collections::HashMap), + Text(std::collections::HashMap>), } impl Syn { fn note_on(&mut self, a: i32, b: i32, c: i32) { match self { Syn::Real(syn) => syn.note_on(a, b, c), - Syn::Text(m) => eprintln!("note_on({:?}, {:?}, {:?})", a, b, c), + Syn::Text(m) => { + eprintln!("note_on({:?}, {:?}, {:?})", a, b, c); + match m.get_mut(&a) { + Some(m2) => { m2.insert(b, c); }, + None => { + let mut m2 = std::collections::HashMap::new(); + m2.insert(b, c); + m.insert(a, m2); + }, + }; + }, }; } fn note_off(&mut self, a: i32, b: i32) { match self { Syn::Real(syn) => syn.note_off(a, b), - Syn::Text(m) => eprintln!("note_off({:?}, {:?})", a, b), + Syn::Text(m) => { + eprintln!("note_off({:?}, {:?})", a, b); + match m.get_mut(&a) { + Some(m) => { m.remove(&b); }, + None => {}, + }; + + }, }; } fn render(&mut self, a: &mut [f32], b: &mut [f32]) { match self { Syn::Real(syn) => syn.render(a, b), - Syn::Text(m) => eprintln!("render({:?})", m), + Syn::Text(m) => { + eprintln!("render({:?})", m) + }, }; } }