mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
wip: add Audio::callback
This commit is contained in:
parent
ec2c96d00e
commit
8d534fc738
4 changed files with 8 additions and 27 deletions
|
|
@ -6,6 +6,11 @@ pub trait Audio {
|
|||
fn process(&mut self, _: &Client, _: &ProcessScope) -> Control {
|
||||
Control::Continue
|
||||
}
|
||||
fn callback(
|
||||
state: &Arc<RwLock<Self>>, client: &Client, scope: &ProcessScope
|
||||
) -> Control where Self: Sized {
|
||||
state.write().unwrap().process(client, scope)
|
||||
}
|
||||
}
|
||||
|
||||
/// Trait for things that may expose JACK ports.
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ impl ArrangerCli {
|
|||
arrangement,
|
||||
phrases,
|
||||
)));
|
||||
let jack = jack.activate(&arranger.clone(), arranger_jack_callback)?;
|
||||
let jack = jack.activate(&arranger.clone(), Arranger::callback)?;
|
||||
let jack = Some(jack.into());
|
||||
if let Some(ref transport) = arranger.read().unwrap().transport {
|
||||
transport.write().unwrap().jack = jack.clone();
|
||||
|
|
@ -59,11 +59,3 @@ impl ArrangerCli {
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
fn arranger_jack_callback (
|
||||
state: &Arc<RwLock<Arranger<Tui>>>,
|
||||
client: &Client,
|
||||
scope: &ProcessScope,
|
||||
) -> Control {
|
||||
state.write().unwrap().process(client, scope)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ impl SequencerCli {
|
|||
//}
|
||||
}
|
||||
let sequencer = Arc::new(RwLock::new(sequencer));
|
||||
let jack = jack.activate(&sequencer.clone(), sequencer_jack_callback)?;
|
||||
let jack = jack.activate(&sequencer.clone(), Sequencer::callback)?;
|
||||
let jack = Some(jack.into());
|
||||
if let Some(ref transport) = sequencer.read().unwrap().transport {
|
||||
transport.write().unwrap().jack = jack.clone();
|
||||
|
|
@ -48,11 +48,3 @@ impl SequencerCli {
|
|||
Tui::run(sequencer).map(|_|())
|
||||
}
|
||||
}
|
||||
|
||||
fn sequencer_jack_callback (
|
||||
state: &Arc<RwLock<Sequencer<Tui>>>,
|
||||
client: &Client,
|
||||
scope: &ProcessScope,
|
||||
) -> Control {
|
||||
state.write().unwrap().process(client, scope)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,16 +7,8 @@ pub fn main () -> Usually<()> {
|
|||
let mut transport = TransportToolbar::new(None, Some(jack.transport()));
|
||||
transport.focused = true;
|
||||
let transport = Arc::new(RwLock::new(transport));
|
||||
let jack = jack.activate(&transport.clone(), transport_jack_callback)?;
|
||||
let jack = jack.activate(&transport.clone(), TransportToolbar::callback)?;
|
||||
transport.write().unwrap().jack = Some(jack.into());
|
||||
Tui::run(transport)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn transport_jack_callback (
|
||||
state: &Arc<RwLock<TransportToolbar<Tui>>>,
|
||||
client: &Client,
|
||||
scope: &ProcessScope,
|
||||
) -> Control {
|
||||
state.write().unwrap().process(client, scope)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue