load scenes from project

This commit is contained in:
🪞👃🪞 2024-07-08 20:18:44 +03:00
parent f1f812d0fb
commit dff42ca5a7
5 changed files with 202 additions and 301 deletions

View file

@ -185,12 +185,25 @@ impl App {
self.tracks.get_mut(id).map(|t|(id, t))
} }
}
pub fn new_scene_name (&self) -> String {
format!("Scene {}", self.scenes.len() + 1)
}
pub fn add_scene (&mut self, name: Option<&str>) -> Usually<&mut Scene> {
let name = name.ok_or_else(||format!("Scene {}", self.scenes.len() + 1))?;
let name = name.ok_or_else(||self.new_scene_name())?;
self.scenes.push(Scene::new(&name, vec![]));
self.scene_cursor = self.scenes.len();
Ok(&mut self.scenes[self.scene_cursor - 1])
}
pub fn add_scene_with_clips (
&mut self,
name: Option<&str>,
clips: &[Option<usize>]
) -> Usually<&mut Scene> {
let name = name.ok_or_else(||self.new_scene_name())?;
self.scenes.push(Scene::new(&name, Vec::from(clips)));
self.scene_cursor = self.scenes.len();
Ok(&mut self.scenes[self.scene_cursor - 1])
}
pub fn scene (&self) -> Option<(usize, &Scene)> {
match self.scene_cursor { 0 => None, _ => {
let id = self.scene_cursor as usize - 1;