Steve the Fiddle's patch to save prefs in BassTreble effect.

This commit is contained in:
martynshaw99 2013-01-31 00:36:37 +00:00
parent 6579d2feea
commit 7bae6f949e
2 changed files with 24 additions and 9 deletions

View File

@ -24,6 +24,7 @@ derived from BassBoost by Nasca Octavian Paul
#include "BassTreble.h" #include "BassTreble.h"
#include "../WaveTrack.h" #include "../WaveTrack.h"
#include "../Prefs.h"
#include <wx/button.h> #include <wx/button.h>
#include <wx/msgdlg.h> #include <wx/msgdlg.h>
@ -40,9 +41,9 @@ derived from BassBoost by Nasca Octavian Paul
EffectBassTreble::EffectBassTreble() EffectBassTreble::EffectBassTreble()
{ {
dB_bass = 0; gPrefs->Read(wxT("/Effects/BassTreble/Bass"), &dB_bass, 0.0);
dB_treble = 0; gPrefs->Read(wxT("/Effects/BassTreble/Treble"), &dB_treble, 0.0);
dB_gain = 0; gPrefs->Read(wxT("/Effects/BassTreble/Gain"), &dB_gain, 0.0);
} }
wxString EffectBassTreble::GetEffectDescription() { wxString EffectBassTreble::GetEffectDescription() {
@ -112,14 +113,19 @@ bool EffectBassTreble::PromptUser()
dB_treble = dlog.treble; dB_treble = dlog.treble;
dB_gain = dlog.gain; dB_gain = dlog.gain;
gPrefs->Write(wxT("/Effects/BassTreble/Bass"), dB_bass);
gPrefs->Write(wxT("/Effects/BassTreble/Treble"), dB_treble);
gPrefs->Write(wxT("/Effects/BassTreble/Gain"), dB_gain);
gPrefs->Flush();
return true; return true;
} }
bool EffectBassTreble::TransferParameters( Shuttle & shuttle ) bool EffectBassTreble::TransferParameters( Shuttle & shuttle )
{ {
shuttle.TransferFloat(wxT("Bass"),dB_bass,0.0); shuttle.TransferDouble(wxT("Bass"),dB_bass,0.0);
shuttle.TransferFloat(wxT("Treble"),dB_treble,0.0); shuttle.TransferDouble(wxT("Treble"),dB_treble,0.0);
shuttle.TransferFloat(wxT("Gain"),dB_gain,0.0); shuttle.TransferDouble(wxT("Gain"),dB_gain,0.0);
return true; return true;
} }
@ -310,8 +316,18 @@ void BassTrebleDialog::OnGainSlider(wxCommandEvent & WXUNUSED(event))
void BassTrebleDialog::OnPreview(wxCommandEvent & WXUNUSED(event)) void BassTrebleDialog::OnPreview(wxCommandEvent & WXUNUSED(event))
{ {
TransferDataFromWindow(); TransferDataFromWindow();
// Save & restore parameters around Preview, because we didn't do OK.
double oldBass = mEffect->dB_bass;
double oldTreble = mEffect->dB_treble;
double oldGain = mEffect->dB_gain;
mEffect->dB_bass = bass; mEffect->dB_bass = bass;
mEffect->dB_treble = treble; mEffect->dB_treble = treble;
mEffect->dB_gain = gain; mEffect->dB_gain = gain;
mEffect->Preview(); mEffect->Preview();
mEffect->dB_bass = oldBass;
mEffect->dB_treble = oldTreble;
mEffect->dB_gain = oldGain;
} }

View File

@ -55,11 +55,8 @@ class EffectBassTreble:public EffectSimpleMono {
protected: protected:
virtual bool NewTrackSimpleMono(); virtual bool NewTrackSimpleMono();
virtual bool ProcessSimpleMono(float *buffer, sampleCount len); virtual bool ProcessSimpleMono(float *buffer, sampleCount len);
float dB_bass, dB_treble, dB_gain;
private: private:
/* filter co-efficent values */ /* filter co-efficent values */
// Low shelf // Low shelf
@ -71,6 +68,8 @@ class EffectBassTreble:public EffectSimpleMono {
wTreble, swTreble, cwTreble, aTreble, bTreble, wTreble, swTreble, cwTreble, aTreble, bTreble,
b0Treble, b1Treble, b2Treble, a0Treble, a1Treble, a2Treble; b0Treble, b1Treble, b2Treble, a0Treble, a1Treble, a2Treble;
double dB_bass, dB_treble, dB_gain;
friend class BassTrebleDialog; friend class BassTrebleDialog;
}; };