/// <summary> /// Sets the Bass inputstream and initializes the playbackbuffer. /// </summary> /// <param name="stream">New inputstream.</param> public void SetInputStream(BassStream stream) { ResetInputStream(); _inputStream = stream; // If a Mixer has been created before, e.g. because of UpDownMixing, // use the mixer as output stream instead of using a Ringbuffer if (stream.BassInfo.ctype == BASSChannelType.BASS_CTYPE_STREAM_MIXER) { _outputStream = stream; } else { _buffer = new AudioRingBuffer(stream.SampleRate, stream.Channels, _bufferSize); _streamEnded = false; _buffer.ResetPointers(); CreateOutputStream(); // Ensure prebuffering _updateThreadFinished.Reset(); StartBufferUpdateThread(); _updateThreadFinished.WaitOne(); } CreateVizStream(); _inputStreamInitialized = true; }
/// <summary> /// Sets the Bass inputstream and initializes the playbackbuffer. /// </summary> /// <param name="stream">New inputstream.</param> public void SetInputStream(BassStream stream) { ResetInputStream(); _inputStream = stream; _buffer = new AudioRingBuffer(stream.SampleRate, stream.Channels, _bufferSize); _streamEnded = false; _buffer.ResetPointers(); CreateOutputStream(); CreateVizStream(); _inputStreamInitialized = true; // Ensure prebuffering _updateThreadFinished.Reset(); StartBufferUpdateThread(); _updateThreadFinished.WaitOne(); }
/// <summary> /// Resets and clears the buffer. /// </summary> public void ClearBuffer() { _buffer.Clear(); _buffer.ResetPointers(); }