diff options
author | Thomas O Fredericks <mrtof@users.sourceforge.net> | 2010-05-12 19:17:15 +0000 |
---|---|---|
committer | Thomas O Fredericks <mrtof@users.sourceforge.net> | 2010-05-12 19:17:15 +0000 |
commit | f6f29377728c80d1e1c72fdc3f9a113712d737f6 (patch) | |
tree | bd57888677fd17cc2ce8bd2227240ae3a034e875 /test | |
parent | ce7d7364150288a3214561111e77040318dae520 (diff) |
Added to_ and from_ascii_code
svn path=/trunk/externals/tof/; revision=13515
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 69 | ||||
-rw-r--r-- | test/from_ascii_code-help.pd | 19 | ||||
-rw-r--r-- | test/from_ascii_code.c | 111 | ||||
-rw-r--r-- | test/to_ascii_code-help.pd | 13 | ||||
-rw-r--r-- | test/to_ascii_code.c | 97 |
5 files changed, 35 insertions, 274 deletions
diff --git a/test/Makefile b/test/Makefile index 22929fb..dd9f914 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,36 +1,37 @@ default: -PARAM: param paramDump paramRoute paramFile paramId paramCustom
-
-current:
- echo make class
-
-clean:
- rm -f *.pd_linux *.o
-
-# ----------------------- LINUX i386 -----------------------
-
-#paramL: param.pd_linux
-
-#patchArguments: patchArguments.pd_linux
-
-.SUFFIXES: .pd_linux
-
-PDPATH = ../../../pd
-
-TOFPATH = ../src
-
-LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \
- -Wall -W -Wshadow -Wstrict-prototypes \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-LINUXINCLUDE = -I$(PDPATH)/src
-
-#.pd_linux: .c
-
-.c:
- cc $(LINUXCFLAGS) $(LINUXINCLUDE) -I $(TOFPATH) -o $*.o -c $*.c
- ld --export-dynamic -shared -o $*.pd_linux $*.o -lc -lm
- strip --strip-unneeded $*.pd_linux
- rm $*.o
- mv $*.pd_linux ~/pd-externals/tof
+PARAM: param paramDump paramRoute paramFile paramId paramCustom + +current: + echo make class + +clean: + rm -f *.pd_linux *.o + +# ----------------------- LINUX i386 ----------------------- + +#paramL: param.pd_linux + +#patchArguments: patchArguments.pd_linux + +.SUFFIXES: .pd_linux + +PDPATH = ../../../pd + +TOFPATH = ../src + +LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \ + -Wall -W -Wshadow -Wstrict-prototypes \ + -Wno-unused -Wno-parentheses -Wno-switch + +LINUXINCLUDE = -I$(PDPATH)/src + +#.pd_linux: .c + +.c: + cc $(LINUXCFLAGS) $(LINUXINCLUDE) -I $(TOFPATH) -o $*.o -c $*.c + ld --export-dynamic -shared -o $*.pd_linux $*.o -lc -lm + strip --strip-unneeded $*.pd_linux + rm $*.o + mv $*.pd_linux ~/pd-externals/tof + cp $*-help.pd ~/pd-externals/tof diff --git a/test/from_ascii_code-help.pd b/test/from_ascii_code-help.pd deleted file mode 100644 index 0b4ee06..0000000 --- a/test/from_ascii_code-help.pd +++ /dev/null @@ -1,19 +0,0 @@ -#N canvas 1285 315 450 300 10; -#X obj 107 212 print; -#X msg 93 43 65; -#X msg 139 47 43; -#X obj 190 61 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 --1; -#X msg 52 49 32; -#X obj 107 165 tof/from_ascii_code 13; -#X msg 240 60 49 50 51 32 50 13; -#X msg 280 95 54; -#X msg 282 126 13; -#X connect 1 0 5 0; -#X connect 2 0 5 0; -#X connect 3 0 5 0; -#X connect 4 0 5 0; -#X connect 5 0 0 0; -#X connect 6 0 5 0; -#X connect 7 0 5 0; -#X connect 8 0 5 0; diff --git a/test/from_ascii_code.c b/test/from_ascii_code.c deleted file mode 100644 index 31f5086..0000000 --- a/test/from_ascii_code.c +++ /dev/null @@ -1,111 +0,0 @@ -#include "m_pd.h" - -//static char* from_ascii_code_text; -// Common binbuf to all objects -static t_binbuf* from_ascii_code_binbuf; - -typedef struct _from_ascii_code -{ - - t_object x_ob; - int eof_is_set; - int eof; - t_outlet* outlet_left; - //t_outlet* outlet_right; - char* text; - int text_size; - int size; -} t_from_ascii_code; - -static t_class *from_ascii_code_class; - -// Force output even if eof has not been received -static void from_ascii_code_bang(t_from_ascii_code *x) { - - if ( x->size ) { - binbuf_clear(from_ascii_code_binbuf); - binbuf_text(from_ascii_code_binbuf, x->text, x->size); - t_atom *argv = binbuf_getvec(from_ascii_code_binbuf); - int argc = binbuf_getnatom(from_ascii_code_binbuf); - if ( argc) { - if ( (argv->a_type == A_SYMBOL) ) { - outlet_anything(x->outlet_left,atom_getsymbol(argv),argc-1,argv+1); - } else { - outlet_anything(x->outlet_left,&s_list,argc,argv); - } - } - x->size = 0; - } -} - - -static void from_ascii_code_float(t_from_ascii_code *x, t_float f) { - - if ( x->eof_is_set && f == x->eof ) { - from_ascii_code_bang(x); - } else if ( f > 31 && f < 127 ) { - x->text[x->size] = (char) f; - x->size = x->size + 1; - if ( x->size >= x->text_size ) { - - x->text = resizebytes(x->text, x->text_size * sizeof(*(x->text)), - (x->text_size + 100) * sizeof(*(x->text))); - x->text_size = x->text_size + 100; - } - } -} - -static void from_ascii_code_list(t_from_ascii_code *x, t_symbol *s, int argc, t_atom *argv) { - int i; - for ( i=0; i < argc; i++ ) { - if ( ((argv+i)->a_type == A_FLOAT) ) { - from_ascii_code_float(x,atom_getfloat(argv+i)); - } - } -} - -static void from_ascii_code_free(t_from_ascii_code *x) { - - freebytes(x->text,x->text_size*sizeof(*(x->text))); -} - -static void *from_ascii_code_new(t_symbol *s, int ac, t_atom *av) -{ - t_from_ascii_code *x = (t_from_ascii_code *)pd_new(from_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; - } - - // create string - x->text_size = 100; - x->text = getbytes(x->text_size*sizeof(*x->text)); - - x->size = 0; - - x->outlet_left = outlet_new(&x->x_ob, &s_list); - //x->outlet_right = outlet_new(&x->x_ob, &s_float); - - return (x); -} - -void from_ascii_code_setup(void) -{ - // create binbuf (no need to ever free) - from_ascii_code_binbuf = binbuf_new(); - - - - from_ascii_code_class = class_new(gensym("from_ascii_code"), - (t_newmethod)from_ascii_code_new, (t_method)from_ascii_code_free, - sizeof(t_from_ascii_code), 0, A_GIMME, 0); - - class_addbang(from_ascii_code_class, from_ascii_code_bang); - class_addfloat(from_ascii_code_class, from_ascii_code_float); - class_addlist(from_ascii_code_class, from_ascii_code_list); - - } diff --git a/test/to_ascii_code-help.pd b/test/to_ascii_code-help.pd deleted file mode 100644 index 276bd99..0000000 --- a/test/to_ascii_code-help.pd +++ /dev/null @@ -1,13 +0,0 @@ -#N canvas 1371 321 506 219 10; -#X msg 108 32 test; -#X msg 262 34 1234; -#X obj 95 74 tof/to_ascii_code 13; -#X msg 173 36 list abcdef; -#X obj 95 115 print codes; -#X obj 214 115 print length; -#X text 234 73 Optionnal argument: append ascii code; -#X connect 0 0 2 0; -#X connect 1 0 2 0; -#X connect 2 0 4 0; -#X connect 2 1 5 0; -#X connect 3 0 2 0; 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); - - - } |