use core::ffi::*;
use core::ptr::NonNull;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-audio-types")]
use objc2_core_audio_types::*;
use objc2_core_foundation::*;
use crate::*;
pub const kAudioHardwareRunLoopMode: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"com.apple.audio.CoreAudio\0") };
pub const kAudioAggregateDeviceMasterSubDeviceKey: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"master\0") };
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyScopeInput: AudioObjectPropertyScope = kAudioObjectPropertyScopeInput;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyScopeOutput: AudioObjectPropertyScope =
kAudioObjectPropertyScopeOutput;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyScopePlayThrough: AudioObjectPropertyScope =
kAudioObjectPropertyScopePlayThrough;
#[cfg(feature = "AudioHardware")]
pub const kAudioPropertyWildcardPropertyID: AudioObjectPropertySelector =
kAudioObjectPropertySelectorWildcard;
pub const kAudioPropertyWildcardSection: c_uchar = 0xFF;
#[cfg(feature = "AudioHardware")]
pub const kAudioPropertyWildcardChannel: AudioObjectPropertyElement =
kAudioObjectPropertyElementWildcard;
#[cfg(feature = "AudioHardware")]
pub const kAudioISubOwnerControlClassID: AudioClassID = 0x61746368;
#[cfg(feature = "AudioHardware")]
pub const kAudioLevelControlPropertyDecibelsToScalarTransferFunction: AudioObjectPropertySelector =
0x6c637466;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AudioLevelControlTransferFunction(pub u32);
impl AudioLevelControlTransferFunction {
#[doc(alias = "kAudioLevelControlTranferFunctionLinear")]
pub const TranferFunctionLinear: Self = Self(0);
#[doc(alias = "kAudioLevelControlTranferFunction1Over3")]
pub const TranferFunction1Over3: Self = Self(1);
#[doc(alias = "kAudioLevelControlTranferFunction1Over2")]
pub const TranferFunction1Over2: Self = Self(2);
#[doc(alias = "kAudioLevelControlTranferFunction3Over4")]
pub const TranferFunction3Over4: Self = Self(3);
#[doc(alias = "kAudioLevelControlTranferFunction3Over2")]
pub const TranferFunction3Over2: Self = Self(4);
#[doc(alias = "kAudioLevelControlTranferFunction2Over1")]
pub const TranferFunction2Over1: Self = Self(5);
#[doc(alias = "kAudioLevelControlTranferFunction3Over1")]
pub const TranferFunction3Over1: Self = Self(6);
#[doc(alias = "kAudioLevelControlTranferFunction4Over1")]
pub const TranferFunction4Over1: Self = Self(7);
#[doc(alias = "kAudioLevelControlTranferFunction5Over1")]
pub const TranferFunction5Over1: Self = Self(8);
#[doc(alias = "kAudioLevelControlTranferFunction6Over1")]
pub const TranferFunction6Over1: Self = Self(9);
#[doc(alias = "kAudioLevelControlTranferFunction7Over1")]
pub const TranferFunction7Over1: Self = Self(10);
#[doc(alias = "kAudioLevelControlTranferFunction8Over1")]
pub const TranferFunction8Over1: Self = Self(11);
#[doc(alias = "kAudioLevelControlTranferFunction9Over1")]
pub const TranferFunction9Over1: Self = Self(12);
#[doc(alias = "kAudioLevelControlTranferFunction10Over1")]
pub const TranferFunction10Over1: Self = Self(13);
#[doc(alias = "kAudioLevelControlTranferFunction11Over1")]
pub const TranferFunction11Over1: Self = Self(14);
#[doc(alias = "kAudioLevelControlTranferFunction12Over1")]
pub const TranferFunction12Over1: Self = Self(15);
}
#[cfg(feature = "objc2")]
unsafe impl Encode for AudioLevelControlTransferFunction {
const ENCODING: Encoding = u32::ENCODING;
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for AudioLevelControlTransferFunction {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "AudioHardware")]
pub type AudioHardwarePropertyID = AudioObjectPropertySelector;
#[cfg(feature = "AudioHardware")]
pub type AudioHardwarePropertyListenerProc =
Option<unsafe extern "C-unwind" fn(AudioHardwarePropertyID, *mut c_void) -> OSStatus>;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyRunLoop: AudioObjectPropertySelector = 0x726e6c70;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyDeviceForUID: AudioObjectPropertySelector = 0x64756964;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyPlugInForBundleID: AudioObjectPropertySelector = 0x70696269;
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub const kAudioHardwarePropertyProcessIsMaster: AudioObjectPropertySelector = 0x6d617374;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyBootChimeVolumeScalar: AudioObjectPropertySelector = 0x62627673;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyBootChimeVolumeDecibels: AudioObjectPropertySelector = 0x62627664;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyBootChimeVolumeRangeDecibels: AudioObjectPropertySelector =
0x62626423;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyBootChimeVolumeScalarToDecibels: AudioObjectPropertySelector =
0x62763264;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyBootChimeVolumeDecibelsToScalar: AudioObjectPropertySelector =
0x62643276;
#[cfg(feature = "AudioHardware")]
pub const kAudioHardwarePropertyBootChimeVolumeDecibelsToScalarTransferFunction:
AudioObjectPropertySelector = 0x62767466;
extern "C-unwind" {
#[deprecated]
pub fn AudioHardwareAddRunLoopSource(in_run_loop_source: &CFRunLoopSource) -> OSStatus;
}
extern "C-unwind" {
#[deprecated]
pub fn AudioHardwareRemoveRunLoopSource(in_run_loop_source: &CFRunLoopSource) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioHardwareGetPropertyInfo(
in_property_id: AudioHardwarePropertyID,
out_size: *mut u32,
out_writable: *mut Boolean,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioHardwareGetProperty(
in_property_id: AudioHardwarePropertyID,
io_property_data_size: NonNull<u32>,
out_property_data: NonNull<c_void>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioHardwareSetProperty(
in_property_id: AudioHardwarePropertyID,
in_property_data_size: u32,
in_property_data: NonNull<c_void>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioHardwareAddPropertyListener(
in_property_id: AudioHardwarePropertyID,
in_proc: AudioHardwarePropertyListenerProc,
in_client_data: *mut c_void,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioHardwareRemovePropertyListener(
in_property_id: AudioHardwarePropertyID,
in_proc: AudioHardwarePropertyListenerProc,
) -> OSStatus;
}
#[cfg(feature = "AudioHardware")]
pub type AudioDeviceID = AudioObjectID;
#[cfg(feature = "AudioHardware")]
pub type AudioDevicePropertyID = AudioObjectPropertySelector;
#[cfg(feature = "AudioHardware")]
pub type AudioDevicePropertyListenerProc = Option<
unsafe extern "C-unwind" fn(
AudioDeviceID,
u32,
Boolean,
AudioDevicePropertyID,
*mut c_void,
) -> OSStatus,
>;
#[cfg(feature = "AudioHardware")]
pub const kAudioDeviceUnknown: AudioObjectID = kAudioObjectUnknown;
pub const kAudioDeviceTransportTypeAutoAggregate: u32 = 0x66677270;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyVolumeDecibelsToScalarTransferFunction: AudioObjectPropertySelector =
0x76637466;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyPlayThruVolumeDecibelsToScalarTransferFunction:
AudioObjectPropertySelector = 0x6d767466;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyDriverShouldOwniSub: AudioObjectPropertySelector = 0x69737562;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertySubVolumeDecibelsToScalarTransferFunction:
AudioObjectPropertySelector = 0x73767466;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyDeviceName: AudioObjectPropertySelector = 0x6e616d65;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyDeviceNameCFString: AudioObjectPropertySelector =
kAudioObjectPropertyName;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyDeviceManufacturer: AudioObjectPropertySelector = 0x6d616b72;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyDeviceManufacturerCFString: AudioObjectPropertySelector =
kAudioObjectPropertyManufacturer;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyRegisterBufferList: AudioObjectPropertySelector = 0x72627566;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyBufferSize: AudioObjectPropertySelector = 0x6273697a;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyBufferSizeRange: AudioObjectPropertySelector = 0x62737a23;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyChannelName: AudioObjectPropertySelector = 0x63686e6d;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyChannelNameCFString: AudioObjectPropertySelector =
kAudioObjectPropertyElementName;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyChannelCategoryName: AudioObjectPropertySelector = 0x63636e6d;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyChannelCategoryNameCFString: AudioObjectPropertySelector =
kAudioObjectPropertyElementCategoryName;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyChannelNumberName: AudioObjectPropertySelector = 0x636e6e6d;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyChannelNumberNameCFString: AudioObjectPropertySelector =
kAudioObjectPropertyElementNumberName;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertySupportsMixing: AudioObjectPropertySelector = 0x6d69783f;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyStreamFormat: AudioObjectPropertySelector = 0x73666d74;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyStreamFormats: AudioObjectPropertySelector = 0x73666d23;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyStreamFormatSupported: AudioObjectPropertySelector = 0x73666d3f;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyStreamFormatMatch: AudioObjectPropertySelector = 0x73666d6d;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyDataSourceNameForID: AudioObjectPropertySelector = 0x7373636e;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyClockSourceNameForID: AudioObjectPropertySelector = 0x6373636e;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyPlayThruDestinationNameForID: AudioObjectPropertySelector =
0x6d64646e;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyChannelNominalLineLevelNameForID: AudioObjectPropertySelector =
0x636e6c76;
#[cfg(feature = "AudioHardware")]
pub const kAudioDevicePropertyHighPassFilterSettingNameForID: AudioObjectPropertySelector =
0x63686970;
extern "C-unwind" {
#[cfg(all(feature = "AudioHardware", feature = "objc2-core-audio-types"))]
#[deprecated]
pub fn AudioDeviceAddIOProc(
in_device: AudioDeviceID,
in_proc: AudioDeviceIOProc,
in_client_data: *mut c_void,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "AudioHardware", feature = "objc2-core-audio-types"))]
#[deprecated]
pub fn AudioDeviceRemoveIOProc(
in_device: AudioDeviceID,
in_proc: AudioDeviceIOProc,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "AudioHardware", feature = "objc2-core-audio-types"))]
#[deprecated]
pub fn AudioDeviceRead(
in_device: AudioDeviceID,
in_start_time: NonNull<AudioTimeStamp>,
out_data: NonNull<AudioBufferList>,
) -> OSStatus;
}
#[cfg(feature = "AudioHardware")]
#[deprecated]
#[inline]
pub unsafe extern "C-unwind" fn AudioDeviceGetPropertyInfo(
in_device: AudioDeviceID,
in_channel: u32,
is_input: bool,
in_property_id: AudioDevicePropertyID,
out_size: *mut u32,
out_writable: *mut Boolean,
) -> OSStatus {
extern "C-unwind" {
fn AudioDeviceGetPropertyInfo(
in_device: AudioDeviceID,
in_channel: u32,
is_input: Boolean,
in_property_id: AudioDevicePropertyID,
out_size: *mut u32,
out_writable: *mut Boolean,
) -> OSStatus;
}
unsafe {
AudioDeviceGetPropertyInfo(
in_device,
in_channel,
is_input as _,
in_property_id,
out_size,
out_writable,
)
}
}
#[cfg(feature = "AudioHardware")]
#[deprecated]
#[inline]
pub unsafe extern "C-unwind" fn AudioDeviceGetProperty(
in_device: AudioDeviceID,
in_channel: u32,
is_input: bool,
in_property_id: AudioDevicePropertyID,
io_property_data_size: NonNull<u32>,
out_property_data: NonNull<c_void>,
) -> OSStatus {
extern "C-unwind" {
fn AudioDeviceGetProperty(
in_device: AudioDeviceID,
in_channel: u32,
is_input: Boolean,
in_property_id: AudioDevicePropertyID,
io_property_data_size: NonNull<u32>,
out_property_data: NonNull<c_void>,
) -> OSStatus;
}
unsafe {
AudioDeviceGetProperty(
in_device,
in_channel,
is_input as _,
in_property_id,
io_property_data_size,
out_property_data,
)
}
}
#[cfg(all(feature = "AudioHardware", feature = "objc2-core-audio-types"))]
#[deprecated]
#[inline]
pub unsafe extern "C-unwind" fn AudioDeviceSetProperty(
in_device: AudioDeviceID,
in_when: *const AudioTimeStamp,
in_channel: u32,
is_input: bool,
in_property_id: AudioDevicePropertyID,
in_property_data_size: u32,
in_property_data: NonNull<c_void>,
) -> OSStatus {
extern "C-unwind" {
fn AudioDeviceSetProperty(
in_device: AudioDeviceID,
in_when: *const AudioTimeStamp,
in_channel: u32,
is_input: Boolean,
in_property_id: AudioDevicePropertyID,
in_property_data_size: u32,
in_property_data: NonNull<c_void>,
) -> OSStatus;
}
unsafe {
AudioDeviceSetProperty(
in_device,
in_when,
in_channel,
is_input as _,
in_property_id,
in_property_data_size,
in_property_data,
)
}
}
#[cfg(feature = "AudioHardware")]
#[deprecated]
#[inline]
pub unsafe extern "C-unwind" fn AudioDeviceAddPropertyListener(
in_device: AudioDeviceID,
in_channel: u32,
is_input: bool,
in_property_id: AudioDevicePropertyID,
in_proc: AudioDevicePropertyListenerProc,
in_client_data: *mut c_void,
) -> OSStatus {
extern "C-unwind" {
fn AudioDeviceAddPropertyListener(
in_device: AudioDeviceID,
in_channel: u32,
is_input: Boolean,
in_property_id: AudioDevicePropertyID,
in_proc: AudioDevicePropertyListenerProc,
in_client_data: *mut c_void,
) -> OSStatus;
}
unsafe {
AudioDeviceAddPropertyListener(
in_device,
in_channel,
is_input as _,
in_property_id,
in_proc,
in_client_data,
)
}
}
#[cfg(feature = "AudioHardware")]
#[deprecated]
#[inline]
pub unsafe extern "C-unwind" fn AudioDeviceRemovePropertyListener(
in_device: AudioDeviceID,
in_channel: u32,
is_input: bool,
in_property_id: AudioDevicePropertyID,
in_proc: AudioDevicePropertyListenerProc,
) -> OSStatus {
extern "C-unwind" {
fn AudioDeviceRemovePropertyListener(
in_device: AudioDeviceID,
in_channel: u32,
is_input: Boolean,
in_property_id: AudioDevicePropertyID,
in_proc: AudioDevicePropertyListenerProc,
) -> OSStatus;
}
unsafe {
AudioDeviceRemovePropertyListener(
in_device,
in_channel,
is_input as _,
in_property_id,
in_proc,
)
}
}
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub const kAudioAggregateDevicePropertyMasterSubDevice: AudioObjectPropertySelector =
kAudioAggregateDevicePropertyMainSubDevice;
#[cfg(feature = "AudioHardware")]
pub type AudioStreamID = AudioObjectID;
#[cfg(feature = "AudioHardware")]
pub type AudioStreamPropertyListenerProc = Option<
unsafe extern "C-unwind" fn(AudioStreamID, u32, AudioDevicePropertyID, *mut c_void) -> OSStatus,
>;
#[cfg(feature = "AudioHardware")]
pub const kAudioStreamUnknown: AudioObjectID = kAudioObjectUnknown;
#[cfg(feature = "AudioHardware")]
pub const kAudioStreamPropertyOwningDevice: AudioObjectPropertySelector = kAudioObjectPropertyOwner;
#[cfg(feature = "AudioHardware")]
pub const kAudioStreamPropertyPhysicalFormats: AudioObjectPropertySelector = 0x70667423;
#[cfg(feature = "AudioHardware")]
pub const kAudioStreamPropertyPhysicalFormatSupported: AudioObjectPropertySelector = 0x7066743f;
#[cfg(feature = "AudioHardware")]
pub const kAudioStreamPropertyPhysicalFormatMatch: AudioObjectPropertySelector = 0x7066746d;
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioStreamGetPropertyInfo(
in_stream: AudioStreamID,
in_channel: u32,
in_property_id: AudioDevicePropertyID,
out_size: *mut u32,
out_writable: *mut Boolean,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioStreamGetProperty(
in_stream: AudioStreamID,
in_channel: u32,
in_property_id: AudioDevicePropertyID,
io_property_data_size: NonNull<u32>,
out_property_data: NonNull<c_void>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "AudioHardware", feature = "objc2-core-audio-types"))]
#[deprecated]
pub fn AudioStreamSetProperty(
in_stream: AudioStreamID,
in_when: *const AudioTimeStamp,
in_channel: u32,
in_property_id: AudioDevicePropertyID,
in_property_data_size: u32,
in_property_data: NonNull<c_void>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioStreamAddPropertyListener(
in_stream: AudioStreamID,
in_channel: u32,
in_property_id: AudioDevicePropertyID,
in_proc: AudioStreamPropertyListenerProc,
in_client_data: *mut c_void,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AudioHardware")]
#[deprecated]
pub fn AudioStreamRemovePropertyListener(
in_stream: AudioStreamID,
in_channel: u32,
in_property_id: AudioDevicePropertyID,
in_proc: AudioStreamPropertyListenerProc,
) -> OSStatus;
}
#[cfg(feature = "AudioHardware")]
pub const kAudioBootChimeVolumeControlClassID: AudioClassID = 0x7072616d;
#[cfg(feature = "AudioHardware")]
pub const kAudioControlPropertyVariant: AudioObjectPropertySelector = 0x63766172;
#[cfg(feature = "AudioHardware")]
pub const kAudioClockSourceControlPropertyItemKind: AudioObjectPropertySelector =
kAudioSelectorControlPropertyItemKind;