wip: enabling standalone mixer

This commit is contained in:
🪞👃🪞 2024-08-10 20:13:02 +03:00
parent 7685072e4c
commit 1d3d3875fe
11 changed files with 165 additions and 111 deletions

View file

@ -1,10 +1,5 @@
use crate::*;
//pub const ACTIONS: [(&'static str, &'static str);2] = [
//("+/-", "Adjust"),
//("Ins/Del", "Add/remove track"),
//];
pub struct Mixer {
pub name: String,
pub tracks: Vec<Track>,
@ -12,10 +7,6 @@ pub struct Mixer {
pub selected_column: usize,
}
render!(Mixer |self, buf, area| Ok(area));
handle!(Mixer = handle_mixer);
process!(Mixer = process);
impl Mixer {
pub fn new (name: &str) -> Usually<Self> {
let (client, _status) = Client::new(name, ClientOptions::NO_START_SERVER)?;
@ -26,7 +17,7 @@ impl Mixer {
tracks: vec![],
})
}
pub fn add_track (&mut self, name: &str, channels: usize) -> Usually<&mut Self> {
pub fn track_add (&mut self, name: &str, channels: usize) -> Usually<&mut Self> {
let track = Track::new(name)?;
self.tracks.push(track);
Ok(self)
@ -36,6 +27,8 @@ impl Mixer {
}
}
process!(Mixer = process);
fn process (
_: &mut Mixer,
_: &Client,
@ -43,51 +36,3 @@ fn process (
) -> Control {
Control::Continue
}
pub fn handle_mixer (state: &mut Mixer, event: &AppEvent) -> Usually<bool> {
if let AppEvent::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);
return Ok(true)
},
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);
return Ok(true)
},
KeyCode::Left => {
if state.selected_column == 0 {
state.selected_column = 6
} else {
state.selected_column = state.selected_column - 1;
}
return Ok(true)
},
KeyCode::Right => {
if state.selected_column == 6 {
state.selected_column = 0
} else {
state.selected_column = state.selected_column + 1;
}
return Ok(true)
},
_ => {
println!("\n{event:?}");
}
}
}
Ok(false)
}