From fb0c2e4416d7a54f5318710b256dd794cc8317c8 Mon Sep 17 00:00:00 2001 From: mescalinum Date: Thu, 22 Oct 2009 20:03:06 +0000 Subject: atoi and atof externals svn path=/trunk/externals/ffext/; revision=12645 --- atox/atox.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 atox/atox.c (limited to 'atox/atox.c') diff --git a/atox/atox.c b/atox/atox.c new file mode 100644 index 0000000..6097eb9 --- /dev/null +++ b/atox/atox.c @@ -0,0 +1,53 @@ +/* Copyright (c) 2005 Federico Ferri. + * Release under the terms of GPL license. + * Based on PureData by Miller Puckette and others. */ + +#include +#include +#include "m_pd.h" + +#define buf_sz MAXPDSTRING + +typedef struct +{ + t_object x_obj; + t_outlet *x_out2; +} t_ATOX; + +static t_class *ATOX_class; + +static void ATOX_out(t_ATOX *x, t_float f) +{ + outlet_float(x->x_obj.ob_outlet, f); +} + +static void ATOX_float(t_ATOX *x, t_float f) +{ + ATOX_out(x, f); +} + +static void ATOX_symbol(t_ATOX *x, t_symbol *s) +{ + char buf[buf_sz]; + t_atom a; + SETSYMBOL(&a, s); + atom_string(&a, buf, buf_sz); + ATOX_out(x, ATOX(buf)); +} + +static void *ATOX_new(t_floatarg f) +{ + t_ATOX *x = (t_ATOX *)pd_new(ATOX_class); + outlet_new((t_object *)x, &s_float); + return (x); +} + +void ATOX_setup(void) +{ + ATOX_class = class_new(gensym("ATOX"), + (t_newmethod)ATOX_new, 0, + sizeof(t_ATOX), CLASS_DEFAULT, + A_DEFSYMBOL, 0); + class_addfloat(ATOX_class, ATOX_float); + class_addsymbol(ATOX_class, ATOX_symbol); +} -- cgit v1.2.1