mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
46 lines
1.6 KiB
Rust
46 lines
1.6 KiB
Rust
include!("./lib.rs");
|
|
pub fn main () -> Usually<()> { SamplerCli::parse().run() }
|
|
#[derive(Debug, Parser)] #[command(version, about, long_about = None)] pub struct SamplerCli {
|
|
/// Name of JACK client
|
|
#[arg(short, long)] name: Option<String>,
|
|
/// Path to plugin
|
|
#[arg(short, long)] path: Option<String>,
|
|
/// MIDI outs to connect to MIDI input
|
|
#[arg(short='i', long)]
|
|
midi_from: Vec<String>,
|
|
/// Audio outs to connect to left input
|
|
#[arg(short='l', long)]
|
|
l_from: Vec<String>,
|
|
/// Audio outs to connect to right input
|
|
#[arg(short='r', long)]
|
|
r_from: Vec<String>,
|
|
/// Audio ins to connect from left output
|
|
#[arg(short='L', long)]
|
|
l_to: Vec<String>,
|
|
/// Audio ins to connect from right output
|
|
#[arg(short='R', long)]
|
|
r_to: Vec<String>,
|
|
}
|
|
impl SamplerCli {
|
|
fn run (&self) -> Usually<()> {
|
|
Tui::run(JackConnection::new("tek_sampler")?.activate_with(|jack|{
|
|
Ok(tek::SamplerTui {
|
|
cursor: (0, 0),
|
|
editing: None,
|
|
mode: None,
|
|
size: Measure::new(),
|
|
note_lo: 36.into(),
|
|
note_pt: 36.into(),
|
|
color: ItemPalette::from(Color::Rgb(64, 128, 32)),
|
|
state: Sampler::new(
|
|
jack,
|
|
&"sampler",
|
|
&self.midi_from.as_slice(),
|
|
&[&self.l_from.as_slice(), &self.r_from.as_slice()],
|
|
&[&self.l_to.as_slice(), &self.r_to.as_slice()],
|
|
)?,
|
|
})
|
|
})?)?;
|
|
Ok(())
|
|
}
|
|
}
|