From 577ac6e80ff4f436fbd054291ed7dddbc31bd49a Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 18 May 2004 21:33:33 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r1738, which included commits to RCS files with non-trunk default branches. svn path=/trunk/externals/iemlib/; revision=1739 --- src/iemlib2/float24.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/iemlib2/float24.c (limited to 'src/iemlib2/float24.c') diff --git a/src/iemlib2/float24.c b/src/iemlib2/float24.c new file mode 100644 index 0000000..3923482 --- /dev/null +++ b/src/iemlib2/float24.c @@ -0,0 +1,83 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include +#include +#include +#include + +/* ---- float24 - float=int or list of float=symbol concaternat to int=float ----- */ + +typedef struct _float24 +{ + t_object x_obj; + float x_arg; +} t_float24; + +static t_class *float24_class; + +static float float24_calc_sum(int argc, t_atom *argv) +{ + int i; + char str[1000], buf[100]; + + str[0] = 0; + for(i=0; ix_obj.ob_outlet, x->x_arg); +} + +static void float24_float(t_float24 *x, t_float f) +{ + x->x_arg = f; + float24_bang(x); +} + +static void float24_list(t_float24 *x, t_symbol *s, int argc, t_atom *argv) +{ + if(argc > 0) + x->x_arg = float24_calc_sum(argc, argv); + float24_bang(x); +} + +static void *float24_new(t_symbol *s, int argc, t_atom *argv) +{ + t_float24 *x = (t_float24 *)pd_new(float24_class); + + outlet_new(&x->x_obj, &s_float); + x->x_arg = 0.0f; + if(argc > 0) + x->x_arg = float24_calc_sum(argc, argv); + return (x); +} + +void float24_setup(void) +{ + float24_class = class_new(gensym("float24"), (t_newmethod)float24_new, 0, + sizeof(t_float24), 0, A_GIMME, 0); + class_addcreator((t_newmethod)float24_new, gensym("f24"), A_GIMME, 0); + class_addbang(float24_class, (t_method)float24_bang); + class_addfloat(float24_class, (t_method)float24_float); + class_addlist(float24_class, (t_method)float24_list); + class_sethelpsymbol(float24_class, gensym("iemhelp/help-float24")); +} -- cgit v1.2.1