use crate::prelude::*; use super::Mixer; impl HandleInput for Mixer { fn handle (&mut self, event: &Event) -> Result<(), Box> { handle(self, event) } } pub fn handle (state: &mut Mixer, event: &Event) -> Result<(), Box> { if let Event::Input(crossterm::event::Event::Key(event)) = event { match event.code { KeyCode::Char('c') => { if event.modifiers == KeyModifiers::CONTROL { state.exit(); } }, KeyCode::Down => { state.selected_track = (state.selected_track + 1) % state.tracks.len(); println!("{}", state.selected_track); }, KeyCode::Up => { if state.selected_track == 0 { state.selected_track = state.tracks.len() - 1; } else { state.selected_track = state.selected_track - 1; } println!("{}", state.selected_track); }, KeyCode::Left => { if state.selected_column == 0 { state.selected_column = 6 } else { state.selected_column = state.selected_column - 1; } }, KeyCode::Right => { if state.selected_column == 6 { state.selected_column = 0 } else { state.selected_column = state.selected_column + 1; } }, _ => { println!("\n{event:?}"); } } } Ok(()) }