mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-10 13:46:42 +01:00
port connections; DevicePorts -> PortList
This commit is contained in:
parent
b1df7bf4e6
commit
22b44f562b
8 changed files with 117 additions and 77 deletions
|
|
@ -20,13 +20,13 @@ impl Sequence {
|
|||
}
|
||||
|
||||
pub struct Sequencer {
|
||||
pub name: String,
|
||||
pub name: String,
|
||||
/// JACK transport handle.
|
||||
transport: ::jack::Transport,
|
||||
transport: ::jack::Transport,
|
||||
/// JACK MIDI input port that will be created.
|
||||
input_port: Port<MidiIn>,
|
||||
pub midi_in: Port<MidiIn>,
|
||||
/// JACK MIDI output port that will be created.
|
||||
output_port: Port<MidiOut>,
|
||||
pub midi_out: Port<MidiOut>,
|
||||
|
||||
/// Holds info about tempo
|
||||
timebase: Arc<Timebase>,
|
||||
|
|
@ -79,8 +79,8 @@ impl Sequencer {
|
|||
let state = transport.query_state()?;
|
||||
DynamicDevice::new(render, handle, Self::process, Self {
|
||||
name: name.into(),
|
||||
input_port: client.register_port("in", MidiIn::default())?,
|
||||
output_port: client.register_port("out", MidiOut::default())?,
|
||||
midi_in: client.register_port("in", MidiIn::default())?,
|
||||
midi_out: client.register_port("out", MidiOut::default())?,
|
||||
|
||||
timebase: timebase.clone(),
|
||||
steps: 64,
|
||||
|
|
@ -155,7 +155,7 @@ impl Sequencer {
|
|||
}
|
||||
|
||||
// Read from input, write inputs to sequence and/or output buffer
|
||||
for event in self.input_port.iter(scope) {
|
||||
for event in self.midi_in.iter(scope) {
|
||||
let tick = tick as u32;
|
||||
let msg = midly::live::LiveEvent::parse(event.bytes).unwrap();
|
||||
match msg {
|
||||
|
|
@ -208,7 +208,7 @@ impl Sequencer {
|
|||
|
||||
// Write to port from output buffer
|
||||
// (containing notes from sequence and/or monitor)
|
||||
let mut writer = self.output_port.writer(scope);
|
||||
let mut writer = self.midi_out.writer(scope);
|
||||
for time in 0..scope.n_frames() {
|
||||
if let Some(Some(frame)) = output.get_mut(time as usize) {
|
||||
for event in frame.iter() {
|
||||
|
|
@ -222,12 +222,12 @@ impl Sequencer {
|
|||
}
|
||||
}
|
||||
|
||||
impl DevicePorts for Sequencer {
|
||||
impl PortList for Sequencer {
|
||||
fn midi_ins (&self) -> Usually<Vec<String>> {
|
||||
Ok(vec!["in".into()])
|
||||
Ok(vec![self.midi_in.name()?])
|
||||
}
|
||||
fn midi_outs (&self) -> Usually<Vec<String>> {
|
||||
Ok(vec!["out".into()])
|
||||
Ok(vec![self.midi_out.name()?])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue