1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-audio-types")]
7use objc2_core_audio_types::*;
8#[cfg(feature = "objc2-core-foundation")]
9use objc2_core_foundation::*;
10#[cfg(feature = "objc2-core-midi")]
11use objc2_core_midi::*;
12
13use crate::*;
14
15pub const kAUPresetVersionKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"version\0") };
17pub const kAUPresetTypeKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"type\0") };
19pub const kAUPresetSubtypeKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"subtype\0") };
21pub const kAUPresetManufacturerKey: &CStr =
23 unsafe { CStr::from_bytes_with_nul_unchecked(b"manufacturer\0") };
24pub const kAUPresetDataKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"data\0") };
26pub const kAUPresetNameKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"name\0") };
28pub const kAUPresetNumberKey: &CStr =
30 unsafe { CStr::from_bytes_with_nul_unchecked(b"preset-number\0") };
31pub const kAUPresetRenderQualityKey: &CStr =
33 unsafe { CStr::from_bytes_with_nul_unchecked(b"render-quality\0") };
34pub const kAUPresetCPULoadKey: &CStr =
36 unsafe { CStr::from_bytes_with_nul_unchecked(b"cpu-load\0") };
37pub const kAUPresetElementNameKey: &CStr =
39 unsafe { CStr::from_bytes_with_nul_unchecked(b"element-name\0") };
40pub const kAUPresetExternalFileRefs: &CStr =
42 unsafe { CStr::from_bytes_with_nul_unchecked(b"file-references\0") };
43pub const kAUPresetVSTDataKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"vstdata\0") };
45pub const kAUPresetVSTPresetKey: &CStr =
47 unsafe { CStr::from_bytes_with_nul_unchecked(b"vstpreset\0") };
48pub const kAUPresetMASDataKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"masdata\0") };
50pub const kAUPresetPartKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"part\0") };
52pub const kAudioUnitConfigurationInfo_HasCustomView: &CStr =
54 unsafe { CStr::from_bytes_with_nul_unchecked(b"HasCustomView\0") };
55pub const kAudioUnitConfigurationInfo_ChannelConfigurations: &CStr =
57 unsafe { CStr::from_bytes_with_nul_unchecked(b"ChannelConfigurations\0") };
58pub const kAudioUnitConfigurationInfo_InitialInputs: &CStr =
60 unsafe { CStr::from_bytes_with_nul_unchecked(b"InitialInputs\0") };
61pub const kAudioUnitConfigurationInfo_InitialOutputs: &CStr =
63 unsafe { CStr::from_bytes_with_nul_unchecked(b"InitialOutputs\0") };
64pub const kAudioUnitConfigurationInfo_IconURL: &CStr =
66 unsafe { CStr::from_bytes_with_nul_unchecked(b"IconURL\0") };
67pub const kAudioUnitConfigurationInfo_BusCountWritable: &CStr =
69 unsafe { CStr::from_bytes_with_nul_unchecked(b"BusCountWritable\0") };
70pub const kAudioUnitConfigurationInfo_SupportedChannelLayoutTags: &CStr =
72 unsafe { CStr::from_bytes_with_nul_unchecked(b"SupportedChannelLayoutTags\0") };
73pub const kAudioUnitConfigurationInfo_MIDIProtocol: &CStr =
75 unsafe { CStr::from_bytes_with_nul_unchecked(b"MIDIProtocol\0") };
76pub const kAudioUnitConfigurationInfo_MigrateFromPlugin: &CStr =
78 unsafe { CStr::from_bytes_with_nul_unchecked(b"MigrateFromPlugin\0") };
79pub const kAudioUnitConfigurationInfo_AvailableArchitectures: &CStr =
81 unsafe { CStr::from_bytes_with_nul_unchecked(b"AvailableArchitectures\0") };
82#[cfg(feature = "AUComponent")]
84pub const kAudioUnitScope_Global: AudioUnitScope = 0;
85#[cfg(feature = "AUComponent")]
87pub const kAudioUnitScope_Input: AudioUnitScope = 1;
88#[cfg(feature = "AUComponent")]
90pub const kAudioUnitScope_Output: AudioUnitScope = 2;
91#[cfg(feature = "AUComponent")]
93pub const kAudioUnitScope_Group: AudioUnitScope = 3;
94#[cfg(feature = "AUComponent")]
96pub const kAudioUnitScope_Part: AudioUnitScope = 4;
97#[cfg(feature = "AUComponent")]
99pub const kAudioUnitScope_Note: AudioUnitScope = 5;
100#[cfg(feature = "AUComponent")]
102pub const kAudioUnitScope_Layer: AudioUnitScope = 6;
103#[cfg(feature = "AUComponent")]
105pub const kAudioUnitScope_LayerItem: AudioUnitScope = 7;
106
107#[cfg(feature = "AUComponent")]
109pub const kAudioUnitProperty_ClassInfo: AudioUnitPropertyID = 0;
110#[cfg(feature = "AUComponent")]
112pub const kAudioUnitProperty_MakeConnection: AudioUnitPropertyID = 1;
113#[cfg(feature = "AUComponent")]
115pub const kAudioUnitProperty_SampleRate: AudioUnitPropertyID = 2;
116#[cfg(feature = "AUComponent")]
118pub const kAudioUnitProperty_ParameterList: AudioUnitPropertyID = 3;
119#[cfg(feature = "AUComponent")]
121pub const kAudioUnitProperty_ParameterInfo: AudioUnitPropertyID = 4;
122#[cfg(feature = "AUComponent")]
124pub const kAudioUnitProperty_CPULoad: AudioUnitPropertyID = 6;
125#[cfg(feature = "AUComponent")]
127pub const kAudioUnitProperty_StreamFormat: AudioUnitPropertyID = 8;
128#[cfg(feature = "AUComponent")]
130pub const kAudioUnitProperty_ElementCount: AudioUnitPropertyID = 11;
131#[cfg(feature = "AUComponent")]
133pub const kAudioUnitProperty_Latency: AudioUnitPropertyID = 12;
134#[cfg(feature = "AUComponent")]
136pub const kAudioUnitProperty_SupportedNumChannels: AudioUnitPropertyID = 13;
137#[cfg(feature = "AUComponent")]
139pub const kAudioUnitProperty_MaximumFramesPerSlice: AudioUnitPropertyID = 14;
140#[cfg(feature = "AUComponent")]
142pub const kAudioUnitProperty_ParameterValueStrings: AudioUnitPropertyID = 16;
143#[cfg(feature = "AUComponent")]
145pub const kAudioUnitProperty_AudioChannelLayout: AudioUnitPropertyID = 19;
146#[cfg(feature = "AUComponent")]
148pub const kAudioUnitProperty_TailTime: AudioUnitPropertyID = 20;
149#[cfg(feature = "AUComponent")]
151pub const kAudioUnitProperty_BypassEffect: AudioUnitPropertyID = 21;
152#[cfg(feature = "AUComponent")]
154pub const kAudioUnitProperty_LastRenderError: AudioUnitPropertyID = 22;
155#[cfg(feature = "AUComponent")]
157pub const kAudioUnitProperty_SetRenderCallback: AudioUnitPropertyID = 23;
158#[cfg(feature = "AUComponent")]
160pub const kAudioUnitProperty_FactoryPresets: AudioUnitPropertyID = 24;
161#[cfg(feature = "AUComponent")]
163pub const kAudioUnitProperty_RenderQuality: AudioUnitPropertyID = 26;
164#[cfg(feature = "AUComponent")]
166pub const kAudioUnitProperty_HostCallbacks: AudioUnitPropertyID = 27;
167#[cfg(feature = "AUComponent")]
169pub const kAudioUnitProperty_InPlaceProcessing: AudioUnitPropertyID = 29;
170#[cfg(feature = "AUComponent")]
172pub const kAudioUnitProperty_ElementName: AudioUnitPropertyID = 30;
173#[cfg(feature = "AUComponent")]
175pub const kAudioUnitProperty_SupportedChannelLayoutTags: AudioUnitPropertyID = 32;
176#[cfg(feature = "AUComponent")]
178pub const kAudioUnitProperty_PresentPreset: AudioUnitPropertyID = 36;
179#[cfg(feature = "AUComponent")]
181pub const kAudioUnitProperty_DependentParameters: AudioUnitPropertyID = 45;
182#[cfg(feature = "AUComponent")]
184pub const kAudioUnitProperty_InputSamplesInOutput: AudioUnitPropertyID = 49;
185#[cfg(feature = "AUComponent")]
187pub const kAudioUnitProperty_ShouldAllocateBuffer: AudioUnitPropertyID = 51;
188#[cfg(feature = "AUComponent")]
190pub const kAudioUnitProperty_FrequencyResponse: AudioUnitPropertyID = 52;
191#[cfg(feature = "AUComponent")]
193pub const kAudioUnitProperty_ParameterHistoryInfo: AudioUnitPropertyID = 53;
194#[cfg(feature = "AUComponent")]
196pub const kAudioUnitProperty_NickName: AudioUnitPropertyID = 54;
197#[cfg(feature = "AUComponent")]
199pub const kAudioUnitProperty_OfflineRender: AudioUnitPropertyID = 37;
200#[cfg(feature = "AUComponent")]
202pub const kAudioUnitProperty_ParameterIDName: AudioUnitPropertyID = 34;
203#[cfg(feature = "AUComponent")]
205pub const kAudioUnitProperty_ParameterStringFromValue: AudioUnitPropertyID = 33;
206#[cfg(feature = "AUComponent")]
208pub const kAudioUnitProperty_ParameterClumpName: AudioUnitPropertyID = 35;
209#[cfg(feature = "AUComponent")]
211pub const kAudioUnitProperty_ParameterValueFromString: AudioUnitPropertyID = 38;
212#[cfg(feature = "AUComponent")]
214pub const kAudioUnitProperty_ContextName: AudioUnitPropertyID = 25;
215#[cfg(feature = "AUComponent")]
217pub const kAudioUnitProperty_PresentationLatency: AudioUnitPropertyID = 40;
218#[cfg(feature = "AUComponent")]
220pub const kAudioUnitProperty_ClassInfoFromDocument: AudioUnitPropertyID = 50;
221#[cfg(feature = "AUComponent")]
223pub const kAudioUnitProperty_RequestViewController: AudioUnitPropertyID = 56;
224#[cfg(feature = "AUComponent")]
226pub const kAudioUnitProperty_ParametersForOverview: AudioUnitPropertyID = 57;
227#[cfg(feature = "AUComponent")]
229pub const kAudioUnitProperty_SupportsMPE: AudioUnitPropertyID = 58;
230#[cfg(feature = "AUComponent")]
232pub const kAudioUnitProperty_RenderContextObserver: AudioUnitPropertyID = 60;
233#[cfg(feature = "AUComponent")]
235pub const kAudioUnitProperty_LastRenderSampleTime: AudioUnitPropertyID = 61;
236#[cfg(feature = "AUComponent")]
238pub const kAudioUnitProperty_LoadedOutOfProcess: AudioUnitPropertyID = 62;
239#[cfg(feature = "AUComponent")]
241pub const kAudioUnitProperty_FastDispatch: AudioUnitPropertyID = 5;
242#[cfg(feature = "AUComponent")]
244pub const kAudioUnitProperty_SetExternalBuffer: AudioUnitPropertyID = 15;
245#[cfg(feature = "AUComponent")]
247pub const kAudioUnitProperty_GetUIComponentList: AudioUnitPropertyID = 18;
248#[cfg(feature = "AUComponent")]
250pub const kAudioUnitProperty_CocoaUI: AudioUnitPropertyID = 31;
251#[cfg(feature = "AUComponent")]
253pub const kAudioUnitProperty_IconLocation: AudioUnitPropertyID = 39;
254#[cfg(feature = "AUComponent")]
256pub const kAudioUnitProperty_AUHostIdentifier: AudioUnitPropertyID = 46;
257#[cfg(feature = "AUComponent")]
259pub const kAudioUnitProperty_MIDIOutputCallbackInfo: AudioUnitPropertyID = 47;
260#[cfg(feature = "AUComponent")]
262pub const kAudioUnitProperty_MIDIOutputCallback: AudioUnitPropertyID = 48;
263#[cfg(feature = "AUComponent")]
265pub const kAudioUnitProperty_MIDIOutputEventListCallback: AudioUnitPropertyID = 63;
266#[cfg(feature = "AUComponent")]
268pub const kAudioUnitProperty_AudioUnitMIDIProtocol: AudioUnitPropertyID = 64;
269#[cfg(feature = "AUComponent")]
271pub const kAudioUnitProperty_HostMIDIProtocol: AudioUnitPropertyID = 65;
272#[cfg(feature = "AUComponent")]
274pub const kAudioUnitProperty_MIDIOutputBufferSizeHint: AudioUnitPropertyID = 66;
275
276#[cfg(feature = "AUComponent")]
278pub const kAudioUnitProperty_RemoteControlEventListener: AudioUnitPropertyID = 100;
279#[cfg(feature = "AUComponent")]
281pub const kAudioUnitProperty_IsInterAppConnected: AudioUnitPropertyID = 101;
282#[cfg(feature = "AUComponent")]
284pub const kAudioUnitProperty_PeerURL: AudioUnitPropertyID = 102;
285
286#[cfg(all(feature = "AUComponent", feature = "AudioComponent"))]
299#[repr(C)]
300#[derive(Clone, Copy, Debug, PartialEq)]
301pub struct AudioUnitConnection {
302 pub sourceAudioUnit: AudioUnit,
303 pub sourceOutputNumber: u32,
304 pub destInputNumber: u32,
305}
306
307#[cfg(all(feature = "AUComponent", feature = "AudioComponent"))]
308unsafe impl Encode for AudioUnitConnection {
309 const ENCODING: Encoding = Encoding::Struct(
310 "AudioUnitConnection",
311 &[<AudioUnit>::ENCODING, <u32>::ENCODING, <u32>::ENCODING],
312 );
313}
314
315#[cfg(all(feature = "AUComponent", feature = "AudioComponent"))]
316unsafe impl RefEncode for AudioUnitConnection {
317 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
318}
319
320#[repr(C)]
324#[derive(Clone, Copy, Debug, PartialEq)]
325pub struct AUChannelInfo {
326 pub inChannels: i16,
327 pub outChannels: i16,
328}
329
330unsafe impl Encode for AUChannelInfo {
331 const ENCODING: Encoding =
332 Encoding::Struct("AUChannelInfo", &[<i16>::ENCODING, <i16>::ENCODING]);
333}
334
335unsafe impl RefEncode for AUChannelInfo {
336 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
337}
338
339#[repr(C)]
343#[derive(Clone, Copy, Debug, PartialEq)]
344pub struct AudioUnitExternalBuffer {
345 pub buffer: NonNull<Byte>,
346 pub size: u32,
347}
348
349unsafe impl Encode for AudioUnitExternalBuffer {
350 const ENCODING: Encoding = Encoding::Struct(
351 "AudioUnitExternalBuffer",
352 &[<NonNull<Byte>>::ENCODING, <u32>::ENCODING],
353 );
354}
355
356unsafe impl RefEncode for AudioUnitExternalBuffer {
357 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
358}
359
360#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
364#[repr(C)]
365#[allow(unpredictable_function_pointer_comparisons)]
366#[derive(Clone, Copy, Debug, PartialEq)]
367pub struct AURenderCallbackStruct {
368 pub inputProc: AURenderCallback,
369 pub inputProcRefCon: *mut c_void,
370}
371
372#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
373unsafe impl Encode for AURenderCallbackStruct {
374 const ENCODING: Encoding = Encoding::Struct(
375 "AURenderCallbackStruct",
376 &[<AURenderCallback>::ENCODING, <*mut c_void>::ENCODING],
377 );
378}
379
380#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
381unsafe impl RefEncode for AURenderCallbackStruct {
382 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
383}
384
385#[cfg(feature = "objc2-core-foundation")]
396#[repr(C)]
397#[derive(Clone, Copy, Debug, PartialEq)]
398pub struct AUPreset {
399 pub presetNumber: i32,
400 pub presetName: *const CFString,
401}
402
403#[cfg(feature = "objc2-core-foundation")]
404unsafe impl Encode for AUPreset {
405 const ENCODING: Encoding =
406 Encoding::Struct("AUPreset", &[<i32>::ENCODING, <*const CFString>::ENCODING]);
407}
408
409#[cfg(feature = "objc2-core-foundation")]
410unsafe impl RefEncode for AUPreset {
411 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
412}
413
414pub const kRenderQuality_Max: c_uint = 127;
416pub const kRenderQuality_High: c_uint = 96;
418pub const kRenderQuality_Medium: c_uint = 64;
420pub const kRenderQuality_Low: c_uint = 32;
422pub const kRenderQuality_Min: c_uint = 0;
424
425pub const kNumberOfResponseFrequencies: c_uint = 1024;
427
428#[repr(C)]
437#[derive(Clone, Copy, Debug, PartialEq)]
438pub struct AudioUnitFrequencyResponseBin {
439 pub mFrequency: f64,
440 pub mMagnitude: f64,
441}
442
443unsafe impl Encode for AudioUnitFrequencyResponseBin {
444 const ENCODING: Encoding = Encoding::Struct(
445 "AudioUnitFrequencyResponseBin",
446 &[<f64>::ENCODING, <f64>::ENCODING],
447 );
448}
449
450unsafe impl RefEncode for AudioUnitFrequencyResponseBin {
451 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
452}
453
454pub type HostCallback_GetBeatAndTempo =
475 Option<unsafe extern "C-unwind" fn(*mut c_void, *mut f64, *mut f64) -> OSStatus>;
476
477pub type HostCallback_GetMusicalTimeLocation = Option<
502 unsafe extern "C-unwind" fn(*mut c_void, *mut u32, *mut f32, *mut u32, *mut f64) -> OSStatus,
503>;
504
505pub type HostCallback_GetTransportState = Option<
534 unsafe extern "C-unwind" fn(
535 *mut c_void,
536 *mut Boolean,
537 *mut Boolean,
538 *mut f64,
539 *mut Boolean,
540 *mut f64,
541 *mut f64,
542 ) -> OSStatus,
543>;
544
545pub type HostCallback_GetTransportState2 = Option<
576 unsafe extern "C-unwind" fn(
577 *mut c_void,
578 *mut Boolean,
579 *mut Boolean,
580 *mut Boolean,
581 *mut f64,
582 *mut Boolean,
583 *mut f64,
584 *mut f64,
585 ) -> OSStatus,
586>;
587
588#[repr(C)]
594#[allow(unpredictable_function_pointer_comparisons)]
595#[derive(Clone, Copy, Debug, PartialEq)]
596pub struct HostCallbackInfo {
597 pub hostUserData: *mut c_void,
598 pub beatAndTempoProc: HostCallback_GetBeatAndTempo,
599 pub musicalTimeLocationProc: HostCallback_GetMusicalTimeLocation,
600 pub transportStateProc: HostCallback_GetTransportState,
601 pub transportStateProc2: HostCallback_GetTransportState2,
602}
603
604unsafe impl Encode for HostCallbackInfo {
605 const ENCODING: Encoding = Encoding::Struct(
606 "HostCallbackInfo",
607 &[
608 <*mut c_void>::ENCODING,
609 <HostCallback_GetBeatAndTempo>::ENCODING,
610 <HostCallback_GetMusicalTimeLocation>::ENCODING,
611 <HostCallback_GetTransportState>::ENCODING,
612 <HostCallback_GetTransportState2>::ENCODING,
613 ],
614 );
615}
616
617unsafe impl RefEncode for HostCallbackInfo {
618 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
619}
620
621#[cfg(feature = "AUComponent")]
626#[repr(C)]
627#[derive(Clone, Copy, Debug, PartialEq)]
628pub struct AUDependentParameter {
629 pub mScope: AudioUnitScope,
630 pub mParameterID: AudioUnitParameterID,
631}
632
633#[cfg(feature = "AUComponent")]
634unsafe impl Encode for AUDependentParameter {
635 const ENCODING: Encoding = Encoding::Struct(
636 "AUDependentParameter",
637 &[<AudioUnitScope>::ENCODING, <AudioUnitParameterID>::ENCODING],
638 );
639}
640
641#[cfg(feature = "AUComponent")]
642unsafe impl RefEncode for AUDependentParameter {
643 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
644}
645
646#[cfg(feature = "objc2-core-foundation")]
654#[repr(C)]
655#[derive(Clone, Copy, Debug, PartialEq)]
656pub struct AudioUnitCocoaViewInfo {
657 pub mCocoaAUViewBundleLocation: NonNull<CFURL>,
658 pub mCocoaAUViewClass: [NonNull<CFString>; 1],
659}
660
661#[cfg(feature = "objc2-core-foundation")]
662unsafe impl Encode for AudioUnitCocoaViewInfo {
663 const ENCODING: Encoding = Encoding::Struct(
664 "AudioUnitCocoaViewInfo",
665 &[
666 <NonNull<CFURL>>::ENCODING,
667 <[NonNull<CFString>; 1]>::ENCODING,
668 ],
669 );
670}
671
672#[cfg(feature = "objc2-core-foundation")]
673unsafe impl RefEncode for AudioUnitCocoaViewInfo {
674 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
675}
676
677#[cfg(feature = "objc2-core-foundation")]
681#[repr(C)]
682#[derive(Clone, Copy, Debug, PartialEq)]
683pub struct AUHostVersionIdentifier {
684 pub hostName: NonNull<CFString>,
685 pub hostVersion: u32,
686}
687
688#[cfg(feature = "objc2-core-foundation")]
689unsafe impl Encode for AUHostVersionIdentifier {
690 const ENCODING: Encoding = Encoding::Struct(
691 "AUHostVersionIdentifier",
692 &[<NonNull<CFString>>::ENCODING, <u32>::ENCODING],
693 );
694}
695
696#[cfg(feature = "objc2-core-foundation")]
697unsafe impl RefEncode for AUHostVersionIdentifier {
698 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
699}
700
701#[cfg(all(feature = "objc2-core-audio-types", feature = "objc2-core-midi"))]
703pub type AUMIDIOutputCallback = Option<
704 unsafe extern "C-unwind" fn(
705 *mut c_void,
706 NonNull<AudioTimeStamp>,
707 u32,
708 NonNull<MIDIPacketList>,
709 ) -> OSStatus,
710>;
711
712#[cfg(all(feature = "objc2-core-audio-types", feature = "objc2-core-midi"))]
717#[repr(C)]
718#[allow(unpredictable_function_pointer_comparisons)]
719#[derive(Clone, Copy, Debug, PartialEq)]
720pub struct AUMIDIOutputCallbackStruct {
721 pub midiOutputCallback: AUMIDIOutputCallback,
722 pub userData: *mut c_void,
723}
724
725#[cfg(all(feature = "objc2-core-audio-types", feature = "objc2-core-midi"))]
726unsafe impl Encode for AUMIDIOutputCallbackStruct {
727 const ENCODING: Encoding = Encoding::Struct(
728 "AUMIDIOutputCallbackStruct",
729 &[<AUMIDIOutputCallback>::ENCODING, <*mut c_void>::ENCODING],
730 );
731}
732
733#[cfg(all(feature = "objc2-core-audio-types", feature = "objc2-core-midi"))]
734unsafe impl RefEncode for AUMIDIOutputCallbackStruct {
735 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
736}
737
738#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
743#[repr(C)]
744#[allow(unpredictable_function_pointer_comparisons)]
745#[derive(Clone, Copy, Debug, PartialEq)]
746pub struct AUInputSamplesInOutputCallbackStruct {
747 pub inputToOutputCallback: AUInputSamplesInOutputCallback,
748 pub userData: *mut c_void,
749}
750
751#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
752unsafe impl Encode for AUInputSamplesInOutputCallbackStruct {
753 const ENCODING: Encoding = Encoding::Struct(
754 "AUInputSamplesInOutputCallbackStruct",
755 &[
756 <AUInputSamplesInOutputCallback>::ENCODING,
757 <*mut c_void>::ENCODING,
758 ],
759 );
760}
761
762#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
763unsafe impl RefEncode for AUInputSamplesInOutputCallbackStruct {
764 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
765}
766
767#[repr(C)]
776#[derive(Clone, Copy, Debug, PartialEq)]
777pub struct AudioUnitParameterHistoryInfo {
778 pub updatesPerSecond: f32,
779 pub historyDurationInSeconds: f32,
780}
781
782unsafe impl Encode for AudioUnitParameterHistoryInfo {
783 const ENCODING: Encoding = Encoding::Struct(
784 "AudioUnitParameterHistoryInfo",
785 &[<f32>::ENCODING, <f32>::ENCODING],
786 );
787}
788
789unsafe impl RefEncode for AudioUnitParameterHistoryInfo {
790 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
791}
792
793pub type AUEventSampleTime = i64;
800
801#[repr(transparent)]
861#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
862pub struct AudioUnitParameterUnit(pub u32);
863impl AudioUnitParameterUnit {
864 #[doc(alias = "kAudioUnitParameterUnit_Generic")]
865 pub const Generic: Self = Self(0);
866 #[doc(alias = "kAudioUnitParameterUnit_Indexed")]
867 pub const Indexed: Self = Self(1);
868 #[doc(alias = "kAudioUnitParameterUnit_Boolean")]
869 pub const Boolean: Self = Self(2);
870 #[doc(alias = "kAudioUnitParameterUnit_Percent")]
871 pub const Percent: Self = Self(3);
872 #[doc(alias = "kAudioUnitParameterUnit_Seconds")]
873 pub const Seconds: Self = Self(4);
874 #[doc(alias = "kAudioUnitParameterUnit_SampleFrames")]
875 pub const SampleFrames: Self = Self(5);
876 #[doc(alias = "kAudioUnitParameterUnit_Phase")]
877 pub const Phase: Self = Self(6);
878 #[doc(alias = "kAudioUnitParameterUnit_Rate")]
879 pub const Rate: Self = Self(7);
880 #[doc(alias = "kAudioUnitParameterUnit_Hertz")]
881 pub const Hertz: Self = Self(8);
882 #[doc(alias = "kAudioUnitParameterUnit_Cents")]
883 pub const Cents: Self = Self(9);
884 #[doc(alias = "kAudioUnitParameterUnit_RelativeSemiTones")]
885 pub const RelativeSemiTones: Self = Self(10);
886 #[doc(alias = "kAudioUnitParameterUnit_MIDINoteNumber")]
887 pub const MIDINoteNumber: Self = Self(11);
888 #[doc(alias = "kAudioUnitParameterUnit_MIDIController")]
889 pub const MIDIController: Self = Self(12);
890 #[doc(alias = "kAudioUnitParameterUnit_Decibels")]
891 pub const Decibels: Self = Self(13);
892 #[doc(alias = "kAudioUnitParameterUnit_LinearGain")]
893 pub const LinearGain: Self = Self(14);
894 #[doc(alias = "kAudioUnitParameterUnit_Degrees")]
895 pub const Degrees: Self = Self(15);
896 #[doc(alias = "kAudioUnitParameterUnit_EqualPowerCrossfade")]
897 pub const EqualPowerCrossfade: Self = Self(16);
898 #[doc(alias = "kAudioUnitParameterUnit_MixerFaderCurve1")]
899 pub const MixerFaderCurve1: Self = Self(17);
900 #[doc(alias = "kAudioUnitParameterUnit_Pan")]
901 pub const Pan: Self = Self(18);
902 #[doc(alias = "kAudioUnitParameterUnit_Meters")]
903 pub const Meters: Self = Self(19);
904 #[doc(alias = "kAudioUnitParameterUnit_AbsoluteCents")]
905 pub const AbsoluteCents: Self = Self(20);
906 #[doc(alias = "kAudioUnitParameterUnit_Octaves")]
907 pub const Octaves: Self = Self(21);
908 #[doc(alias = "kAudioUnitParameterUnit_BPM")]
909 pub const BPM: Self = Self(22);
910 #[doc(alias = "kAudioUnitParameterUnit_Beats")]
911 pub const Beats: Self = Self(23);
912 #[doc(alias = "kAudioUnitParameterUnit_Milliseconds")]
913 pub const Milliseconds: Self = Self(24);
914 #[doc(alias = "kAudioUnitParameterUnit_Ratio")]
915 pub const Ratio: Self = Self(25);
916 #[doc(alias = "kAudioUnitParameterUnit_CustomUnit")]
917 pub const CustomUnit: Self = Self(26);
918 #[doc(alias = "kAudioUnitParameterUnit_MIDI2Controller")]
919 pub const MIDI2Controller: Self = Self(27);
920}
921
922unsafe impl Encode for AudioUnitParameterUnit {
923 const ENCODING: Encoding = u32::ENCODING;
924}
925
926unsafe impl RefEncode for AudioUnitParameterUnit {
927 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
928}
929
930#[repr(transparent)]
971#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
972pub struct AudioUnitParameterOptions(pub u32);
973bitflags::bitflags! {
974 impl AudioUnitParameterOptions: u32 {
975 #[doc(alias = "kAudioUnitParameterFlag_CFNameRelease")]
976 const Flag_CFNameRelease = 1<<4;
977 #[doc(alias = "kAudioUnitParameterFlag_OmitFromPresets")]
978 const Flag_OmitFromPresets = 1<<13;
979 #[doc(alias = "kAudioUnitParameterFlag_PlotHistory")]
980 const Flag_PlotHistory = 1<<14;
981 #[doc(alias = "kAudioUnitParameterFlag_MeterReadOnly")]
982 const Flag_MeterReadOnly = 1<<15;
983 #[doc(alias = "kAudioUnitParameterFlag_DisplayMask")]
984 const Flag_DisplayMask = (7<<16)|(1<<22);
985 #[doc(alias = "kAudioUnitParameterFlag_DisplaySquareRoot")]
986 const Flag_DisplaySquareRoot = 1<<16;
987 #[doc(alias = "kAudioUnitParameterFlag_DisplaySquared")]
988 const Flag_DisplaySquared = 2<<16;
989 #[doc(alias = "kAudioUnitParameterFlag_DisplayCubed")]
990 const Flag_DisplayCubed = 3<<16;
991 #[doc(alias = "kAudioUnitParameterFlag_DisplayCubeRoot")]
992 const Flag_DisplayCubeRoot = 4<<16;
993 #[doc(alias = "kAudioUnitParameterFlag_DisplayExponential")]
994 const Flag_DisplayExponential = 5<<16;
995 #[doc(alias = "kAudioUnitParameterFlag_HasClump")]
996 const Flag_HasClump = 1<<20;
997 #[doc(alias = "kAudioUnitParameterFlag_ValuesHaveStrings")]
998 const Flag_ValuesHaveStrings = 1<<21;
999 #[doc(alias = "kAudioUnitParameterFlag_DisplayLogarithmic")]
1000 const Flag_DisplayLogarithmic = 1<<22;
1001 #[doc(alias = "kAudioUnitParameterFlag_IsHighResolution")]
1002 const Flag_IsHighResolution = 1<<23;
1003 #[doc(alias = "kAudioUnitParameterFlag_NonRealTime")]
1004 const Flag_NonRealTime = 1<<24;
1005 #[doc(alias = "kAudioUnitParameterFlag_CanRamp")]
1006 const Flag_CanRamp = 1<<25;
1007 #[doc(alias = "kAudioUnitParameterFlag_ExpertMode")]
1008 const Flag_ExpertMode = 1<<26;
1009 #[doc(alias = "kAudioUnitParameterFlag_HasCFNameString")]
1010 const Flag_HasCFNameString = 1<<27;
1011 #[doc(alias = "kAudioUnitParameterFlag_IsGlobalMeta")]
1012 const Flag_IsGlobalMeta = 1<<28;
1013 #[doc(alias = "kAudioUnitParameterFlag_IsElementMeta")]
1014 const Flag_IsElementMeta = 1<<29;
1015 #[doc(alias = "kAudioUnitParameterFlag_IsReadable")]
1016 const Flag_IsReadable = 1<<30;
1017 #[doc(alias = "kAudioUnitParameterFlag_IsWritable")]
1018 const Flag_IsWritable = 1<<31;
1019 }
1020}
1021
1022unsafe impl Encode for AudioUnitParameterOptions {
1023 const ENCODING: Encoding = u32::ENCODING;
1024}
1025
1026unsafe impl RefEncode for AudioUnitParameterOptions {
1027 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1028}
1029
1030#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1066#[repr(C)]
1067#[derive(Clone, Copy, Debug, PartialEq)]
1068pub struct AudioUnitParameterInfo {
1069 pub name: [c_char; 52],
1070 pub unitName: *const CFString,
1071 pub clumpID: u32,
1072 pub cfNameString: *const CFString,
1073 pub unit: AudioUnitParameterUnit,
1074 pub minValue: AudioUnitParameterValue,
1075 pub maxValue: AudioUnitParameterValue,
1076 pub defaultValue: AudioUnitParameterValue,
1077 pub flags: AudioUnitParameterOptions,
1078}
1079
1080#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1081unsafe impl Encode for AudioUnitParameterInfo {
1082 const ENCODING: Encoding = Encoding::Struct(
1083 "AudioUnitParameterInfo",
1084 &[
1085 <[c_char; 52]>::ENCODING,
1086 <*const CFString>::ENCODING,
1087 <u32>::ENCODING,
1088 <*const CFString>::ENCODING,
1089 <AudioUnitParameterUnit>::ENCODING,
1090 <AudioUnitParameterValue>::ENCODING,
1091 <AudioUnitParameterValue>::ENCODING,
1092 <AudioUnitParameterValue>::ENCODING,
1093 <AudioUnitParameterOptions>::ENCODING,
1094 ],
1095 );
1096}
1097
1098#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1099unsafe impl RefEncode for AudioUnitParameterInfo {
1100 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1101}
1102
1103pub const kAudioUnitClumpID_System: c_uint = 0;
1105
1106pub const kAudioUnitParameterName_Full: c_int = -1;
1112
1113#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1117#[repr(C)]
1118#[derive(Clone, Copy, Debug, PartialEq)]
1119pub struct AudioUnitParameterNameInfo {
1120 pub inID: AudioUnitParameterID,
1121 pub inDesiredLength: i32,
1122 pub outName: *const CFString,
1123}
1124
1125#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1126unsafe impl Encode for AudioUnitParameterNameInfo {
1127 const ENCODING: Encoding = Encoding::Struct(
1128 "AudioUnitParameterNameInfo",
1129 &[
1130 <AudioUnitParameterID>::ENCODING,
1131 <i32>::ENCODING,
1132 <*const CFString>::ENCODING,
1133 ],
1134 );
1135}
1136
1137#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1138unsafe impl RefEncode for AudioUnitParameterNameInfo {
1139 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1140}
1141
1142#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1144pub type AudioUnitParameterIDName = AudioUnitParameterNameInfo;
1145
1146#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1150#[repr(C)]
1151#[derive(Clone, Copy, Debug, PartialEq)]
1152pub struct AudioUnitParameterStringFromValue {
1153 pub inParamID: AudioUnitParameterID,
1154 pub inValue: NonNull<AudioUnitParameterValue>,
1155 pub outString: *const CFString,
1156}
1157
1158#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1159unsafe impl Encode for AudioUnitParameterStringFromValue {
1160 const ENCODING: Encoding = Encoding::Struct(
1161 "AudioUnitParameterStringFromValue",
1162 &[
1163 <AudioUnitParameterID>::ENCODING,
1164 <NonNull<AudioUnitParameterValue>>::ENCODING,
1165 <*const CFString>::ENCODING,
1166 ],
1167 );
1168}
1169
1170#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1171unsafe impl RefEncode for AudioUnitParameterStringFromValue {
1172 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1173}
1174
1175#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1179#[repr(C)]
1180#[derive(Clone, Copy, Debug, PartialEq)]
1181pub struct AudioUnitParameterValueFromString {
1182 pub inParamID: AudioUnitParameterID,
1183 pub inString: NonNull<CFString>,
1184 pub outValue: AudioUnitParameterValue,
1185}
1186
1187#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1188unsafe impl Encode for AudioUnitParameterValueFromString {
1189 const ENCODING: Encoding = Encoding::Struct(
1190 "AudioUnitParameterValueFromString",
1191 &[
1192 <AudioUnitParameterID>::ENCODING,
1193 <NonNull<CFString>>::ENCODING,
1194 <AudioUnitParameterValue>::ENCODING,
1195 ],
1196 );
1197}
1198
1199#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
1200unsafe impl RefEncode for AudioUnitParameterValueFromString {
1201 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1202}
1203
1204#[repr(transparent)]
1209#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1210pub struct AudioUnitRemoteControlEvent(pub u32);
1211impl AudioUnitRemoteControlEvent {
1212 #[doc(alias = "kAudioUnitRemoteControlEvent_TogglePlayPause")]
1213 pub const TogglePlayPause: Self = Self(1);
1214 #[doc(alias = "kAudioUnitRemoteControlEvent_ToggleRecord")]
1215 pub const ToggleRecord: Self = Self(2);
1216 #[doc(alias = "kAudioUnitRemoteControlEvent_Rewind")]
1217 pub const Rewind: Self = Self(3);
1218}
1219
1220unsafe impl Encode for AudioUnitRemoteControlEvent {
1221 const ENCODING: Encoding = u32::ENCODING;
1222}
1223
1224unsafe impl RefEncode for AudioUnitRemoteControlEvent {
1225 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1226}
1227
1228#[cfg(feature = "block2")]
1232pub type AudioUnitRemoteControlEventListener =
1233 *mut block2::DynBlock<dyn Fn(AudioUnitRemoteControlEvent)>;
1234
1235#[cfg(feature = "AUComponent")]
1237pub const kAudioUnitProperty_AllParameterMIDIMappings: AudioUnitPropertyID = 41;
1238#[cfg(feature = "AUComponent")]
1240pub const kAudioUnitProperty_AddParameterMIDIMapping: AudioUnitPropertyID = 42;
1241#[cfg(feature = "AUComponent")]
1243pub const kAudioUnitProperty_RemoveParameterMIDIMapping: AudioUnitPropertyID = 43;
1244#[cfg(feature = "AUComponent")]
1246pub const kAudioUnitProperty_HotMapParameterMIDIMapping: AudioUnitPropertyID = 44;
1247
1248#[repr(transparent)]
1295#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1296pub struct AUParameterMIDIMappingFlags(pub u32);
1297bitflags::bitflags! {
1298 impl AUParameterMIDIMappingFlags: u32 {
1299 #[doc(alias = "kAUParameterMIDIMapping_AnyChannelFlag")]
1300 const AnyChannelFlag = 1<<0;
1301 #[doc(alias = "kAUParameterMIDIMapping_AnyNoteFlag")]
1302 const AnyNoteFlag = 1<<1;
1303 #[doc(alias = "kAUParameterMIDIMapping_SubRange")]
1304 const SubRange = 1<<2;
1305 #[doc(alias = "kAUParameterMIDIMapping_Toggle")]
1306 const Toggle = 1<<3;
1307 #[doc(alias = "kAUParameterMIDIMapping_Bipolar")]
1308 const Bipolar = 1<<4;
1309 #[doc(alias = "kAUParameterMIDIMapping_Bipolar_On")]
1310 const Bipolar_On = 1<<5;
1311 }
1312}
1313
1314unsafe impl Encode for AUParameterMIDIMappingFlags {
1315 const ENCODING: Encoding = u32::ENCODING;
1316}
1317
1318unsafe impl RefEncode for AUParameterMIDIMappingFlags {
1319 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1320}
1321
1322#[cfg(feature = "AUComponent")]
1330#[repr(C)]
1331#[derive(Clone, Copy, Debug, PartialEq)]
1332pub struct AUParameterMIDIMapping {
1333 pub mScope: AudioUnitScope,
1334 pub mElement: AudioUnitElement,
1335 pub mParameterID: AudioUnitParameterID,
1336 pub mFlags: AUParameterMIDIMappingFlags,
1337 pub mSubRangeMin: AudioUnitParameterValue,
1338 pub mSubRangeMax: AudioUnitParameterValue,
1339 pub mStatus: u8,
1340 pub mData1: u8,
1341 pub reserved1: u8,
1342 pub reserved2: u8,
1343 pub reserved3: u32,
1344}
1345
1346#[cfg(feature = "AUComponent")]
1347unsafe impl Encode for AUParameterMIDIMapping {
1348 const ENCODING: Encoding = Encoding::Struct(
1349 "AUParameterMIDIMapping",
1350 &[
1351 <AudioUnitScope>::ENCODING,
1352 <AudioUnitElement>::ENCODING,
1353 <AudioUnitParameterID>::ENCODING,
1354 <AUParameterMIDIMappingFlags>::ENCODING,
1355 <AudioUnitParameterValue>::ENCODING,
1356 <AudioUnitParameterValue>::ENCODING,
1357 <u8>::ENCODING,
1358 <u8>::ENCODING,
1359 <u8>::ENCODING,
1360 <u8>::ENCODING,
1361 <u32>::ENCODING,
1362 ],
1363 );
1364}
1365
1366#[cfg(feature = "AUComponent")]
1367unsafe impl RefEncode for AUParameterMIDIMapping {
1368 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1369}
1370
1371#[cfg(feature = "AUComponent")]
1373pub const kMusicDeviceProperty_MIDIXMLNames: AudioUnitPropertyID = 1006;
1374#[cfg(feature = "AUComponent")]
1376pub const kMusicDeviceProperty_PartGroup: AudioUnitPropertyID = 1010;
1377#[cfg(feature = "AUComponent")]
1379pub const kMusicDeviceProperty_DualSchedulingMode: AudioUnitPropertyID = 1013;
1380#[cfg(feature = "AUComponent")]
1382pub const kMusicDeviceProperty_SupportsStartStopNote: AudioUnitPropertyID = 1014;
1383
1384pub const kMusicDeviceSampleFrameMask_SampleOffset: c_uint = 0xFFFFFF;
1386pub const kMusicDeviceSampleFrameMask_IsScheduled: c_uint = 0x01000000;
1388
1389#[cfg(feature = "AUComponent")]
1391pub const kAudioUnitOfflineProperty_InputSize: AudioUnitPropertyID = 3020;
1392#[cfg(feature = "AUComponent")]
1394pub const kAudioUnitOfflineProperty_OutputSize: AudioUnitPropertyID = 3021;
1395#[cfg(feature = "AUComponent")]
1397pub const kAudioUnitOfflineProperty_StartOffset: AudioUnitPropertyID = 3022;
1398#[cfg(feature = "AUComponent")]
1400pub const kAudioUnitOfflineProperty_PreflightRequirements: AudioUnitPropertyID = 3023;
1401#[cfg(feature = "AUComponent")]
1403pub const kAudioUnitOfflineProperty_PreflightName: AudioUnitPropertyID = 3024;
1404
1405pub const kOfflinePreflight_NotRequired: c_uint = 0;
1407pub const kOfflinePreflight_Optional: c_uint = 1;
1409pub const kOfflinePreflight_Required: c_uint = 2;
1411
1412#[cfg(feature = "AUComponent")]
1414#[deprecated = "no longer supported"]
1415pub const kAudioUnitProperty_DistanceAttenuationData: AudioUnitPropertyID = 3600;
1416
1417#[cfg(feature = "AUComponent")]
1419pub const kAudioUnitMigrateProperty_FromPlugin: AudioUnitPropertyID = 4000;
1420#[cfg(feature = "AUComponent")]
1422pub const kAudioUnitMigrateProperty_OldAutomation: AudioUnitPropertyID = 4001;
1423
1424pub const kOtherPluginFormat_Undefined: u32 = 0;
1426pub const kOtherPluginFormat_kMAS: u32 = 1;
1428pub const kOtherPluginFormat_kVST: u32 = 2;
1430pub const kOtherPluginFormat_AU: u32 = 3;
1432
1433#[cfg(feature = "objc2-core-audio-types")]
1451#[repr(C)]
1452#[derive(Clone, Copy, Debug, PartialEq)]
1453pub struct AudioUnitOtherPluginDesc {
1454 pub format: u32,
1455 pub plugin: AudioClassDescription,
1456}
1457
1458#[cfg(feature = "objc2-core-audio-types")]
1459unsafe impl Encode for AudioUnitOtherPluginDesc {
1460 const ENCODING: Encoding = Encoding::Struct(
1461 "AudioUnitOtherPluginDesc",
1462 &[<u32>::ENCODING, <AudioClassDescription>::ENCODING],
1463 );
1464}
1465
1466#[cfg(feature = "objc2-core-audio-types")]
1467unsafe impl RefEncode for AudioUnitOtherPluginDesc {
1468 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1469}
1470
1471#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
1476#[repr(C)]
1477#[derive(Clone, Copy, Debug, PartialEq)]
1478pub struct AudioUnitParameterValueTranslation {
1479 pub otherDesc: AudioUnitOtherPluginDesc,
1480 pub otherParamID: u32,
1481 pub otherValue: f32,
1482 pub auParamID: AudioUnitParameterID,
1483 pub auValue: AudioUnitParameterValue,
1484}
1485
1486#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
1487unsafe impl Encode for AudioUnitParameterValueTranslation {
1488 const ENCODING: Encoding = Encoding::Struct(
1489 "AudioUnitParameterValueTranslation",
1490 &[
1491 <AudioUnitOtherPluginDesc>::ENCODING,
1492 <u32>::ENCODING,
1493 <f32>::ENCODING,
1494 <AudioUnitParameterID>::ENCODING,
1495 <AudioUnitParameterValue>::ENCODING,
1496 ],
1497 );
1498}
1499
1500#[cfg(all(feature = "AUComponent", feature = "objc2-core-audio-types"))]
1501unsafe impl RefEncode for AudioUnitParameterValueTranslation {
1502 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1503}
1504
1505#[repr(C)]
1510#[derive(Clone, Copy, Debug, PartialEq)]
1511pub struct AudioUnitPresetMAS_SettingData {
1512 pub isStockSetting: u32,
1513 pub settingID: u32,
1514 pub dataLen: u32,
1515 pub data: [u8; 1],
1516}
1517
1518unsafe impl Encode for AudioUnitPresetMAS_SettingData {
1519 const ENCODING: Encoding = Encoding::Struct(
1520 "AudioUnitPresetMAS_SettingData",
1521 &[
1522 <u32>::ENCODING,
1523 <u32>::ENCODING,
1524 <u32>::ENCODING,
1525 <[u8; 1]>::ENCODING,
1526 ],
1527 );
1528}
1529
1530unsafe impl RefEncode for AudioUnitPresetMAS_SettingData {
1531 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1532}
1533
1534#[repr(C)]
1538#[derive(Clone, Copy, Debug, PartialEq)]
1539pub struct AudioUnitPresetMAS_Settings {
1540 pub manufacturerID: u32,
1541 pub effectID: u32,
1542 pub variantID: u32,
1543 pub settingsVersion: u32,
1544 pub numberOfSettings: u32,
1545 pub settings: [AudioUnitPresetMAS_SettingData; 1],
1546}
1547
1548unsafe impl Encode for AudioUnitPresetMAS_Settings {
1549 const ENCODING: Encoding = Encoding::Struct(
1550 "AudioUnitPresetMAS_Settings",
1551 &[
1552 <u32>::ENCODING,
1553 <u32>::ENCODING,
1554 <u32>::ENCODING,
1555 <u32>::ENCODING,
1556 <u32>::ENCODING,
1557 <[AudioUnitPresetMAS_SettingData; 1]>::ENCODING,
1558 ],
1559 );
1560}
1561
1562unsafe impl RefEncode for AudioUnitPresetMAS_Settings {
1563 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1564}
1565
1566#[cfg(feature = "AUComponent")]
1568pub const kAudioUnitProperty_SampleRateConverterComplexity: AudioUnitPropertyID = 3014;
1569
1570pub const kAudioUnitSampleRateConverterComplexity_Linear: u32 = 0x6c696e65;
1572pub const kAudioUnitSampleRateConverterComplexity_Normal: u32 = 0x6e6f726d;
1574pub const kAudioUnitSampleRateConverterComplexity_Mastering: u32 = 0x62617473;
1576
1577#[cfg(feature = "AUComponent")]
1579pub const kAudioOutputUnitProperty_CurrentDevice: AudioUnitPropertyID = 2000;
1580#[cfg(feature = "AUComponent")]
1582pub const kAudioOutputUnitProperty_IsRunning: AudioUnitPropertyID = 2001;
1583#[cfg(feature = "AUComponent")]
1585pub const kAudioOutputUnitProperty_ChannelMap: AudioUnitPropertyID = 2002;
1586#[cfg(feature = "AUComponent")]
1588pub const kAudioOutputUnitProperty_EnableIO: AudioUnitPropertyID = 2003;
1589#[cfg(feature = "AUComponent")]
1591pub const kAudioOutputUnitProperty_StartTime: AudioUnitPropertyID = 2004;
1592#[cfg(feature = "AUComponent")]
1594pub const kAudioOutputUnitProperty_SetInputCallback: AudioUnitPropertyID = 2005;
1595#[cfg(feature = "AUComponent")]
1597pub const kAudioOutputUnitProperty_HasIO: AudioUnitPropertyID = 2006;
1598#[cfg(feature = "AUComponent")]
1600pub const kAudioOutputUnitProperty_StartTimestampsAtZero: AudioUnitPropertyID = 2007;
1601#[cfg(feature = "AUComponent")]
1603pub const kAudioOutputUnitProperty_OSWorkgroup: AudioUnitPropertyID = 2015;
1604#[cfg(feature = "AUComponent")]
1606pub const kAudioOutputUnitProperty_IntendedSpatialExperience: AudioUnitPropertyID = 2016;
1607
1608#[cfg(feature = "AUComponent")]
1610pub const kAudioOutputUnitProperty_MIDICallbacks: AudioUnitPropertyID = 2010;
1611#[cfg(feature = "AUComponent")]
1613pub const kAudioOutputUnitProperty_HostReceivesRemoteControlEvents: AudioUnitPropertyID = 2011;
1614#[cfg(feature = "AUComponent")]
1616pub const kAudioOutputUnitProperty_RemoteControlToHost: AudioUnitPropertyID = 2012;
1617#[cfg(feature = "AUComponent")]
1619pub const kAudioOutputUnitProperty_HostTransportState: AudioUnitPropertyID = 2013;
1620#[cfg(feature = "AUComponent")]
1622pub const kAudioOutputUnitProperty_NodeComponentDescription: AudioUnitPropertyID = 2014;
1623
1624#[repr(C)]
1631#[allow(unpredictable_function_pointer_comparisons)]
1632#[derive(Clone, Copy, Debug, PartialEq)]
1633pub struct AudioOutputUnitMIDICallbacks {
1634 pub userData: *mut c_void,
1635 pub MIDIEventProc: unsafe extern "C-unwind" fn(*mut c_void, u32, u32, u32, u32),
1636 pub MIDISysExProc: unsafe extern "C-unwind" fn(*mut c_void, NonNull<u8>, u32),
1637}
1638
1639unsafe impl Encode for AudioOutputUnitMIDICallbacks {
1640 const ENCODING: Encoding = Encoding::Struct(
1641 "AudioOutputUnitMIDICallbacks",
1642 &[
1643 <*mut c_void>::ENCODING,
1644 <unsafe extern "C-unwind" fn(*mut c_void, u32, u32, u32, u32)>::ENCODING,
1645 <unsafe extern "C-unwind" fn(*mut c_void, NonNull<u8>, u32)>::ENCODING,
1646 ],
1647 );
1648}
1649
1650unsafe impl RefEncode for AudioOutputUnitMIDICallbacks {
1651 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1652}
1653
1654#[cfg(feature = "objc2-core-audio-types")]
1656#[repr(C)]
1657#[derive(Clone, Copy, Debug, PartialEq)]
1658pub struct AudioOutputUnitStartAtTimeParams {
1659 pub mTimestamp: AudioTimeStamp,
1660 pub mFlags: u32,
1661}
1662
1663#[cfg(feature = "objc2-core-audio-types")]
1664unsafe impl Encode for AudioOutputUnitStartAtTimeParams {
1665 const ENCODING: Encoding = Encoding::Struct(
1666 "AudioOutputUnitStartAtTimeParams",
1667 &[<AudioTimeStamp>::ENCODING, <u32>::ENCODING],
1668 );
1669}
1670
1671#[cfg(feature = "objc2-core-audio-types")]
1672unsafe impl RefEncode for AudioOutputUnitStartAtTimeParams {
1673 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1674}
1675
1676#[cfg(feature = "AUComponent")]
1678pub const kAUVoiceIOProperty_BypassVoiceProcessing: AudioUnitPropertyID = 2100;
1679#[cfg(feature = "AUComponent")]
1681pub const kAUVoiceIOProperty_VoiceProcessingEnableAGC: AudioUnitPropertyID = 2101;
1682#[cfg(feature = "AUComponent")]
1684pub const kAUVoiceIOProperty_MuteOutput: AudioUnitPropertyID = 2104;
1685
1686#[repr(transparent)]
1689#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1690pub struct AUVoiceIOSpeechActivityEvent(pub u32);
1691impl AUVoiceIOSpeechActivityEvent {
1692 #[doc(alias = "kAUVoiceIOSpeechActivityHasStarted")]
1693 pub const HasStarted: Self = Self(0);
1694 #[doc(alias = "kAUVoiceIOSpeechActivityHasEnded")]
1695 pub const HasEnded: Self = Self(1);
1696}
1697
1698unsafe impl Encode for AUVoiceIOSpeechActivityEvent {
1699 const ENCODING: Encoding = u32::ENCODING;
1700}
1701
1702unsafe impl RefEncode for AUVoiceIOSpeechActivityEvent {
1703 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1704}
1705
1706#[cfg(feature = "block2")]
1710pub type AUVoiceIOMutedSpeechActivityEventListener =
1711 *mut block2::DynBlock<dyn Fn(AUVoiceIOSpeechActivityEvent)>;
1712
1713#[cfg(feature = "AUComponent")]
1715pub const kAUVoiceIOProperty_MutedSpeechActivityEventListener: AudioUnitPropertyID = 2106;
1716
1717#[repr(transparent)]
1727#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1728pub struct AUVoiceIOOtherAudioDuckingLevel(pub u32);
1729impl AUVoiceIOOtherAudioDuckingLevel {
1730 #[doc(alias = "kAUVoiceIOOtherAudioDuckingLevelDefault")]
1731 pub const Default: Self = Self(0);
1732 #[doc(alias = "kAUVoiceIOOtherAudioDuckingLevelMin")]
1733 pub const Min: Self = Self(10);
1734 #[doc(alias = "kAUVoiceIOOtherAudioDuckingLevelMid")]
1735 pub const Mid: Self = Self(20);
1736 #[doc(alias = "kAUVoiceIOOtherAudioDuckingLevelMax")]
1737 pub const Max: Self = Self(30);
1738}
1739
1740unsafe impl Encode for AUVoiceIOOtherAudioDuckingLevel {
1741 const ENCODING: Encoding = u32::ENCODING;
1742}
1743
1744unsafe impl RefEncode for AUVoiceIOOtherAudioDuckingLevel {
1745 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1746}
1747
1748#[repr(C)]
1757#[derive(Clone, Copy, Debug, PartialEq)]
1758pub struct AUVoiceIOOtherAudioDuckingConfiguration {
1759 pub mEnableAdvancedDucking: Boolean,
1760 pub mDuckingLevel: AUVoiceIOOtherAudioDuckingLevel,
1761}
1762
1763unsafe impl Encode for AUVoiceIOOtherAudioDuckingConfiguration {
1764 const ENCODING: Encoding = Encoding::Struct(
1765 "AUVoiceIOOtherAudioDuckingConfiguration",
1766 &[
1767 <Boolean>::ENCODING,
1768 <AUVoiceIOOtherAudioDuckingLevel>::ENCODING,
1769 ],
1770 );
1771}
1772
1773unsafe impl RefEncode for AUVoiceIOOtherAudioDuckingConfiguration {
1774 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1775}
1776
1777#[cfg(feature = "AUComponent")]
1779pub const kAUVoiceIOProperty_OtherAudioDuckingConfiguration: AudioUnitPropertyID = 2108;
1780
1781#[cfg(feature = "AUComponent")]
1783#[deprecated]
1784pub const kAUVoiceIOProperty_VoiceProcessingQuality: AudioUnitPropertyID = 2103;
1785
1786#[cfg(feature = "AUComponent")]
1788pub const kAUNBandEQProperty_NumberOfBands: AudioUnitPropertyID = 2200;
1789#[cfg(feature = "AUComponent")]
1791pub const kAUNBandEQProperty_MaxNumberOfBands: AudioUnitPropertyID = 2201;
1792#[cfg(feature = "AUComponent")]
1794pub const kAUNBandEQProperty_BiquadCoefficients: AudioUnitPropertyID = 2203;
1795
1796pub const kAUVoiceIOErr_UnexpectedNumberOfInputChannels: OSStatus = -66784;
1798
1799#[cfg(feature = "AUComponent")]
1801pub const kAudioUnitProperty_MeteringMode: AudioUnitPropertyID = 3007;
1802#[cfg(feature = "AUComponent")]
1804pub const kAudioUnitProperty_MatrixLevels: AudioUnitPropertyID = 3006;
1805#[cfg(feature = "AUComponent")]
1807pub const kAudioUnitProperty_MatrixDimensions: AudioUnitPropertyID = 3009;
1808#[cfg(feature = "AUComponent")]
1810pub const kAudioUnitProperty_MeterClipping: AudioUnitPropertyID = 3011;
1811#[cfg(feature = "AUComponent")]
1813pub const kAudioUnitProperty_InputAnchorTimeStamp: AudioUnitPropertyID = 3016;
1814
1815#[repr(C)]
1823#[derive(Clone, Copy, Debug, PartialEq)]
1824pub struct AudioUnitMeterClipping {
1825 pub peakValueSinceLastCall: f32,
1826 pub sawInfinity: Boolean,
1827 pub sawNotANumber: Boolean,
1828}
1829
1830unsafe impl Encode for AudioUnitMeterClipping {
1831 const ENCODING: Encoding = Encoding::Struct(
1832 "AudioUnitMeterClipping",
1833 &[<f32>::ENCODING, <Boolean>::ENCODING, <Boolean>::ENCODING],
1834 );
1835}
1836
1837unsafe impl RefEncode for AudioUnitMeterClipping {
1838 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1839}
1840
1841#[cfg(feature = "AUComponent")]
1843pub const kAudioUnitProperty_ReverbRoomType: AudioUnitPropertyID = 10;
1844#[cfg(feature = "AUComponent")]
1846pub const kAudioUnitProperty_UsesInternalReverb: AudioUnitPropertyID = 1005;
1847#[cfg(feature = "AUComponent")]
1849pub const kAudioUnitProperty_SpatializationAlgorithm: AudioUnitPropertyID = 3000;
1850#[cfg(feature = "AUComponent")]
1852pub const kAudioUnitProperty_SpatialMixerRenderingFlags: AudioUnitPropertyID = 3003;
1853#[cfg(feature = "AUComponent")]
1855pub const kAudioUnitProperty_SpatialMixerSourceMode: AudioUnitPropertyID = 3005;
1856#[cfg(feature = "AUComponent")]
1858pub const kAudioUnitProperty_SpatialMixerDistanceParams: AudioUnitPropertyID = 3010;
1859#[cfg(feature = "AUComponent")]
1861pub const kAudioUnitProperty_SpatialMixerAttenuationCurve: AudioUnitPropertyID = 3013;
1862#[cfg(feature = "AUComponent")]
1864pub const kAudioUnitProperty_SpatialMixerOutputType: AudioUnitPropertyID = 3100;
1865#[cfg(feature = "AUComponent")]
1867pub const kAudioUnitProperty_SpatialMixerPointSourceInHeadMode: AudioUnitPropertyID = 3103;
1868#[cfg(feature = "AUComponent")]
1870pub const kAudioUnitProperty_SpatialMixerEnableHeadTracking: AudioUnitPropertyID = 3111;
1871#[cfg(feature = "AUComponent")]
1873pub const kAudioUnitProperty_SpatialMixerPersonalizedHRTFMode: AudioUnitPropertyID = 3113;
1874#[cfg(feature = "AUComponent")]
1876pub const kAudioUnitProperty_SpatialMixerAnyInputIsUsingPersonalizedHRTF: AudioUnitPropertyID =
1877 3116;
1878
1879#[repr(transparent)]
1885#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1886pub struct AUSpatializationAlgorithm(pub u32);
1887impl AUSpatializationAlgorithm {
1888 #[doc(alias = "kSpatializationAlgorithm_EqualPowerPanning")]
1889 pub const SpatializationAlgorithm_EqualPowerPanning: Self = Self(0);
1890 #[doc(alias = "kSpatializationAlgorithm_SphericalHead")]
1891 pub const SpatializationAlgorithm_SphericalHead: Self = Self(1);
1892 #[doc(alias = "kSpatializationAlgorithm_HRTF")]
1893 pub const SpatializationAlgorithm_HRTF: Self = Self(2);
1894 #[doc(alias = "kSpatializationAlgorithm_SoundField")]
1895 pub const SpatializationAlgorithm_SoundField: Self = Self(3);
1896 #[doc(alias = "kSpatializationAlgorithm_VectorBasedPanning")]
1897 pub const SpatializationAlgorithm_VectorBasedPanning: Self = Self(4);
1898 #[doc(alias = "kSpatializationAlgorithm_StereoPassThrough")]
1899 pub const SpatializationAlgorithm_StereoPassThrough: Self = Self(5);
1900 #[doc(alias = "kSpatializationAlgorithm_HRTFHQ")]
1901 pub const SpatializationAlgorithm_HRTFHQ: Self = Self(6);
1902 #[doc(alias = "kSpatializationAlgorithm_UseOutputType")]
1903 pub const SpatializationAlgorithm_UseOutputType: Self = Self(7);
1904}
1905
1906unsafe impl Encode for AUSpatializationAlgorithm {
1907 const ENCODING: Encoding = u32::ENCODING;
1908}
1909
1910unsafe impl RefEncode for AUSpatializationAlgorithm {
1911 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1912}
1913
1914#[repr(transparent)]
1943#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1944pub struct AUSpatialMixerSourceMode(pub u32);
1945impl AUSpatialMixerSourceMode {
1946 #[doc(alias = "kSpatialMixerSourceMode_SpatializeIfMono")]
1947 pub const SpatialMixerSourceMode_SpatializeIfMono: Self = Self(0);
1948 #[doc(alias = "kSpatialMixerSourceMode_Bypass")]
1949 pub const SpatialMixerSourceMode_Bypass: Self = Self(1);
1950 #[doc(alias = "kSpatialMixerSourceMode_PointSource")]
1951 pub const SpatialMixerSourceMode_PointSource: Self = Self(2);
1952 #[doc(alias = "kSpatialMixerSourceMode_AmbienceBed")]
1953 pub const SpatialMixerSourceMode_AmbienceBed: Self = Self(3);
1954}
1955
1956unsafe impl Encode for AUSpatialMixerSourceMode {
1957 const ENCODING: Encoding = u32::ENCODING;
1958}
1959
1960unsafe impl RefEncode for AUSpatialMixerSourceMode {
1961 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1962}
1963
1964#[repr(transparent)]
1970#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1971pub struct AUReverbRoomType(pub u32);
1972impl AUReverbRoomType {
1973 #[doc(alias = "kReverbRoomType_SmallRoom")]
1974 pub const ReverbRoomType_SmallRoom: Self = Self(0);
1975 #[doc(alias = "kReverbRoomType_MediumRoom")]
1976 pub const ReverbRoomType_MediumRoom: Self = Self(1);
1977 #[doc(alias = "kReverbRoomType_LargeRoom")]
1978 pub const ReverbRoomType_LargeRoom: Self = Self(2);
1979 #[doc(alias = "kReverbRoomType_MediumHall")]
1980 pub const ReverbRoomType_MediumHall: Self = Self(3);
1981 #[doc(alias = "kReverbRoomType_LargeHall")]
1982 pub const ReverbRoomType_LargeHall: Self = Self(4);
1983 #[doc(alias = "kReverbRoomType_Plate")]
1984 pub const ReverbRoomType_Plate: Self = Self(5);
1985 #[doc(alias = "kReverbRoomType_MediumChamber")]
1986 pub const ReverbRoomType_MediumChamber: Self = Self(6);
1987 #[doc(alias = "kReverbRoomType_LargeChamber")]
1988 pub const ReverbRoomType_LargeChamber: Self = Self(7);
1989 #[doc(alias = "kReverbRoomType_Cathedral")]
1990 pub const ReverbRoomType_Cathedral: Self = Self(8);
1991 #[doc(alias = "kReverbRoomType_LargeRoom2")]
1992 pub const ReverbRoomType_LargeRoom2: Self = Self(9);
1993 #[doc(alias = "kReverbRoomType_MediumHall2")]
1994 pub const ReverbRoomType_MediumHall2: Self = Self(10);
1995 #[doc(alias = "kReverbRoomType_MediumHall3")]
1996 pub const ReverbRoomType_MediumHall3: Self = Self(11);
1997 #[doc(alias = "kReverbRoomType_LargeHall2")]
1998 pub const ReverbRoomType_LargeHall2: Self = Self(12);
1999}
2000
2001unsafe impl Encode for AUReverbRoomType {
2002 const ENCODING: Encoding = u32::ENCODING;
2003}
2004
2005unsafe impl RefEncode for AUReverbRoomType {
2006 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2007}
2008
2009#[repr(transparent)]
2012#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
2013pub struct AUSpatialMixerAttenuationCurve(pub u32);
2014impl AUSpatialMixerAttenuationCurve {
2015 #[doc(alias = "kSpatialMixerAttenuationCurve_Power")]
2016 pub const SpatialMixerAttenuationCurve_Power: Self = Self(0);
2017 #[doc(alias = "kSpatialMixerAttenuationCurve_Exponential")]
2018 pub const SpatialMixerAttenuationCurve_Exponential: Self = Self(1);
2019 #[doc(alias = "kSpatialMixerAttenuationCurve_Inverse")]
2020 pub const SpatialMixerAttenuationCurve_Inverse: Self = Self(2);
2021 #[doc(alias = "kSpatialMixerAttenuationCurve_Linear")]
2022 pub const SpatialMixerAttenuationCurve_Linear: Self = Self(3);
2023}
2024
2025unsafe impl Encode for AUSpatialMixerAttenuationCurve {
2026 const ENCODING: Encoding = u32::ENCODING;
2027}
2028
2029unsafe impl RefEncode for AUSpatialMixerAttenuationCurve {
2030 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2031}
2032
2033#[repr(C)]
2035#[derive(Clone, Copy, Debug, PartialEq)]
2036pub struct MixerDistanceParams {
2037 pub mReferenceDistance: f32,
2038 pub mMaxDistance: f32,
2039 pub mMaxAttenuation: f32,
2040}
2041
2042unsafe impl Encode for MixerDistanceParams {
2043 const ENCODING: Encoding = Encoding::Struct(
2044 "MixerDistanceParams",
2045 &[<f32>::ENCODING, <f32>::ENCODING, <f32>::ENCODING],
2046 );
2047}
2048
2049unsafe impl RefEncode for MixerDistanceParams {
2050 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2051}
2052
2053#[repr(transparent)]
2056#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
2057pub struct AUSpatialMixerRenderingFlags(pub u32);
2058bitflags::bitflags! {
2059 impl AUSpatialMixerRenderingFlags: u32 {
2060 #[doc(alias = "kSpatialMixerRenderingFlags_InterAuralDelay")]
2061 const SpatialMixerRenderingFlags_InterAuralDelay = 1<<0;
2062 #[doc(alias = "kSpatialMixerRenderingFlags_DistanceAttenuation")]
2063 const SpatialMixerRenderingFlags_DistanceAttenuation = 1<<2;
2064 }
2065}
2066
2067unsafe impl Encode for AUSpatialMixerRenderingFlags {
2068 const ENCODING: Encoding = u32::ENCODING;
2069}
2070
2071unsafe impl RefEncode for AUSpatialMixerRenderingFlags {
2072 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2073}
2074
2075#[repr(transparent)]
2089#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
2090pub struct AUSpatialMixerPersonalizedHRTFMode(pub u32);
2091impl AUSpatialMixerPersonalizedHRTFMode {
2092 #[doc(alias = "kSpatialMixerPersonalizedHRTFMode_Off")]
2093 pub const SpatialMixerPersonalizedHRTFMode_Off: Self = Self(0);
2094 #[doc(alias = "kSpatialMixerPersonalizedHRTFMode_On")]
2095 pub const SpatialMixerPersonalizedHRTFMode_On: Self = Self(1);
2096 #[doc(alias = "kSpatialMixerPersonalizedHRTFMode_Auto")]
2097 pub const SpatialMixerPersonalizedHRTFMode_Auto: Self = Self(2);
2098}
2099
2100unsafe impl Encode for AUSpatialMixerPersonalizedHRTFMode {
2101 const ENCODING: Encoding = u32::ENCODING;
2102}
2103
2104unsafe impl RefEncode for AUSpatialMixerPersonalizedHRTFMode {
2105 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2106}
2107
2108#[repr(transparent)]
2124#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
2125pub struct AUSpatialMixerOutputType(pub u32);
2126impl AUSpatialMixerOutputType {
2127 #[doc(alias = "kSpatialMixerOutputType_Headphones")]
2128 pub const SpatialMixerOutputType_Headphones: Self = Self(1);
2129 #[doc(alias = "kSpatialMixerOutputType_BuiltInSpeakers")]
2130 pub const SpatialMixerOutputType_BuiltInSpeakers: Self = Self(2);
2131 #[doc(alias = "kSpatialMixerOutputType_ExternalSpeakers")]
2132 pub const SpatialMixerOutputType_ExternalSpeakers: Self = Self(3);
2133}
2134
2135unsafe impl Encode for AUSpatialMixerOutputType {
2136 const ENCODING: Encoding = u32::ENCODING;
2137}
2138
2139unsafe impl RefEncode for AUSpatialMixerOutputType {
2140 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2141}
2142
2143#[repr(transparent)]
2160#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
2161pub struct AUSpatialMixerPointSourceInHeadMode(pub u32);
2162impl AUSpatialMixerPointSourceInHeadMode {
2163 #[doc(alias = "kSpatialMixerPointSourceInHeadMode_Mono")]
2164 pub const SpatialMixerPointSourceInHeadMode_Mono: Self = Self(0);
2165 #[doc(alias = "kSpatialMixerPointSourceInHeadMode_Bypass")]
2166 pub const SpatialMixerPointSourceInHeadMode_Bypass: Self = Self(1);
2167}
2168
2169unsafe impl Encode for AUSpatialMixerPointSourceInHeadMode {
2170 const ENCODING: Encoding = u32::ENCODING;
2171}
2172
2173unsafe impl RefEncode for AUSpatialMixerPointSourceInHeadMode {
2174 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2175}
2176
2177#[cfg(feature = "AUComponent")]
2179pub const kAUAudioMixProperty_SpatialAudioMixMetadata: AudioUnitPropertyID = 5000;
2180#[cfg(feature = "AUComponent")]
2182pub const kAUAudioMixProperty_EnableSpatialization: AudioUnitPropertyID = 5001;
2183
2184#[cfg(feature = "AUComponent")]
2186#[deprecated]
2187pub const kAudioUnitProperty_3DMixerDistanceParams: AudioUnitPropertyID = 3010;
2188#[cfg(feature = "AUComponent")]
2190#[deprecated]
2191pub const kAudioUnitProperty_3DMixerAttenuationCurve: AudioUnitPropertyID = 3013;
2192#[cfg(feature = "AUComponent")]
2194#[deprecated]
2195pub const kAudioUnitProperty_DopplerShift: AudioUnitPropertyID = 3002;
2196#[cfg(feature = "AUComponent")]
2198#[deprecated]
2199pub const kAudioUnitProperty_3DMixerRenderingFlags: AudioUnitPropertyID = 3003;
2200#[cfg(feature = "AUComponent")]
2202#[deprecated]
2203pub const kAudioUnitProperty_3DMixerDistanceAtten: AudioUnitPropertyID = 3004;
2204#[cfg(feature = "AUComponent")]
2206#[deprecated]
2207pub const kAudioUnitProperty_ReverbPreset: AudioUnitPropertyID = 3012;
2208
2209#[repr(transparent)]
2212#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
2213pub struct AU3DMixerRenderingFlags(pub u32);
2214bitflags::bitflags! {
2215 impl AU3DMixerRenderingFlags: u32 {
2216 const k3DMixerRenderingFlags_InterAuralDelay = 1<<0;
2217 const k3DMixerRenderingFlags_DopplerShift = 1<<1;
2218 const k3DMixerRenderingFlags_DistanceAttenuation = 1<<2;
2219 const k3DMixerRenderingFlags_DistanceFilter = 1<<3;
2220 const k3DMixerRenderingFlags_DistanceDiffusion = 1<<4;
2221 const k3DMixerRenderingFlags_LinearDistanceAttenuation = 1<<5;
2222 const k3DMixerRenderingFlags_ConstantReverbBlend = 1<<6;
2223 }
2224}
2225
2226unsafe impl Encode for AU3DMixerRenderingFlags {
2227 const ENCODING: Encoding = u32::ENCODING;
2228}
2229
2230unsafe impl RefEncode for AU3DMixerRenderingFlags {
2231 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2232}
2233
2234#[repr(transparent)]
2237#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
2238pub struct AU3DMixerAttenuationCurve(pub u32);
2239impl AU3DMixerAttenuationCurve {
2240 pub const k3DMixerAttenuationCurve_Power: Self = Self(0);
2241 pub const k3DMixerAttenuationCurve_Exponential: Self = Self(1);
2242 pub const k3DMixerAttenuationCurve_Inverse: Self = Self(2);
2243 pub const k3DMixerAttenuationCurve_Linear: Self = Self(3);
2244}
2245
2246unsafe impl Encode for AU3DMixerAttenuationCurve {
2247 const ENCODING: Encoding = u32::ENCODING;
2248}
2249
2250unsafe impl RefEncode for AU3DMixerAttenuationCurve {
2251 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2252}
2253
2254#[cfg(feature = "AUComponent")]
2256pub const kAudioUnitProperty_ScheduleAudioSlice: AudioUnitPropertyID = 3300;
2257#[cfg(feature = "AUComponent")]
2259pub const kAudioUnitProperty_ScheduleStartTimeStamp: AudioUnitPropertyID = 3301;
2260#[cfg(feature = "AUComponent")]
2262pub const kAudioUnitProperty_CurrentPlayTime: AudioUnitPropertyID = 3302;
2263
2264#[repr(transparent)]
2285#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
2286pub struct AUScheduledAudioSliceFlags(pub u32);
2287bitflags::bitflags! {
2288 impl AUScheduledAudioSliceFlags: u32 {
2289 #[doc(alias = "kScheduledAudioSliceFlag_Complete")]
2290 const ScheduledAudioSliceFlag_Complete = 0x01;
2291 #[doc(alias = "kScheduledAudioSliceFlag_BeganToRender")]
2292 const ScheduledAudioSliceFlag_BeganToRender = 0x02;
2293 #[doc(alias = "kScheduledAudioSliceFlag_BeganToRenderLate")]
2294 const ScheduledAudioSliceFlag_BeganToRenderLate = 0x04;
2295 #[doc(alias = "kScheduledAudioSliceFlag_Loop")]
2296 const ScheduledAudioSliceFlag_Loop = 0x08;
2297 #[doc(alias = "kScheduledAudioSliceFlag_Interrupt")]
2298 const ScheduledAudioSliceFlag_Interrupt = 0x10;
2299 #[doc(alias = "kScheduledAudioSliceFlag_InterruptAtLoop")]
2300 const ScheduledAudioSliceFlag_InterruptAtLoop = 0x20;
2301 }
2302}
2303
2304unsafe impl Encode for AUScheduledAudioSliceFlags {
2305 const ENCODING: Encoding = u32::ENCODING;
2306}
2307
2308unsafe impl RefEncode for AUScheduledAudioSliceFlags {
2309 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2310}
2311
2312#[cfg(feature = "AUComponent")]
2314pub const kAudioUnitProperty_ScheduledFileIDs: AudioUnitPropertyID = 3310;
2315#[cfg(feature = "AUComponent")]
2317pub const kAudioUnitProperty_ScheduledFileRegion: AudioUnitPropertyID = 3311;
2318#[cfg(feature = "AUComponent")]
2320pub const kAudioUnitProperty_ScheduledFilePrime: AudioUnitPropertyID = 3312;
2321#[cfg(feature = "AUComponent")]
2323pub const kAudioUnitProperty_ScheduledFileBufferSizeFrames: AudioUnitPropertyID = 3313;
2324#[cfg(feature = "AUComponent")]
2326pub const kAudioUnitProperty_ScheduledFileNumberBuffers: AudioUnitPropertyID = 3314;
2327
2328#[cfg(feature = "AUComponent")]
2330pub const kMusicDeviceProperty_UsesInternalReverb: AudioUnitPropertyID =
2331 kAudioUnitProperty_UsesInternalReverb;
2332#[cfg(feature = "AUComponent")]
2334pub const kMusicDeviceProperty_SoundBankData: AudioUnitPropertyID = 1008;
2335#[cfg(feature = "AUComponent")]
2337pub const kMusicDeviceProperty_StreamFromDisk: AudioUnitPropertyID = 1011;
2338#[cfg(feature = "AUComponent")]
2340pub const kMusicDeviceProperty_SoundBankFSRef: AudioUnitPropertyID = 1012;
2341
2342#[cfg(feature = "AUComponent")]
2344pub const kMusicDeviceProperty_InstrumentName: AudioUnitPropertyID = 1001;
2345#[cfg(feature = "AUComponent")]
2347pub const kMusicDeviceProperty_InstrumentNumber: AudioUnitPropertyID = 1004;
2348
2349#[cfg(feature = "AUComponent")]
2351pub const kMusicDeviceProperty_InstrumentCount: AudioUnitPropertyID = 1000;
2352#[cfg(feature = "AUComponent")]
2354pub const kMusicDeviceProperty_BankName: AudioUnitPropertyID = 1007;
2355#[cfg(feature = "AUComponent")]
2357pub const kMusicDeviceProperty_SoundBankURL: AudioUnitPropertyID = 1100;
2358
2359#[cfg(feature = "AUComponent")]
2361pub const kAUMIDISynthProperty_EnablePreload: AudioUnitPropertyID = 4119;
2362
2363#[cfg(feature = "AUComponent")]
2365pub const kAUSamplerProperty_LoadInstrument: AudioUnitPropertyID = 4102;
2366#[cfg(feature = "AUComponent")]
2368pub const kAUSamplerProperty_LoadAudioFiles: AudioUnitPropertyID = 4101;
2369
2370#[cfg(feature = "objc2-core-foundation")]
2372#[repr(C)]
2373#[derive(Clone, Copy, Debug, PartialEq)]
2374pub struct AUSamplerInstrumentData {
2375 pub fileURL: NonNull<CFURL>,
2376 pub instrumentType: u8,
2377 pub bankMSB: u8,
2378 pub bankLSB: u8,
2379 pub presetID: u8,
2380}
2381
2382#[cfg(feature = "objc2-core-foundation")]
2383unsafe impl Encode for AUSamplerInstrumentData {
2384 const ENCODING: Encoding = Encoding::Struct(
2385 "AUSamplerInstrumentData",
2386 &[
2387 <NonNull<CFURL>>::ENCODING,
2388 <u8>::ENCODING,
2389 <u8>::ENCODING,
2390 <u8>::ENCODING,
2391 <u8>::ENCODING,
2392 ],
2393 );
2394}
2395
2396#[cfg(feature = "objc2-core-foundation")]
2397unsafe impl RefEncode for AUSamplerInstrumentData {
2398 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2399}
2400
2401pub const kInstrumentType_DLSPreset: c_uint = 1;
2403pub const kInstrumentType_SF2Preset: c_uint = kInstrumentType_DLSPreset;
2405pub const kInstrumentType_AUPreset: c_uint = 2;
2407pub const kInstrumentType_Audiofile: c_uint = 3;
2409pub const kInstrumentType_EXS24: c_uint = 4;
2411
2412pub const kAUSampler_DefaultPercussionBankMSB: c_uint = 0x78;
2414pub const kAUSampler_DefaultMelodicBankMSB: c_uint = 0x79;
2416pub const kAUSampler_DefaultBankLSB: c_uint = 0x00;
2418
2419#[cfg(feature = "AUComponent")]
2421pub const kAudioUnitProperty_DeferredRendererPullSize: AudioUnitPropertyID = 3320;
2422#[cfg(feature = "AUComponent")]
2424pub const kAudioUnitProperty_DeferredRendererExtraLatency: AudioUnitPropertyID = 3321;
2425#[cfg(feature = "AUComponent")]
2427pub const kAudioUnitProperty_DeferredRendererWaitFrames: AudioUnitPropertyID = 3322;
2428
2429#[cfg(feature = "AUComponent")]
2431pub const kAUNetReceiveProperty_Hostname: AudioUnitPropertyID = 3511;
2432#[cfg(feature = "AUComponent")]
2434pub const kAUNetReceiveProperty_Password: AudioUnitPropertyID = 3512;
2435
2436#[cfg(feature = "AUComponent")]
2438pub const kAUNetSendProperty_PortNum: AudioUnitPropertyID = 3513;
2439#[cfg(feature = "AUComponent")]
2441pub const kAUNetSendProperty_TransmissionFormat: AudioUnitPropertyID = 3514;
2442#[cfg(feature = "AUComponent")]
2444pub const kAUNetSendProperty_TransmissionFormatIndex: AudioUnitPropertyID = 3515;
2445#[cfg(feature = "AUComponent")]
2447pub const kAUNetSendProperty_ServiceName: AudioUnitPropertyID = 3516;
2448#[cfg(feature = "AUComponent")]
2450pub const kAUNetSendProperty_Disconnect: AudioUnitPropertyID = 3517;
2451#[cfg(feature = "AUComponent")]
2453pub const kAUNetSendProperty_Password: AudioUnitPropertyID = 3518;
2454
2455#[cfg(feature = "AUComponent")]
2457pub const kAUNetSendPresetFormat_PCMFloat32: AudioUnitPropertyID = 0;
2458#[cfg(feature = "AUComponent")]
2460pub const kAUNetSendPresetFormat_PCMInt24: AudioUnitPropertyID = 1;
2461#[cfg(feature = "AUComponent")]
2463pub const kAUNetSendPresetFormat_PCMInt16: AudioUnitPropertyID = 2;
2464#[cfg(feature = "AUComponent")]
2466pub const kAUNetSendPresetFormat_Lossless24: AudioUnitPropertyID = 3;
2467#[cfg(feature = "AUComponent")]
2469pub const kAUNetSendPresetFormat_Lossless16: AudioUnitPropertyID = 4;
2470#[cfg(feature = "AUComponent")]
2472pub const kAUNetSendPresetFormat_ULaw: AudioUnitPropertyID = 5;
2473#[cfg(feature = "AUComponent")]
2475pub const kAUNetSendPresetFormat_IMA4: AudioUnitPropertyID = 6;
2476#[cfg(feature = "AUComponent")]
2478pub const kAUNetSendPresetFormat_AAC_128kbpspc: AudioUnitPropertyID = 7;
2479#[cfg(feature = "AUComponent")]
2481pub const kAUNetSendPresetFormat_AAC_96kbpspc: AudioUnitPropertyID = 8;
2482#[cfg(feature = "AUComponent")]
2484pub const kAUNetSendPresetFormat_AAC_80kbpspc: AudioUnitPropertyID = 9;
2485#[cfg(feature = "AUComponent")]
2487pub const kAUNetSendPresetFormat_AAC_64kbpspc: AudioUnitPropertyID = 10;
2488#[cfg(feature = "AUComponent")]
2490pub const kAUNetSendPresetFormat_AAC_48kbpspc: AudioUnitPropertyID = 11;
2491#[cfg(feature = "AUComponent")]
2493pub const kAUNetSendPresetFormat_AAC_40kbpspc: AudioUnitPropertyID = 12;
2494#[cfg(feature = "AUComponent")]
2496pub const kAUNetSendPresetFormat_AAC_32kbpspc: AudioUnitPropertyID = 13;
2497#[cfg(feature = "AUComponent")]
2499pub const kAUNetSendPresetFormat_AAC_LD_64kbpspc: AudioUnitPropertyID = 14;
2500#[cfg(feature = "AUComponent")]
2502pub const kAUNetSendPresetFormat_AAC_LD_48kbpspc: AudioUnitPropertyID = 15;
2503#[cfg(feature = "AUComponent")]
2505pub const kAUNetSendPresetFormat_AAC_LD_40kbpspc: AudioUnitPropertyID = 16;
2506#[cfg(feature = "AUComponent")]
2508pub const kAUNetSendPresetFormat_AAC_LD_32kbpspc: AudioUnitPropertyID = 17;
2509#[cfg(feature = "AUComponent")]
2511pub const kAUNetSendNumPresetFormats: AudioUnitPropertyID = 18;
2512
2513#[repr(C)]
2515#[derive(Clone, Copy, Debug, PartialEq)]
2516pub struct AUNumVersion {
2517 pub nonRelRev: u8,
2518 pub stage: u8,
2519 pub minorAndBugRev: u8,
2520 pub majorRev: u8,
2521}
2522
2523unsafe impl Encode for AUNumVersion {
2524 const ENCODING: Encoding = Encoding::Struct(
2525 "AUNumVersion",
2526 &[
2527 <u8>::ENCODING,
2528 <u8>::ENCODING,
2529 <u8>::ENCODING,
2530 <u8>::ENCODING,
2531 ],
2532 );
2533}
2534
2535unsafe impl RefEncode for AUNumVersion {
2536 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2537}
2538
2539#[cfg(feature = "objc2-core-foundation")]
2543#[repr(C)]
2544#[derive(Clone, Copy, Debug, PartialEq)]
2545pub struct AUHostIdentifier {
2546 pub hostName: NonNull<CFString>,
2547 pub hostVersion: AUNumVersion,
2548}
2549
2550#[cfg(feature = "objc2-core-foundation")]
2551unsafe impl Encode for AUHostIdentifier {
2552 const ENCODING: Encoding = Encoding::Struct(
2553 "AUHostIdentifier",
2554 &[<NonNull<CFString>>::ENCODING, <AUNumVersion>::ENCODING],
2555 );
2556}
2557
2558#[cfg(feature = "objc2-core-foundation")]
2559unsafe impl RefEncode for AUHostIdentifier {
2560 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2561}
2562
2563pub const kAudioUnitParameterFlag_Global: c_uint = 1 << 0;
2565pub const kAudioUnitParameterFlag_Input: c_uint = 1 << 1;
2567pub const kAudioUnitParameterFlag_Output: c_uint = 1 << 2;
2569pub const kAudioUnitParameterFlag_Group: c_uint = 1 << 3;
2571
2572pub const kAudioUnitParameterFlag_HasName: u32 =
2574 AudioUnitParameterOptions::Flag_ValuesHaveStrings.0;
2575
2576#[cfg(feature = "AUComponent")]
2578pub const kAudioUnitProperty_SRCAlgorithm: AudioUnitPropertyID = 9;
2579#[cfg(feature = "AUComponent")]
2581pub const kAudioUnitProperty_MIDIControlMapping: AudioUnitPropertyID = 17;
2582#[cfg(feature = "AUComponent")]
2584pub const kAudioUnitProperty_CurrentPreset: AudioUnitPropertyID = 28;
2585#[cfg(feature = "AUComponent")]
2587pub const kAudioUnitProperty_ParameterValueName: AudioUnitPropertyID =
2588 kAudioUnitProperty_ParameterStringFromValue;
2589#[cfg(feature = "AUComponent")]
2591pub const kAudioUnitProperty_BusCount: AudioUnitPropertyID = kAudioUnitProperty_ElementCount;
2592#[cfg(feature = "AUComponent")]
2594pub const kAudioOfflineUnitProperty_InputSize: AudioUnitPropertyID =
2595 kAudioUnitOfflineProperty_InputSize;
2596#[cfg(feature = "AUComponent")]
2598pub const kAudioOfflineUnitProperty_OutputSize: AudioUnitPropertyID =
2599 kAudioUnitOfflineProperty_OutputSize;
2600
2601pub const kAudioUnitSRCAlgorithm_Polyphase: u32 = 0x706f6c79;
2603pub const kAudioUnitSRCAlgorithm_MediumQuality: u32 = 0x63737263;
2605
2606#[cfg(feature = "AUComponent")]
2608#[repr(C)]
2609#[derive(Clone, Copy, Debug, PartialEq)]
2610pub struct AudioUnitMIDIControlMapping {
2611 pub midiNRPN: u16,
2612 pub midiControl: u8,
2613 pub scope: u8,
2614 pub element: AudioUnitElement,
2615 pub parameter: AudioUnitParameterID,
2616}
2617
2618#[cfg(feature = "AUComponent")]
2619unsafe impl Encode for AudioUnitMIDIControlMapping {
2620 const ENCODING: Encoding = Encoding::Struct(
2621 "AudioUnitMIDIControlMapping",
2622 &[
2623 <u16>::ENCODING,
2624 <u8>::ENCODING,
2625 <u8>::ENCODING,
2626 <AudioUnitElement>::ENCODING,
2627 <AudioUnitParameterID>::ENCODING,
2628 ],
2629 );
2630}
2631
2632#[cfg(feature = "AUComponent")]
2633unsafe impl RefEncode for AudioUnitMIDIControlMapping {
2634 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2635}
2636
2637#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
2639#[repr(C)]
2640#[derive(Clone, Copy, Debug, PartialEq)]
2641pub struct AudioUnitParameterValueName {
2642 pub inParamID: AudioUnitParameterID,
2643 pub inValue: NonNull<f32>,
2644 pub outName: NonNull<CFString>,
2645}
2646
2647#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
2648unsafe impl Encode for AudioUnitParameterValueName {
2649 const ENCODING: Encoding = Encoding::Struct(
2650 "AudioUnitParameterValueName",
2651 &[
2652 <AudioUnitParameterID>::ENCODING,
2653 <NonNull<f32>>::ENCODING,
2654 <NonNull<CFString>>::ENCODING,
2655 ],
2656 );
2657}
2658
2659#[cfg(all(feature = "AUComponent", feature = "objc2-core-foundation"))]
2660unsafe impl RefEncode for AudioUnitParameterValueName {
2661 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2662}
2663
2664#[cfg(feature = "AUComponent")]
2666pub const kMusicDeviceProperty_GroupOutputBus: AudioUnitPropertyID = 1002;
2667#[cfg(feature = "AUComponent")]
2669pub const kMusicDeviceProperty_SoundBankFSSpec: AudioUnitPropertyID = 1003;
2670#[cfg(feature = "AUComponent")]
2672pub const kAudioUnitProperty_PannerMode: AudioUnitPropertyID = 3008;
2673
2674#[cfg(feature = "AUComponent")]
2676pub const kAudioUnitProperty_SpeakerConfiguration: AudioUnitPropertyID = 3001;
2677
2678pub const kSpeakerConfiguration_HeadPhones: c_uint = 0;
2680pub const kSpeakerConfiguration_Stereo: c_uint = 1;
2682pub const kSpeakerConfiguration_Quad: c_uint = 2;
2684pub const kSpeakerConfiguration_5_0: c_uint = 3;
2686pub const kSpeakerConfiguration_5_1: c_uint = kSpeakerConfiguration_5_0;
2688
2689#[cfg(feature = "objc2-core-foundation")]
2691#[repr(C)]
2692#[derive(Clone, Copy, Debug, PartialEq)]
2693pub struct AUSamplerBankPresetData {
2694 pub bankURL: NonNull<CFURL>,
2695 pub bankMSB: u8,
2696 pub bankLSB: u8,
2697 pub presetID: u8,
2698 pub reserved: u8,
2699}
2700
2701#[cfg(feature = "objc2-core-foundation")]
2702unsafe impl Encode for AUSamplerBankPresetData {
2703 const ENCODING: Encoding = Encoding::Struct(
2704 "AUSamplerBankPresetData",
2705 &[
2706 <NonNull<CFURL>>::ENCODING,
2707 <u8>::ENCODING,
2708 <u8>::ENCODING,
2709 <u8>::ENCODING,
2710 <u8>::ENCODING,
2711 ],
2712 );
2713}
2714
2715#[cfg(feature = "objc2-core-foundation")]
2716unsafe impl RefEncode for AUSamplerBankPresetData {
2717 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2718}
2719
2720#[cfg(feature = "AUComponent")]
2722pub const kAUSamplerProperty_LoadPresetFromBank: AudioUnitPropertyID = 4100;
2723#[cfg(feature = "AUComponent")]
2725pub const kAUSamplerProperty_BankAndPreset: AudioUnitPropertyID =
2726 kAUSamplerProperty_LoadPresetFromBank;