Mercurial > hg > svgui
comparison layer/SpectrogramLayer.cpp @ 1503:2c7a480f93ca
Set maximum frequency on FFT model to reduce cache size (experimental)
author | Chris Cannam |
---|---|
date | Thu, 12 Sep 2019 11:53:40 +0100 |
parents | 5d179afc0366 |
children | 150d4e561b07 |
comparison
equal
deleted
inserted
replaced
1502:62aad7969f8b | 1503:2c7a480f93ca |
---|---|
870 | 870 |
871 invalidateRenderers(); | 871 invalidateRenderers(); |
872 invalidateMagnitudes(); | 872 invalidateMagnitudes(); |
873 | 873 |
874 m_maxFrequency = mf; | 874 m_maxFrequency = mf; |
875 | |
876 if (auto fftModel = ModelById::getAs<FFTModel>(m_fftModel)) { | |
877 fftModel->setMaximumFrequency(m_maxFrequency); | |
878 } | |
875 | 879 |
876 emit layerParametersChanged(); | 880 emit layerParametersChanged(); |
877 } | 881 } |
878 | 882 |
879 int | 883 int |
1418 tr("Failed to create the FFT model for this spectrogram.\n" | 1422 tr("Failed to create the FFT model for this spectrogram.\n" |
1419 "There may be insufficient memory or disc space to continue.")); | 1423 "There may be insufficient memory or disc space to continue.")); |
1420 return; | 1424 return; |
1421 } | 1425 } |
1422 | 1426 |
1427 newFFTModel->setMaximumFrequency(getMaxFrequency()); | |
1428 | |
1423 m_fftModel = ModelById::add(newFFTModel); | 1429 m_fftModel = ModelById::add(newFFTModel); |
1424 | 1430 |
1425 bool createWholeCache = false; | 1431 bool createWholeCache = false; |
1426 checkCacheSpace(&m_peakCacheDivisor, &createWholeCache); | 1432 checkCacheSpace(&m_peakCacheDivisor, &createWholeCache); |
1427 | 1433 |
1791 invalidateRenderers(); | 1797 invalidateRenderers(); |
1792 invalidateMagnitudes(); | 1798 invalidateMagnitudes(); |
1793 | 1799 |
1794 m_minFrequency = minf; | 1800 m_minFrequency = minf; |
1795 m_maxFrequency = maxf; | 1801 m_maxFrequency = maxf; |
1802 | |
1803 if (auto fftModel = ModelById::getAs<FFTModel>(m_fftModel)) { | |
1804 fftModel->setMaximumFrequency(m_maxFrequency); | |
1805 } | |
1796 | 1806 |
1797 emit layerParametersChanged(); | 1807 emit layerParametersChanged(); |
1798 | 1808 |
1799 int vs = getCurrentVerticalZoomStep(); | 1809 int vs = getCurrentVerticalZoomStep(); |
1800 if (vs != m_lastEmittedZoomStep) { | 1810 if (vs != m_lastEmittedZoomStep) { |