|
- /*
- ==============================================================================
-
- This file is part of the JUCETICE project - Copyright 2009 by Lucio Asnaghi.
-
- JUCETICE is based around the JUCE library - "Jules' Utility Class Extensions"
- Copyright 2007 by Julian Storer.
-
- ------------------------------------------------------------------------------
-
- JUCE and JUCETICE can be redistributed and/or modified under the terms of
- the GNU General Public License, as published by the Free Software Foundation;
- either version 2 of the License, or (at your option) any later version.
-
- JUCE and JUCETICE are distributed in the hope that they will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with JUCE and JUCETICE; if not, visit www.gnu.org/licenses or write to
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- Boston, MA 02111-1307 USA
-
- ==============================================================================
- */
-
- BEGIN_JUCE_NAMESPACE
-
- #if 0
-
- //==============================================================================
- SpectrumAnalyzerState::SpectrumAnalyzerState()
- : _fsamp (44100),
- _fsize (512),
- _inputA (-1),
- _inputB (-1),
- _dataA (0),
- _dataB (0),
- _dind (0),
- _size (8192),
- _step (2),
- _scnt (0)
- {
- }
-
- SpectrumAnalyzerState::~SpectrumAnalyzerState()
- {
- }
-
- //==============================================================================
- void SpectrumAnalyzerState::reset (double sampleRate, int samplesPerBlock)
- {
- _fsamp = sampleRate;
- _fsize = samplesPerBlock;
- _dind = 0;
- _scnt = 0;
- }
-
- //==============================================================================
- void SpectrumAnalyzerState::processNextBlock (AudioSampleBuffer& buffer)
- {
- const ScopedTryLock scopedTryLock (dataLock);
-
- if (scopedTryLock.isLocked() && _dataA)
- {
- float *pA, *pB;
- unsigned int m, n, nframes = buffer.getNumSamples();
-
- pA = (_inputA >= 0) ? buffer.getSampleData (0) : 0;
- pB = (_inputB >= 0) ? buffer.getSampleData (1) : 0;
-
- m = nframes;
- n = _size - _dind;
-
- if (m >= n)
- {
- if (pA) memcpy (_dataA + _dind, pA, sizeof(float) * n);
- else memset (_dataA + _dind, 0, sizeof(float) * n);
-
- if (pB) memcpy (_dataB + _dind, pB, sizeof(float) * n);
- else memset (_dataB + _dind, 0, sizeof(float) * n);
-
- m -= n;
- pA += n;
- pB += n;
- _dind = 0;
- }
-
- if (m)
- {
- if (pA) memcpy (_dataA + _dind, pA, sizeof(float) * m);
- else memset (_dataA + _dind, 0, sizeof(float) * m);
-
- if (pB) memcpy (_dataB + _dind, pB, sizeof(float) * m);
- else memset (_dataB + _dind, 0, sizeof(float) * m);
-
- _dind += m;
- }
-
- _scnt += nframes;
-
- int k = _scnt / _step;
- if (k) _scnt -= k * _step;
- }
- }
-
- //==============================================================================
- void SpectrumAnalyzerState::setDataBuffer (float* a, float* b, int ipsize, int ipstep)
- {
- const ScopedLock sl (dataLock);
-
- _dataA = a;
- _dataB = b;
-
- _inputA = a != 0;
- _inputB = b != 0;
-
- _size = ipsize;
- _step = ipstep;
- _dind = 0;
- _scnt = 0;
- }
-
- #endif
-
- END_JUCE_NAMESPACE
|