From 086e6b358ad45bda0e6a948cfb7ea2d33ab7da5a Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 10 Feb 2010 00:34:05 +0000 Subject: re-arranged into libdir and setup with the template Makefile+debian stuff. renabled vv+ and vv- as vvplus and vvminus svn path=/trunk/externals/smlib/; revision=13158 --- source/vlmax.c | 86 ---------------------------------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 source/vlmax.c (limited to 'source/vlmax.c') diff --git a/source/vlmax.c b/source/vlmax.c deleted file mode 100644 index a566f49..0000000 --- a/source/vlmax.c +++ /dev/null @@ -1,86 +0,0 @@ -#include "defines.h" - -/*--------------- vlmax -----------------------*/ -/* leaky maximum of each element in a list */ -/* arguments: [halfdecay] */ - -static t_class *vlmax_class; - -typedef struct _vlmax -{ - t_object x_obj; - float m_c_leak; - float m_leak; - float *m_max; - int m_n; -} t_vlmax; - - -static void vlmax_perform(t_vlmax *x, t_symbol *s, int argc, t_atom *argv) -{ - int i; - t_atom *ap,*app; - float *fp; - float m_leak; - float m_c_leak; - m_leak=x->m_leak; - m_c_leak=x->m_c_leak; - - if (argc!=x->m_n) - { - int i; - if (x->m_max) - freebytes(x->m_max,x->m_n); - x->m_max=(float*)getbytes(argc*sizeof(float)); - for(i=0;im_max[i]=0.0f; - x->m_n=argc; - } - - fp=x->m_max; - ap = (t_atom *)getbytes(sizeof(t_atom)*argc); - app=ap; - for (i = 0; i < argc; i++) - { - float f=atom_getfloat(argv++); - *fp =(f > *fp ) ? f : *fp *m_c_leak + f*m_leak; - SETFLOAT(app, *fp); - app++; - fp++; - } - outlet_list(x->x_obj.ob_outlet,gensym("list"),argc,ap); - freebytes(ap,argc); -} - -static void vlmax_setHalfDecay(t_vlmax *x, t_floatarg halfDecayTime) -{ - x->m_c_leak=(float)powf(.5,(1.0f/halfDecayTime)); - x->m_leak=1.0f-x->m_c_leak; -} - -static void *vlmax_new(t_float halfDecayTime) -{ - t_vlmax *x=(t_vlmax *)pd_new(vlmax_class); - outlet_new(&x->x_obj, gensym("list")); - vlmax_setHalfDecay(x, halfDecayTime); - x->m_n=0; - x->m_max=0; - return (void *)x; -} - -static void vlmax_free(t_vlmax *x) -{ - freebytes(x->m_max,x->m_n); -} - -void vlmax_setup(void) -{ - vlmax_class = class_new(gensym("vlmax"), - (t_newmethod)vlmax_new, (t_method)vlmax_free, - sizeof(t_vlmax), - CLASS_DEFAULT, - A_DEFFLOAT, 0); - class_addmethod(vlmax_class, (t_method)vlmax_setHalfDecay, - gensym("decay"), A_DEFFLOAT, NULL); - class_addlist(vlmax_class, (t_method)vlmax_perform); -} -- cgit v1.2.1