Mercurial > hg > tony
diff src/Analyser.cpp @ 164:62ceae757fe0
Re-analyse frames when selection changes (this only pulls up a set of new candidates for now, can't do anything with them and the old ones are never removed)
author | Chris Cannam |
---|---|
date | Thu, 30 Jan 2014 17:33:55 +0000 |
parents | ec196bd2f068 |
children | ebcfb8dce020 |
line wrap: on
line diff
--- a/src/Analyser.cpp Wed Jan 29 17:34:28 2014 +0000 +++ b/src/Analyser.cpp Thu Jan 30 17:33:55 2014 +0000 @@ -88,9 +88,6 @@ error = addAnalyses(); if (error != "") return error; - error = addTestCandidates(); - if (error != "") return error; - loadState(Audio); loadState(PitchTrack); loadState(Notes); @@ -102,6 +99,12 @@ } QString +Analyser::reAnalyseSelection(Selection sel) +{ + return addTestCandidates(sel); +} + +QString Analyser::addVisualisations() { TransformFactory *tf = TransformFactory::getInstance(); @@ -244,7 +247,7 @@ } QString -Analyser::addTestCandidates() +Analyser::addTestCandidates(Selection sel) { TransformFactory *tf = TransformFactory::getInstance(); @@ -264,8 +267,20 @@ t.setStepSize(256); t.setBlockSize(2048); - t.setStartTime(RealTime::fromSeconds(10.785)); - t.setDuration(RealTime::fromSeconds(1.2)); + RealTime start = RealTime::frame2RealTime + (sel.getStartFrame(), m_fileModel->getSampleRate()); + + RealTime end = RealTime::frame2RealTime + (sel.getEndFrame(), m_fileModel->getSampleRate()); + + RealTime duration; + + if (sel.getEndFrame() > sel.getStartFrame()) { + duration = end - start; + } + + t.setStartTime(start); + t.setDuration(duration); transforms.push_back(t);