wip: refactor pt.9, 403 errors

This commit is contained in:
🪞👃🪞 2024-11-10 18:38:22 +01:00
parent a784f7a6f2
commit 8aa1ba8d0f
29 changed files with 1008 additions and 902 deletions

View file

@ -1,39 +1,44 @@
use crate::*;
pub struct App<E, T, C, S>
pub struct App<T, E, C, U, A, S>
where
E: Engine,
T: Widget<Engine = E> + Handle<E> + Audio,
C: Command<T>,
S: Widget<Engine = E>
U: From<Arc<RwLock<T>>> + Widget<Engine = E> + Handle<E>,
A: From<Arc<RwLock<T>>> + Audio,
S: From<Arc<RwLock<T>>> + StatusBar<E>
{
state: T,
cursor: (usize, usize),
entered: bool,
menu_bar: Option<MenuBar<E, T, C>>,
status_bar: Option<S>
status_bar: Option<S>,
history: Vec<C>,
size: Measure<E>,
ui: U,
audio: A,
model: Arc<RwLock<T>>,
}
impl App<Tui, TransportView<Tui>, TransportViewCommand, TransportStatusBar> {
fn new () -> Self {
impl<T, E, C, U, A, S> From<T> for App<T, E, C, U, A, S>
where
E: Engine,
C: Command<T>,
U: From<Arc<RwLock<T>>> + Widget<Engine = E> + Handle<E>,
A: From<Arc<RwLock<T>>> + Audio,
S: From<Arc<RwLock<T>>> + Widget<Engine = E>
{
fn from (model: T) -> Self {
let model = Arc::new(RwLock::new(model));
Self {
state: TransportView {
_engine: Default::default(),
state: Transport {
jack: Default::default(),
transport: Default::default(),
clock: Default::default(),
metronome: false
}
},
cursor: (0, 0),
entered: false,
menu_bar: None,
status_bar: None,
history: vec![],
size: Default::default(),
cursor: (0, 0),
entered: false,
menu_bar: None,
status_bar: None,
history: vec![],
size: (0, 0).into(),
ui: U::from(model.clone()),
audio: A::from(model.clone()),
model,
}
}
}