aboutsummaryrefslogtreecommitdiff
path: root/src/tavg~.c
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2007-10-30 09:21:52 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2007-10-30 09:21:52 +0000
commit5e869f7a0cef88be3b03272303a6084b8bd1a7e3 (patch)
tree8d5e0dfc39eb696f5b457b3376dd6eb7de17b538 /src/tavg~.c
parent6d61e2a46722b75c1a3734e3419ee2886b11b2b3 (diff)
use t_float and t_sample when possible
svn path=/trunk/externals/zexy/; revision=8907
Diffstat (limited to 'src/tavg~.c')
-rw-r--r--src/tavg~.c56
1 files changed, 27 insertions, 29 deletions
diff --git a/src/tavg~.c b/src/tavg~.c
index d8355c8..bdd33ed 100644
--- a/src/tavg~.c
+++ b/src/tavg~.c
@@ -23,16 +23,17 @@ static t_class *tavg_class;
typedef struct _tavg
{
t_object x_obj;
- t_float n_inv;
- t_float buf;
- int blocks;
+ t_sample n_inv;
+ t_sample buf;
+ unsigned int blocks;
} t_tavgtilde;
static void tavg_bang(t_tavgtilde *x)
{
if (x->blocks) {
- outlet_float(x->x_obj.ob_outlet, x->buf*x->n_inv/x->blocks);
+ t_float result=x->buf*x->n_inv/x->blocks;
+ outlet_float(x->x_obj.ob_outlet, result);
x->blocks = 0;
x->buf = 0.;
}
@@ -40,48 +41,45 @@ static void tavg_bang(t_tavgtilde *x)
static t_int *tavg_perform(t_int *w)
{
- t_float *in = (t_float *)(w[1]);
- t_tavgtilde *x = (t_tavgtilde *)w[2];
- int n = (int)(w[3]);
-
- t_float buf = x->buf;
-
- while (n--) buf += *in++;
-
- x->buf = buf;
- x->blocks++;
-
- return (w+4);
+ t_sample *in = (t_sample *)(w[1]);
+ t_tavgtilde *x = (t_tavgtilde *)w[2];
+ int n = (int)(w[3]);
+ t_sample buf = x->buf;
+
+ while (n--) buf += *in++;
+ x->buf = buf;
+ x->blocks++;
+ return (w+4);
}
static void tavg_dsp(t_tavgtilde *x, t_signal **sp)
{
- x->n_inv=1./sp[0]->s_n;
- dsp_add(tavg_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+ x->n_inv=1./sp[0]->s_n;
+ dsp_add(tavg_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
}
static void *tavg_new(void)
{
- t_tavgtilde *x = (t_tavgtilde *)pd_new(tavg_class);
- outlet_new(&x->x_obj, gensym("float"));
- return (x);
+ t_tavgtilde *x = (t_tavgtilde *)pd_new(tavg_class);
+ outlet_new(&x->x_obj, &s_float);
+ return (x);
}
static void tavg_help(void)
{
- post("tavg~\t\t:: outputs the arithmetic mean of a signal when triggered");
- post("<bang>\t\t: triggers the output");
+ post("tavg~\t\t:: outputs the arithmetic mean of a signal when triggered");
+ post("<bang>\t\t: triggers the output");
}
void tavg_tilde_setup(void)
{
- tavg_class = class_new(gensym("tavg~"), (t_newmethod)tavg_new, 0,
- sizeof(t_tavgtilde), 0, A_DEFFLOAT, 0);
- class_addmethod(tavg_class, nullfn, gensym("signal"), 0);
- class_addmethod(tavg_class, (t_method)tavg_dsp, gensym("dsp"), 0);
+ tavg_class = class_new(gensym("tavg~"), (t_newmethod)tavg_new, 0,
+ sizeof(t_tavgtilde), 0, A_DEFFLOAT, 0);
+ class_addmethod(tavg_class, nullfn, gensym("signal"), 0);
+ class_addmethod(tavg_class, (t_method)tavg_dsp, gensym("dsp"), 0);
- class_addbang(tavg_class, tavg_bang);
+ class_addbang(tavg_class, tavg_bang);
- class_addmethod(tavg_class, (t_method)tavg_help, gensym("help"), 0);
+ class_addmethod(tavg_class, (t_method)tavg_help, gensym("help"), 0);
zexy_register("tavg~");
}