From a13d13f2dac9dfbe35a18e4e128ecd327c17ada0 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Mon, 6 Aug 2007 13:28:18 +0000 Subject: [PATCH] fixed framesLeft()-method to return correct values if plugin has desiredReleaseFrames() > 0 git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@516 0778d3d1-df1d-0410-868b-ea421aaaa00d --- src/core/note_play_handle.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/core/note_play_handle.cpp b/src/core/note_play_handle.cpp index d8e0ef377..6e1f3f870 100644 --- a/src/core/note_play_handle.cpp +++ b/src/core/note_play_handle.cpp @@ -262,19 +262,19 @@ void notePlayHandle::play( bool _try_parallelizing ) f_cnt_t notePlayHandle::framesLeft( void ) const { - const instrument * i = ( m_instrumentTrack != NULL ) ? +/* const instrument * i = ( m_instrumentTrack != NULL ) ? m_instrumentTrack->getInstrument() : NULL; - f_cnt_t rftd = ( i != NULL && i->isMonophonic() ) ? - 0 : m_releaseFramesToDo; - if( m_released && rftd == 0 ) + f_cnt_t rftd = ( i != NULL && i->isMonophonic() ) ? + 0 : actualReleaseFramesToDo();*/ + if( m_released && actualReleaseFramesToDo() == 0 ) { return( m_framesBeforeRelease ); } - else if( m_released && m_releaseFramesToDo >= m_releaseFramesDone ) + else if( m_released && actualReleaseFramesToDo() >= m_releaseFramesDone ) { - return( m_releaseFramesToDo - m_releaseFramesDone ); + return( m_framesBeforeRelease + actualReleaseFramesToDo() - m_releaseFramesDone ); } - return( m_frames+rftd-m_totalFramesPlayed ); + return( m_frames+actualReleaseFramesToDo()-m_totalFramesPlayed ); }