public unsafe AudioFormat[] GetOutputFormatList(byte[] magicCookie = null) { var afi = new AudioFormatInfo(); afi.AudioStreamBasicDescription = this; var type_size = sizeof(AudioFormat); uint size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo(AudioFormatProperty.OutputFormatList, type_size, ref afi, out size) != 0) { return(null); } Debug.Assert(sizeof(AudioFormat) == type_size); var data = new AudioFormat[size / type_size]; fixed(AudioFormat *ptr = &data[0]) { var res = AudioFormatPropertyNative.AudioFormatGetProperty(AudioFormatProperty.OutputFormatList, type_size, ref afi, ref size, ptr); if (res != 0) { return(null); } Array.Resize(ref data, (int)size / type_size); return(data); } }
public unsafe AudioFormat[] GetFormatList(byte[] magicCookie) { if (magicCookie == null) { throw new ArgumentNullException("magicCookie"); } var afi = new AudioFormatInfo(); afi.AudioStreamBasicDescription = this; fixed(byte *b = magicCookie) { afi.MagicCookieWeak = b; afi.MagicCookieSize = magicCookie.Length; var type_size = sizeof(AudioFormat); uint size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo(AudioFormatProperty.FormatList, type_size, ref afi, out size) != 0) { return(null); } Debug.Assert(sizeof(AudioFormat) == type_size); var data = new AudioFormat[size / type_size]; fixed(AudioFormat *ptr = &data[0]) { var res = AudioFormatPropertyNative.AudioFormatGetProperty(AudioFormatProperty.FormatList, type_size, ref afi, ref size, ptr); if (res != 0) { return(null); } Array.Resize(ref data, (int)size / type_size); return(data); } } }
public unsafe AudioFormat[] GetOutputFormatList(byte[] magicCookie = null) { var afi = new AudioFormatInfo (); afi.AudioStreamBasicDescription = this; var type_size = sizeof (AudioFormat); uint size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo (AudioFormatProperty.OutputFormatList, type_size, ref afi, out size) != 0) return null; Debug.Assert (sizeof (AudioFormat) == type_size); var data = new AudioFormat[size / type_size]; fixed (AudioFormat* ptr = &data[0]) { var res = AudioFormatPropertyNative.AudioFormatGetProperty (AudioFormatProperty.OutputFormatList, type_size, ref afi, ref size, ptr); if (res != 0) return null; Array.Resize (ref data, (int) size / type_size); return data; } }
public unsafe AudioFormat[] GetFormatList(byte[] magicCookie) { if (magicCookie == null) throw new ArgumentNullException ("magicCookie"); var afi = new AudioFormatInfo (); afi.AudioStreamBasicDescription = this; fixed (byte* b = magicCookie) { afi.MagicCookieWeak = b; afi.MagicCookieSize = magicCookie.Length; var type_size = sizeof (AudioFormat); uint size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo (AudioFormatProperty.FormatList, type_size, ref afi, out size) != 0) return null; Debug.Assert (sizeof (AudioFormat) == type_size); var data = new AudioFormat[size / type_size]; fixed (AudioFormat* ptr = &data[0]) { var res = AudioFormatPropertyNative.AudioFormatGetProperty (AudioFormatProperty.FormatList, type_size, ref afi, ref size, ptr); if (res != 0) return null; Array.Resize (ref data, (int)size / type_size); return data; } } }
public static extern AudioFormatError AudioFormatGetPropertyInfo(AudioFormatProperty propertyID, int inSpecifierSize, ref AudioFormatInfo inSpecifier, out uint outPropertyDataSize);
public static unsafe extern AudioFormatError AudioFormatGetProperty(AudioFormatProperty propertyID, int inSpecifierSize, ref AudioFormatInfo inSpecifier, ref uint ioDataSize, AudioFormat* outPropertyData);