From 4ff091fd6fdf9f7b5a23e7d40550869fd7d39f61 Mon Sep 17 00:00:00 2001 From: Hyunjin Song Date: Tue, 30 May 2017 01:40:05 +0900 Subject: [PATCH] Fix loop condition in project rendering (#3105, #2030) (#3576) * Change loop condition in ProjectRenderer::run() * Remove Song::isExportDone() --- src/core/ProjectRenderer.cpp | 5 +++-- src/core/Song.cpp | 23 ----------------------- 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/src/core/ProjectRenderer.cpp b/src/core/ProjectRenderer.cpp index 5dee4ed16..07dccc6ce 100644 --- a/src/core/ProjectRenderer.cpp +++ b/src/core/ProjectRenderer.cpp @@ -172,10 +172,11 @@ void ProjectRenderer::run() m_progress = 0; std::pair exportEndpoints = Engine::getSong()->getExportEndpoints(); tick_t startTick = exportEndpoints.first.getTicks(); - tick_t lengthTicks = exportEndpoints.second.getTicks() - startTick; + tick_t endTick = exportEndpoints.second.getTicks(); + tick_t lengthTicks = endTick - startTick; // Continually track and emit progress percentage to listeners - while( Engine::getSong()->isExportDone() == false && + while( exportPos.getTicks() < endTick && Engine::getSong()->isExporting() == true && !m_abort ) { diff --git a/src/core/Song.cpp b/src/core/Song.cpp index 1af2dc2f3..babc391f3 100644 --- a/src/core/Song.cpp +++ b/src/core/Song.cpp @@ -464,29 +464,6 @@ void Song::processAutomations(const TrackList &tracklist, MidiTime timeStart, fp } } -bool Song::isExportDone() const -{ - if ( m_renderBetweenMarkers ) - { - return m_exporting == true && - m_playPos[Mode_PlaySong].getTicks() >= - m_playPos[Mode_PlaySong].m_timeLine->loopEnd().getTicks(); - } - - if( m_exportLoop ) - { - return m_exporting == true && - m_playPos[Mode_PlaySong].getTicks() >= - length() * ticksPerTact(); - } - else - { - return m_exporting == true && - m_playPos[Mode_PlaySong].getTicks() >= - ( length() + 1 ) * ticksPerTact(); - } -} - std::pair Song::getExportEndpoints() const { if ( m_renderBetweenMarkers )