mod.rs 543 B

12345678910111213141516171819202122232425
  1. use std::borrow::Cow;
  2. use self::softmixer::SoftMixer;
  3. pub mod softmixer;
  4. pub trait Mixer {
  5. fn init(&self);
  6. fn start(&self);
  7. fn stop(&self);
  8. fn set_volume(&self, volume: u16);
  9. fn volume(&self) -> u16;
  10. fn get_audio_filter(&self) -> Option<Box<AudioFilter + Send>> {
  11. None
  12. }
  13. }
  14. pub trait AudioFilter {
  15. fn modify_stream<'a>(&self, data: &'a [i16]) -> Cow<'a, [i16]>;
  16. }
  17. pub fn find<T: AsRef<str>>(name: Option<T>) -> Option<Box<Mixer + Send>> {
  18. match name {
  19. _ => Some(Box::new(SoftMixer::new())),
  20. }
  21. }