macro_rules! check_status {
($call:expr) => {{
let status: i32 = $call;
match status {
objc2_core_audio::kAudioHardwareNoError => Ok(()),
_ => Err(anyhow::anyhow!("OSStatus: 0x{:X}", status.cast_unsigned())),
}
}};
}
macro_rules! qual {
($q:expr) => {
Some((
core::mem::size_of_val(&$q) as u32,
core::ptr::addr_of!($q).cast::<core::ffi::c_void>(),
))
};
}
macro_rules! query {
($selector:expr) => {
objc2_core_audio::AudioObjectPropertyAddress {
mSelector: $selector,
mScope: objc2_core_audio::kAudioObjectPropertyScopeGlobal,
mElement: objc2_core_audio::kAudioObjectPropertyElementMain,
}
};
}