Exemple #1
0
        /// <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;
        }
Exemple #2
0
        /// <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();
 }