diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2010-08-19 05:04:28 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2010-08-19 05:04:28 +0000 |
commit | 79096fd626b946efd6947fa94ab15d30bf003ba0 (patch) | |
tree | 9a10305d0ade28bb3f5139c37ab8fa76f4e603d4 /maskxor | |
parent | 633eaa4b2350c00ddc1b338c357096a441944784 (diff) |
converted to new library template and debianized
svn path=/trunk/externals/ekext/; revision=13835
Diffstat (limited to 'maskxor')
-rwxr-xr-x | maskxor/makefile | 105 | ||||
-rw-r--r-- | maskxor/maskxor-help.pd | 104 | ||||
-rw-r--r-- | maskxor/maskxor-test.pd | 25 | ||||
-rw-r--r-- | maskxor/maskxor.c | 216 |
4 files changed, 0 insertions, 450 deletions
diff --git a/maskxor/makefile b/maskxor/makefile deleted file mode 100755 index 06ec0b5..0000000 --- a/maskxor/makefile +++ /dev/null @@ -1,105 +0,0 @@ -current: - echo make pd_linux, pd_nt, pd_irix5, pd_irix6 or pd_darwin, then make install - -clean: ; rm -f *.pd_* *.o - -# ----------------------- NT ----------------------- - -pd_nt: maskxor.dll - -INSTALL_PREFIX="C:\pd\extra" -EXT=dll -.SUFFIXES: .obj .dll - -PDNTCFLAGS = /W3 /WX /DNT /DPD /nologo -VC="D:\Program Files\Microsoft Visual Studio\Vc98" - -PDNTINCLUDE = /I. /I\tcl\include /I..\..\src /I$(VC)\include - -PDNTLDIR = $(VC)\lib -PDNTLIB = $(PDNTLDIR)\libc.lib \ - $(PDNTLDIR)\oldnames.lib \ - $(PDNTLDIR)\kernel32.lib \ - ..\..\bin\pd.lib - -.c.dll: - cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c - link /dll /export:$*_setup $*.obj $(PDNTLIB) - -# ----------------------- IRIX 5.x ----------------------- - -pd_irix5: maskxor.pd_irix5 - -INSTALL_PREFIX=/usr/local -EXT=pd_irix5 -.SUFFIXES: .pd_irix5 - -SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2 - -SGIINCLUDE = -I/usr/local/include - -.c.pd_irix5: - cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c - ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o - rm $*.o - -# ----------------------- IRIX 5.x ----------------------- - -pd_irix6: maskxor.pd_irix6 - -INSTALL_PREFIX=/usr/local -EXT=pd_irix6 -.SUFFIXES: .pd_irix6 - -SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2 - -SGIINCLUDE = -I/usr/local/include - -.c.pd_irix6: - cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c - ld -elf -shared -rdata_shared -o $*.pd_irix6 $*.o - rm $*.o - -# ----------------------- LINUX i386 ----------------------- - -pd_linux: maskxor.pd_linux - -INSTALL_PREFIX=/usr/local -EXT=pd_linux -.SUFFIXES: .pd_linux - -LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \ - -Wall -W -Wshadow -Wstrict-prototypes -Werror \ - -Wno-unused -Wno-parentheses -Wno-switch - -LINUXINCLUDE = -I/usr/local/include - -.c.pd_linux: - cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c - ld --export-dynamic -shared -o $*.pd_linux $*.o -lc -lm - strip --strip-unneeded $*.pd_linux - rm $*.o - -# ----------------------- Mac OSX ----------------------- - -pd_darwin: maskxor.pd_darwin - -INSTALL_PREFIX=/usr/local -EXT=pd_darwin -.SUFFIXES: .pd_darwin - -DARWINCFLAGS = -DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \ - -Wno-unused -Wno-parentheses -Wno-switch - -.c.pd_darwin: - cc $(DARWINCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c - cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o - rm -f $*.o - -# ---------------------------------------------- - -install:: - install -d $(INSTALL_PREFIX)/lib/pd/extra -# install -m 644 *.$(EXT) $(INSTALL_PREFIX)/lib/pd/externs - -install -m 644 maskxor.$(EXT) $(INSTALL_PREFIX)/lib/pd/extra - install -m 644 *.pd $(INSTALL_PREFIX)/lib/pd/doc/5.reference diff --git a/maskxor/maskxor-help.pd b/maskxor/maskxor-help.pd deleted file mode 100644 index 1276de8..0000000 --- a/maskxor/maskxor-help.pd +++ /dev/null @@ -1,104 +0,0 @@ -#N canvas 0 0 956 304 10; -#X obj 368 207 maskxor; -#X obj 457 63 t b b; -#X msg 38 157 bang; -#X floatatom 390 247 5 0 0 0 - - -; -#X floatatom 368 264 5 0 0 0 - - -; -#X floatatom 254 122 5 0 0 0 - - -; -#X msg 457 46 bang; -#X msg 457 80 listl 1 1 0 0 0 1 1; -#X msg 500 97 listr 0 1 1 0 2 1 0; -#X text 39 56 Maskxor takes two lists - listr and listl \, to set up -a map where map = listl ^ listr.; -#X text 37 93 Floats will only pass through if map[(int)float] > 0 -\, so if the corresponding element is greater than zero in either listl -\, or listr \, but not both.; -#X text 76 148 outputs the map \, the xor-ed element and (if this is -greater than zero) the last float in.; -#X obj 412 227 print MASK; -#X text 41 22 Maskxor - exclusive-OR mask map by Edward Kelly. This -is GNU software.; -#X msg 39 193 clear; -#X text 79 192 resets the object; -#X text 29 283 Polyphony control objects by Ed Kelly November 2006 -; -#X text 397 282 See also; -#X obj 458 280 sieve; -#X obj 501 280 polymap; -#X obj 558 280 polystat; -#N canvas 0 0 450 300 (subpatch) 0; -#X msg 174 179 0 1 0 0 1 1 2; -#X obj 150 84 loadbang; -#X obj 175 217 outlet; -#X connect 0 0 2 0; -#X connect 1 0 0 0; -#X restore 584 152 pd; -#X obj 568 173 l; -#X obj 534 148 t a b; -#X obj 568 190 prepend listr; -#X obj 473 190 prepend listl; -#X msg 662 97 1 0 0 1 1; -#X msg 678 114 1 1 0 0 0 1; -#X msg 721 131 0 1 1 0 2 1 0; -#X msg 669 190 mode \$1; -#X obj 669 167 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 -1; -#X text 728 191 ... in mode 1 \, floats are only; -#X text 729 204 passed through the left outlet; -#X text 728 217 when the left list contains; -#X text 727 229 fewer non-zero elements than; -#X text 727 241 the right list. CHANGED BEHAVIOUR!; -#X msg 651 65 1 0 0 1 0 0 0 1; -#X msg 638 49 1 0 0 1 0 1 0 1; -#X text 847 123 |; -#X text 847 132 |; -#X text 847 141 |; -#X text 847 150 |; -#X text 847 159 |; -#X text 847 168 |; -#X text 847 177 |; -#X text 761 60 _; -#X text 768 60 _; -#X text 775 60 _; -#X text 782 60 _; -#X text 789 60 _; -#X text 796 60 _; -#X text 803 60 _; -#X text 810 60 _; -#X text 817 60 _; -#X text 824 60 _; -#X text 831 60 _; -#X text 838 60 _; -#X text 845 60 _; -#X text 847 69 |; -#X text 847 78 |; -#X text 847 87 |; -#X text 847 96 |; -#X text 847 105 |; -#X text 847 114 |; -#X text 759 65 <; -#X connect 0 0 4 0; -#X connect 0 1 3 0; -#X connect 0 2 12 0; -#X connect 1 0 7 0; -#X connect 1 1 8 0; -#X connect 2 0 0 0; -#X connect 5 0 0 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 8 0 0 0; -#X connect 14 0 0 0; -#X connect 21 0 22 1; -#X connect 22 0 24 0; -#X connect 23 0 22 1; -#X connect 23 0 25 0; -#X connect 23 1 22 0; -#X connect 24 0 0 0; -#X connect 25 0 0 0; -#X connect 26 0 23 0; -#X connect 27 0 23 0; -#X connect 28 0 23 0; -#X connect 29 0 0 0; -#X connect 30 0 29 0; -#X connect 36 0 23 0; -#X connect 37 0 23 0; diff --git a/maskxor/maskxor-test.pd b/maskxor/maskxor-test.pd deleted file mode 100644 index 1674fb8..0000000 --- a/maskxor/maskxor-test.pd +++ /dev/null @@ -1,25 +0,0 @@ -#N canvas 0 0 450 300 10; -#X obj 149 208 maskxor; -#X obj 180 71 t b b; -#X msg 144 143 bang; -#X floatatom 171 253 5 0 0 0 - - -; -#X floatatom 149 271 5 0 0 0 - - -; -#X obj 193 230 print MAPOUT; -#X floatatom 70 151 5 0 0 0 - - -; -#X msg 182 33 bang; -#X msg 261 157 debug; -#X obj 236 265 print; -#X msg 180 88 listl 1 1 0 0 0 1 1; -#X msg 223 105 listr 0 1 1 0 2 1 0; -#X connect 0 0 4 0; -#X connect 0 1 3 0; -#X connect 0 2 5 0; -#X connect 1 0 10 0; -#X connect 1 1 11 0; -#X connect 2 0 0 0; -#X connect 3 0 9 0; -#X connect 6 0 0 0; -#X connect 7 0 1 0; -#X connect 8 0 0 0; -#X connect 10 0 0 0; -#X connect 11 0 0 0; diff --git a/maskxor/maskxor.c b/maskxor/maskxor.c deleted file mode 100644 index bf14560..0000000 --- a/maskxor/maskxor.c +++ /dev/null @@ -1,216 +0,0 @@ -#include "m_pd.h" - -static t_class *maskxor_class; - -typedef struct _maskxor -{ - t_object x_obj; - t_atom *maskl, *maskr, *maskxor; - int lengthl, lengthr, lengthm; - t_float suml, sumr; - t_float f_in, yes; - t_float mode; - t_outlet *thru, *bool, *maskout; -} t_maskxor; - -void maskxor_float(t_maskxor *x, t_floatarg fin) -{ - int input = (int)fin; - if (input >= 0 && input < x->lengthm) { - if(x->mode == 0) - { - x->f_in = fin; - x->yes = atom_getfloatarg(input, x->lengthm, x->maskxor); - outlet_float(x->bool, x->yes); - if(x->yes != 0) - { - outlet_float(x->thru, x->f_in); - } - } - else if(x->sumr>x->suml) - { - x->f_in = fin; - x->yes = atom_getfloatarg(input, x->lengthm, x->maskxor); - outlet_float(x->bool, x->yes); - if(x->yes != 0) - { - outlet_float(x->thru, x->f_in); - } - } - } -} - -void maskxor_bang(t_maskxor *x, t_symbol *s) -{ - outlet_list(x->maskout, &s_list, x->lengthm, x->maskxor); - outlet_float(x->bool, x->yes); - if(x->yes != 0) - { - outlet_float(x->thru, x->f_in); - } -} - -void maskxor_listl(t_maskxor *x, t_symbol *s, int argc, t_atom *argv) -{ - int i; - x->suml = 0; - float listr_element, listl_element, xor_element; - if (x->maskl) { - freebytes(x->maskl, x->lengthl * sizeof(t_atom)); - x->maskl = 0; - x->lengthl = 0; - } - - x->maskl = copybytes(argv, argc * sizeof(t_atom)); - x->lengthl = argc; - - if (x->maskxor) { - freebytes(x->maskxor, x->lengthm * sizeof(t_atom)); - x->maskxor = 0; - x->lengthm = 0; - } - x->lengthm = x->lengthr > x->lengthl ? x->lengthr : x->lengthl; - x->maskxor = getbytes(x->lengthm * sizeof(t_atom)); - - for(i=0;i<x->lengthm;i++) - { - if(i>=x->lengthm) - { - listl_element = 0; - } - else - { - listl_element = atom_getfloat(argv+i); - } - if(listl_element != 0) - { - x->suml++; - } - if(i>=x->lengthr) - { - listr_element = 0; - } - else - { - listr_element = atom_getfloatarg(i,x->lengthr,x->maskr); - } - xor_element = (float)((int)listl_element ^ (int)listr_element); - SETFLOAT(&x->maskxor[i], xor_element); - } - outlet_list(x->maskout, &s_list, x->lengthm, x->maskxor); -} - -void maskxor_listr(t_maskxor *x, t_symbol *s, int argc, t_atom *argv) -{ - int i; - x->sumr = 0; - - if (x->maskr) { - freebytes(x->maskr, x->lengthr * sizeof(t_atom)); - x->maskr = 0; - x->lengthr = 0; - } - - x->maskr = copybytes(argv, argc * sizeof(t_atom)); - x->lengthr = argc; - - - float listr_element; - for(i=0;i<argc;i++) { - listr_element = atom_getfloat(argv+i); - if(listr_element != 0) - { - x->sumr++; - } - } -} - -void maskxor_mode(t_maskxor *x, t_floatarg fmode) -{ - x->mode = fmode; -} - -void maskxor_clear(t_maskxor *x) -{ - int i; - if (x->maskl) { - freebytes(x->maskl, x->lengthl * sizeof(t_atom)); - x->maskl = 0; - x->lengthl = 0; - } - if (x->maskr) { - freebytes(x->maskr, x->lengthr * sizeof(t_atom)); - x->maskr = 0; - x->lengthr = 0; - } - if (x->maskxor) { - freebytes(x->maskxor, x->lengthm * sizeof(t_atom)); - x->maskxor = 0; - x->lengthm = 0; - } - - x->yes = x->f_in = 0; -} - -void maskxor_print(t_maskxor *x) -{ - int i; - float element; - if (x->maskl) { - for(i=0;i<x->lengthl;i++) { - element = atom_getfloatarg(i, x->lengthl, x->maskl); - post("maskl element %d = %f",i,element); - } - } - if (x->maskr) { - for(i=0;i<x->lengthr;i++) { - element = atom_getfloatarg(i, x->lengthr, x->maskr); - post("maskr element %d = %f",i,element); - } - } - if (x->maskxor) { - for(i=0;i<x->lengthm;i++) { - element = atom_getfloatarg(i, x->lengthm, x->maskxor); - post("maskxor element %d = %f",i,element); - } - } - post("mode = %f, lengthl = %d, lengthr = %d, lengthm = %d",x->mode,x->lengthl,x->lengthr,x->lengthm); -} - -void *maskxor_new(t_symbol *s, t_floatarg fmode) -{ - int i; - t_maskxor *x = (t_maskxor *)pd_new(maskxor_class); - x->mode = fmode != 0 ? 1 : 0; - - x->maskl = 0; - x->lengthl = 0; - x->maskr = 0; - x->lengthr = 0; - x->maskxor = 0; - x->lengthm = 0; - - x->thru = outlet_new(&x->x_obj, &s_float); - x->bool = outlet_new(&x->x_obj, &s_float); - x->maskout = outlet_new(&x->x_obj, &s_list); - return (void *)x; -} - -void maskxor_setup(void) -{ - maskxor_class = class_new(gensym("maskxor"), - (t_newmethod)maskxor_new, - 0, sizeof(t_maskxor), - CLASS_DEFAULT, A_DEFFLOAT, 0); - post("|..-.--.-..-maskxor.-...--.-..|"); - post("| exclusive-or mask-map |"); - post("|.--.- Edward Kelly 2006 ---.-|"); - - class_addfloat(maskxor_class, maskxor_float); - class_addmethod(maskxor_class, (t_method)maskxor_listl, gensym("listl"), A_GIMME, 0, 0); - class_addmethod(maskxor_class, (t_method)maskxor_listr, gensym("listr"), A_GIMME, 0, 0); - class_addbang(maskxor_class, (t_method)maskxor_bang); - class_addmethod(maskxor_class, (t_method)maskxor_mode, gensym("mode"), A_DEFFLOAT, 0); - class_addmethod(maskxor_class, (t_method)maskxor_clear, gensym("clear"), A_DEFFLOAT, 0); - class_addmethod(maskxor_class, (t_method)maskxor_print, gensym("print"), A_DEFFLOAT, 0); -} |