mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-09 05:06:43 +01:00
WorldClock/PlayClock
This commit is contained in:
parent
f5128829d6
commit
26a9efaa86
19 changed files with 1216 additions and 3039 deletions
|
|
@ -1,32 +1,21 @@
|
|||
use crate::*;
|
||||
|
||||
mod jack_arranger; pub(crate) use app_arranger::*;
|
||||
mod jack_sequencer; pub(crate) use app_sequencer::*;
|
||||
mod jack_transport; pub(crate) use app_transport::*;
|
||||
mod engine_focus; pub(crate) use engine_focus::*;
|
||||
mod engine_input; pub(crate) use engine_input::*;
|
||||
mod engine_style; pub(crate) use engine_style::*;
|
||||
mod engine_output; pub(crate) use engine_output::*;
|
||||
|
||||
mod engine_focus; pub(crate) use engine_focus::*;
|
||||
mod engine_input; pub(crate) use engine_input::*;
|
||||
mod engine_style; pub(crate) use engine_style::*;
|
||||
mod engine_output; pub(crate) use engine_output::*;
|
||||
mod app_transport; pub(crate) use app_transport::*;
|
||||
|
||||
mod app_arranger; pub(crate) use app_arranger::*;
|
||||
mod app_sequencer; pub(crate) use app_sequencer::*;
|
||||
mod app_transport; pub(crate) use app_transport::*;
|
||||
mod app_sequencer; pub(crate) use app_sequencer::*;
|
||||
mod ctrl_sequencer; pub(crate) use ctrl_sequencer::*;
|
||||
|
||||
mod view_arranger; pub(crate) use view_arranger::*;
|
||||
mod view_sequencer; pub(crate) use view_sequencer::*;
|
||||
mod view_transport; pub(crate) use view_transport::*;
|
||||
|
||||
mod ctrl_arranger; pub(crate) use ctrl_arranger::*;
|
||||
mod ctrl_sequencer; pub(crate) use ctrl_sequencer::*;
|
||||
mod ctrl_transport; pub(crate) use ctrl_transport::*;
|
||||
|
||||
mod model_arranger; pub(crate) use model_arranger::*;
|
||||
mod app_arranger; pub(crate) use app_arranger::*;
|
||||
mod ctrl_arranger; pub(crate) use ctrl_arranger::*;
|
||||
mod model_arranger; pub(crate) use model_arranger::*;
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
mod model_clock; pub(crate) use model_clock::*;
|
||||
|
||||
mod view_status_bar; pub(crate) use view_status_bar::*;
|
||||
|
||||
mod model_file_browser; pub(crate) use model_file_browser::*;
|
||||
|
|
@ -191,3 +180,100 @@ impl Tui {
|
|||
buffer
|
||||
}
|
||||
}
|
||||
|
||||
struct Field(&'static str, String);
|
||||
|
||||
render!(|self: Field|{
|
||||
Tui::to_east("│", Tui::to_east(
|
||||
Tui::bold(true, self.0),
|
||||
Tui::bg(Color::Rgb(0, 0, 0), self.1.as_str()),
|
||||
))
|
||||
});
|
||||
|
||||
//pub struct TransportView {
|
||||
//pub(crate) state: Option<TransportState>,
|
||||
//pub(crate) selected: Option<TransportFocus>,
|
||||
//pub(crate) focused: bool,
|
||||
//pub(crate) bpm: f64,
|
||||
//pub(crate) sync: f64,
|
||||
//pub(crate) quant: f64,
|
||||
//pub(crate) beat: String,
|
||||
//pub(crate) msu: String,
|
||||
//}
|
||||
////)?;
|
||||
////match *state {
|
||||
////Some(TransportState::Rolling) => {
|
||||
////add(&row!(
|
||||
////"│",
|
||||
////TuiStyle::fg("▶ PLAYING", Color::Rgb(0, 255, 0)),
|
||||
////format!("│0 (0)"),
|
||||
////format!("│00m00s000u"),
|
||||
////format!("│00B 0b 00/00")
|
||||
////))?;
|
||||
////add(&row!("│Now ", row!(
|
||||
////format!("│0 (0)"), //sample(chunk)
|
||||
////format!("│00m00s000u"), //msu
|
||||
////format!("│00B 0b 00/00"), //bbt
|
||||
////)))?;
|
||||
////},
|
||||
////_ => {
|
||||
////add(&row!("│", TuiStyle::fg("⏹ STOPPED", Color::Rgb(255, 128, 0))))?;
|
||||
////add(&"")?;
|
||||
////}
|
||||
////}
|
||||
////Ok(())
|
||||
////}).fill_x().bg(Color::Rgb(40, 50, 30))
|
||||
////});
|
||||
|
||||
//impl<'a, T: HasClock> From<&'a T> for TransportView where Option<TransportFocus>: From<&'a T> {
|
||||
//fn from (state: &'a T) -> Self {
|
||||
//let selected = state.into();
|
||||
//Self {
|
||||
//selected,
|
||||
//focused: selected.is_some(),
|
||||
//state: Some(state.clock().transport.query_state().unwrap()),
|
||||
//bpm: state.clock().bpm().get(),
|
||||
//sync: state.clock().sync.get(),
|
||||
//quant: state.clock().quant.get(),
|
||||
//beat: state.clock().playhead.format_beat(),
|
||||
//msu: state.clock().playhead.usec.format_msu(),
|
||||
//}
|
||||
//}
|
||||
//}
|
||||
|
||||
//row!(
|
||||
////selected.wrap(TransportFocus::PlayPause, &play_pause.fixed_xy(10, 3)),
|
||||
//row!(
|
||||
//col!(
|
||||
//Field("SR ", format!("192000")),
|
||||
//Field("BUF ", format!("1024")),
|
||||
//Field("LEN ", format!("21300")),
|
||||
//Field("CPU ", format!("00.0%"))
|
||||
//),
|
||||
//col!(
|
||||
//Field("PUL ", format!("000000000")),
|
||||
//Field("PPQ ", format!("96")),
|
||||
//Field("BBT ", format!("00B0b00p"))
|
||||
//),
|
||||
//col!(
|
||||
//Field("SEC ", format!("000000.000")),
|
||||
//Field("BPM ", format!("000.000")),
|
||||
//Field("MSU ", format!("00m00s00u"))
|
||||
//),
|
||||
//),
|
||||
//selected.wrap(TransportFocus::Bpm, &Outset::X(1u16, {
|
||||
//row! {
|
||||
//"BPM ",
|
||||
//format!("{}.{:03}", *bpm as usize, (bpm * 1000.0) % 1000.0)
|
||||
//}
|
||||
//})),
|
||||
//selected.wrap(TransportFocus::Sync, &Outset::X(1u16, row! {
|
||||
//"SYNC ", pulses_to_name(*sync as usize)
|
||||
//})),
|
||||
//selected.wrap(TransportFocus::Quant, &Outset::X(1u16, row! {
|
||||
//"QUANT ", pulses_to_name(*quant as usize)
|
||||
//})),
|
||||
//selected.wrap(TransportFocus::Clock, &{
|
||||
//row!("B" , beat.as_str(), " T", msu.as_str()).outset_x(1)
|
||||
//}).align_e().fill_x(),
|
||||
//).fill_x().bg(Color::Rgb(40, 50, 30))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue