diff options
author | David Robillard <d@drobilla.net> | 2010-02-22 21:24:34 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2010-02-22 21:24:34 +0000 |
commit | adacb33bf4eadcd49a744177bf3f059e7b2f2f52 (patch) | |
tree | 922620c99fdc348529002d1a000ec0e8f94f3041 /src/mdaLoudness.cpp | |
parent | 4514036c46168f4bbc693649989d53bdffe6137b (diff) | |
download | mda.lv2-adacb33bf4eadcd49a744177bf3f059e7b2f2f52.tar.gz mda.lv2-adacb33bf4eadcd49a744177bf3f059e7b2f2f52.tar.bz2 mda.lv2-adacb33bf4eadcd49a744177bf3f059e7b2f2f52.zip |
Merge with upstream r2.
git-svn-id: http://svn.drobilla.net/lad/trunk/mda-lv2@2471 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/mdaLoudness.cpp')
-rw-r--r-- | src/mdaLoudness.cpp | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/mdaLoudness.cpp b/src/mdaLoudness.cpp index 1b490fe..4ec1eba 100644 --- a/src/mdaLoudness.cpp +++ b/src/mdaLoudness.cpp @@ -12,7 +12,7 @@ #include <stdio.h> #include <float.h> #include <math.h> -
+ AudioEffect *createEffectInstance(audioMasterCallback audioMaster) { return new mdaLoudness(audioMaster); @@ -54,17 +54,18 @@ mdaLoudness::mdaLoudness(audioMasterCallback audioMaster): AudioEffectX(audioMas DECLARE_LVZ_DEPRECATED(canMono) (); canProcessReplacing(); - programs = new mdaLoudnessProgram[numPrograms]; + programs = new mdaLoudnessProgram[NPROGS]; setProgram(0); - suspend();
+ suspend(); } void mdaLoudness::resume() ///update internal parameters... { + float * param = programs[curProgram].param; float f, tmp; - long i; + LvzInt32 i; tmp = param[0] + param[0] - 1.0f; igain = 60.0f * tmp * tmp; @@ -75,7 +76,7 @@ void mdaLoudness::resume() ///update internal parameters... if(tmp<0.0f) ogain *= -1.0f; f = 0.1f * igain + 6.0f; //coefficient index + fractional part - i = (long)f; + i = (LvzInt32)f; f -= (float)i; tmp = loudness[i][0]; A0 = tmp + f * (loudness[i + 1][0] - tmp); @@ -112,29 +113,33 @@ void mdaLoudness::suspend() ///clear any buffers... mdaLoudness::~mdaLoudness() ///destroy any buffers... { - if(programs) delete[] programs;
+ if(programs) delete[] programs; } void mdaLoudness::setProgram(LvzInt32 program) { - int i=0; - - mdaLoudnessProgram *p = &programs[program]; - curProgram = program;
- setProgramName(p->name);
- for(i=0; i<NPARAMS; i++) param[i] = p->param[i]; + curProgram = program; resume(); } void mdaLoudness::setParameter(LvzInt32 index, float value) { - programs[curProgram].param[index] = param[index] = value; //bug was here! + programs[curProgram].param[index] = value; //bug was here! resume(); } -float mdaLoudness::getParameter(LvzInt32 index) { return param[index]; } -void mdaLoudness::setProgramName(char *name) { strcpy(programName, name); } -void mdaLoudness::getProgramName(char *name) { strcpy(name, programName); } +float mdaLoudness::getParameter(LvzInt32 index) { return programs[curProgram].param[index]; } +void mdaLoudness::setProgramName(char *name) { strcpy(programs[curProgram].name, name); } +void mdaLoudness::getProgramName(char *name) { strcpy(name, programs[curProgram].name); } +bool mdaLoudness::getProgramNameIndexed (LvzInt32 category, LvzInt32 index, char* name) +{ + if ((unsigned int)index < NPROGS) + { + strcpy(name, programs[index].name); + return true; + } + return false; +} void mdaLoudness::getParameterName(LvzInt32 index, char *label) @@ -155,7 +160,7 @@ void mdaLoudness::getParameterDisplay(LvzInt32 index, char *text) switch(index) { case 0: sprintf(string, "%.1f", igain); break; - case 2: if(param[index]>0.5f) strcpy (string, "ON"); + case 2: if(programs[curProgram].param[index]>0.5f) strcpy (string, "ON"); else strcpy (string, "OFF"); break; default: sprintf(string, "%.1f", ogain); break; } |