public static AudioChannelBit? ToAudioChannel(this AudioChannelLayoutTag layoutTag) { int value; int size = sizeof (uint); int layout = (int) layoutTag; if (AudioFormatPropertyNative.AudioFormatGetProperty (AudioFormatProperty.BitmapForLayoutTag, sizeof (AudioChannelLayoutTag), ref layout, ref size, out value) != 0) return null; return (AudioChannelBit) value; }
public int Reserved; // uint #if !COREBUILD #if !WATCH 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 unsafe AudioChannelLayoutTag[] GetTagsForNumberOfChannels(int count) { const int type_size = sizeof (uint); int size; if (AudioFormatPropertyNative.AudioFormatGetPropertyInfo (AudioFormatProperty.TagsForNumberOfChannels, type_size, ref count, out size) != 0) return null; var data = new AudioChannelLayoutTag[size / type_size]; fixed (AudioChannelLayoutTag* ptr = data) { var res = AudioFormatPropertyNative.AudioFormatGetProperty (AudioFormatProperty.TagsForNumberOfChannels, type_size, ref count, ref size, (int*)ptr); if (res != 0) return null; return data; } }
public unsafe static AudioChannelLayoutTag[] GetAvailableEncodeChannelLayoutTags(AudioStreamBasicDescription format) { var type_size = Marshal.SizeOf(format); 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 AudioChannelLayout FromAudioChannelLayoutTag(AudioChannelLayoutTag channelLayoutTag) { return(GetChannelLayout(AudioFormatProperty.ChannelLayoutForTag, (int)channelLayoutTag)); }
public static bool IsReserved(this AudioChannelLayoutTag value) { return((uint)value >= 0xF0000000 && (uint)value <= 0xFFFFFFFE); }
public static uint GetNumberOfChannels(this AudioChannelLayoutTag inLayoutTag) { return((uint)inLayoutTag & 0x0000FFFF); }
public static AudioChannelLayout FromAudioChannelLayoutTag(AudioChannelLayoutTag channelLayoutTag) { return GetChannelLayout (AudioFormatProperty.ChannelLayoutForTag, (int) channelLayoutTag); }
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; } }
internal unsafe AudioChannelLayout(IntPtr h) { AudioTag = (AudioChannelLayoutTag) Marshal.ReadInt32 (h, 0); ChannelUsage = (AudioChannelBit) Marshal.ReadInt32 (h, 4); Channels = new AudioChannelDescription [Marshal.ReadInt32 (h, 8)]; int p = 12; for (int i = 0; i < Channels.Length; i++){ Channels [i] = (AudioChannelDescription) Marshal.PtrToStructure((IntPtr) (unchecked (((byte *) h) + p)), typeof(AudioChannelDescription)); p += Marshal.SizeOf (typeof (AudioChannelDescription)); } }