mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
42 lines
1.2 KiB
Rust
42 lines
1.2 KiB
Rust
use crate::*;
|
|
|
|
#[derive(Default, Debug, Clone)]
|
|
pub struct ArrangerScene {
|
|
/// Name of scene
|
|
pub name: Arc<RwLock<String>>,
|
|
/// Clips in scene, one per track
|
|
pub clips: Vec<Option<Arc<RwLock<Phrase>>>>,
|
|
/// Identifying color of scene
|
|
pub color: ItemColor,
|
|
}
|
|
|
|
impl ArrangerScene {
|
|
|
|
//TODO
|
|
//pub fn from_edn <'a, 'e> (args: &[Edn<'e>]) -> Usually<Self> {
|
|
//let mut name = None;
|
|
//let mut clips = vec![];
|
|
//edn!(edn in args {
|
|
//Edn::Map(map) => {
|
|
//let key = map.get(&Edn::Key(":name"));
|
|
//if let Some(Edn::Str(n)) = key {
|
|
//name = Some(*n);
|
|
//} else {
|
|
//panic!("unexpected key in scene '{name:?}': {key:?}")
|
|
//}
|
|
//},
|
|
//Edn::Symbol("_") => {
|
|
//clips.push(None);
|
|
//},
|
|
//Edn::Int(i) => {
|
|
//clips.push(Some(*i as usize));
|
|
//},
|
|
//_ => panic!("unexpected in scene '{name:?}': {edn:?}")
|
|
//});
|
|
//Ok(ArrangerScene {
|
|
//name: Arc::new(name.unwrap_or("").to_string().into()),
|
|
//color: ItemColor::random(),
|
|
//clips,
|
|
//})
|
|
//}
|
|
}
|