diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2005-03-22 20:58:25 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2005-03-22 20:58:25 +0000 |
commit | 2b60d55c919e7588f5aff15936e83c300b3660bb (patch) | |
tree | 14d860de7f28083d3756ad91b627de70f26788f6 /src/z_average.c | |
parent | c500bc542cb7cc78d6dac3f7da3bff626056b1aa (diff) |
zexy-2.0:
- use of abstractions for objects that allow it
- some objects are build both as externals and abstractions (as slower fallbacks)
- code-layout is now 1:1 c-file<->object (this should allow for building of zexy as a collection of externals instead as a big library)
- matrix-objects have moved to iemmatrix !!
svn path=/trunk/externals/zexy/; revision=2641
Diffstat (limited to 'src/z_average.c')
-rw-r--r-- | src/z_average.c | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/src/z_average.c b/src/z_average.c deleted file mode 100644 index f0c2fd9..0000000 --- a/src/z_average.c +++ /dev/null @@ -1,113 +0,0 @@ -#include "zexy.h" - -#ifdef NT -#pragma warning( disable : 4244 ) -#pragma warning( disable : 4305 ) -#endif - -/* ------------------------ average ----------------------------- */ - -/* mavg :: moving average filter */ - -static t_class *mavg_class; - -typedef struct _mavg -{ - t_object x_obj; - - t_float n_inv; - t_float avg; - int size; - t_float *buf, *wp; -} t_mavg; - -static void mavg_resize(t_mavg *x, t_float f) -{ - int i; - t_float *dumbuf; - - f = (int)f; - if ((f<1) || (f == x->size)) return; - - freebytes(x->buf, sizeof(t_float)*x->size); - x->n_inv = 1.0/f; - x->size = f; - x->buf = getbytes(sizeof(t_float)*x->size); - - dumbuf = x->wp = x->buf; - i = x->size; - while(i--) *dumbuf++ = x->avg; -} - -static void mavg_set(t_mavg *x, t_symbol *s, int argc, t_atom *argv) -{ - int i = x->size; - t_float *dummy = x->buf; - t_float f=(argc)?atom_getfloat(argv):x->avg; - - while (i--) *dummy++=f; - - x->wp = x->buf; -} - -static void mavg_float(t_mavg *x, t_float f) -{ - int i = x->size; - t_float dummy = 0; - t_float *dumb = x->buf; - - *x->wp++ = f; - if (x->wp == x->buf + x->size) x->wp = x->buf; - - while (i--) dummy += *dumb++; - - x->avg = dummy*x->n_inv; - - outlet_float(x->x_obj.ob_outlet,x->avg); -} - -static void *mavg_new(t_floatarg f) -{ - t_mavg *x = (t_mavg *)pd_new(mavg_class); - int i = (f<1)?2:f; - t_float *dumbuf; - - outlet_new(&x->x_obj, gensym("float")); - inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("")); - - x->buf = x->wp = (t_float *)getbytes(sizeof(t_float) * i); - x->size = i; - x->n_inv = 1.0f/(t_float)i; - - dumbuf = x->buf; - while (i--) *dumbuf++=0; - - return (x); -} - -static void mavg_help(void) -{ - post("mavg\t:: moving average filter"); -} - -static void mavg_setup(void) -{ - mavg_class = class_new(gensym("mavg"), (t_newmethod)mavg_new, 0, - sizeof(t_mavg), 0, A_DEFFLOAT, 0); - - class_addfloat(mavg_class, (t_method)mavg_float); - - class_addmethod(mavg_class, (t_method)mavg_help, gensym("help"), 0); - class_addmethod(mavg_class, (t_method)mavg_set, gensym("set"), A_GIMME, 0); - class_addmethod(mavg_class, (t_method)mavg_resize, gensym(""), A_DEFFLOAT, 0); - - class_sethelpsymbol(mavg_class, gensym("zexy/mavg")); -} - - -/* global setup routine */ - -void z_average_setup(void) -{ - mavg_setup(); -} |