Esempio n. 1
0
        private void CreateFFTAggregator(IWaveSource source)
        {
            if (_fftaggregator != null)
            {
                _fftaggregator.FFTCalculated -= OnNewData;
                _fftaggregator = null;
            }

            _fftaggregator = new FFTAggregator(source);
            _fftaggregator.FFTCalculated += OnNewData;
            BaseStream = _fftaggregator;
        }
Esempio n. 2
0
        public void ThrowsInvalidCallerThread()
        {
            bool flag = true;
            foreach (var soundOut in GetSoundOuts())
            {
                var source = new DSP.FFTAggregator(new SineGenerator().ToWaveSource(16));
                source.FFTCalculated += (s, e) =>
                {
                    try
                    {
                        soundOut.Pause(); //hopefully throws exception
                    }
                    catch (InvalidOperationException)
                    {
                        Debug.WriteLine("Invalid behaviour in {0}.", soundOut.GetType().FullName);
                        flag &= false;
                    }
                };
                soundOut.Initialize(source);
                soundOut.Play();

                Thread.Sleep(200);

                soundOut.Stop();

                soundOut.Dispose();
            }

            if (!flag)
                throw new InvalidOperationException("InvalidOperationException was thrown inside audio render queue");
        }