comparison src/Analyser.cpp @ 399:ffd1a89a68fa cxx11-types

Build fixes etc
author Chris Cannam
date Wed, 11 Mar 2015 11:54:29 +0000
parents fc0c4cfad044
children a0eedd10dee3
comparison
equal deleted inserted replaced
352:7178bb4dcdfb 399:ffd1a89a68fa
156 m_currentCandidate = -1; 156 m_currentCandidate = -1;
157 m_reAnalysingSelection = Selection(); 157 m_reAnalysingSelection = Selection();
158 } 158 }
159 159
160 bool 160 bool
161 Analyser::getDisplayFrequencyExtents(float &min, float &max) 161 Analyser::getDisplayFrequencyExtents(double &min, double &max)
162 { 162 {
163 if (!m_layers[Spectrogram]) return false; 163 if (!m_layers[Spectrogram]) return false;
164 return m_layers[Spectrogram]->getDisplayExtents(min, max); 164 return m_layers[Spectrogram]->getDisplayExtents(min, max);
165 } 165 }
166 166
167 bool 167 bool
168 Analyser::setDisplayFrequencyExtents(float min, float max) 168 Analyser::setDisplayFrequencyExtents(double min, double max)
169 { 169 {
170 if (!m_layers[Spectrogram]) return false; 170 if (!m_layers[Spectrogram]) return false;
171 m_layers[Spectrogram]->setDisplayExtents(min, max); 171 m_layers[Spectrogram]->setDisplayExtents(min, max);
172 return true; 172 return true;
173 } 173 }
475 (base + out, m_fileModel->getSampleRate()); 475 (base + out, m_fileModel->getSampleRate());
476 t.setStepSize(256); 476 t.setStepSize(256);
477 t.setBlockSize(2048); 477 t.setBlockSize(2048);
478 478
479 if (range.isConstrained()) { 479 if (range.isConstrained()) {
480 t.setParameter("minfreq", range.min); 480 t.setParameter("minfreq", float(range.min));
481 t.setParameter("maxfreq", range.max); 481 t.setParameter("maxfreq", float(range.max));
482 t.setBlockSize(4096); 482 t.setBlockSize(4096);
483 } 483 }
484 484
485 // get time stamps that align with the 256-sample grid of the original extraction 485 // get time stamps that align with the 256-sample grid of the original extraction
486 int startSample = ceil(sel.getStartFrame()*1.0/256) * 256; 486 const sv_frame_t grid = 256;
487 int endSample = ceil(sel.getEndFrame()*1.0/256) * 256; 487 sv_frame_t startSample = (sel.getStartFrame() / grid) * grid;
488 if (startSample < sel.getStartFrame()) startSample += grid;
489 sv_frame_t endSample = (sel.getEndFrame() / grid) * grid;
490 if (endSample < sel.getEndFrame()) endSample += grid;
488 if (!range.isConstrained()) { 491 if (!range.isConstrained()) {
489 startSample -= 4*256; // 4*256 is for 4 frames offset due to timestamp shift 492 startSample -= 4*grid; // 4*256 is for 4 frames offset due to timestamp shift
490 endSample -= 4*256; 493 endSample -= 4*grid;
491 } else { 494 } else {
492 endSample -= 9*256; // MM says: not sure what the CHP plugin does there 495 endSample -= 9*grid; // MM says: not sure what the CHP plugin does there
493 } 496 }
494 RealTime start = RealTime::frame2RealTime(startSample, m_fileModel->getSampleRate()); 497 RealTime start = RealTime::frame2RealTime(startSample, m_fileModel->getSampleRate());
495 RealTime end = RealTime::frame2RealTime(endSample, m_fileModel->getSampleRate()); 498 RealTime end = RealTime::frame2RealTime(endSample, m_fileModel->getSampleRate());
496 499
497 RealTime duration; 500 RealTime duration;
771 774
772 myLayer->paste(m_pane, clip, 0, false); 775 myLayer->paste(m_pane, clip, 0, false);
773 } 776 }
774 777
775 void 778 void
776 Analyser::getEnclosingSelectionScope(size_t f, size_t &f0, size_t &f1) 779 Analyser::getEnclosingSelectionScope(sv_frame_t f, sv_frame_t &f0, sv_frame_t &f1)
777 { 780 {
778 FlexiNoteLayer *flexiNoteLayer = 781 FlexiNoteLayer *flexiNoteLayer =
779 qobject_cast<FlexiNoteLayer *>(m_layers[Notes]); 782 qobject_cast<FlexiNoteLayer *>(m_layers[Notes]);
780 783
781 int f0i = f, f1i = f; 784 sv_frame_t f0i = f, f1i = f;
782 size_t res = 1; 785 int res = 1;
783 786
784 if (!flexiNoteLayer) { 787 if (!flexiNoteLayer) {
785 f0 = f1 = f; 788 f0 = f1 = f;
786 return; 789 return;
787 } 790 }