mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
54 lines
1.6 KiB
Rust
54 lines
1.6 KiB
Rust
use crate::prelude::*;
|
|
use super::Mixer;
|
|
|
|
impl HandleInput for Mixer {
|
|
fn handle (&mut self, event: &Event) -> Result<(), Box<dyn Error>> {
|
|
handle(self, event)
|
|
}
|
|
}
|
|
|
|
pub fn handle (state: &mut Mixer, event: &Event) -> Result<(), Box<dyn Error>> {
|
|
|
|
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(())
|
|
}
|