mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
provide transport in arranger
This commit is contained in:
parent
d821787fcf
commit
9b8a14df0e
3 changed files with 21 additions and 19 deletions
|
|
@ -24,8 +24,13 @@ pub struct ArrangerCli {
|
||||||
impl ArrangerCli {
|
impl ArrangerCli {
|
||||||
/// Run the arranger TUI from CLI arguments.
|
/// Run the arranger TUI from CLI arguments.
|
||||||
fn run (&self) -> Usually<()> {
|
fn run (&self) -> Usually<()> {
|
||||||
|
let jack = JackClient::Inactive(
|
||||||
|
Client::new("tek_arranger", ClientOptions::NO_START_SERVER)?.0
|
||||||
|
);
|
||||||
let mut arranger = Arranger::new("");
|
let mut arranger = Arranger::new("");
|
||||||
let mut transport = self.transport.then_some(TransportToolbar::new(None));
|
let mut transport = self.transport.then_some(
|
||||||
|
TransportToolbar::new(Some(jack.transport()))
|
||||||
|
);
|
||||||
if let Some(name) = self.name.as_ref() {
|
if let Some(name) = self.name.as_ref() {
|
||||||
*arranger.name.write().unwrap() = name.clone();
|
*arranger.name.write().unwrap() = name.clone();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,20 @@
|
||||||
include!("lib.rs");
|
include!("lib.rs");
|
||||||
/// Application entrypoint.
|
/// Application entrypoint.
|
||||||
pub fn main () -> Usually<()> {
|
pub fn main () -> Usually<()> {
|
||||||
Tui::run(TransportToolbar::standalone()?)?;
|
let jack = JackClient::Inactive(
|
||||||
|
Client::new("tek_transport", ClientOptions::NO_START_SERVER)?.0
|
||||||
|
);
|
||||||
|
let mut transport = TransportToolbar::new(Some(jack.transport()));
|
||||||
|
transport.focused = true;
|
||||||
|
let transport = Arc::new(RwLock::new(transport));
|
||||||
|
transport.write().unwrap().jack = Some(
|
||||||
|
jack.activate(
|
||||||
|
&transport.clone(),
|
||||||
|
|state: &Arc<RwLock<TransportToolbar<Tui>>>, client, scope| {
|
||||||
|
state.write().unwrap().process(client, scope)
|
||||||
|
}
|
||||||
|
)?
|
||||||
|
);
|
||||||
|
Tui::run(transport)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,23 +27,6 @@ pub struct TransportToolbar<E: Engine> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<E: Engine> TransportToolbar<E> {
|
impl<E: Engine> TransportToolbar<E> {
|
||||||
pub fn standalone () -> Usually<Arc<RwLock<Self>>> where Self: 'static {
|
|
||||||
let jack = JackClient::Inactive(
|
|
||||||
Client::new("tek_transport", ClientOptions::NO_START_SERVER)?.0
|
|
||||||
);
|
|
||||||
let mut transport = Self::new(Some(jack.transport()));
|
|
||||||
transport.focused = true;
|
|
||||||
let transport = Arc::new(RwLock::new(transport));
|
|
||||||
transport.write().unwrap().jack = Some(
|
|
||||||
jack.activate(
|
|
||||||
&transport.clone(),
|
|
||||||
|state: &Arc<RwLock<TransportToolbar<E>>>, client, scope| {
|
|
||||||
state.write().unwrap().process(client, scope)
|
|
||||||
}
|
|
||||||
)?
|
|
||||||
);
|
|
||||||
Ok(transport)
|
|
||||||
}
|
|
||||||
pub fn new (transport: Option<Transport>) -> Self {
|
pub fn new (transport: Option<Transport>) -> Self {
|
||||||
let timebase = Arc::new(Timebase::default());
|
let timebase = Arc::new(Timebase::default());
|
||||||
Self {
|
Self {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue