Restart flanger LFO on Song::playbackStateChanged signal (#4363)
Closes https://github.com/LMMS/lmms/issues/3689
This commit is contained in:
@@ -43,6 +43,7 @@ FlangerControls::FlangerControls( FlangerEffect *effect ) :
|
||||
|
||||
{
|
||||
connect( Engine::mixer(), SIGNAL( sampleRateChanged() ), this, SLOT( changedSampleRate() ) );
|
||||
connect( Engine::getSong(), SIGNAL( playbackStateChanged() ), this, SLOT( changedPlaybackState() ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -81,3 +82,9 @@ void FlangerControls::changedSampleRate()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void FlangerControls::changedPlaybackState()
|
||||
{
|
||||
m_effect->restartLFO();
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@ public:
|
||||
|
||||
private slots:
|
||||
void changedSampleRate();
|
||||
void changedPlaybackState();
|
||||
|
||||
private:
|
||||
FlangerEffect* m_effect;
|
||||
|
||||
@@ -68,7 +68,7 @@ FlangerEffect::~FlangerEffect()
|
||||
{
|
||||
delete m_rDelay;
|
||||
}
|
||||
if(m_lfo )
|
||||
if( m_lfo )
|
||||
{
|
||||
delete m_lfo;
|
||||
}
|
||||
@@ -139,6 +139,15 @@ void FlangerEffect::changeSampleRate()
|
||||
|
||||
|
||||
|
||||
|
||||
void FlangerEffect::restartLFO()
|
||||
{
|
||||
m_lfo->restart();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ public:
|
||||
return &m_flangerControls;
|
||||
}
|
||||
void changeSampleRate();
|
||||
void restartLFO();
|
||||
|
||||
private:
|
||||
FlangerControls m_flangerControls;
|
||||
|
||||
@@ -53,6 +53,14 @@ public:
|
||||
|
||||
|
||||
|
||||
inline void restart()
|
||||
{
|
||||
m_phase = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
inline void setSampleRate ( int samplerate )
|
||||
{
|
||||
m_samplerate = samplerate;
|
||||
|
||||
Reference in New Issue
Block a user