mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
track: remove ports on delete
This commit is contained in:
parent
80964d5b4a
commit
3c2d490f83
1 changed files with 21 additions and 5 deletions
|
|
@ -92,7 +92,12 @@ impl Tek {
|
||||||
width: (name.len() + 2).max(12),
|
width: (name.len() + 2).max(12),
|
||||||
color: color.unwrap_or_else(ItemTheme::random),
|
color: color.unwrap_or_else(ItemTheme::random),
|
||||||
player: MidiPlayer::new(
|
player: MidiPlayer::new(
|
||||||
&format!("{name}"), self.jack(), Some(self.clock()), None, mins, mouts
|
&format!("{name}"),
|
||||||
|
self.jack(),
|
||||||
|
Some(self.clock()),
|
||||||
|
None,
|
||||||
|
mins,
|
||||||
|
mouts
|
||||||
)?,
|
)?,
|
||||||
name,
|
name,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
|
@ -120,11 +125,22 @@ impl Tek {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Delete a track
|
/// Delete a track
|
||||||
pub fn track_del (&mut self, index: usize) {
|
pub fn track_del (&mut self, index: usize) -> Usually<()> {
|
||||||
self.tracks_mut().remove(index);
|
let exists = self.tracks().get(index).is_some();
|
||||||
for scene in self.scenes_mut().iter_mut() {
|
if exists {
|
||||||
scene.clips.remove(index);
|
let track = self.tracks_mut().remove(index);
|
||||||
|
let Track { player: MidiPlayer { midi_ins, midi_outs, .. }, .. } = track;
|
||||||
|
for port in midi_ins.into_iter() {
|
||||||
|
port.close()?;
|
||||||
|
}
|
||||||
|
for port in midi_outs.into_iter() {
|
||||||
|
port.close()?;
|
||||||
|
}
|
||||||
|
for scene in self.scenes_mut().iter_mut() {
|
||||||
|
scene.clips.remove(index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Add multiple scenes
|
/// Add multiple scenes
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue