private void TargetChanged(IAudioSource newTarget) { if (_targetSource == newTarget) { return; } Close(); if ((_targetSource = newTarget) == null) { return; } if ((TargetStreams = _targetSource.CreateStreams()) == null) { return; } if (_targetStream == 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 for (int i = 0; i < _buffers.Length; i++) { _buffers[i] = _provider.CreateBuffer(_targetStreams[i]); } if (_targetStream.Frequency > 0) { _sampleTime = new DateTime((long)_targetStream.Samples * 10000000 / _targetStream.Frequency); } trackBarPosition.Value = 0; trackBarPosition.TickStyle = TickStyle.None; trackBarPosition.Maximum = _targetStream.Samples; trackBarPosition.TickFrequency = _targetStream.Samples / 8; trackBarPosition.TickStyle = TickStyle.BottomRight; if (_targetStream.Frequency > 0) { UpdateTimeDisplay(); } Enabled = _targetStream.Samples > 0; }
private void TargetChanged(IAudioSource newTarget) { if (_targetSource == newTarget) return; Close(); if ((_targetSource = newTarget) == null) return; if ((TargetStreams = _targetSource.CreateStreams()) == null) return; if (_targetStream == 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 for (int i = 0; i < _buffers.Length; i++) _buffers[i] = _provider.CreateBuffer(_targetStreams[i]); if (_targetStream.Frequency > 0) _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; if (_targetStream.Frequency > 0) UpdateTimeDisplay(); Enabled = _targetStream.Samples > 0; }