fixed more segfaults
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@496 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -50,12 +50,12 @@
|
||||
#endif
|
||||
|
||||
#include "journalling_object.h"
|
||||
#include "rack_view.h"
|
||||
|
||||
|
||||
class audioPort;
|
||||
class groupBox;
|
||||
class instrumentTrack;
|
||||
class rackView;
|
||||
class sampleTrack;
|
||||
class track;
|
||||
|
||||
@@ -80,23 +80,32 @@ public:
|
||||
|
||||
void setupWidget( void );
|
||||
|
||||
inline void deleteAllEffects( void )
|
||||
{
|
||||
m_rack->deleteAllPlugins();
|
||||
}
|
||||
|
||||
|
||||
signals:
|
||||
void closed( void );
|
||||
|
||||
|
||||
private slots:
|
||||
void addEffect( void );
|
||||
void setBypass( bool _state );
|
||||
|
||||
|
||||
protected:
|
||||
virtual void closeEvent( QCloseEvent * _ce );
|
||||
|
||||
|
||||
private:
|
||||
track * m_track;
|
||||
audioPort * m_port;
|
||||
|
||||
|
||||
groupBox * m_effectsGroupBox;
|
||||
QPushButton * m_addButton;
|
||||
|
||||
|
||||
rackView * m_rack;
|
||||
|
||||
} ;
|
||||
|
||||
@@ -137,6 +137,7 @@ public:
|
||||
|
||||
inline void removeAudioPort( audioPort * _port )
|
||||
{
|
||||
lock();
|
||||
vvector<audioPort *>::iterator it = qFind( m_audioPorts.begin(),
|
||||
m_audioPorts.end(),
|
||||
_port );
|
||||
@@ -144,6 +145,7 @@ public:
|
||||
{
|
||||
m_audioPorts.erase( it );
|
||||
}
|
||||
unlock();
|
||||
}
|
||||
|
||||
|
||||
@@ -164,7 +166,9 @@ public:
|
||||
{
|
||||
if( criticalXRuns() == FALSE )
|
||||
{
|
||||
lockPlayHandles();
|
||||
m_playHandles.push_back( _ph );
|
||||
unlockPlayHandles();
|
||||
return( TRUE );
|
||||
}
|
||||
delete _ph;
|
||||
@@ -173,7 +177,9 @@ public:
|
||||
|
||||
inline void removePlayHandle( const playHandle * _ph )
|
||||
{
|
||||
lockPlayHandlesToRemove();
|
||||
m_playHandlesToRemove.push_back( _ph );
|
||||
unlockPlayHandlesToRemove();
|
||||
}
|
||||
|
||||
inline playHandleVector & playHandles( void )
|
||||
@@ -246,14 +252,33 @@ public:
|
||||
// methods needed by other threads to alter knob values, waveforms, etc
|
||||
void lock( void )
|
||||
{
|
||||
m_mixMutex.lock();
|
||||
m_globalMutex.lock();
|
||||
}
|
||||
|
||||
void unlock( void )
|
||||
{
|
||||
m_mixMutex.unlock();
|
||||
m_globalMutex.unlock();
|
||||
}
|
||||
|
||||
void lockPlayHandles( void )
|
||||
{
|
||||
m_playHandlesMutex.lock();
|
||||
}
|
||||
|
||||
void unlockPlayHandles( void )
|
||||
{
|
||||
m_playHandlesMutex.unlock();
|
||||
}
|
||||
|
||||
void lockPlayHandlesToRemove( void )
|
||||
{
|
||||
m_playHandlesToRemoveMutex.lock();
|
||||
}
|
||||
|
||||
void unlockPlayHandlesToRemove( void )
|
||||
{
|
||||
m_playHandlesToRemoveMutex.unlock();
|
||||
}
|
||||
|
||||
// audio-buffer-mgm
|
||||
void FASTCALL bufferToPort( const sampleFrame * _buf,
|
||||
@@ -365,7 +390,9 @@ private:
|
||||
QString m_midiClientName;
|
||||
|
||||
|
||||
QMutex m_mixMutex;
|
||||
QMutex m_globalMutex;
|
||||
QMutex m_playHandlesMutex;
|
||||
QMutex m_playHandlesToRemoveMutex;
|
||||
|
||||
|
||||
fifo * m_fifo;
|
||||
|
||||
@@ -72,14 +72,19 @@ public:
|
||||
return( "rack" );
|
||||
}
|
||||
|
||||
void deleteAllPlugins( void );
|
||||
|
||||
|
||||
public slots:
|
||||
void moveUp( rackPlugin * _plugin );
|
||||
void moveDown( rackPlugin * _plugin );
|
||||
void deletePlugin( rackPlugin * _plugin );
|
||||
|
||||
|
||||
|
||||
private:
|
||||
void redraw();
|
||||
|
||||
|
||||
|
||||
vvector<rackPlugin *> m_rackInserts;
|
||||
|
||||
QVBoxLayout * m_mainLayout;
|
||||
|
||||
Reference in New Issue
Block a user