mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-19 11:06:25 +08:00
ca2462f987
#### PR Dependency Tree * **PR #14243** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Batch management API for coordinated document mutations and change tracking. * New document accessors (IDs, state snapshots, change/delete set queries) and subscriber count. * **Chores** * Upgraded Rust edition across packages to 2024. * Repository-wide formatting, stylistic cleanups and test adjustments. * **Breaking Changes** * Removed the Node native bindings package and its JS/TS declarations and tests (no longer published/available). <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
29 lines
978 B
Rust
29 lines
978 B
Rust
use std::ptr;
|
|
|
|
use core_foundation::{base::TCFType, string::CFString};
|
|
use coreaudio::sys::{
|
|
AudioDeviceID, AudioObjectID, CFStringRef, kAudioDevicePropertyDeviceUID, kAudioObjectSystemObject,
|
|
};
|
|
|
|
use crate::{error::CoreAudioError, utils::get_global_main_property};
|
|
|
|
pub(crate) fn get_device_uid(
|
|
device_id: AudioDeviceID,
|
|
) -> std::result::Result<(AudioObjectID, CFString), CoreAudioError> {
|
|
let system_audio_id = get_device_audio_id(device_id)?;
|
|
let mut output_uid: CFStringRef = ptr::null_mut();
|
|
get_global_main_property(system_audio_id, kAudioDevicePropertyDeviceUID, &mut output_uid)?;
|
|
|
|
Ok((system_audio_id, unsafe {
|
|
CFString::wrap_under_create_rule(output_uid.cast())
|
|
}))
|
|
}
|
|
|
|
pub(crate) fn get_device_audio_id(device_id: AudioDeviceID) -> std::result::Result<AudioObjectID, CoreAudioError> {
|
|
let mut system_output_id: AudioObjectID = 0;
|
|
|
|
get_global_main_property(kAudioObjectSystemObject, device_id, &mut system_output_id)?;
|
|
|
|
Ok(system_output_id)
|
|
}
|