Example #1
0
 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();
     }
 }
Example #2
0
        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();
            }
        }
Example #3
0
 public void RefreshSoundOut()
 {
     _soundOut          = SoundOutManager.GetNewSoundSource();
     _soundOut.Stopped += soundOut_Stopped;
 }