Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        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;
                }
            }
        }
Ejemplo n.º 5
0
 public static extern AudioFormatError AudioFormatGetPropertyInfo(AudioFormatProperty propertyID, int inSpecifierSize, ref AudioFormatInfo inSpecifier,
     out uint outPropertyDataSize);
Ejemplo n.º 6
0
 public static unsafe extern AudioFormatError AudioFormatGetProperty(AudioFormatProperty propertyID, int inSpecifierSize, ref AudioFormatInfo inSpecifier,
     ref uint ioDataSize, AudioFormat* outPropertyData);