Exemplo n.º 1
0
        /// <summary>
        /// Initializes the specified provider.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <param name="sampleRate">The sample rate.</param>
        /// <param name="channels">The channels.</param>
        /// <param name="bitsPerSample">The bits per sample.</param>
        /// <returns></returns>
        /// <exception cref="System.InvalidOperationException">Wave device already started</exception>
        public bool Initialize(IAudioDataProvider provider, int sampleRate, int channels, int bitsPerSample)
        {
            lock (SyncLock)
            {
                if (this.HasInitialized)
                {
                    throw new InvalidOperationException("Wave device already initialized");
                }

                var format = new WaveFormat(sampleRate, bitsPerSample, channels);
                var callbackWaveProvider = new CallbackWaveProvider16(format, provider.RenderAudioBuffer, SyncLock);
                var volumeWaveProvider   = new VolumeWaveProvider16(callbackWaveProvider);
                m_WaveProvider = volumeWaveProvider;
                m_Device.Init(m_WaveProvider);
                m_Device.Play();

                return(true);
            }
        }
 public FourierSpectrumProvider(IAudioDataProvider dataProvider)
 {
     this._dataProvider = dataProvider;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Initializes the specified provider.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <param name="sampleRate">The sample rate.</param>
        /// <param name="channels">The channels.</param>
        /// <param name="bitsPerSample">The bits per sample.</param>
        /// <returns></returns>
        /// <exception cref="System.InvalidOperationException">Wave device already started</exception>
        public bool Initialize(IAudioDataProvider provider, int sampleRate, int channels, int bitsPerSample)
        {
            lock (SyncLock)
            {
                if (this.HasInitialized)
                    throw new InvalidOperationException("Wave device already initialized");

                var format = new WaveFormat(sampleRate, bitsPerSample, channels);
                var callbackWaveProvider = new CallbackWaveProvider16(format, provider.RenderAudioBuffer, SyncLock);
                var volumeWaveProvider = new VolumeWaveProvider16(callbackWaveProvider);
                m_WaveProvider = volumeWaveProvider;
                m_Device.Init(m_WaveProvider);
                m_Device.Play();

                return true;
            }
        }