ez_audi/samples_player/
samples_player_trait.rs1use crate::{Device, traits::AudioMetadataTrait, modifiers::ModifierTrait, errors::Error, PlayError};
2
3
4
5pub trait SamplesPlayerTrait {
7 fn metadata(&self) -> Box<dyn AudioMetadataTrait>;
9
10 fn add_modifier(&mut self, modifier: Box<dyn ModifierTrait>);
12
13 fn clear_modifiers(&mut self);
15
16 fn start(&self) -> Error<()>;
18
19 fn stop(&self) -> Error<()>;
21
22 fn play_on_device(&mut self, _device: Device) -> Error<()>;
24
25 fn play_on_default(&mut self) -> Error<()> {
27 let default_output = match Device::default_output() {
28 Some(o) => o,
29 None => return Err(PlayError::DeviceDoesNotExist { name : "default".to_string() }),
30 };
31
32 self.play_on_device(default_output)
33 }
34}