From fc3d3c0a4f110a23335398c327ac0a4fc949d5cb Mon Sep 17 00:00:00 2001 From: Guenter Geiger Date: Mon, 17 Jun 2002 10:13:57 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r12, which included commits to RCS files with non-trunk default branches. svn path=/trunk/externals/ggee/; revision=13 --- control/constant.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 control/constant.c (limited to 'control/constant.c') diff --git a/control/constant.c b/control/constant.c new file mode 100755 index 0000000..7e8ccfa --- /dev/null +++ b/control/constant.c @@ -0,0 +1,61 @@ +/* (C) Guenter Geiger */ + + +#include +#include +#include +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +/* ------------------------ constant ----------------------------- */ +#ifndef M_PI +#define M_PI 3.141593f +#endif + +static t_class *constant_class; + + +typedef struct _constant +{ + t_object x_obj; + t_float x_constant; +} t_constant; + + +void constant_bang(t_constant *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_constant); +} + +static void *constant_new(t_symbol* s) +{ + t_constant *x = (t_constant *)pd_new(constant_class); + + if (s == &s_) + x->x_constant = M_PI; + + if (!strcmp(s->s_name,"PI")) + x->x_constant = M_PI; + + if (!strcmp(s->s_name,"TWOPI")) + x->x_constant = 2*M_PI; + + if (!strcmp(s->s_name,"e")) + x->x_constant = exp(1.0); + + + + outlet_new(&x->x_obj, &s_float); + return (x); +} + +void constant_setup(void) +{ + constant_class = class_new(gensym("constant"), (t_newmethod)constant_new, 0, + sizeof(t_constant), 0,0); + class_addbang(constant_class,constant_bang); +} + + -- cgit v1.2.1