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();
        }
Ejemplo n.º 2
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);
            }

            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 bool LoadAudio(string path)
        {
            DisposeSource();

            //Get audio stream
            _sourceStream = WAV.FromFile(path);

            _audioSource = path;

            //Create buffer for stream
            if (_provider != null)
            {
                _buffer      = _provider.CreateBuffer(_sourceStream);
                _buffer.Loop = chkLoop.Checked;
            }

            //Set controls
            _sampleTime = new DateTime((long)_sourceStream.Samples * 10000000 / _sourceStream.Frequency);

            txtPath.Text      = path;
            lblFrequency.Text = String.Format("{0} Hz", _sourceStream.Frequency);
            lblSamples.Text   = String.Format("{0}", _sourceStream.Samples);

            customTrackBar1.Value         = 0;
            customTrackBar1.TickStyle     = TickStyle.None;
            customTrackBar1.Maximum       = _sourceStream.Samples;
            customTrackBar1.TickFrequency = _sourceStream.Samples / 8;
            customTrackBar1.TickStyle     = TickStyle.BottomRight;

            numLoopStart.Maximum = numLoopEnd.Maximum = _sourceStream.Samples;
            if (!_sourceStream.IsLooping)
            {
                numLoopStart.Value = 0;
                numLoopEnd.Value   = _sourceStream.Samples;

                pnlLoopStart.Width = 0;
                pnlLoopEnd.Width   = 0;
            }
            else
            {
                numLoopStart.Value = _sourceStream.LoopStartSample;
                numLoopEnd.Value   = _sourceStream.LoopEndSample;
            }

            btnOkay.Enabled = true;

            if (_type == 0)
            {
                chkLoopEnable.Checked = true;
            }

            UpdateTimeDisplay();

            return(true);
        }
        private void TargetChanged(THPNode newTarget)
        {
            if (_targetSource == newTarget)
            {
                return;
            }

            Close();

            if ((_targetSource = newTarget) == null)
            {
                return;
            }

            previewPanel1.RenderingTarget = _targetSource;

            IAudioStream s = _targetSource._audio;

            //Create provider
            if (_provider == null && s != null)
            {
                _provider = AudioProvider.Create(null);
                _provider.Attach(this);
            }

            chkLoop.Checked = false;

            //Create buffer for stream
            if (s != null)
            {
                _buffer = _provider.CreateBuffer(s);
            }

            if (_targetSource.FrameRate > 0)
            {
                _frameTime = new DateTime((long)((float)_targetSource.NumFrames * 10000000.0f / _targetSource.FrameRate));
            }

            trackBar1.Value         = 0;
            trackBar1.TickStyle     = TickStyle.None;
            trackBar1.Maximum       = (int)_targetSource.NumFrames;
            trackBar1.TickFrequency = (int)_targetSource.NumFrames;
            trackBar1.TickStyle     = TickStyle.BottomRight;

            if (_targetSource.FrameRate > 0)
            {
                UpdateTimeDisplay();
            }

            Enabled = _targetSource.NumFrames > 0;
        }