Restart flanger LFO on Song::playbackStateChanged signal (#4363)

Closes https://github.com/LMMS/lmms/issues/3689
This commit is contained in:
Joshua Wade
2018-05-18 13:34:46 -04:00
committed by GitHub
parent 0caaebaecb
commit 68a621cc16
5 changed files with 27 additions and 1 deletions

View File

@@ -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();
}

View File

@@ -57,6 +57,7 @@ public:
private slots:
void changedSampleRate();
void changedPlaybackState();
private:
FlangerEffect* m_effect;

View File

@@ -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"
{

View File

@@ -44,6 +44,7 @@ public:
return &m_flangerControls;
}
void changeSampleRate();
void restartLFO();
private:
FlangerControls m_flangerControls;

View File

@@ -53,6 +53,14 @@ public:
inline void restart()
{
m_phase = 0;
}
inline void setSampleRate ( int samplerate )
{
m_samplerate = samplerate;