diff src/Analyser.cpp @ 403:cc33cdb114f6

Merge from cxx11 branch
author Chris Cannam
date Mon, 23 Mar 2015 11:26:28 +0000
parents a0eedd10dee3
children 0a12d7e79b74
line wrap: on
line diff
--- a/src/Analyser.cpp	Mon Mar 23 10:17:09 2015 +0000
+++ b/src/Analyser.cpp	Mon Mar 23 11:26:28 2015 +0000
@@ -158,14 +158,14 @@
 }
 
 bool
-Analyser::getDisplayFrequencyExtents(float &min, float &max)
+Analyser::getDisplayFrequencyExtents(double &min, double &max)
 {
     if (!m_layers[Spectrogram]) return false;
     return m_layers[Spectrogram]->getDisplayExtents(min, max);
 }
 
 bool
-Analyser::setDisplayFrequencyExtents(float min, float max)
+Analyser::setDisplayFrequencyExtents(double min, double max)
 {
     if (!m_layers[Spectrogram]) return false;
     m_layers[Spectrogram]->setDisplayExtents(min, max);
@@ -420,8 +420,8 @@
         if (params) params->setPlayPan(1);
         connect(flexiNoteLayer, SIGNAL(modelCompletionChanged()),
                 this, SLOT(layerCompletionChanged()));
-        connect(flexiNoteLayer, SIGNAL(reAnalyseRegion(int, int, float, float)),
-                this, SLOT(reAnalyseRegion(int, int, float, float)));
+        connect(flexiNoteLayer, SIGNAL(reAnalyseRegion(sv_frame_t, sv_frame_t, float, float)),
+                this, SLOT(reAnalyseRegion(sv_frame_t, sv_frame_t, float, float)));
         connect(flexiNoteLayer, SIGNAL(materialiseReAnalysis()),
                 this, SLOT(materialiseReAnalysis()));
     }
@@ -430,7 +430,7 @@
 }
 
 void
-Analyser::reAnalyseRegion(int frame0, int frame1, float freq0, float freq1)
+Analyser::reAnalyseRegion(sv_frame_t frame0, sv_frame_t frame1, float freq0, float freq1)
 {
     cerr << "Analyser::reAnalyseRegion(" << frame0 << ", " << frame1
          << ", " << freq0 << ", " << freq1 << ")" << endl;
@@ -506,19 +506,22 @@
     t.setBlockSize(2048);
 
     if (range.isConstrained()) {
-        t.setParameter("minfreq", range.min);
-        t.setParameter("maxfreq", range.max);
+        t.setParameter("minfreq", float(range.min));
+        t.setParameter("maxfreq", float(range.max));
         t.setBlockSize(4096);
     }
 
     // get time stamps that align with the 256-sample grid of the original extraction
-    int startSample = ceil(sel.getStartFrame()*1.0/256) * 256;
-    int endSample   = ceil(sel.getEndFrame()*1.0/256) * 256;
+    const sv_frame_t grid = 256;
+    sv_frame_t startSample = (sel.getStartFrame() / grid) * grid;
+    if (startSample < sel.getStartFrame()) startSample += grid;
+    sv_frame_t endSample = (sel.getEndFrame() / grid) * grid;
+    if (endSample < sel.getEndFrame()) endSample += grid;
     if (!range.isConstrained()) {
-        startSample -= 4*256; // 4*256 is for 4 frames offset due to timestamp shift
-        endSample   -= 4*256;
+        startSample -= 4*grid; // 4*256 is for 4 frames offset due to timestamp shift
+        endSample   -= 4*grid;
     } else {
-        endSample   -= 9*256; // MM says: not sure what the CHP plugin does there
+        endSample   -= 9*grid; // MM says: not sure what the CHP plugin does there
     }
     RealTime start = RealTime::frame2RealTime(startSample, m_fileModel->getSampleRate()); 
     RealTime end = RealTime::frame2RealTime(endSample, m_fileModel->getSampleRate());
@@ -802,12 +805,12 @@
 }
 
 void
-Analyser::getEnclosingSelectionScope(int f, int &f0, int &f1)
+Analyser::getEnclosingSelectionScope(sv_frame_t f, sv_frame_t &f0, sv_frame_t &f1)
 {
     FlexiNoteLayer *flexiNoteLayer = 
         qobject_cast<FlexiNoteLayer *>(m_layers[Notes]);
 
-    int f0i = f, f1i = f;
+    sv_frame_t f0i = f, f1i = f;
     int res = 1;
 
     if (!flexiNoteLayer) {