From adacb33bf4eadcd49a744177bf3f059e7b2f2f52 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 22 Feb 2010 21:24:34 +0000 Subject: Merge with upstream r2. git-svn-id: http://svn.drobilla.net/lad/trunk/mda-lv2@2471 a436a847-0d15-0410-975c-d299462d15a1 --- src/mdaThruZero.cpp | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'src/mdaThruZero.cpp') diff --git a/src/mdaThruZero.cpp b/src/mdaThruZero.cpp index 23b8afb..7bcd67f 100644 --- a/src/mdaThruZero.cpp +++ b/src/mdaThruZero.cpp @@ -35,7 +35,7 @@ mdaThruZero::mdaThruZero(audioMasterCallback audioMaster): AudioEffectX(audioMas DECLARE_LVZ_DEPRECATED(canMono) (); canProcessReplacing(); - programs = new mdaThruZeroProgram[numPrograms]; ///////////////TODO: programs + programs = new mdaThruZeroProgram[NPROGS]; ///////////////TODO: programs setProgram(0); ///differences from default program... @@ -72,6 +72,7 @@ bool mdaThruZero::getEffectName(char* name) { strcpy(name, "ThruZero"); retu void mdaThruZero::resume() ///update internal parameters... { + float * param = programs[curProgram].param; rat = (float)(pow(10.0f, 3.f * param[0] - 2.f) * 2.f / getSampleRate()); dep = 2000.0f * param[1] * param[1]; dem = dep - dep * param[4]; @@ -101,12 +102,7 @@ mdaThruZero::~mdaThruZero() ///destroy any buffers... void mdaThruZero::setProgram(LvzInt32 program) { - int i=0; - - mdaThruZeroProgram *p = &programs[program]; curProgram = program; - setProgramName(p->name); - for(i=0; iparam[i]; resume(); } @@ -114,14 +110,23 @@ void mdaThruZero::setProgram(LvzInt32 program) void mdaThruZero::setParameter(LvzInt32 index, float value) { if(index==3) phi=0.0f; //reset cycle - param[index] = value; resume(); + programs[curProgram].param[index] = value; + resume(); } -float mdaThruZero::getParameter(LvzInt32 index) { return param[index]; } -void mdaThruZero::setProgramName(char *name) { strcpy(programName, name); } -void mdaThruZero::getProgramName(char *name) { strcpy(name, programName); } - +float mdaThruZero::getParameter(LvzInt32 index) { return programs[curProgram].param[index]; } +void mdaThruZero::setProgramName(char *name) { strcpy(programs[curProgram].name, name); } +void mdaThruZero::getProgramName(char *name) { strcpy(name, programs[curProgram].name); } +bool mdaThruZero::getProgramNameIndexed (LvzInt32 category, LvzInt32 index, char* name) +{ + if ((unsigned int)index < NPROGS) + { + strcpy(name, programs[index].name); + return true; + } + return false; +} void mdaThruZero::getParameterName(LvzInt32 index, char *label) { @@ -139,6 +144,7 @@ void mdaThruZero::getParameterName(LvzInt32 index, char *label) void mdaThruZero::getParameterDisplay(LvzInt32 index, char *text) { char string[16]; + float * param = programs[curProgram].param; switch(index) { @@ -200,7 +206,7 @@ void mdaThruZero::processReplacing(float **inputs, float **outputs, LvzInt32 sam float *out2 = outputs[1]; float a, b, f=fb, f1=fb1, f2=fb2, ph=phi; float ra=rat, de=dep, we=wet, dr=dry, ds=deps, dm=dem; - long tmp, tmpi, bp=bufpos; + LvzInt32 tmp, tmpi, bp=bufpos; float tmpf, dpt; --in1; -- cgit v1.2.1