diff --git a/src/AudioUnit/AUEnums.cs b/src/AudioUnit/AUEnums.cs index c73de123c9a0..7157cc1ddac8 100644 --- a/src/AudioUnit/AUEnums.cs +++ b/src/AudioUnit/AUEnums.cs @@ -33,6 +33,7 @@ using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; +using System.Runtime.Versioning; using System.Threading; using AudioToolbox; using ObjCRuntime; @@ -189,7 +190,20 @@ public enum AudioObjectPropertySelector : uint TranslateUIDToBox = 1969841250, // 'uidb' ClockDeviceList = 1668049699, //'clk#' TranslateUidToClockDevice = 1969841251, // 'uidc', + [Deprecated (PlatformName.iOS, 15,0, message : "Use the 'ProcessIsMain' element instead.")] + [Deprecated (PlatformName.MacCatalyst, 15,0, message : "Use the 'ProcessIsMain' element instead.")] + [Deprecated (PlatformName.MacOSX, 12,0, message : "Use the 'ProcessIsMain' element instead.")] + [Obsolete ("Use the 'ProcessIsMain' element instead.")] ProcessIsMaster = 1835103092, // 'mast' +#if !NET + [iOS (15,0), MacCatalyst (15,0), Mac (12,0), NoTV, NoWatch] +#else + [SupportedOSPlatform ("ios15.0")] + [SupportedOSPlatform ("maccatalyst15.0")] + [SupportedOSPlatform ("macos12.0")] + [UnsupportedOSPlatform ("tvos")] +#endif + ProcessIsMain = 1835100526, // 'main' IsInitingOrExiting = 1768845172, // 'inot' UserIDChanged = 1702193508, // 'euid' ProcessIsAudible = 1886221684, // 'pmut' @@ -202,6 +216,15 @@ public enum AudioObjectPropertySelector : uint ActualSampleRate = 1634955892,// 'asrt', ClockDevice = 1634755428, // 'apcd', IOThreadOSWorkgroup = 1869838183, // 'oswg' +#if !NET + [iOS (15,0), MacCatalyst (15,0), Mac (12,0), NoTV, NoWatch] +#else + [SupportedOSPlatform ("ios15.0")] + [SupportedOSPlatform ("maccatalyst15.0")] + [SupportedOSPlatform ("macos12.0")] + [UnsupportedOSPlatform ("tvos")] +#endif + ProcessMute = 1634758765, // 'appm' } public enum AudioObjectPropertyScope : uint @@ -214,7 +237,11 @@ public enum AudioObjectPropertyScope : uint public enum AudioObjectPropertyElement : uint { +#if !XAMCORE_4_0 + [Obsolete ("Use the 'Main' element instead.")] Master = 0, // 0 +#endif + Main = 0, // 0 } #endif // !XAMCORE_3_0 || MONOMAC diff --git a/src/AudioUnit/AudioUnit.cs b/src/AudioUnit/AudioUnit.cs index 17923805b527..6fd5a59d964b 100644 --- a/src/AudioUnit/AudioUnit.cs +++ b/src/AudioUnit/AudioUnit.cs @@ -38,6 +38,7 @@ using ObjCRuntime; using CoreFoundation; using Foundation; +using System.Runtime.Versioning; namespace AudioUnit { @@ -389,10 +390,15 @@ public uint GetCurrentDevice (AudioUnitScopeType scope, uint audioUnitElement = #if !XAMCORE_3_0 || MONOMAC #if !MONOMAC [Obsolete ("This API is not available on iOS.")] +#endif +#if NET + [SupportedOSPlatform ("maccatalyst15.0")] +#else + [MacCatalyst (15,0)] #endif public static uint GetCurrentInputDevice () { -#if MONOMAC +#if MONOMAC || __MACCATALYST__ // We need to replace AudioHardwareGetProperty since it has been deprecated since OS X 10.6 and iOS 2.0 // Replacing with the following implementation recommended in the following doc // See Listing 4 New - Getting the default input device. @@ -403,7 +409,7 @@ public static uint GetCurrentInputDevice () var theAddress = new AudioObjectPropertyAddress ( AudioObjectPropertySelector.DefaultInputDevice, AudioObjectPropertyScope.Global, - AudioObjectPropertyElement.Master); + AudioObjectPropertyElement.Main); uint inQualifierDataSize = 0; IntPtr inQualifierData = IntPtr.Zero; @@ -864,7 +870,12 @@ static extern AudioUnitStatus AudioUnitSetParameter (IntPtr inUnit, AudioUnitPar [DllImport (Constants.AudioUnitLibrary)] static extern AudioUnitStatus AudioUnitScheduleParameters (IntPtr inUnit, AudioUnitParameterEvent inParameterEvent, uint inNumParamEvents); -#if MONOMAC +#if MONOMAC || __MACCATALYST__ +#if !NET + [MacCatalyst (15,0)] +#else + [SupportedOSPlatform ("maccatalyst15.0")] +#endif [DllImport (Constants.AudioUnitLibrary)] static extern int AudioObjectGetPropertyData ( uint inObjectID, diff --git a/tests/xtro-sharpie/MacCatalyst-CoreAudio.todo b/tests/xtro-sharpie/MacCatalyst-CoreAudio.ignore similarity index 96% rename from tests/xtro-sharpie/MacCatalyst-CoreAudio.todo rename to tests/xtro-sharpie/MacCatalyst-CoreAudio.ignore index f0153f063bac..51da5b923286 100644 --- a/tests/xtro-sharpie/MacCatalyst-CoreAudio.todo +++ b/tests/xtro-sharpie/MacCatalyst-CoreAudio.ignore @@ -21,7 +21,6 @@ !missing-pinvoke! AudioHardwareUnload is not bound !missing-pinvoke! AudioObjectAddPropertyListener is not bound !missing-pinvoke! AudioObjectAddPropertyListenerBlock is not bound -!missing-pinvoke! AudioObjectGetPropertyData is not bound !missing-pinvoke! AudioObjectGetPropertyDataSize is not bound !missing-pinvoke! AudioObjectHasProperty is not bound !missing-pinvoke! AudioObjectIsPropertySettable is not bound