mod.rs 480 B

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