public static AudioStreamBasicDescription[] GetAvailableStreamDescriptions(AudioFileType fileType, AudioFormatType formatType) { AudioFileTypeAndFormatID input; input.FileType = fileType; input.FormatType = formatType; uint size; if (AudioFileGetGlobalInfoSize(AudioFileGlobalProperty.AvailableStreamDescriptionsForFormat, (uint)sizeof(AudioFileTypeAndFormatID), ref input, out size) != 0) { return(null); } var data = new AudioStreamBasicDescription[size / sizeof(AudioStreamBasicDescription)]; fixed(AudioStreamBasicDescription *ptr = data) { var res = AudioFileGetGlobalInfo(AudioFileGlobalProperty.AvailableStreamDescriptionsForFormat, (uint)sizeof(AudioFileTypeAndFormatID), ref input, ref size, ptr); if (res != 0) { return(null); } return(data); } }
public static AudioFormatError GetFormatInfo(ref AudioStreamBasicDescription format) { unsafe { var size = sizeof(AudioStreamBasicDescription); return(AudioFormatPropertyNative.AudioFormatGetProperty(AudioFormatProperty.FormatInfo, 0, IntPtr.Zero, ref size, ref format)); } }
public static AudioConverter Create(AudioStreamBasicDescription sourceFormat, AudioStreamBasicDescription destinationFormat, out AudioConverterError error) { IntPtr ptr = new IntPtr(); error = AudioConverterNew(ref sourceFormat, ref destinationFormat, ref ptr); if (error != AudioConverterError.None) { return(null); } return(new AudioConverter(ptr, true)); }
public static AudioConverter Create(AudioStreamBasicDescription sourceFormat, AudioStreamBasicDescription destinationFormat, AudioClassDescription[] descriptions) { if (descriptions == null) { throw new ArgumentNullException("descriptions"); } IntPtr ptr = new IntPtr(); var res = AudioConverterNewSpecific(ref sourceFormat, ref destinationFormat, descriptions.Length, ref descriptions, ref ptr); if (res != AudioConverterError.None) { return(null); } return(new AudioConverter(ptr, true)); }
public static AudioStreamBasicDescription CreateLinearPCM(double sampleRate = 44100, uint channelsPerFrame = 2, uint bitsPerChannel = 16, bool bigEndian = false) { var desc = new AudioStreamBasicDescription(AudioFormatType.LinearPCM); desc.SampleRate = sampleRate; desc.ChannelsPerFrame = (int)channelsPerFrame; desc.BitsPerChannel = (int)bitsPerChannel; desc.BytesPerPacket = desc.BytesPerFrame = (int)channelsPerFrame * sizeof(Int16); desc.FramesPerPacket = 1; desc.FormatFlags = AudioFormatFlags.IsSignedInteger | AudioFormatFlags.IsPacked; if (bigEndian) { desc.FormatFlags |= AudioFormatFlags.IsBigEndian; } return(desc); }
public unsafe static int[] GetAvailableEncodeNumberChannels(AudioStreamBasicDescription format) { uint size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo(AudioFormatProperty.AvailableEncodeNumberChannels, sizeof(AudioStreamBasicDescription), ref format, out size) != 0) { return(null); } var data = new int[size / sizeof(int)]; fixed(int *ptr = data) { var res = AudioFormatPropertyNative.AudioFormatGetProperty(AudioFormatProperty.AvailableEncodeNumberChannels, sizeof(AudioStreamBasicDescription), ref format, ref size, ptr); if (res != 0) { return(null); } return(data); } }
public static AudioStreamBasicDescription AUCanonicalASBD(double sampleRate, int channel) { // setting AudioStreamBasicDescription int AudioUnitSampleTypeSize = #if !MONOMAC (XamCore.ObjCRuntime.Runtime.Arch == XamCore.ObjCRuntime.Arch.SIMULATOR) ? sizeof(float) : sizeof(int); #else sizeof (float); #endif AudioStreamBasicDescription audioFormat = new AudioStreamBasicDescription() { SampleRate = sampleRate, Format = AudioFormatType.LinearPCM, //kAudioFormatFlagsAudioUnitCanonical = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked | kAudioFormatFlagIsNonInterleaved | (SampleFractionBits << kLinearPCMFormatFlagsSampleFractionShift), FormatFlags = (AudioFormatFlags)((int)AudioFormatFlags.IsSignedInteger | (int)AudioFormatFlags.IsPacked | (int)AudioFormatFlags.IsNonInterleaved | (int)(SampleFractionBits << (int)AudioFormatFlags.LinearPCMSampleFractionShift)), ChannelsPerFrame = channel, BytesPerPacket = AudioUnitSampleTypeSize, BytesPerFrame = AudioUnitSampleTypeSize, FramesPerPacket = 1, BitsPerChannel = 8 * AudioUnitSampleTypeSize, Reserved = 0 }; return audioFormat; }
public static unsafe int[] GetAvailableEncodeNumberChannels(AudioStreamBasicDescription format) { uint size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo (AudioFormatProperty.AvailableEncodeNumberChannels, sizeof (AudioStreamBasicDescription), ref format, out size) != 0) return null; var data = new int[size / sizeof (int)]; fixed (int* ptr = data) { var res = AudioFormatPropertyNative.AudioFormatGetProperty (AudioFormatProperty.AvailableEncodeNumberChannels, sizeof (AudioStreamBasicDescription), ref format, ref size, ptr); if (res != 0) return null; return data; } }
public static unsafe AudioChannelLayoutTag[] GetAvailableEncodeChannelLayoutTags(AudioStreamBasicDescription format) { var type_size = sizeof (AudioStreamBasicDescription); uint size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo (AudioFormatProperty.AvailableEncodeChannelLayoutTags, type_size, ref format, out size) != 0) return null; var data = new AudioChannelLayoutTag[size / sizeof (AudioChannelLayoutTag)]; fixed (AudioChannelLayoutTag* ptr = data) { var res = AudioFormatPropertyNative.AudioFormatGetProperty (AudioFormatProperty.AvailableEncodeChannelLayoutTags, type_size, ref format, ref size, (int*)ptr); if (res != 0) return null; return data; } }
public static AudioStreamBasicDescription CreateLinearPCM(double sampleRate = 44100, uint channelsPerFrame = 2, uint bitsPerChannel = 16, bool bigEndian = false) { var desc = new AudioStreamBasicDescription (AudioFormatType.LinearPCM); desc.SampleRate = sampleRate; desc.ChannelsPerFrame = (int) channelsPerFrame; desc.BitsPerChannel = (int) bitsPerChannel; desc.BytesPerPacket = desc.BytesPerFrame = (int) channelsPerFrame * sizeof (Int16); desc.FramesPerPacket = 1; desc.FormatFlags = AudioFormatFlags.IsSignedInteger | AudioFormatFlags.IsPacked; if (bigEndian) desc.FormatFlags |= AudioFormatFlags.IsBigEndian; return desc; }
static extern AudioConverterError AudioConverterNewSpecific(ref AudioStreamBasicDescription inSourceFormat, ref AudioStreamBasicDescription inDestinationFormat, int inNumberClassDescriptions, ref AudioClassDescription[] inClassDescriptions, ref IntPtr outAudioConverter);
static extern AudioConverterError AudioConverterNew(ref AudioStreamBasicDescription inSourceFormat, ref AudioStreamBasicDescription inDestinationFormat, ref IntPtr outAudioConverter);
static extern int ExtAudioFileSetProperty( IntPtr inExtAudioFile, PropertyIDType inPropertyID, uint /* UInt32 */ ioPropertyDataSize, ref AudioStreamBasicDescription outPropertyData);
public static AudioStreamBasicDescription[] GetAvailableStreamDescriptions(AudioFileType fileType, AudioFormatType formatType) { AudioFileTypeAndFormatID input; input.FileType = fileType; input.FormatType = formatType; uint size; if (AudioFileGetGlobalInfoSize (AudioFileGlobalProperty.AvailableStreamDescriptionsForFormat, (uint)sizeof (AudioFileTypeAndFormatID), ref input, out size) != 0) return null; var data = new AudioStreamBasicDescription[size / sizeof (AudioStreamBasicDescription)]; fixed (AudioStreamBasicDescription* ptr = data) { var res = AudioFileGetGlobalInfo (AudioFileGlobalProperty.AvailableStreamDescriptionsForFormat, (uint)sizeof (AudioFileTypeAndFormatID), ref input, ref size, ptr); if (res != 0) return null; return data; } }
public static ExtAudioFile CreateWithUrl(CFUrl url, AudioFileType fileType, AudioStreamBasicDescription inStreamDesc, //AudioChannelLayout channelLayout, AudioFileFlags flag) { if (url == null) throw new ArgumentNullException ("url"); ExtAudioFileError err; var audioFile = CreateWithUrl (url.Handle, fileType, inStreamDesc, flag, out err); if (err != ExtAudioFileError.OK) // if (err != 0) <- to keep old implementation throw new ArgumentException (String.Format ("Error code:{0}", err)); if (audioFile == null) // if (ptr == IntPtr.Zero) <- to keep old implementation throw new InvalidOperationException ("Can not get object instance"); return audioFile; }
static extern int ExtAudioFileCreateWithUrl(IntPtr inURL, [MarshalAs(UnmanagedType.U4)] AudioFileType inFileType, ref AudioStreamBasicDescription inStreamDesc, IntPtr inChannelLayout, //AudioChannelLayout inChannelLayout, AudioChannelLayout results in compilation error (error code 134.) UInt32 /* UInt32 */ flags, out IntPtr outExtAudioFile);
public static AudioFormatError GetFormatInfo(ref AudioStreamBasicDescription format) { unsafe { var size = sizeof (AudioStreamBasicDescription); return AudioFormatPropertyNative.AudioFormatGetProperty (AudioFormatProperty.FormatInfo, 0, IntPtr.Zero, ref size, ref format); } }
public static extern AudioFormatError AudioFormatGetProperty(AudioFormatProperty inPropertyID, int inSpecifierSize, IntPtr inSpecifier, ref int ioPropertyDataSize, ref AudioStreamBasicDescription outPropertyData);
public static unsafe extern AudioFormatError AudioFormatGetProperty(AudioFormatProperty propertyID, int inSpecifierSize, ref AudioStreamBasicDescription inSpecifier, ref uint ioDataSize, int* outPropertyData);
static extern int AudioConverterNew( ref AudioStreamBasicDescription inSourceFormat, ref AudioStreamBasicDescription inDestinationFormat, IntPtr outAudioConverter);
public static _AudioConverter CreateInstance(AudioStreamBasicDescription srcFormat, AudioStreamBasicDescription destFormat) { _AudioConverter inst = new _AudioConverter(); int err_code; unsafe{ IntPtr ptr = inst._audioConverter; IntPtr pptr =(IntPtr)(&ptr); err_code = AudioConverterNew(ref srcFormat, ref destFormat, pptr); } if (err_code != 0) { throw new ArgumentException(String.Format("Error code:{0}", err_code)); } return inst; }
static extern int AudioFileGetGlobalInfo(AudioFileGlobalProperty propertyID, uint size, ref AudioFileTypeAndFormatID inSpecifier, ref uint ioDataSize, AudioStreamBasicDescription* outPropertyData);
public static extern AudioFormatError AudioFormatGetPropertyInfo(AudioFormatProperty propertyID, int inSpecifierSize, ref AudioStreamBasicDescription inSpecifier, out uint outPropertyDataSize);
static ExtAudioFile CreateWithUrl(IntPtr urlHandle, AudioFileType fileType, AudioStreamBasicDescription inStreamDesc, AudioFileFlags flag, out ExtAudioFileError error) { IntPtr ptr; error = (ExtAudioFileError) ExtAudioFileCreateWithUrl (urlHandle, fileType, ref inStreamDesc, IntPtr.Zero, (uint)flag, out ptr); if (error != ExtAudioFileError.OK || ptr == IntPtr.Zero) return null; else return new ExtAudioFile (ptr); }
public unsafe static AudioChannelLayoutTag[] GetAvailableEncodeChannelLayoutTags(AudioStreamBasicDescription format) { var type_size = sizeof(AudioStreamBasicDescription); uint size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo(AudioFormatProperty.AvailableEncodeChannelLayoutTags, type_size, ref format, out size) != 0) { return(null); } var data = new AudioChannelLayoutTag[size / sizeof(AudioChannelLayoutTag)]; fixed(AudioChannelLayoutTag *ptr = data) { var res = AudioFormatPropertyNative.AudioFormatGetProperty(AudioFormatProperty.AvailableEncodeChannelLayoutTags, type_size, ref format, ref size, (int *)ptr); if (res != 0) { return(null); } return(data); } }
static void PrepareProxy (IntPtr tap, int maxFrames, ref AudioStreamBasicDescription processingFormat) { MTAudioProcessingTap apt; lock (handles) apt = handles [tap]; apt.callbacks.Prepare (apt, (long) maxFrames, ref processingFormat); }
public static AudioConverter Create(AudioStreamBasicDescription sourceFormat, AudioStreamBasicDescription destinationFormat) { AudioConverterError res; return(Create(sourceFormat, destinationFormat, out res)); }
public static ExtAudioFile CreateWithUrl(CFUrl url, AudioFileType fileType, AudioStreamBasicDescription inStreamDesc, AudioFileFlags flag, out ExtAudioFileError error) { if (url == null) throw new ArgumentNullException ("url"); return CreateWithUrl (url.Handle, fileType, inStreamDesc, flag, out error); }