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),
|
||||
color: color.unwrap_or_else(ItemTheme::random),
|
||||
player: MidiPlayer::new(
|
||||
&format!("{name}"), self.jack(), Some(self.clock()), None, mins, mouts
|
||||
&format!("{name}"),
|
||||
self.jack(),
|
||||
Some(self.clock()),
|
||||
None,
|
||||
mins,
|
||||
mouts
|
||||
)?,
|
||||
name,
|
||||
..Default::default()
|
||||
|
|
@ -120,11 +125,22 @@ impl Tek {
|
|||
}
|
||||
|
||||
/// Delete a track
|
||||
pub fn track_del (&mut self, index: usize) {
|
||||
self.tracks_mut().remove(index);
|
||||
for scene in self.scenes_mut().iter_mut() {
|
||||
scene.clips.remove(index);
|
||||
pub fn track_del (&mut self, index: usize) -> Usually<()> {
|
||||
let exists = self.tracks().get(index).is_some();
|
||||
if exists {
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue