1
/******************************************************
3
* zexy - implementation file
5
* copyleft (c) IOhannes m zm�lnig
7
* 1999:forum::f�r::uml�ute:2004
9
* institute of electronic music and acoustics (iem)
11
******************************************************
13
* license: GNU General Public License v.2
15
******************************************************/
22
* atoi : ascii to integer
25
/* atoi :: ascii to integer */
27
static t_class *atoi_class;
34
static void atoi_bang(t_atoi *x)
36
outlet_float(x->x_obj.ob_outlet, (t_float)x->i);
38
static void atoi_float(t_atoi *x, t_floatarg f)
41
outlet_float(x->x_obj.ob_outlet, (t_float)x->i);
43
static void atoi_symbol(t_atoi *x, t_symbol *s)
46
const char* c = s->s_name;
49
if (c[1]=='x')base=16;
51
x->i=strtol(c, 0, base);
52
outlet_float(x->x_obj.ob_outlet, (t_float)x->i);
54
static void atoi_list(t_atoi *x, t_symbol *s, int argc, t_atom *argv)
60
if (argv->a_type==A_FLOAT){
61
x->i=atom_getfloat(argv);
62
outlet_float(x->x_obj.ob_outlet, (t_float)x->i);
67
base=atom_getfloat(argv+1);
69
error("atoi: setting base to 10");
73
c=atom_getsymbol(argv)->s_name;
74
x->i=strtol(c, 0, base);
75
outlet_float(x->x_obj.ob_outlet, (t_float)x->i);
78
static void *atoi_new(void)
80
t_atoi *x = (t_atoi *)pd_new(atoi_class);
81
outlet_new(&x->x_obj, &s_float);
87
atoi_class = class_new(gensym("atoi"), (t_newmethod)atoi_new, 0,
88
sizeof(t_atoi), 0, A_DEFFLOAT, 0);
90
class_addbang(atoi_class, (t_method)atoi_bang);
91
class_addfloat(atoi_class, (t_method)atoi_float);
92
class_addlist(atoi_class, (t_method)atoi_list);
93
class_addsymbol(atoi_class, (t_method)atoi_symbol);
94
class_addanything(atoi_class, (t_method)atoi_symbol);
96
zexy_register("atoi");