diff options
Diffstat (limited to 'test/to_ascii_code.c')
-rw-r--r-- | test/to_ascii_code.c | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/test/to_ascii_code.c b/test/to_ascii_code.c deleted file mode 100644 index 8aa3155..0000000 --- a/test/to_ascii_code.c +++ /dev/null @@ -1,97 +0,0 @@ -#include "m_pd.h" - -// Common string to all objects -static char* to_ascii_code_text; -// Common binbuf to all objects -static t_binbuf* to_ascii_code_binbuf; - -typedef struct _to_ascii_code -{ - - t_object x_ob; - int eof_is_set; - int eof; - t_outlet* outlet_left; - //t_outlet* outlet_right; -} t_to_ascii_code; - -static t_class *to_ascii_code_class; - -static void to_ascii_code_bang(t_to_ascii_code *x) { - // Do nothing -} - - -static void to_ascii_code_anything(t_to_ascii_code *x, t_symbol *s, int ac, t_atom *av) { - - binbuf_clear(to_ascii_code_binbuf); - // Add selector if it is not standard - if ( s != &s_list && s != &s_float && s != &s_symbol && s != &s_) { - t_atom a; - SETSYMBOL(&a, s); - binbuf_add(to_ascii_code_binbuf,1,&a); - } - // Add all the atoms to the binbuf - binbuf_add(to_ascii_code_binbuf, ac, av); - - - - // Get the contents as a text - int size=0; - binbuf_gettext(to_ascii_code_binbuf, &to_ascii_code_text, &size); //void binbuf_gettext(t_binbuf *x, char **bufp, int *lengthp); - - // Convert to a list of floats - - t_atom *list_floats = getbytes((size+1)*sizeof(*list_floats)); // Add some space for the eof character - int i; - for ( i=0; i < size; i++ ) { - SETFLOAT(list_floats+i,(t_float)to_ascii_code_text[i]); - } - if ( x->eof_is_set ) { // Append eof if set - SETFLOAT(list_floats+size, x->eof); - //outlet_float(x->outlet_right,size+1); - outlet_list(x->outlet_left,&s_list,size+1,list_floats); - } else { - //outlet_float(x->outlet_right,size); - outlet_list(x->outlet_left,&s_list,size,list_floats); - } - freebytes(list_floats, (size+1)*sizeof(*list_floats)); - -} - - -static void *to_ascii_code_new(t_symbol *s, int ac, t_atom *av) -{ - t_to_ascii_code *x = (t_to_ascii_code *)pd_new(to_ascii_code_class); - - // set eof if eof is set - if ( ac && ((av)->a_type == A_FLOAT)) { - x->eof = (int) atom_getfloat(av); - x->eof_is_set = 1; - } else { - x->eof_is_set = 0; - } - - x->outlet_left = outlet_new(&x->x_ob, &s_list); - //x->outlet_right = outlet_new(&x->x_ob, &s_float); - - return (x); -} - -void to_ascii_code_setup(void) -{ - // create binbuf (no need to ever free) - to_ascii_code_binbuf = binbuf_new(); - - // create text (no need to ever free) - to_ascii_code_text = getbytes(MAXPDSTRING*sizeof(*to_ascii_code_text)); - - to_ascii_code_class = class_new(gensym("to_ascii_code"), - (t_newmethod)to_ascii_code_new, 0, - sizeof(t_to_ascii_code), 0, A_GIMME, 0); - - class_addbang(to_ascii_code_class, to_ascii_code_bang); - class_addanything(to_ascii_code_class, to_ascii_code_anything); - - - } |