Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="X3DAudio"/> class.
        /// </summary>
        /// <param name="speakers">The speakers config.</param>
        /// <param name="speedOfSound">The speed of sound.</param>
        /// <param name="requestVersion">The request requestVersion.</param>
        ///
        /// <msdn-id>microsoft.directx_sdk.x3daudio.x3daudioinitialize</msdn-id>
        ///
        /// <unmanaged>void X3DAudioInitialize([In] SPEAKER_FLAGS SpeakerChannelMask,[In] float SpeedOfSound,[Out] X3DAUDIOHANDLE* Instance)</unmanaged>
        ///
        /// <unmanaged-short>X3DAudioInitialize</unmanaged-short>
        public X3DAudio(Speakers speakers, float speedOfSound, X3DAudioVersion requestVersion = X3DAudioVersion.Default)
        {
            var tryVersions = requestVersion == X3DAudioVersion.Default
                ? new [] { X3DAudioVersion.Version29, X3DAudioVersion.Version28, X3DAudioVersion.Version17 }
                : new[] { requestVersion };

            foreach (var tryVersion in tryVersions)
            {
                switch (tryVersion)
                {
#if DESKTOP_APP
                case X3DAudioVersion.Version17:
                    try
                    {
                        X3DAudio17.X3DAudioInitialize(speakers, speedOfSound, out handle);
                        version           = X3DAudioVersion.Version17;
                        calculateDelegate = X3DAudio17.X3DAudioCalculate;
                    }
                    catch (DllNotFoundException) {}
                    break;
#endif
                case X3DAudioVersion.Version28:
                    try
                    {
                        X3DAudio28.X3DAudioInitialize(speakers, speedOfSound, out handle);
                        version           = X3DAudioVersion.Version28;
                        calculateDelegate = X3DAudio28.X3DAudioCalculate;
                    }
                    catch (DllNotFoundException) { }
                    break;

#if STORE_APP_10
                case X3DAudioVersion.Version29:
                    try
                    {
                        X3DAudio29.X3DAudioInitialize(speakers, speedOfSound, out handle);
                        version           = X3DAudioVersion.Version29;
                        calculateDelegate = X3DAudio29.X3DAudioCalculate;
                    }
                    catch (DllNotFoundException) { }
                    break;
#endif
                }

                if (version != X3DAudioVersion.Default)
                {
                    break;
                }
            }

            if (version == X3DAudioVersion.Default)
            {
                throw new DllNotFoundException(string.Format("Unable to find X3DAudio dlls for the following requested version [{0}]", string.Join(",", tryVersions)));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="X3DAudio"/> class.
        /// </summary>
        /// <param name="speakers">The speakers config.</param>
        /// <param name="speedOfSound">The speed of sound.</param>
        /// <param name="requestVersion">The request requestVersion.</param>
        /// 
        /// <msdn-id>microsoft.directx_sdk.x3daudio.x3daudioinitialize</msdn-id>
        /// 
        /// <unmanaged>void X3DAudioInitialize([In] SPEAKER_FLAGS SpeakerChannelMask,[In] float SpeedOfSound,[Out] X3DAUDIOHANDLE* Instance)</unmanaged>
        /// 
        /// <unmanaged-short>X3DAudioInitialize</unmanaged-short>
        public X3DAudio(Speakers speakers, float speedOfSound, X3DAudioVersion requestVersion = X3DAudioVersion.Default)
        {
            var tryVersions = requestVersion == X3DAudioVersion.Default
                ? new [] {X3DAudioVersion.Version29, X3DAudioVersion.Version28, X3DAudioVersion.Version17}
                : new[] {requestVersion};

            foreach(var tryVersion in tryVersions)
            {
                switch(tryVersion)
                {
#if DESKTOP_APP
                    case X3DAudioVersion.Version17:
                        try
                        {
                            X3DAudio17.X3DAudioInitialize(speakers, speedOfSound, out handle);
                            version = X3DAudioVersion.Version17;
                            calculateDelegate = X3DAudio17.X3DAudioCalculate;
                        }
                        catch (DllNotFoundException) {}
                    break;
#endif
                    case X3DAudioVersion.Version28:
                        try
                        {
                            X3DAudio28.X3DAudioInitialize(speakers, speedOfSound, out handle);
                            version = X3DAudioVersion.Version28;
                            calculateDelegate = X3DAudio28.X3DAudioCalculate;
                        }
                        catch (DllNotFoundException) { }
                    break;
#if STORE_APP_10
                    case X3DAudioVersion.Version29:
                        try
                        {
                            X3DAudio29.X3DAudioInitialize(speakers, speedOfSound, out handle);
                            version = X3DAudioVersion.Version29;
                            calculateDelegate = X3DAudio29.X3DAudioCalculate;
                        }
                        catch (DllNotFoundException) { }
                    break;
#endif
                }

                if(version != X3DAudioVersion.Default)
                {
                    break;
                }
            }

            if(version == X3DAudioVersion.Default)
            {
                throw new DllNotFoundException(string.Format("Unable to find X3DAudio dlls for the following requested version [{0}]", string.Join(",", tryVersions)));
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="X3DAudio" /> class.
 /// </summary>
 /// <param name="speakers">The speakers config.</param>
 /// <param name="requestVersion">The requestVersion.</param>
 /// <msdn-id>microsoft.directx_sdk.x3daudio.x3daudioinitialize</msdn-id>
 /// <unmanaged>void X3DAudioInitialize([In] SPEAKER_FLAGS SpeakerChannelMask,[In] float SpeedOfSound,[Out] X3DAUDIOHANDLE* Instance)</unmanaged>
 /// <unmanaged-short>X3DAudioInitialize</unmanaged-short>
 public X3DAudio(Speakers speakers, X3DAudioVersion requestVersion)
     : this(speakers, SpeedOfSound, requestVersion)
 {
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="X3DAudio" /> class.
 /// </summary>
 /// <param name="speakers">The speakers config.</param>
 /// <param name="requestVersion">The requestVersion.</param>
 /// <msdn-id>microsoft.directx_sdk.x3daudio.x3daudioinitialize</msdn-id>
 /// <unmanaged>void X3DAudioInitialize([In] SPEAKER_FLAGS SpeakerChannelMask,[In] float SpeedOfSound,[Out] X3DAUDIOHANDLE* Instance)</unmanaged>
 /// <unmanaged-short>X3DAudioInitialize</unmanaged-short>
 public X3DAudio(Speakers speakers, X3DAudioVersion requestVersion)
     : this(speakers, SpeedOfSound, requestVersion)
 {
 }