/// <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; }
/// <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; } }