comparison src/Analyser.cpp @ 184:ea15fa75ae6f

Ctrl+Return now switches the alternate pitch candidates on and off; Ctrl+Up/Down selects among them
author Chris Cannam
date Sun, 23 Feb 2014 17:59:23 +0000
parents bdee9e6f135b
children dedd09297a3e
comparison
equal deleted inserted replaced
183:bdee9e6f135b 184:ea15fa75ae6f
73 m_pane = pane; 73 m_pane = pane;
74 74
75 m_reAnalysingSelection = Selection(); 75 m_reAnalysingSelection = Selection();
76 m_reAnalysisCandidates.clear(); 76 m_reAnalysisCandidates.clear();
77 m_currentCandidate = -1; 77 m_currentCandidate = -1;
78 m_candidatesVisible = false;
78 79
79 // Note that we need at least one main-model layer (time ruler, 80 // Note that we need at least one main-model layer (time ruler,
80 // waveform or what have you). It could be hidden if we don't want 81 // waveform or what have you). It could be hidden if we don't want
81 // to see it but it must exist. 82 // to see it but it must exist.
82 83
294 m_document->createDerivedLayersAsync(transforms, m_fileModel, this); 295 m_document->createDerivedLayersAsync(transforms, m_fileModel, this);
295 296
296 return ""; 297 return "";
297 } 298 }
298 299
300 bool
301 Analyser::arePitchCandidatesShown() const
302 {
303 return m_candidatesVisible;
304 }
305
306 void
307 Analyser::showPitchCandidates(bool shown)
308 {
309 if (m_candidatesVisible == shown) return;
310
311 foreach (Layer *layer, m_reAnalysisCandidates) {
312 if (shown) {
313 m_document->addLayerToView(m_pane, layer);
314 } else {
315 m_document->removeLayerFromView(m_pane, layer);
316 }
317 }
318
319 m_candidatesVisible = shown;
320 }
321
299 void 322 void
300 Analyser::layersCreated(vector<Layer *> primary, 323 Analyser::layersCreated(vector<Layer *> primary,
301 vector<Layer *> additional) 324 vector<Layer *> additional)
302 { 325 {
303 //!!! how do we know these came from the right selection? user 326 //!!! how do we know these came from the right selection? user
318 if (params) { 341 if (params) {
319 params->setPlayAudible(false); 342 params->setPlayAudible(false);
320 } 343 }
321 t->setBaseColour 344 t->setBaseColour
322 (ColourDatabase::getInstance()->getColourIndex(tr("Bright Orange"))); 345 (ColourDatabase::getInstance()->getColourIndex(tr("Bright Orange")));
323 m_document->addLayerToView(m_pane, t); 346 if (m_candidatesVisible) {
347 m_document->addLayerToView(m_pane, t);
348 }
324 m_reAnalysisCandidates.push_back(t); 349 m_reAnalysisCandidates.push_back(t);
325 } 350 }
326 } 351 }
327 } 352 }
328 353
391 layer->paste(m_pane, shifted, 0, false); 416 layer->paste(m_pane, shifted, 0, false);
392 } 417 }
393 } 418 }
394 419
395 void 420 void
396 Analyser::clearPitches(Selection sel) 421 Analyser::deletePitches(Selection sel)
397 { 422 {
398 Layer *pitchTrack = m_layers[PitchTrack]; 423 Layer *pitchTrack = m_layers[PitchTrack];
399 if (!pitchTrack) return; 424 if (!pitchTrack) return;
400 425
401 pitchTrack->deleteSelection(sel); 426 pitchTrack->deleteSelection(sel);