/// <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))); } }
/// <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))); } }
/// <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) { }