diff --git a/src/AudioToolbox/AudioType.cs b/src/AudioToolbox/AudioType.cs index 99d583c800d7..ec80abfe996a 100644 --- a/src/AudioToolbox/AudioType.cs +++ b/src/AudioToolbox/AudioType.cs @@ -1484,6 +1484,70 @@ public override string ToString () } } + /// This struct represents the native AudioBufferList struct. + /// + /// + /// Typically it's better to use the class to wrap a pointer to a native AudioBufferList, + /// but some audio code needs to minimize memory allocations due to being executed in a realtime thread. In that case, + /// using this struct is better, because it's possible to use it without incurring any memory allocations. + /// + /// + /// + /// Note that this struct should never be created in C#, the only valid way to use it is to cast a pointer () + /// to a pointer of this struct: + /// + /// + /// + /// Count; i++) { + /// AudioBuffer* buffer = audioBufferList->GetBuffer (index), + /// // Use the buffer for something + /// } + /// } + /// ]]> + /// + /// +#if NET + [SupportedOSPlatform ("ios")] + [SupportedOSPlatform ("maccatalyst")] + [SupportedOSPlatform ("macos")] + [SupportedOSPlatform ("tvos")] +#endif + [StructLayout (LayoutKind.Sequential)] + public unsafe readonly ref struct AudioBufferList { + readonly uint mNumberOfBuffers; + + /// Returns the number of audio buffers in this list. + public uint Count { get => mNumberOfBuffers; } + + /// Return a pointer to the at the specified index. + /// The index of the to retrieve. + /// A pointer to the at the specified index. + public AudioBuffer* GetBuffer (int index) + { + if (index < 0 || index >= Count) + throw new ArgumentOutOfRangeException (nameof (index)); + + // + // Decodes + // + // struct AudioBufferList + // { + // UInt32 mNumberBuffers; + // AudioBuffer mBuffers[1]; // this is a variable length array of mNumberBuffers elements + // } + // + fixed (uint* bufferPtr = &mNumberOfBuffers) { + byte* baddress = (byte*) bufferPtr; + + var ptr = baddress + IntPtr.Size + index * sizeof (AudioBuffer); + return (AudioBuffer*) ptr; + } + } + } + // CoreAudioClock.h (inside AudioToolbox) // It was a confusion between CA (CoreAudio) and CA (CoreAnimation) #if NET diff --git a/src/phase.cs b/src/phase.cs index 7f257c457e50..2922c6a838f1 100644 --- a/src/phase.cs +++ b/src/phase.cs @@ -1,3 +1,4 @@ +using AudioToolbox; using AVFoundation; using CoreFoundation; using Foundation; @@ -238,6 +239,14 @@ public enum PhaseSpatialPipelineFlags : ulong { LateReverb = 1uL << 2, } + [Flags] + [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Native] + [NativeName ("PHASEAutomaticHeadTrackingFlags")] + public enum PhaseAutomaticHeadTrackingFlags : ulong { + None = 0, + Orientation = 1UL << 0, + } [NoWatch, TV (17, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)] [BaseType (typeof (NSObject), Name = "PHASENumericPair")] @@ -707,6 +716,23 @@ interface PhaseRandomNodeDefinition { nint UniqueSelectionQueueLength { get; set; } } + [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [BaseType (typeof (NSObject), Name = "PHASEStreamNode")] + [DisableDefaultCtor] + interface PhaseStreamNode { + [Export ("gainMetaParameter", ArgumentSemantic.Strong), NullAllowed] + PhaseNumberMetaParameter GainMetaParameter { get; } + + [Export ("rateMetaParameter", ArgumentSemantic.Strong), NullAllowed] + PhaseNumberMetaParameter RateMetaParameter { get; } + + [Export ("mixer", ArgumentSemantic.Strong)] + PhaseMixer Mixer { get; } + + [Export ("format", ArgumentSemantic.Strong)] + AVAudioFormat Format { get; } + } + [NoWatch, TV (17, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)] [BaseType (typeof (PhaseGeneratorNodeDefinition), Name = "PHASEPushStreamNodeDefinition")] [DisableDefaultCtor] @@ -726,13 +752,13 @@ interface PhasePushStreamNodeDefinition { } [NoWatch, TV (17, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)] - [BaseType (typeof (NSObject), Name = "PHASEPushStreamNode")] + [BaseType (typeof (PhaseStreamNode), Name = "PHASEPushStreamNode")] [DisableDefaultCtor] interface PhasePushStreamNode { - [NullAllowed, Export ("gainMetaParameter", ArgumentSemantic.Strong)] + [Export ("gainMetaParameter", ArgumentSemantic.Strong), NullAllowed] PhaseNumberMetaParameter GainMetaParameter { get; } - [NullAllowed, Export ("rateMetaParameter", ArgumentSemantic.Strong)] + [Export ("rateMetaParameter", ArgumentSemantic.Strong), NullAllowed] PhaseNumberMetaParameter RateMetaParameter { get; } [Export ("mixer", ArgumentSemantic.Strong)] @@ -1131,6 +1157,10 @@ interface PhaseSoundEvent { [Export ("indefinite")] bool Indefinite { [Bind ("isIndefinite")] get; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("pullStreamNodes", ArgumentSemantic.Copy)] + NSDictionary PullStreamNodes { get; } } [NoWatch, TV (17, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)] @@ -1200,6 +1230,10 @@ interface PhaseListener { [Export ("gain")] double Gain { get; set; } + + [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [Export ("automaticHeadTrackingFlags", ArgumentSemantic.Assign)] + PhaseAutomaticHeadTrackingFlags AutomaticHeadTrackingFlags { get; set; } } [NoWatch, TV (17, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)] @@ -1296,4 +1330,53 @@ interface PhaseSpatialPipeline { [Export ("entries", ArgumentSemantic.Copy)] NSDictionary Entries { get; } } + + /// This is a delegate to provide audio data to a . + /// It's possible to hint to the receiver of the buffer that the returned audio samples are silence. Note that since this is just a hint, the returned audio samples should also be silence. + /// The HAL time when the sample is to be rendered. + /// The number of sample frames requested. + /// + /// The list of audio buffers where to store the returned audio samples. + /// + /// The caller will provide the list of audio buffers, but the callback may replace the + /// pointer (and update the value) + /// with a pointer to a memory location that the callback owns, and which will be valid until + /// the next render cycle. + /// + /// + /// 0 in case of success, otherwise an OSStatus error code. The audio data will be assumed to be invalid in case of an error. + public unsafe delegate /* OSStatus */ int PhasePullStreamRenderBlock ( + /* BOOL * */ byte* isSilence, + /* const AudioTimeStamp * */ AudioTimeStamp* timeStamp, + /* AVAudioFrameCount */ uint frameCount, + /* AudioBufferList * */ AudioBufferList* outputData); + + [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [BaseType (typeof (PhaseGeneratorNodeDefinition), Name = "PHASEPullStreamNodeDefinition")] + [DisableDefaultCtor] + interface PhasePullStreamNodeDefinition { + [Export ("initWithMixerDefinition:format:identifier:")] + NativeHandle Constructor (PhaseMixerDefinition mixerDefinition, AVAudioFormat format, string identifier); + + [DesignatedInitializer] + [Export ("initWithMixerDefinition:format:")] + NativeHandle Constructor (PhaseMixerDefinition mixerDefinition, AVAudioFormat format); + + [Export ("format", ArgumentSemantic.Strong)] + AVAudioFormat Format { get; } + + [Export ("normalize")] + bool Normalize { get; set; } + } + + [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] + [BaseType (typeof (PhaseStreamNode), Name = "PHASEPullStreamNode")] + [DisableDefaultCtor] + interface PhasePullStreamNode { + // Apple's header says: + // "Your implementation must be performant and not perform any realtime unsafe operations such as lock mutexes or allocate memory." + // So not offering a strongly typed delegate type, because that would involve memory allocations, just offer the rawest version. + [Export ("renderBlock", ArgumentSemantic.Strong)] + PhasePullStreamRenderBlock RenderBlock { get; set; } + } } diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt index 983026462ad1..291e4ff11d9b 100644 --- a/tests/cecil-tests/Documentation.KnownFailures.txt +++ b/tests/cecil-tests/Documentation.KnownFailures.txt @@ -16789,6 +16789,8 @@ F:Phase.PhaseAssetError.InvalidEngineInstance F:Phase.PhaseAssetError.MemoryAllocation F:Phase.PhaseAssetType.Resident F:Phase.PhaseAssetType.Streamed +F:Phase.PhaseAutomaticHeadTrackingFlags.None +F:Phase.PhaseAutomaticHeadTrackingFlags.Orientation F:Phase.PhaseCalibrationMode.AbsoluteSpl F:Phase.PhaseCalibrationMode.None F:Phase.PhaseCalibrationMode.RelativeSpl @@ -45303,6 +45305,8 @@ M:Phase.PhaseObject.RemoveChild(Phase.PhaseObject) M:Phase.PhaseObject.RemoveChildren M:Phase.PhaseOccluder.#ctor(Phase.PhaseEngine,Phase.PhaseShape[]) M:Phase.PhaseOccluder.#ctor(Phase.PhaseEngine) +M:Phase.PhasePullStreamNodeDefinition.#ctor(Phase.PhaseMixerDefinition,AVFoundation.AVAudioFormat,System.String) +M:Phase.PhasePullStreamNodeDefinition.#ctor(Phase.PhaseMixerDefinition,AVFoundation.AVAudioFormat) M:Phase.PhasePushStreamNode.ScheduleBuffer(AVFoundation.AVAudioPcmBuffer,AVFoundation.AVAudioTime,Phase.PhasePushStreamBufferOptions,Phase.PhasePushStreamCompletionCallbackCondition,System.Action{Phase.PhasePushStreamCompletionCallbackCondition}) M:Phase.PhasePushStreamNode.ScheduleBuffer(AVFoundation.AVAudioPcmBuffer,AVFoundation.AVAudioTime,Phase.PhasePushStreamBufferOptions) M:Phase.PhasePushStreamNode.ScheduleBuffer(AVFoundation.AVAudioPcmBuffer,Phase.PhasePushStreamCompletionCallbackCondition,System.Action{Phase.PhasePushStreamCompletionCallbackCondition}) @@ -74633,6 +74637,7 @@ P:Phase.PhaseGroupPresetSetting.Gain P:Phase.PhaseGroupPresetSetting.GainCurveType P:Phase.PhaseGroupPresetSetting.Rate P:Phase.PhaseGroupPresetSetting.RateCurveType +P:Phase.PhaseListener.AutomaticHeadTrackingFlags P:Phase.PhaseListener.Gain P:Phase.PhaseMappedMetaParameterDefinition.Envelope P:Phase.PhaseMappedMetaParameterDefinition.InputMetaParameterDefinition @@ -74658,6 +74663,9 @@ P:Phase.PhaseObject.Transform P:Phase.PhaseObject.Up P:Phase.PhaseObject.WorldTransform P:Phase.PhaseOccluder.Shapes +P:Phase.PhasePullStreamNode.RenderBlock +P:Phase.PhasePullStreamNodeDefinition.Format +P:Phase.PhasePullStreamNodeDefinition.Normalize P:Phase.PhasePushStreamNode.Format P:Phase.PhasePushStreamNode.GainMetaParameter P:Phase.PhasePushStreamNode.Mixer @@ -74677,6 +74685,7 @@ P:Phase.PhaseSoundEvent.Indefinite P:Phase.PhaseSoundEvent.MetaParameters P:Phase.PhaseSoundEvent.Mixers P:Phase.PhaseSoundEvent.PrepareState +P:Phase.PhaseSoundEvent.PullStreamNodes P:Phase.PhaseSoundEvent.PushStreamNodes P:Phase.PhaseSoundEvent.RenderingState P:Phase.PhaseSoundEventNodeDefinition.Children @@ -74690,6 +74699,10 @@ P:Phase.PhaseSpatialPipeline.Entries P:Phase.PhaseSpatialPipeline.Flags P:Phase.PhaseSpatialPipelineEntry.SendLevel P:Phase.PhaseSpatialPipelineEntry.SendLevelMetaParameterDefinition +P:Phase.PhaseStreamNode.Format +P:Phase.PhaseStreamNode.GainMetaParameter +P:Phase.PhaseStreamNode.Mixer +P:Phase.PhaseStreamNode.RateMetaParameter P:Phase.PhaseSwitchNodeDefinition.SwitchMetaParameterDefinition P:Photos.IPHLivePhotoFrame.Image P:Photos.IPHLivePhotoFrame.RenderScale @@ -84285,6 +84298,7 @@ T:Phase.PhaseAsset T:Phase.PhaseAssetError T:Phase.PhaseAssetRegistry T:Phase.PhaseAssetType +T:Phase.PhaseAutomaticHeadTrackingFlags T:Phase.PhaseBlendNodeDefinition T:Phase.PhaseCalibrationMode T:Phase.PhaseCardioidDirectivityModelParameters @@ -84329,6 +84343,8 @@ T:Phase.PhaseNumericPair T:Phase.PhaseObject T:Phase.PhaseOccluder T:Phase.PhasePlaybackMode +T:Phase.PhasePullStreamNode +T:Phase.PhasePullStreamNodeDefinition T:Phase.PhasePushStreamBufferOptions T:Phase.PhasePushStreamCompletionCallbackCondition T:Phase.PhasePushStreamNode @@ -84355,6 +84371,7 @@ T:Phase.PhaseSpatialMixerDefinition T:Phase.PhaseSpatialPipeline T:Phase.PhaseSpatialPipelineEntry T:Phase.PhaseSpatialPipelineFlags +T:Phase.PhaseStreamNode T:Phase.PhaseStringMetaParameter T:Phase.PhaseStringMetaParameterDefinition T:Phase.PhaseSwitchNodeDefinition diff --git a/tests/monotouch-test/AudioToolbox/AudioBufferList.cs b/tests/monotouch-test/AudioToolbox/AudioBufferList.cs new file mode 100644 index 000000000000..bc3be90471fa --- /dev/null +++ b/tests/monotouch-test/AudioToolbox/AudioBufferList.cs @@ -0,0 +1,63 @@ + +#if !__WATCHOS__ +#if NET + +using System; +using System.Runtime.InteropServices; + +using AudioToolbox; +using Foundation; + +using ObjCRuntime; + +using NUnit.Framework; + +namespace MonoTouchFixtures.AudioToolbox { + + [TestFixture] + [Preserve (AllMembers = true)] + public class AudioBufferListTest { + [Test] + public unsafe void Usage () + { + var buffer = new byte [1024]; + fixed (byte* ptr = buffer) { + var list = (AudioBufferList*) ptr; + Assert.AreEqual (0, list->Count, "Count"); + Assert.Throws (() => list->GetBuffer (0), "Item 0"); + Assert.Throws (() => list->GetBuffer (-1), "Item -1"); + Assert.Throws (() => list->GetBuffer (1), "Item 1"); + + *(int*) ptr = 3; + Assert.AreEqual (3, list->Count, "Count B"); + for (var i = 0; i < 3; i++) { + Assert.AreEqual (0, list->GetBuffer (i)->NumberChannels, $"NumberChannels B#{i}"); + Assert.AreEqual (0, list->GetBuffer (i)->DataByteSize, $"DataByteSize B#{i}"); + Assert.AreEqual ((nint) 0, list->GetBuffer (i)->Data, $"Data B#{i}"); + + list->GetBuffer (i)->NumberChannels = (i + 1) * 10; + list->GetBuffer (i)->DataByteSize = (i + 1) * 100; + list->GetBuffer (i)->Data = new IntPtr ((i + 1) * 1000); + } + Assert.Throws (() => list->GetBuffer (-1), "Item -1 B"); + Assert.Throws (() => list->GetBuffer (3), "Item 3 B"); + + int* iptr = (int*) ptr; + Assert.AreEqual (10, iptr [2 + 0 * 4], "10"); // NumberChannels + Assert.AreEqual (100, iptr [2 + 0 * 4 + 1], "20"); // DataByteSize + Assert.AreEqual (20, iptr [2 + 1 * 4], "20"); // NumberChannels + Assert.AreEqual (200, iptr [2 + 1 * 4 + 1], "40"); // DataByteSize + Assert.AreEqual (30, iptr [2 + 2 * 4], "30"); // NumberChannels + Assert.AreEqual (300, iptr [2 + 2 * 4 + 1], "60"); // DataByteSize + + nint* nptr = (nint*) ptr; + Assert.AreEqual ((nint) 1000, nptr [1 + 0 * 2 + 1], "1000"); // Data + Assert.AreEqual ((nint) 2000, nptr [1 + 1 * 2 + 1], "2000"); // Data + Assert.AreEqual ((nint) 3000, nptr [1 + 2 * 2 + 1], "3000"); // Data + } + } + } +} + +#endif // NET +#endif // !__WATCHOS__ diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PHASE.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PHASE.todo deleted file mode 100644 index d96dd358f888..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PHASE.todo +++ /dev/null @@ -1,19 +0,0 @@ -!missing-enum! PHASEAutomaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::automaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::setAutomaticHeadTrackingFlags: not bound -!missing-selector! PHASEPullStreamNode::renderBlock not bound -!missing-selector! PHASEPullStreamNode::setRenderBlock: not bound -!missing-selector! PHASEPullStreamNodeDefinition::format not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format: not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format:identifier: not bound -!missing-selector! PHASEPullStreamNodeDefinition::normalize not bound -!missing-selector! PHASEPullStreamNodeDefinition::setNormalize: not bound -!missing-selector! PHASESoundEvent::pullStreamNodes not bound -!missing-selector! PHASEStreamNode::format not bound -!missing-selector! PHASEStreamNode::gainMetaParameter not bound -!missing-selector! PHASEStreamNode::mixer not bound -!missing-selector! PHASEStreamNode::rateMetaParameter not bound -!missing-type! PHASEPullStreamNode not bound -!missing-type! PHASEPullStreamNodeDefinition not bound -!missing-type! PHASEStreamNode not bound -!wrong-base-type! PHASEPushStreamNode expected PHASEStreamNode actual NSObject diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-PHASE.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-PHASE.todo deleted file mode 100644 index d96dd358f888..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-PHASE.todo +++ /dev/null @@ -1,19 +0,0 @@ -!missing-enum! PHASEAutomaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::automaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::setAutomaticHeadTrackingFlags: not bound -!missing-selector! PHASEPullStreamNode::renderBlock not bound -!missing-selector! PHASEPullStreamNode::setRenderBlock: not bound -!missing-selector! PHASEPullStreamNodeDefinition::format not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format: not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format:identifier: not bound -!missing-selector! PHASEPullStreamNodeDefinition::normalize not bound -!missing-selector! PHASEPullStreamNodeDefinition::setNormalize: not bound -!missing-selector! PHASESoundEvent::pullStreamNodes not bound -!missing-selector! PHASEStreamNode::format not bound -!missing-selector! PHASEStreamNode::gainMetaParameter not bound -!missing-selector! PHASEStreamNode::mixer not bound -!missing-selector! PHASEStreamNode::rateMetaParameter not bound -!missing-type! PHASEPullStreamNode not bound -!missing-type! PHASEPullStreamNodeDefinition not bound -!missing-type! PHASEStreamNode not bound -!wrong-base-type! PHASEPushStreamNode expected PHASEStreamNode actual NSObject diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-PHASE.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-PHASE.todo deleted file mode 100644 index d96dd358f888..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-PHASE.todo +++ /dev/null @@ -1,19 +0,0 @@ -!missing-enum! PHASEAutomaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::automaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::setAutomaticHeadTrackingFlags: not bound -!missing-selector! PHASEPullStreamNode::renderBlock not bound -!missing-selector! PHASEPullStreamNode::setRenderBlock: not bound -!missing-selector! PHASEPullStreamNodeDefinition::format not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format: not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format:identifier: not bound -!missing-selector! PHASEPullStreamNodeDefinition::normalize not bound -!missing-selector! PHASEPullStreamNodeDefinition::setNormalize: not bound -!missing-selector! PHASESoundEvent::pullStreamNodes not bound -!missing-selector! PHASEStreamNode::format not bound -!missing-selector! PHASEStreamNode::gainMetaParameter not bound -!missing-selector! PHASEStreamNode::mixer not bound -!missing-selector! PHASEStreamNode::rateMetaParameter not bound -!missing-type! PHASEPullStreamNode not bound -!missing-type! PHASEPullStreamNodeDefinition not bound -!missing-type! PHASEStreamNode not bound -!wrong-base-type! PHASEPushStreamNode expected PHASEStreamNode actual NSObject diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-PHASE.todo b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-PHASE.todo deleted file mode 100644 index d96dd358f888..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-PHASE.todo +++ /dev/null @@ -1,19 +0,0 @@ -!missing-enum! PHASEAutomaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::automaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::setAutomaticHeadTrackingFlags: not bound -!missing-selector! PHASEPullStreamNode::renderBlock not bound -!missing-selector! PHASEPullStreamNode::setRenderBlock: not bound -!missing-selector! PHASEPullStreamNodeDefinition::format not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format: not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format:identifier: not bound -!missing-selector! PHASEPullStreamNodeDefinition::normalize not bound -!missing-selector! PHASEPullStreamNodeDefinition::setNormalize: not bound -!missing-selector! PHASESoundEvent::pullStreamNodes not bound -!missing-selector! PHASEStreamNode::format not bound -!missing-selector! PHASEStreamNode::gainMetaParameter not bound -!missing-selector! PHASEStreamNode::mixer not bound -!missing-selector! PHASEStreamNode::rateMetaParameter not bound -!missing-type! PHASEPullStreamNode not bound -!missing-type! PHASEPullStreamNodeDefinition not bound -!missing-type! PHASEStreamNode not bound -!wrong-base-type! PHASEPushStreamNode expected PHASEStreamNode actual NSObject diff --git a/tests/xtro-sharpie/iOS-PHASE.todo b/tests/xtro-sharpie/iOS-PHASE.todo deleted file mode 100644 index d96dd358f888..000000000000 --- a/tests/xtro-sharpie/iOS-PHASE.todo +++ /dev/null @@ -1,19 +0,0 @@ -!missing-enum! PHASEAutomaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::automaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::setAutomaticHeadTrackingFlags: not bound -!missing-selector! PHASEPullStreamNode::renderBlock not bound -!missing-selector! PHASEPullStreamNode::setRenderBlock: not bound -!missing-selector! PHASEPullStreamNodeDefinition::format not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format: not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format:identifier: not bound -!missing-selector! PHASEPullStreamNodeDefinition::normalize not bound -!missing-selector! PHASEPullStreamNodeDefinition::setNormalize: not bound -!missing-selector! PHASESoundEvent::pullStreamNodes not bound -!missing-selector! PHASEStreamNode::format not bound -!missing-selector! PHASEStreamNode::gainMetaParameter not bound -!missing-selector! PHASEStreamNode::mixer not bound -!missing-selector! PHASEStreamNode::rateMetaParameter not bound -!missing-type! PHASEPullStreamNode not bound -!missing-type! PHASEPullStreamNodeDefinition not bound -!missing-type! PHASEStreamNode not bound -!wrong-base-type! PHASEPushStreamNode expected PHASEStreamNode actual NSObject diff --git a/tests/xtro-sharpie/macOS-PHASE.todo b/tests/xtro-sharpie/macOS-PHASE.todo deleted file mode 100644 index d96dd358f888..000000000000 --- a/tests/xtro-sharpie/macOS-PHASE.todo +++ /dev/null @@ -1,19 +0,0 @@ -!missing-enum! PHASEAutomaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::automaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::setAutomaticHeadTrackingFlags: not bound -!missing-selector! PHASEPullStreamNode::renderBlock not bound -!missing-selector! PHASEPullStreamNode::setRenderBlock: not bound -!missing-selector! PHASEPullStreamNodeDefinition::format not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format: not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format:identifier: not bound -!missing-selector! PHASEPullStreamNodeDefinition::normalize not bound -!missing-selector! PHASEPullStreamNodeDefinition::setNormalize: not bound -!missing-selector! PHASESoundEvent::pullStreamNodes not bound -!missing-selector! PHASEStreamNode::format not bound -!missing-selector! PHASEStreamNode::gainMetaParameter not bound -!missing-selector! PHASEStreamNode::mixer not bound -!missing-selector! PHASEStreamNode::rateMetaParameter not bound -!missing-type! PHASEPullStreamNode not bound -!missing-type! PHASEPullStreamNodeDefinition not bound -!missing-type! PHASEStreamNode not bound -!wrong-base-type! PHASEPushStreamNode expected PHASEStreamNode actual NSObject diff --git a/tests/xtro-sharpie/tvOS-PHASE.todo b/tests/xtro-sharpie/tvOS-PHASE.todo deleted file mode 100644 index d96dd358f888..000000000000 --- a/tests/xtro-sharpie/tvOS-PHASE.todo +++ /dev/null @@ -1,19 +0,0 @@ -!missing-enum! PHASEAutomaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::automaticHeadTrackingFlags not bound -!missing-selector! PHASEListener::setAutomaticHeadTrackingFlags: not bound -!missing-selector! PHASEPullStreamNode::renderBlock not bound -!missing-selector! PHASEPullStreamNode::setRenderBlock: not bound -!missing-selector! PHASEPullStreamNodeDefinition::format not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format: not bound -!missing-selector! PHASEPullStreamNodeDefinition::initWithMixerDefinition:format:identifier: not bound -!missing-selector! PHASEPullStreamNodeDefinition::normalize not bound -!missing-selector! PHASEPullStreamNodeDefinition::setNormalize: not bound -!missing-selector! PHASESoundEvent::pullStreamNodes not bound -!missing-selector! PHASEStreamNode::format not bound -!missing-selector! PHASEStreamNode::gainMetaParameter not bound -!missing-selector! PHASEStreamNode::mixer not bound -!missing-selector! PHASEStreamNode::rateMetaParameter not bound -!missing-type! PHASEPullStreamNode not bound -!missing-type! PHASEPullStreamNodeDefinition not bound -!missing-type! PHASEStreamNode not bound -!wrong-base-type! PHASEPushStreamNode expected PHASEStreamNode actual NSObject