mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 04:06:45 +01:00
wip: prototype chains/stacks
This commit is contained in:
parent
dc09ea901f
commit
d330d31ce4
3 changed files with 239 additions and 66 deletions
62
src/main.rs
62
src/main.rs
|
|
@ -48,9 +48,6 @@ fn main () -> Result<(), Box<dyn Error>> {
|
|||
)?,
|
||||
focus: 0,
|
||||
devices: vec![
|
||||
crate::device::Device::Mixer(
|
||||
crate::device::mixer::Mixer::new()?
|
||||
),
|
||||
crate::device::Device::Sequencer(
|
||||
crate::device::sequencer::Sequencer::new(
|
||||
Some("Melody#000"),
|
||||
|
|
@ -58,19 +55,22 @@ fn main () -> Result<(), Box<dyn Error>> {
|
|||
None
|
||||
)?
|
||||
),
|
||||
crate::device::Device::Sequencer(
|
||||
crate::device::sequencer::Sequencer::new(
|
||||
Some("Rhythm#000"),
|
||||
None,
|
||||
None,
|
||||
)?
|
||||
),
|
||||
crate::device::Device::Sampler(
|
||||
crate::device::sampler::Sampler::new()?
|
||||
),
|
||||
crate::device::Device::Looper(
|
||||
crate::device::looper::Looper::new()?
|
||||
),
|
||||
//crate::device::Device::Sequencer(
|
||||
//crate::device::sequencer::Sequencer::new(
|
||||
//Some("Rhythm#000"),
|
||||
//None,
|
||||
//None,
|
||||
//)?
|
||||
//),
|
||||
//crate::device::Device::Mixer(
|
||||
//crate::device::mixer::Mixer::new()?
|
||||
//),
|
||||
//crate::device::Device::Sampler(
|
||||
//crate::device::sampler::Sampler::new()?
|
||||
//),
|
||||
//crate::device::Device::Looper(
|
||||
//crate::device::looper::Looper::new()?
|
||||
//),
|
||||
]
|
||||
})
|
||||
}
|
||||
|
|
@ -106,24 +106,30 @@ impl WidgetRef for App {
|
|||
fn render_ref (&self, area: Rect, buffer: &mut Buffer) {
|
||||
use ratatui::style::Stylize;
|
||||
let mut constraints = vec![
|
||||
Constraint::Length(4),
|
||||
Constraint::Length(10),
|
||||
Constraint::Max(18),
|
||||
Constraint::Max(18),
|
||||
Constraint::Max(0),
|
||||
Constraint::Max(0),
|
||||
Constraint::Max(0),
|
||||
Constraint::Max(40),
|
||||
Constraint::Max(40),
|
||||
];
|
||||
let areas = Layout::default()
|
||||
.direction(Direction::Vertical)
|
||||
.direction(Direction::Horizontal)
|
||||
.constraints(&constraints)
|
||||
.split(area);
|
||||
.split(Rect {
|
||||
x: area.x,
|
||||
y: area.y,
|
||||
width: area.width,
|
||||
height: area.height - 4
|
||||
});
|
||||
|
||||
self.transport.render(Rect {
|
||||
x: area.width.saturating_sub(80u16) / 2,
|
||||
y: area.y + area.height - 4,
|
||||
width: area.width,
|
||||
height: 4
|
||||
}, buffer);
|
||||
|
||||
self.transport.render(areas[0], buffer);
|
||||
for (index, device) in self.devices.iter().enumerate() {
|
||||
device.render(areas[index + 1], buffer);
|
||||
device.render(areas[index], buffer);
|
||||
if index == self.focus {
|
||||
draw_focus_corners(buffer, areas[index+1]);
|
||||
draw_focus_corners(buffer, areas[index]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue