Mercurial > hg > tony
changeset 140:e7f2da26c9ac
Show warning if pitch-tracker plugin is not found (fixes #830)
author | Chris Cannam |
---|---|
date | Fri, 10 Jan 2014 14:37:05 +0000 |
parents | 995478fbbe17 |
children | 585fe1be1ac0 |
files | src/Analyser.cpp src/Analyser.h src/MainWindow.cpp |
diffstat | 3 files changed, 21 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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.<br><br>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
--- 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);
--- 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("<b>Analysis failed</b><p>%1</p>").arg(error), + QMessageBox::Ok); + } } } }