mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 20:26:42 +01:00
wip: fixing port autoconnect
This commit is contained in:
parent
6979fd67ec
commit
32dc708096
5 changed files with 98 additions and 94 deletions
28
src/edn.rs
28
src/edn.rs
|
|
@ -14,6 +14,11 @@ macro_rules! edn {
|
|||
}
|
||||
|
||||
impl App {
|
||||
pub fn from_edn (src: &str) -> Usually<Self> {
|
||||
let mut app = Self::new()?;
|
||||
app.load_edn(src)?;
|
||||
Ok(app)
|
||||
}
|
||||
pub fn load_edn (&mut self, mut src: &str) -> Usually<&mut Self> {
|
||||
loop {
|
||||
match clojure_reader::edn::read(src) {
|
||||
|
|
@ -123,28 +128,9 @@ impl Track {
|
|||
},
|
||||
_ => {}
|
||||
});
|
||||
let (left, right) = (app.audio_out(0), app.audio_out(1));
|
||||
let track = app.add_track(Some(name.as_str()))?;
|
||||
for phrase in phrases {
|
||||
track.phrases.push(phrase);
|
||||
}
|
||||
for device in devices {
|
||||
track.add_device(device)?;
|
||||
}
|
||||
if let Some(device) = track.devices.get(0) {
|
||||
device.client.as_client().connect_ports(
|
||||
&track.midi_out,
|
||||
&device.midi_ins()?[0],
|
||||
)?;
|
||||
}
|
||||
if let Some(device) = track.devices.get(track.devices.len() - 1) {
|
||||
if let Some(ref left) = left {
|
||||
device.connect_audio_out(0, left)?;
|
||||
}
|
||||
if let Some(ref right) = right {
|
||||
device.connect_audio_out(1, right)?;
|
||||
}
|
||||
}
|
||||
for phrase in phrases { track.phrases.push(phrase); }
|
||||
for device in devices { track.add_device(device)?; }
|
||||
Ok(track)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue