private void TargetChanged(IAudioSource newTarget) { if (_targetSource == newTarget) return; Close(); if ((_targetSource = newTarget) == null) return; if ((_targetStream = _targetSource.CreateStream()) == null) return; //Create provider if (_provider == null) { _provider = AudioProvider.Create(null); _provider.Attach(this); } chkLoop.Checked = false; chkLoop.Enabled = _targetStream.IsLooping; //Create buffer for stream _buffer = _provider.CreateBuffer(_targetStream); _sampleTime = new DateTime((long)_targetStream.Samples * 10000000 / _targetStream.Frequency); trackBar1.Value = 0; trackBar1.TickStyle = TickStyle.None; trackBar1.Maximum = _targetStream.Samples; trackBar1.TickFrequency = _targetStream.Samples / 8; trackBar1.TickStyle = TickStyle.BottomRight; UpdateTimeDisplay(); }