bye DynamicDevice; now to reenable playback...

This commit is contained in:
🪞👃🪞 2024-07-03 21:18:39 +03:00
parent 55a85fafef
commit 9d46cb7619
4 changed files with 40 additions and 125 deletions

View file

@ -1,29 +1,9 @@
use crate::core::*;
pub struct Looper {
name: String
pub name: String
}
impl Looper {
pub fn new (name: &str) -> Result<DynamicDevice<Self>, Box<dyn Error>> {
Ok(DynamicDevice::new(render, handle, process, Self {
name: name.into(),
}))
}
}
pub fn process (_: &mut Looper, _: &Client, _: &ProcessScope) -> Control {
Control::Continue
}
pub fn render (_: &Looper, _: &mut Buffer, _: Rect) -> Usually<Rect> {
Ok(Rect::default())
}
pub fn handle (_: &mut Looper, _: &AppEvent) -> Usually<bool> {
Ok(false)
}
pub const ACTIONS: [(&'static str, &'static str);1] = [
("Ins/Del", "Add/remove loop"),
];
render!(Looper);
handle!(Looper);
process!(Looper);
ports!(Looper);

View file

@ -6,30 +6,28 @@ pub struct Mixer {
pub selected_track: usize,
pub selected_column: usize,
}
render!(Mixer = crate::view::mixer::render);
handle!(Mixer = crate::control::mixer::handle);
process!(Mixer = process);
impl Mixer {
pub fn new (name: &str) -> Result<DynamicDevice<Self>, Box<dyn Error>> {
pub fn new (name: &str) -> Usually<Self> {
let (client, _status) = Client::new(name, ClientOptions::NO_START_SERVER)?;
Ok(DynamicDevice::new(
crate::view::mixer::render,
crate::control::mixer::handle,
process,
Self {
name: name.into(),
selected_column: 0,
selected_track: 1,
tracks: vec![
MixerTrack::new(&client, 1, "Mono 1")?,
MixerTrack::new(&client, 1, "Mono 2")?,
MixerTrack::new(&client, 2, "Stereo 1")?,
MixerTrack::new(&client, 2, "Stereo 2")?,
MixerTrack::new(&client, 2, "Stereo 3")?,
MixerTrack::new(&client, 2, "Bus 1")?,
MixerTrack::new(&client, 2, "Bus 2")?,
MixerTrack::new(&client, 2, "Mix")?,
],
}
))
Ok(Self {
name: name.into(),
selected_column: 0,
selected_track: 1,
tracks: vec![
MixerTrack::new(&client, 1, "Mono 1")?,
MixerTrack::new(&client, 1, "Mono 2")?,
MixerTrack::new(&client, 2, "Stereo 1")?,
MixerTrack::new(&client, 2, "Stereo 2")?,
MixerTrack::new(&client, 2, "Stereo 3")?,
MixerTrack::new(&client, 2, "Bus 1")?,
MixerTrack::new(&client, 2, "Bus 2")?,
MixerTrack::new(&client, 2, "Mix")?,
],
})
}
}
@ -59,7 +57,7 @@ pub struct MixerTrack {
}
impl MixerTrack {
pub fn new (jack: &Client, channels: u8, name: &str) -> Result<Self, Box<dyn Error>> {
pub fn new (jack: &Client, channels: u8, name: &str) -> Usually<Self> {
let mut input_ports = vec![];
let mut insert_ports = vec![];
let mut return_ports = vec![];