diff options
Diffstat (limited to 'devices/src/pci/ac97_bus_master.rs')
-rw-r--r-- | devices/src/pci/ac97_bus_master.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/devices/src/pci/ac97_bus_master.rs b/devices/src/pci/ac97_bus_master.rs index cb28c5a..5f4ca75 100644 --- a/devices/src/pci/ac97_bus_master.rs +++ b/devices/src/pci/ac97_bus_master.rs @@ -165,6 +165,9 @@ pub struct Ac97BusMaster { po_info: AudioThreadInfo, pi_info: AudioThreadInfo, + // Audio effect + capture_effects: Vec<StreamEffect>, + // Audio server used to create playback or capture streams. audio_server: Box<dyn ShmStreamSource>, @@ -184,12 +187,18 @@ impl Ac97BusMaster { po_info: AudioThreadInfo::new(), pi_info: AudioThreadInfo::new(), + capture_effects: Vec::new(), audio_server, irq_resample_thread: None, } } + /// Provides the effect needed in capture stream creation. + pub fn set_capture_effects(&mut self, effects: Vec<StreamEffect>) { + self.capture_effects = effects; + } + /// Returns any file descriptors that need to be kept open when entering a jail. pub fn keep_fds(&self) -> Option<Vec<RawFd>> { let mut fds = self.audio_server.keep_fds(); @@ -518,7 +527,7 @@ impl Ac97BusMaster { SampleFormat::S16LE, DEVICE_SAMPLE_RATE, buffer_frames, - StreamEffect::NoEffect, + self.capture_effects.as_slice(), self.mem.as_ref(), starting_offsets, ) |