# HG changeset patch # User Chris Cannam # Date 1389364625 0 # Node ID e7f2da26c9aca1dba8f01122663d10c32bfba6e3 # Parent 995478fbbe177fea9861c1ca79978ef19e78fbb2 Show warning if pitch-tracker plugin is not found (fixes #830) diff -r 995478fbbe17 -r e7f2da26c9ac src/Analyser.cpp --- a/src/Analyser.cpp Fri Jan 10 14:18:37 2014 +0000 +++ b/src/Analyser.cpp Fri Jan 10 14:37:05 2014 +0000 @@ -58,7 +58,7 @@ { } -void +QString Analyser::newFileLoaded(Document *doc, WaveFileModel *model, PaneStack *paneStack, Pane *pane) { @@ -67,6 +67,7 @@ m_paneStack = paneStack; m_pane = pane; + QString plugname = "pYIN"; QString base = "vamp:pyin:pyin:"; QString f0out = "smoothedpitchtrack"; QString noteout = "notes"; @@ -108,9 +109,12 @@ } */ - if (!tf->haveTransform(base + f0out) || !tf->haveTransform(base + noteout)) { - std::cerr << "ERROR: Analyser::newFileLoaded: Transform unknown" << std::endl; - return; + QString notFound = tr("Transform \"%1\" not found. Unable to analyse audio file.

Is the %2 Vamp plugin correctly installed?"); + if (!tf->haveTransform(base + f0out)) { + return notFound.arg(base + f0out).arg(plugname); + } + if (!tf->haveTransform(base + noteout)) { + return notFound.arg(base + noteout).arg(plugname); } Transform t = tf->getDefaultTransformFor @@ -164,6 +168,8 @@ loadState(Notes); emit layersChanged(); + + return ""; } void diff -r 995478fbbe17 -r e7f2da26c9ac src/Analyser.h --- a/src/Analyser.h Fri Jan 10 14:18:37 2014 +0000 +++ b/src/Analyser.h Fri Jan 10 14:37:05 2014 +0000 @@ -36,8 +36,9 @@ Analyser(); virtual ~Analyser(); - void newFileLoaded(Document *newDocument, WaveFileModel *model, - PaneStack *paneStack, Pane *pane); + // Process new main model, add derived layers; return "" on success or error string on failure + QString newFileLoaded(Document *newDocument, WaveFileModel *model, + PaneStack *paneStack, Pane *pane); void setIntelligentActions(bool); diff -r 995478fbbe17 -r e7f2da26c9ac src/MainWindow.cpp --- a/src/MainWindow.cpp Fri Jan 10 14:18:37 2014 +0000 +++ b/src/MainWindow.cpp Fri Jan 10 14:37:05 2014 +0000 @@ -1609,8 +1609,15 @@ ViewManager::SelectMode); } if (pane) { - m_analyser->newFileLoaded + QString error = m_analyser->newFileLoaded (m_document, getMainModel(), m_paneStack, pane); + if (error != "") { + QMessageBox::warning + (this, + tr("Failed to analyse audio"), + tr("Analysis failed

%1

").arg(error), + QMessageBox::Ok); + } } } }