mirror of
https://github.com/LMMS/lmms.git
synced 2026-01-30 17:23:26 -05:00
made song-length being cached and only updated upon changed length or position of TCOs
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@880 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
18
ChangeLog
18
ChangeLog
@@ -1,5 +1,23 @@
|
||||
2008-04-03 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* include/song.h:
|
||||
* src/core/song.cpp:
|
||||
* src/gui/export_project_dialog.cpp:
|
||||
* src/gui/song_editor.cpp:
|
||||
made song-length being cached and only updated upon changed length or
|
||||
position of TCOs
|
||||
|
||||
* src/core/track.cpp:
|
||||
optimized track::length()-method
|
||||
|
||||
* src/core/mixer.cpp:
|
||||
great improvements on multithreading - one global job-queue protected by
|
||||
a simple mutex where threads pull their jobs from
|
||||
|
||||
* src/core/engine.cpp:
|
||||
delete LADSPA-manager after mixer and FX-mixer as LADSPA-effects in
|
||||
FX-mixer access LADSPA-manger at destruction
|
||||
|
||||
* plugins/ladspa_effect/ladspa_effect.cpp:
|
||||
* plugins/ladspa_effect/ladspa_effect.h:
|
||||
* plugins/bass_booster/bass_booster.cpp:
|
||||
|
||||
@@ -112,8 +112,7 @@ public:
|
||||
inline bool exportDone( void ) const
|
||||
{
|
||||
return( m_exporting == TRUE &&
|
||||
m_playPos[Mode_PlaySong].getTact() >=
|
||||
lengthInTacts() + 1 );
|
||||
m_playPos[Mode_PlaySong].getTact() >= length() + 1 );
|
||||
}
|
||||
|
||||
inline PlayModes playMode( void ) const
|
||||
@@ -126,7 +125,11 @@ public:
|
||||
return( m_playPos[_pm] );
|
||||
}
|
||||
|
||||
tact lengthInTacts( void ) const;
|
||||
void updateLength( void );
|
||||
tact length( void ) const
|
||||
{
|
||||
return( m_length );
|
||||
}
|
||||
|
||||
|
||||
bpm_t getTempo( void );
|
||||
@@ -211,7 +214,6 @@ private:
|
||||
return( m_playPos[m_playMode].getTact() );
|
||||
}
|
||||
|
||||
midiTime length( void ) const;
|
||||
inline tact64th currentTact64th( void ) const
|
||||
{
|
||||
return( m_playPos[m_playMode].getTact64th() );
|
||||
@@ -240,6 +242,7 @@ private:
|
||||
|
||||
PlayModes m_playMode;
|
||||
playPos m_playPos[Mode_Count];
|
||||
tact m_length;
|
||||
|
||||
track * m_trackToPlay;
|
||||
pattern * m_patternToPlay;
|
||||
|
||||
@@ -538,15 +538,18 @@ void song::playPattern( pattern * _patternToPlay, bool _loop )
|
||||
|
||||
|
||||
|
||||
tact song::lengthInTacts( void ) const
|
||||
void song::updateLength( void )
|
||||
{
|
||||
tact len = 0;
|
||||
m_length = 0;
|
||||
const QList<track *> & ctl = tracks();
|
||||
for( int i = 0; i < ctl.size(); ++i )
|
||||
{
|
||||
len = tMax( ctl[i]->length(), len );
|
||||
const tact cur = ctl[i]->length();
|
||||
if( cur > m_length )
|
||||
{
|
||||
m_length = cur;
|
||||
}
|
||||
}
|
||||
return( len );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -370,8 +370,8 @@ void exportProjectDialog::exportBtnClicked( void )
|
||||
&& !m_deleteFile )
|
||||
{
|
||||
dev->processNextBuffer();
|
||||
int pval = pp * 100 /
|
||||
( ( engine::getSong()->lengthInTacts() + 1 ) * 64 );
|
||||
const int pval = pp * 100 /
|
||||
( ( engine::getSong()->length() + 1 ) * 64 );
|
||||
m_exportProgressBar->setValue( pval );
|
||||
if( engine::getMainWindow() )
|
||||
{
|
||||
|
||||
@@ -378,7 +378,7 @@ songEditor::~songEditor()
|
||||
|
||||
void songEditor::paintEvent( QPaintEvent * _pe )
|
||||
{
|
||||
m_leftRightScroll->setMaximum( m_s->lengthInTacts() );
|
||||
m_leftRightScroll->setMaximum( m_s->length() );
|
||||
trackContainerView::paintEvent( _pe );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user