aboutsummaryrefslogtreecommitdiffstats
path: root/src/mdaThruZero.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-02-22 21:24:34 +0000
committerDavid Robillard <d@drobilla.net>2010-02-22 21:24:34 +0000
commitadacb33bf4eadcd49a744177bf3f059e7b2f2f52 (patch)
tree922620c99fdc348529002d1a000ec0e8f94f3041 /src/mdaThruZero.cpp
parent4514036c46168f4bbc693649989d53bdffe6137b (diff)
downloadmda.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/mdaThruZero.cpp')
-rw-r--r--src/mdaThruZero.cpp30
1 files changed, 18 insertions, 12 deletions
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; i<NPARAMS; i++) param[i] = p->param[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;