fix randomizing clip color in arrangement

This commit is contained in:
🪞👃🪞 2024-10-18 19:04:45 +03:00
parent e4a51c80eb
commit 1d8b5d75b9
3 changed files with 15 additions and 4 deletions

View file

@ -274,7 +274,16 @@ impl<E: Engine> Arrangement<E> {
}, },
_ => todo!("arrangement: move forward") _ => todo!("arrangement: move forward")
} }
}
pub fn randomize_color (&mut self) {
match self.selected {
ArrangementFocus::Mix => {},
ArrangementFocus::Track(t) => { todo!("randomize track color") },
ArrangementFocus::Scene(s) => { todo!("randomize scene color") },
ArrangementFocus::Clip(t, s) => if let Some(phrase) = &self.scenes[s].clips[t] {
phrase.write().unwrap().color = random_color();
}
}
} }
} }
/// Methods for tracks in arrangement /// Methods for tracks in arrangement

View file

@ -40,7 +40,6 @@ impl Arranger<Tui> {
}; };
match from.event() { match from.event() {
key!(KeyCode::Char('a')) => handle_phrase(), key!(KeyCode::Char('a')) => handle_phrase(),
key!(KeyCode::Char('c')) => handle_phrase(),
key!(KeyCode::Char('i')) => handle_phrase(), key!(KeyCode::Char('i')) => handle_phrase(),
key!(KeyCode::Char('d')) => handle_phrase(), key!(KeyCode::Char('d')) => handle_phrase(),
_ => self.arrangement.handle(from) _ => self.arrangement.handle(from)
@ -58,6 +57,7 @@ impl Handle<Tui> for Arrangement<Tui> {
key!(KeyCode::Char(',')) => { self.decrement(); }, key!(KeyCode::Char(',')) => { self.decrement(); },
key!(KeyCode::Char('<')) => { self.move_back(); }, key!(KeyCode::Char('<')) => { self.move_back(); },
key!(KeyCode::Char('>')) => { self.move_forward(); }, key!(KeyCode::Char('>')) => { self.move_forward(); },
key!(KeyCode::Char('c')) => { self.randomize_color(); },
key!(KeyCode::Char('s')) => { self.phrase_put(); }, key!(KeyCode::Char('s')) => { self.phrase_put(); },
key!(KeyCode::Char('g')) => { self.phrase_get(); }, key!(KeyCode::Char('g')) => { self.phrase_get(); },
key!(Ctrl-KeyCode::Char('a')) => { self.scene_add(None, None)?; }, key!(Ctrl-KeyCode::Char('a')) => { self.scene_add(None, None)?; },

View file

@ -99,8 +99,10 @@ impl Content for PhraseEditor<Tui> {
let src_x = ((x as usize + time_axis.start) * time_axis.scale) as usize; let src_x = ((x as usize + time_axis.start) * time_axis.scale) as usize;
let src_y = (y as usize + note_axis.start) as usize; let src_y = (y as usize + note_axis.start) as usize;
if src_x < buffer.width && src_y < buffer.height - 1 { if src_x < buffer.width && src_y < buffer.height - 1 {
let src = buffer.get(src_x, buffer.height - src_y); buffer.get(src_x, buffer.height - src_y).map(|src|{
src.map(|src|{ cell.set_symbol(src.symbol()); cell.set_fg(src.fg); }); cell.set_symbol(src.symbol());
cell.set_fg(src.fg);
});
} }
}); });
} }