From e0c8a427f13618d6bf2585cbf4daa78a8ac125c8 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Thu, 5 Sep 2024 18:08:43 +0300 Subject: [PATCH] wip: 12 errors --- crates/tek_mixer/src/sample_add.rs | 4 +- crates/tek_mixer/src/sampler.rs | 53 -------------------- crates/tek_mixer/src/sampler_handle.rs | 45 +++++++++++++++++ crates/tek_mixer/src/sampler_view.rs | 6 +++ crates/tek_mixer/src/track.rs | 2 +- crates/tek_sequencer/src/arranger_rename.rs | 2 +- crates/tek_sequencer/src/phrase.rs | 2 +- crates/tek_sequencer/src/sequencer_handle.rs | 2 +- crates/tek_sequencer/src/transport_handle.rs | 15 +++--- 9 files changed, 65 insertions(+), 66 deletions(-) create mode 100644 crates/tek_mixer/src/sampler_handle.rs diff --git a/crates/tek_mixer/src/sample_add.rs b/crates/tek_mixer/src/sample_add.rs index 2d6b9f02..85010f00 100644 --- a/crates/tek_mixer/src/sample_add.rs +++ b/crates/tek_mixer/src/sample_add.rs @@ -58,8 +58,8 @@ impl Render for AddSampleModal { } } impl Handle for AddSampleModal { - fn handle (&mut self, e: &Tui) -> Usually { - if handle_keymap(self, e, KEYMAP_ADD_SAMPLE)? { + fn handle (&mut self, from: &Tui) -> Perhaps { + if handle_keymap(self, &from.event(), KEYMAP_ADD_SAMPLE)? { return Ok(true) } Ok(true) diff --git a/crates/tek_mixer/src/sampler.rs b/crates/tek_mixer/src/sampler.rs index f7c7a6ab..675582e7 100644 --- a/crates/tek_mixer/src/sampler.rs +++ b/crates/tek_mixer/src/sampler.rs @@ -13,61 +13,8 @@ pub struct Sampler { pub modal: Arc>>>, pub output_gain: f32 } -impl Handle for Sampler { - fn handle (&mut self, e: &Tui) -> Perhaps { - handle_keymap(self, event, KEYMAP_SAMPLER) - } -} -impl Render for Sampler { - fn render (&self, to: &mut Tui) -> Perhaps { - tui_render_sampler(self, to) - } -} - process!(Sampler = Sampler::process); - - -/// Key bindings for sampler device. -pub const KEYMAP_SAMPLER: &'static [KeyBinding] = keymap!(Sampler { - [Up, NONE, "/sampler/cursor/up", "move cursor up", |state: &mut Sampler| { - state.cursor.0 = if state.cursor.0 == 0 { - state.mapped.len() + state.unmapped.len() - 1 - } else { - state.cursor.0 - 1 - }; - Ok(true) - }], - [Down, NONE, "/sampler/cursor/down", "move cursor down", |state: &mut Sampler| { - state.cursor.0 = (state.cursor.0 + 1) % (state.mapped.len() + state.unmapped.len()); - Ok(true) - }], - [Char('p'), NONE, "/sampler/play", "play current sample", |state: &mut Sampler| { - if let Some(sample) = state.sample() { - state.voices.write().unwrap().push(Sample::play(sample, 0, &100.into())); - } - Ok(true) - }], - [Char('a'), NONE, "/sampler/add", "add a new sample", |state: &mut Sampler| { - let sample = Arc::new(RwLock::new(Sample::new("", 0, 0, vec![]))); - *state.modal.lock().unwrap() = Some(Exit::boxed(AddSampleModal::new(&sample, &state.voices)?)); - state.unmapped.push(sample); - Ok(true) - }], - [Char('r'), NONE, "/sampler/replace", "replace selected sample", |state: &mut Sampler| { - if let Some(sample) = state.sample() { - *state.modal.lock().unwrap() = Some(Exit::boxed(AddSampleModal::new(&sample, &state.voices)?)); - } - Ok(true) - }], - [Enter, NONE, "/sampler/edit", "edit selected sample", |state: &mut Sampler| { - if let Some(sample) = state.sample() { - state.editing = Some(sample.clone()); - } - Ok(true) - }], -}); - impl Sampler { pub fn from_edn <'e> (args: &[Edn<'e>]) -> Usually> { let mut name = String::new(); diff --git a/crates/tek_mixer/src/sampler_handle.rs b/crates/tek_mixer/src/sampler_handle.rs new file mode 100644 index 00000000..9bb41782 --- /dev/null +++ b/crates/tek_mixer/src/sampler_handle.rs @@ -0,0 +1,45 @@ +use crate::*; +impl Handle for Sampler { + fn handle (&mut self, from: &Tui) -> Perhaps { + handle_keymap(self, &from.event(), KEYMAP_SAMPLER) + } +} +/// Key bindings for sampler device. +pub const KEYMAP_SAMPLER: &'static [KeyBinding] = keymap!(Sampler { + [Up, NONE, "/sampler/cursor/up", "move cursor up", |state: &mut Sampler| { + state.cursor.0 = if state.cursor.0 == 0 { + state.mapped.len() + state.unmapped.len() - 1 + } else { + state.cursor.0 - 1 + }; + Ok(true) + }], + [Down, NONE, "/sampler/cursor/down", "move cursor down", |state: &mut Sampler| { + state.cursor.0 = (state.cursor.0 + 1) % (state.mapped.len() + state.unmapped.len()); + Ok(true) + }], + [Char('p'), NONE, "/sampler/play", "play current sample", |state: &mut Sampler| { + if let Some(sample) = state.sample() { + state.voices.write().unwrap().push(Sample::play(sample, 0, &100.into())); + } + Ok(true) + }], + [Char('a'), NONE, "/sampler/add", "add a new sample", |state: &mut Sampler| { + let sample = Arc::new(RwLock::new(Sample::new("", 0, 0, vec![]))); + *state.modal.lock().unwrap() = Some(Exit::boxed(AddSampleModal::new(&sample, &state.voices)?)); + state.unmapped.push(sample); + Ok(true) + }], + [Char('r'), NONE, "/sampler/replace", "replace selected sample", |state: &mut Sampler| { + if let Some(sample) = state.sample() { + *state.modal.lock().unwrap() = Some(Exit::boxed(AddSampleModal::new(&sample, &state.voices)?)); + } + Ok(true) + }], + [Enter, NONE, "/sampler/edit", "edit selected sample", |state: &mut Sampler| { + if let Some(sample) = state.sample() { + state.editing = Some(sample.clone()); + } + Ok(true) + }], +}); diff --git a/crates/tek_mixer/src/sampler_view.rs b/crates/tek_mixer/src/sampler_view.rs index fd3e910f..3e77c159 100644 --- a/crates/tek_mixer/src/sampler_view.rs +++ b/crates/tek_mixer/src/sampler_view.rs @@ -1,5 +1,11 @@ use crate::*; +impl Render for Sampler { + fn render (&self, to: &mut Tui) -> Perhaps { + tui_render_sampler(self, to) + } +} + pub fn tui_render_sampler (sampler: &Sampler, to: &mut Tui) -> Perhaps { let Rect { x, y, height, .. } = to.area(); let style = Style::default().gray(); diff --git a/crates/tek_mixer/src/track.rs b/crates/tek_mixer/src/track.rs index 9c6a239d..06f14a96 100644 --- a/crates/tek_mixer/src/track.rs +++ b/crates/tek_mixer/src/track.rs @@ -50,7 +50,7 @@ impl Track { //}) //} - pub fn from_edn <'a, 'e> (args: &[Edn<'e>]) -> Usually { + pub fn from_edn <'a, 'e> (args: &[Edn<'e>]) -> Usually> { let mut _gain = 0.0f64; let mut track = Self::new("")?; #[allow(unused_mut)] diff --git a/crates/tek_sequencer/src/arranger_rename.rs b/crates/tek_sequencer/src/arranger_rename.rs index fcd2fe4e..6fa4f4f7 100644 --- a/crates/tek_sequencer/src/arranger_rename.rs +++ b/crates/tek_sequencer/src/arranger_rename.rs @@ -1,5 +1,5 @@ use crate::*; -impl<'a> Arranger { +impl Arranger { pub fn rename_selected (&mut self) { self.modal = Some(Box::new(ArrangerRenameModal::new( self.selected, diff --git a/crates/tek_sequencer/src/phrase.rs b/crates/tek_sequencer/src/phrase.rs index 4382756a..91347007 100644 --- a/crates/tek_sequencer/src/phrase.rs +++ b/crates/tek_sequencer/src/phrase.rs @@ -146,7 +146,7 @@ impl Phrase { }} } -impl Arranger { +impl Arranger { pub fn phrase (&self) -> Option<&Arc>> { let track_id = self.selected.track()?; self.tracks.get(track_id)?.phrases.get((*self.scene()?.clips.get(track_id)?)?) diff --git a/crates/tek_sequencer/src/sequencer_handle.rs b/crates/tek_sequencer/src/sequencer_handle.rs index b43a8695..7f759e1f 100644 --- a/crates/tek_sequencer/src/sequencer_handle.rs +++ b/crates/tek_sequencer/src/sequencer_handle.rs @@ -1,6 +1,6 @@ use crate::*; -impl Handle for TransportQuantize { +impl Handle for Sequencer { fn handle (&mut self, from: &Tui) -> Perhaps { handle_keymap(self, &from.event(), KEYMAP_SEQUENCER) } diff --git a/crates/tek_sequencer/src/transport_handle.rs b/crates/tek_sequencer/src/transport_handle.rs index 4e28de32..03833f3f 100644 --- a/crates/tek_sequencer/src/transport_handle.rs +++ b/crates/tek_sequencer/src/transport_handle.rs @@ -2,13 +2,14 @@ use crate::*; impl Handle for TransportToolbar { fn handle (&mut self, from: &Tui) -> Perhaps { - Ok( - from.key(KeyCode::Right).does(||self.focus_next())? - || - from.key(KeyCode::Left).does(||self.focus_prev())? - || - from.key(KeyCode::Char(' ')).does(||self.toggle_play())? - ) + Ok(None) + //Ok( + //from.key(KeyCode::Right).does(||self.focus_next())? + //|| + //from.key(KeyCode::Left).does(||self.focus_prev())? + //|| + //from.key(KeyCode::Char(' ')).does(||self.toggle_play())? + //) } }