public CSCoreEngine() { _fader = new VolumeFading(); _crossfade = new Crossfade(); SoundOutManager = new SoundOutManager(this); SoundOutManager.RefreshSoundOut += (sender, args) => Refresh(); SoundOutManager.Enable += (sender, args) => IsEnabled = true; SoundOutManager.Disable += (sender, args) => IsEnabled = false; SoundOutManager.Activate(); _progressHandle.Tick += _progressHandle_Tick; if (IsEnabled) { RefreshSoundOut(); } }
protected virtual void Dispose(bool disposing) { if (disposing) { _fader.Dispose(); SoundOutManager.Dispose(); if (_soundOut != null) { if (_fader.IsFading) { _fader.CancelFading(); _fader.WaitForCancel(); } _soundOut.Dispose(); _crossfade.CancelFading(); } SoundSource?.Dispose(); } }
public void RefreshSoundOut() { _soundOut = SoundOutManager.GetNewSoundSource(); _soundOut.Stopped += soundOut_Stopped; }