* LADSPA-effect-plugin: improved handling of effects which only work at limited samplerates

* audio-port: small optimizations
* mixer: removed obsolete idle-property of worker-threads
* FX-mixer: protect individual buffers of FX-channels from being processed by more than one thread



git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@979 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2008-05-17 15:50:27 +00:00
parent fc63352e55
commit fc1b985fe8
7 changed files with 257 additions and 202 deletions

View File

@@ -43,6 +43,7 @@ public:
{
return( m_firstBuffer );
}
inline sampleFrame * secondBuffer( void )
{
return( m_secondBuffer );
@@ -76,7 +77,8 @@ public:
{
return( m_extOutputEnabled );
}
void FASTCALL setExtOutputEnabled( bool _enabled );
void setExtOutputEnabled( bool _enabled );
// next effect-channel after this audio-port
@@ -105,21 +107,20 @@ public:
void setName( const QString & _new_name );
bool processEffects( void );
enum bufferUsages
{
NoUsage,
FirstBuffer,
BothBuffers
} m_bufferUsage;
inline bool processEffects( void )
{
QMutexLocker m( &m_firstBufferLock );
return( m_effects.processAudioBuffer( m_firstBuffer,
m_frames ) );
}
} ;
private:
volatile bufferUsages m_bufferUsage;
sampleFrame * m_firstBuffer;
sampleFrame * m_secondBuffer;
QMutex m_firstBufferLock;
@@ -131,7 +132,10 @@ private:
QString m_name;
effectChain m_effects;
fpp_t m_frames;
friend class mixer;
friend class mixerWorkerThread;
} ;