public void Init(WaveChannel32 Provider, LoopVolumeWaveProvider16 LoopVolWaveProvider, bool FadeInOutProviderInit = false) { LoopWaveChannel32 = Provider; LoopVolumeWaveProvider16 = LoopVolWaveProvider; this.FadeInOutProviderInit = FadeInOutProviderInit; //try using the 32 wav sample first, if that fails use 16. try { //base.Init(Provider); //FadeInOutProvider = new FadeInOutSampleProvider(LoopWaveChannel32.ToSampleProvider()); //FadeInOutProvider.BeginFadeIn(2000); if (FadeInOutProviderInit && false) { Game.LogTrivial("FaIn3"); this.Init(FadeInOutProvider); } else { //Game.LogTrivial("In32"); this.Init(LoopWaveChannel32); } Using32 = true; } catch (NAudio.MmException e) { Game.LogTrivial("Handled in32 exc. - trying 6"); this.Dispose(); //FadeInOutProvider = new FadeInOutSampleProvider(LoopVolumeWaveProvider16.ToSampleProvider()); if (FadeInOutProviderInit && false) { Game.LogTrivial("FaIn6"); this.Init(FadeInOutProvider); } else { //Game.LogTrivial("I6"); this.Init(LoopVolumeWaveProvider16); } Using32 = false; } }
public Siren(WaveFileReader provider, float Volume, SirenTypes SirType, string SirenFileIdentifier) { this.SirenFileIdentifier = SirenFileIdentifier; this.Volume = Volume; SirenLoopWaveChannel32 = new WaveChannel32(new LoopWaveStream(provider)); SirenLoopWaveChannel32.Volume = Volume; try { SirenLoopProvider16 = new LoopVolumeWaveProvider16(new LoopWaveStream(provider)); SirenLoopProvider16.Volume = Volume; } catch (Exception e) { SirenLoopProvider16 = null; Game.LogTrivial("16ex for: " + SirenFileIdentifier); } SirenType = SirType; }