mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
add Modal::Message to handle errors
This commit is contained in:
parent
a77536c234
commit
0a090765d3
4 changed files with 43 additions and 16 deletions
|
|
@ -405,14 +405,16 @@ impl Tek {
|
|||
match index {
|
||||
0 => {
|
||||
let jack = self.jack.clone();
|
||||
self.track_mut()
|
||||
.expect("no active track")
|
||||
.devices
|
||||
.push({
|
||||
let sampler = Sampler::new(&jack, &"sampler", &[], &[&[], &[]], &[&[], &[]])?;
|
||||
Device::Sampler(sampler)
|
||||
});
|
||||
self.modal = None;
|
||||
let sampler = if let Ok(sampler) = Sampler::new(
|
||||
&jack, &"sampler", &[], &[&[], &[]], &[&[], &[]]
|
||||
) {
|
||||
self.modal = None;
|
||||
Device::Sampler(sampler)
|
||||
} else {
|
||||
self.modal = Some(Modal::Message(Message::FailedToAddDevice));
|
||||
return Err("failed to add device".into())
|
||||
};
|
||||
self.track_mut().expect("no active track").devices.push(sampler);
|
||||
Ok(())
|
||||
},
|
||||
1 => todo!(),
|
||||
|
|
@ -458,9 +460,20 @@ pub trait HasSelection {
|
|||
pub enum Modal {
|
||||
Help,
|
||||
Menu,
|
||||
Device(usize)
|
||||
Device(usize),
|
||||
Message(Message)
|
||||
}
|
||||
|
||||
/// Various possible messages
|
||||
#[derive(PartialEq, Clone, Copy, Debug)]
|
||||
pub enum Message {
|
||||
FailedToAddDevice,
|
||||
}
|
||||
|
||||
content!(TuiOut: |self: Message| match self {
|
||||
Self::FailedToAddDevice => "Failed to add device"
|
||||
});
|
||||
|
||||
/// Represents the current user selection in the arranger
|
||||
#[derive(PartialEq, Clone, Copy, Debug, Default)]
|
||||
pub enum Selection {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue