in src/backend/mod.rs [324:363]
fn set_input_mute(unit: AudioUnit, mute: bool) -> Result<()> {
assert!(!unit.is_null());
let mute: u32 = mute.into();
let mut old_mute: u32 = 0;
let r = audio_unit_get_property(
unit,
kAUVoiceIOProperty_MuteOutput,
kAudioUnitScope_Global,
AU_IN_BUS,
&mut old_mute,
&mut mem::size_of::<u32>(),
);
if r != NO_ERR {
cubeb_log!(
"AudioUnitGetProperty/kAUVoiceIOProperty_MuteOutput rv={}",
r
);
return Err(Error::error());
}
if old_mute == mute {
return Ok(());
}
let r = audio_unit_set_property(
unit,
kAUVoiceIOProperty_MuteOutput,
kAudioUnitScope_Global,
AU_IN_BUS,
&mute,
mem::size_of::<u32>(),
);
if r == NO_ERR {
Ok(())
} else {
cubeb_log!(
"AudioUnitSetProperty/kAUVoiceIOProperty_MuteOutput rv={}",
r
);
Err(Error::error())
}
}