# HG changeset patch # User Chris Cannam # Date 1427801297 -3600 # Node ID 6e8e85edfd48c150a998cf7f29b5cf7b5668b6ce # Parent 29869c47657266915314687c154e43feff8e1921 Extend models to have nominal end time matching that of the audio, so that the export-fill option continues to fill to end of audio time diff -r 29869c476572 -r 6e8e85edfd48 .hgsubstate --- a/.hgsubstate Tue Mar 31 12:12:31 2015 +0100 +++ b/.hgsubstate Tue Mar 31 12:28:17 2015 +0100 @@ -3,5 +3,5 @@ 1629209f5bf21fc926bb6abd5ab786e78c5d7677 pyin 55ece8862b6d3a54aad271a53f9c1615e5d3bcf8 sv-dependency-builds ba789baf642bd57b845d77872bcfce33ae26c96e svapp -0fd3661bcfffc7002c399bd9b7b6c8579f42be3a svcore +9fc8823a73e99aa15796140579f0ab94611f4926 svcore 2564d0865febbedaef98be605aa1db241c34e794 svgui diff -r 29869c476572 -r 6e8e85edfd48 src/Analyser.cpp --- a/src/Analyser.cpp Tue Mar 31 12:12:31 2015 +0100 +++ b/src/Analyser.cpp Tue Mar 31 12:28:17 2015 +0100 @@ -193,7 +193,32 @@ Analyser::layerCompletionChanged() { if (getInitialAnalysisCompletion() == 100) { + emit initialAnalysisCompleted(); + + if (m_layers[Audio]) { + + // Extend pitch-track and note layers so as to nominally + // end at the same time as the audio. This affects any + // time-filling done on export etc. + + sv_frame_t endFrame = m_layers[Audio]->getModel()->getEndFrame(); + + if (m_layers[PitchTrack]) { + SparseTimeValueModel *model = qobject_cast + (m_layers[PitchTrack]->getModel()); + if (model) { + model->extendEndFrame(endFrame); + } + } + if (m_layers[Notes]) { + NoteModel *model = qobject_cast + (m_layers[Notes]->getModel()); + if (model) { + model->extendEndFrame(endFrame); + } + } + } } }