Trait Project
Source pub trait Project {
Show 34 methods
// Required methods
fn set_rhythm(&mut self, rhythm: Rhythm);
fn rhythm(&self) -> Rhythm;
fn set_key(&mut self, key: Key);
fn key(&self) -> Key;
fn set_grid(&mut self, key: Grid);
fn grid(&self) -> Grid;
fn add_note(&mut self, note: Note, select: bool);
fn add_bar(&mut self, bar: Bar, select: bool);
fn add_tempo(&mut self, bar: Tempo, select: bool);
fn add_dumper(&mut self, dumper: CtrlChg, select: bool);
fn add_soft(&mut self, soft: CtrlChg, select: bool);
fn tuplize(&mut self, notes: Vec<Rc<Note>>);
fn bulk_remove(&mut self, to_remove: Models, metadata: ModelChangeMetadata);
fn bulk_add(&mut self, to_add: Models, metadata: ModelChangeMetadata);
fn change(&mut self, from_to: ModelChanges, metadata: ModelChangeMetadata);
fn bar_no(&self, bar: &Bar) -> Option<usize>;
fn tempo_at(&self, tick: u32) -> TempoValue;
fn dumper_at(&self, tick: u32) -> Velocity;
fn soft_at(&self, tick: u32) -> Velocity;
fn clear_model_events(&mut self);
fn bar_events(&self) -> &Vec<StoreEvent<u32, Bar, ModelChangeMetadata>>;
fn tempo_events(&self) -> &Vec<StoreEvent<u32, Tempo, ModelChangeMetadata>>;
fn dumper_events(
&self,
) -> &Vec<StoreEvent<u32, CtrlChg, ModelChangeMetadata>>;
fn soft_events(&self) -> &Vec<StoreEvent<u32, CtrlChg, ModelChangeMetadata>>;
fn note_events(
&self,
) -> &Vec<BagStoreEvent<u32, Rc<Note>, ModelChangeMetadata>>;
fn location_to_tick(&self, loc: Location) -> Result<u32, LocationError>;
fn tick_to_location(&self, tick: u32) -> Location;
fn rhythm_at(&self, tick: u32) -> Rhythm;
fn key_at(&self, tick: u32) -> Key;
fn note_repo(&self) -> &BagStore<u32, Rc<Note>, ModelChangeMetadata>;
fn bar_repo(&self) -> &Store<u32, Bar, ModelChangeMetadata>;
fn tempo_repo(&self) -> &Store<u32, Tempo, ModelChangeMetadata>;
fn soft_repo(&self) -> &Store<u32, CtrlChg, ModelChangeMetadata>;
fn dumper_repo(&self) -> &Store<u32, CtrlChg, ModelChangeMetadata>;
}