Пример #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);
            }
        }
Пример #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);
                }
            }
        }
Пример #3
0
        public static extern AudioFormatError AudioFormatGetPropertyInfo(AudioFormatProperty propertyID, int inSpecifierSize, ref AudioFormatInfo inSpecifier,
			out uint outPropertyDataSize);
Пример #4
0
        public static unsafe extern AudioFormatError AudioFormatGetProperty(AudioFormatProperty propertyID, int inSpecifierSize, ref AudioFormatInfo inSpecifier,
			ref uint ioDataSize, AudioFormat* outPropertyData);
Пример #5
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;
				}
			}
		}
Пример #6
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;
			}
		}