mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
fix timer of horizontal sequencer
This commit is contained in:
parent
2601592d17
commit
1259176576
6 changed files with 293 additions and 254 deletions
27
src/main.rs
27
src/main.rs
|
|
@ -73,6 +73,7 @@ pub fn main () -> Usually<()> {
|
|||
state.midi_in = Some(client.register_port("midi-in", MidiIn)?);
|
||||
state.transport = Some(client.transport());
|
||||
state.playing = Some(TransportState::Stopped);
|
||||
state.time_zoom = 24;
|
||||
state.jack = Some(jack);
|
||||
Ok(())
|
||||
}))
|
||||
|
|
@ -156,6 +157,20 @@ process!(App |self, _client, scope| {
|
|||
});
|
||||
|
||||
impl App {
|
||||
pub fn toggle_play (&mut self) -> Usually<()> {
|
||||
self.playing = match self.playing.expect("after jack init") {
|
||||
TransportState::Stopped => {
|
||||
self.transport.as_ref().unwrap().start()?;
|
||||
Some(TransportState::Starting)
|
||||
},
|
||||
_ => {
|
||||
self.transport.as_ref().unwrap().stop()?;
|
||||
self.transport.as_ref().unwrap().locate(0)?;
|
||||
Some(TransportState::Stopped)
|
||||
},
|
||||
};
|
||||
Ok(())
|
||||
}
|
||||
pub fn connect_tracks (&self) -> Usually<()> {
|
||||
//let (client, _status) = Client::new(
|
||||
//&format!("{}-init", &self.name), ClientOptions::NO_START_SERVER
|
||||
|
|
@ -184,6 +199,18 @@ impl App {
|
|||
//}
|
||||
Ok(())
|
||||
}
|
||||
pub fn add_scene (&mut self, name: Option<&str>) -> Usually<&mut Scene> {
|
||||
let name = name.ok_or_else(||format!("Scene {}", self.scenes.len() + 1))?;
|
||||
self.scenes.push(Scene::new(&name, vec![]));
|
||||
self.scene_cursor = self.scenes.len();
|
||||
Ok(&mut self.scenes[self.scene_cursor - 1])
|
||||
}
|
||||
pub fn add_track (&mut self, name: Option<&str>) -> Usually<&mut Track> {
|
||||
let name = name.ok_or_else(||format!("Track {}", self.tracks.len() + 1))?;
|
||||
self.tracks.push(Track::new(&name, self.jack.as_ref().unwrap().as_client(), None, None)?);
|
||||
self.track_cursor = self.tracks.len();
|
||||
Ok(&mut self.tracks[self.track_cursor - 1])
|
||||
}
|
||||
pub fn track (&self) -> Option<(usize, &Track)> {
|
||||
match self.track_cursor { 0 => None, _ => {
|
||||
let id = self.track_cursor as usize - 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue