Mercurial > hg > qm-vamp-plugins
diff plugins/AdaptiveSpectrogram.cpp @ 106:35f2138c6891
* Update to new FFT api
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Wed, 13 May 2009 09:19:30 +0000 |
parents | abbc482aaad2 |
children | 0dd97d053053 |
line wrap: on
line diff
--- a/plugins/AdaptiveSpectrogram.cpp Tue May 12 21:05:44 2009 +0000 +++ b/plugins/AdaptiveSpectrogram.cpp Wed May 13 09:19:30 2009 +0000 @@ -42,8 +42,8 @@ } m_cutThreads.clear(); - for (int i = 0; i < m_fftThreads.size(); ++i) { - delete m_fftThreads[i]; + for (FFTMap::iterator i = m_fftThreads.begin(); i != m_fftThreads.end(); ++i) { + delete i->second; } m_fftThreads.clear(); } @@ -102,10 +102,6 @@ if (channels < getMinChannelCount() || channels > getMaxChannelCount()) return false; - while (m_fftThreads.size() < (m_n + 1)) { - m_fftThreads.push_back(new FFTThread()); - } - return true; } @@ -229,18 +225,18 @@ int index = 0; while (w <= maxwid) { - m_fftThreads[index]->calculate(inputBuffers[0], s, index, w, maxwid); + if (m_fftThreads.find(w) == m_fftThreads.end()) { + m_fftThreads[w] = new FFTThread(w); + } + m_fftThreads[w]->calculate(inputBuffers[0], s, index, maxwid); w *= 2; ++index; } w = minwid; - index = 0; - while (w <= maxwid) { - m_fftThreads[index]->await(); + m_fftThreads[w]->await(); w *= 2; - ++index; } m_first = true;//!!!