in src/backend/mod.rs [1748:1786]
fn get_custom_group_id(id: AudioDeviceID, devtype: DeviceType) -> Option<CString> {
debug_assert_running_serially();
const IMIC: u32 = 0x696D_6963; // "imic" (internal microphone)
const ISPK: u32 = 0x6973_706B; // "ispk" (internal speaker)
const EMIC: u32 = 0x656D_6963; // "emic" (external microphone)
const HDPN: u32 = 0x6864_706E; // "hdpn" (headphone)
match get_device_source(id, devtype) {
s @ Ok(IMIC) | s @ Ok(ISPK) => {
const GROUP_ID: &str = "builtin-internal-mic|spk";
cubeb_log!(
"Using hardcode group id: {} when source is: {:?}.",
GROUP_ID,
convert_uint32_into_string(s.unwrap())
);
return Some(CString::new(GROUP_ID).unwrap());
}
s @ Ok(EMIC) | s @ Ok(HDPN) => {
const GROUP_ID: &str = "builtin-external-mic|hdpn";
cubeb_log!(
"Using hardcode group id: {} when source is: {:?}.",
GROUP_ID,
convert_uint32_into_string(s.unwrap())
);
return Some(CString::new(GROUP_ID).unwrap());
}
Ok(s) => {
cubeb_log!(
"No custom group id when source is: {:?}.",
convert_uint32_into_string(s)
);
}
Err(e) => {
cubeb_log!("Error: {} when getting device source. ", e);
}
}
None
}