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 /sieve | |
parent | 633eaa4b2350c00ddc1b338c357096a441944784 (diff) |
converted to new library template and debianized
svn path=/trunk/externals/ekext/; revision=13835
Diffstat (limited to 'sieve')
-rwxr-xr-x | sieve/makefile | 105 | ||||
-rw-r--r-- | sieve/sieve-help.pd | 123 | ||||
-rw-r--r-- | sieve/sieve.c | 410 |
3 files changed, 0 insertions, 638 deletions
diff --git a/sieve/makefile b/sieve/makefile deleted file mode 100755 index 15f95e7..0000000 --- a/sieve/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: sieve.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: sieve.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: sieve.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: sieve.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: sieve.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 sieve.$(EXT) $(INSTALL_PREFIX)/lib/pd/extra - install -m 644 *.pd $(INSTALL_PREFIX)/lib/pd/doc/5.reference diff --git a/sieve/sieve-help.pd b/sieve/sieve-help.pd deleted file mode 100644 index e472628..0000000 --- a/sieve/sieve-help.pd +++ /dev/null @@ -1,123 +0,0 @@ -#N canvas 439 25 595 461 10; -#X obj 94 346 sieve; -#X msg 147 276 set 2 1; -#X msg 198 276 set 7 0.86; -#X msg 148 198 map 0 1 0 0 0 3 0 2 0 0.7; -#X msg 147 229 get 0; -#X msg 147 250 get 1; -#X floatatom 37 384 5 0 0 0 - - -; -#X floatatom 81 382 5 0 0 0 - - -; -#X obj 129 379 print MAPOUT; -#X obj 218 379 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 218 397 print EXACT; -#X obj 37 419 print MAPPED; -#X obj 81 399 print VALUE; -#X msg 147 324 clear; -#X text 189 228 get map; -#X text 189 249 get inverted map; -#X floatatom 309 406 5 0 0 0 - - -; -#X floatatom 350 406 5 0 0 0 - - -; -#X obj 341 363 prepend map; -#X obj 395 405 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X text 189 323 clear object; -#X text 277 277 set [location \, value]; -#X msg 147 297 set 2 0; -#X text 201 297 unset location; -#X text 332 196 set map; -#X floatatom 35 318 5 0 0 0 - - -; -#X obj 29 184 vradio 15 1 0 4 empty empty mode 0 -6 0 10 -262144 -1 --1 0; -#X msg 29 248 mode \$1; -#X text 62 170 : 0=exact \, 1=nearest \, 2=shunt up \, 3=shunt down -; -#X obj 341 383 sieve; -#X obj 22 19 sieve; -#X text 62 19 takes integers and maps them to floats if they are set. -; -#X text 63 32 in the default mode (mode 0) integers without an associated -float are blocked \, so a map will sieve the input.; -#X text 64 60 mode 1 forces the sieve to choose the nearest index \, -so that inputs are sent to alternative outputs. The rightmost output -bangs only if the input is exact.; -#X text 64 101 In modes 2 and 3 the sieve chooses the next map up or -the next map down. If the input is higher than the highest mapped integer -in mode 2 \, or lower than the lowest in mode 3 \, then the shunting -is wrapped and the lowest or highest is chosen respectively.; -#X text 294 330 when the inverted map is sent to another; -#X text 298 344 sieve object \, the input is segregated.; -#X text 38 440 Polyphony control objects by Ed Kelly \, November 2006 -; -#X text 411 439 See also; -#X obj 476 438 polymap; -#X obj 476 417 polystat; -#X obj 532 438 maskxor; -#X obj 410 181 loadbang; -#X obj 410 233 delay 50; -#N canvas 0 0 596 300 register_functions 0; -#X obj 99 208 sieve; -#X msg 99 83 map 0 1 2 4 5 6 7 9 10 11 12; -#X obj 99 47 loadbang; -#X msg 157 166 get 0; -#X msg 254 125 delete 8; -#X msg 255 167 shunt 5; -#X obj 194 166 delay 0; -#X msg 194 149 bang; -#X msg 254 241 insert 7 100; -#X msg 256 203 shift 5; -#X obj 125 269 print REGMAP; -#X floatatom 38 166 5 0 0 0 - - -; -#X floatatom 35 257 5 0 0 0 - - -; -#X msg 160 57 map 1 1 1 1 1 1 1 1 1 1 1 1; -#X text 324 124 removes an element from the array; -#X text 318 166 removes an element from the array and; -#X text 319 178 subtracts 1 from subsequent elements; -#X text 320 201 shifts elements downstream \, adding 1; -#X text 319 213 to each element \, from a specific point; -#X text 349 242 inserts an element into the array; -#X connect 0 0 12 0; -#X connect 0 2 10 0; -#X connect 1 0 0 0; -#X connect 2 0 1 0; -#X connect 3 0 0 0; -#X connect 4 0 0 0; -#X connect 4 0 7 0; -#X connect 5 0 0 0; -#X connect 5 0 7 0; -#X connect 6 0 3 0; -#X connect 7 0 6 0; -#X connect 8 0 0 0; -#X connect 8 0 7 0; -#X connect 9 0 0 0; -#X connect 9 0 7 0; -#X connect 11 0 0 0; -#X connect 13 0 0 0; -#X restore 325 298 pd register_functions; -#X connect 0 0 6 0; -#X connect 0 1 7 0; -#X connect 0 2 8 0; -#X connect 0 2 18 0; -#X connect 0 3 9 0; -#X connect 1 0 0 0; -#X connect 2 0 0 0; -#X connect 3 0 0 0; -#X connect 4 0 0 0; -#X connect 5 0 0 0; -#X connect 6 0 11 0; -#X connect 7 0 12 0; -#X connect 9 0 10 0; -#X connect 13 0 0 0; -#X connect 13 0 18 0; -#X connect 18 0 29 0; -#X connect 22 0 0 0; -#X connect 25 0 0 0; -#X connect 25 0 29 0; -#X connect 26 0 27 0; -#X connect 27 0 0 0; -#X connect 29 0 16 0; -#X connect 29 1 17 0; -#X connect 29 3 19 0; -#X connect 42 0 3 0; -#X connect 42 0 43 0; -#X connect 43 0 5 0; diff --git a/sieve/sieve.c b/sieve/sieve.c deleted file mode 100644 index 3238844..0000000 --- a/sieve/sieve.c +++ /dev/null @@ -1,410 +0,0 @@ -/* takes a map like 0 1 3 4 7 and only returns the number if it is present */ -/* in the map, or returns the closest, or the next up or down (wrapped)*/ -#include "m_pd.h" -#include <math.h> -#include <string.h> -#define MAXENTRIES 2048 -#define LASTENTRY 2047 - -static t_class *sieve_class; - -/* mode = 0 : block when absent, 1: nearest when absent, 2: shunt when absent */ -typedef struct _map -{ - t_atom map[MAXENTRIES]; - t_atom nomap[MAXENTRIES]; -} t_map; - -typedef struct _sieve -{ - t_object x_obj; - t_map x_map; - t_float input, mode, max, outmap; - t_outlet *mapped, *value, *mapout, *inst; -} t_sieve; - -void sieve_float(t_sieve *x, t_floatarg fin) -{ - int i, ip, in, arg, arga, argb, argaout, argbout, argxa, argxb, itest, itesta, itestb, iresult; - itest = itesta = itestb = iresult = arga = argb = arg = 0; - float test, testa, testb, fresult; - test = testa = testb = fresult = 0; - x->input = arg = fin; - if (x->mode == 0) /* only let through floats when the corresponding - index contains != 0 */ - { - test = fin < 0 ? 0 : atom_getfloatarg(arg, MAXENTRIES, x->x_map.map); - if(test!=0) - { - outlet_bang(x->inst); - outlet_float(x->value, test); - outlet_float(x->mapped, arg); - } - } - else if (x->mode == 1) /* find the nearest float whose (int) index is - != 0 */ - { - test = fin < 0 ? 0 : atom_getfloatarg(arg, MAXENTRIES, x->x_map.map); - if(test!=0) - { - outlet_bang(x->inst); - outlet_float(x->value, test); - outlet_float(x->mapped, arg); - } - else - { - arga = argb = arg; - while(itest == 0 && (arga > -1 || argb < MAXENTRIES)) - { - arga--; - argb++; - argxa = arga >= 0 ? arga : 0; - argxb = argb <= LASTENTRY ? argb : LASTENTRY; - testa = atom_getfloatarg(argxa, MAXENTRIES, x->x_map.map); - testb = atom_getfloatarg(argxb, MAXENTRIES, x->x_map.map); - itesta = testa != 0 ? 1 : 0; - itestb = testb != 0 ? 1 : 0; - itest = fin < 0 ? 0 : itesta + itestb; - } - switch(itest) - { - case 2: /* if we find two at equal distance, output the higher */ - if (x->mode == 1) - { - outlet_float(x->value, testb); - outlet_float(x->mapped, argb); - } - else - { - outlet_float(x->value, testa); - outlet_float(x->mapped, arga); - } - case 1: - iresult = itesta == 1 ? arga : argb; - fresult = itesta == 1 ? testa : testb; - outlet_float(x->value, fresult); - outlet_float(x->mapped, iresult); - case 0: - break; - } - } - } - else if (x->mode==2) /* if the index is 0, find the next highest */ - { - itest = 0; - test = fin < 0 ? 0 : atom_getfloatarg(arg, MAXENTRIES, x->x_map.map); - if(test!=0) - { - outlet_bang(x->inst); - outlet_float(x->value, test); - outlet_float(x->mapped, arg); - } - else - { - arga = arg; - while(itest == 0 && (x->max > 0)) - { - arga = (arga + 1) <= LASTENTRY ? (arga + 1) : 0; - testa = atom_getfloatarg(arga, MAXENTRIES, x->x_map.map); - itest = testa != 0 ? 1 : 0; - } - if(x->max > 0 && fin >= 0) - { - outlet_float(x->value, testa); - outlet_float(x->mapped, arga); - } - } - } - else if (x->mode == 3) /* if the index is 0, find the next lowest */ - { - itest = 0; - test = fin < 0 ? 0 : atom_getfloatarg(arg, MAXENTRIES, x->x_map.map); - if(test!=0) - { - outlet_bang(x->inst); - outlet_float(x->value, test); - outlet_float(x->mapped, arg); - } - else - { - arga = arg; - while(itest == 0 && (x->max > 0)) - { - argb = arga - 1; - arga = argb >= 0 ? argb : LASTENTRY; - testa = atom_getfloatarg(arga, MAXENTRIES, x->x_map.map); - itest = testa != 0 ? 1 : 0; - } - } - outlet_float(x->value, testa); - outlet_float(x->mapped, arga); - } -} - -void sieve_set(t_sieve *x, t_floatarg fmap, t_floatarg fval) /* set one value - in the array */ -{ - float fvaller; - if(fmap < MAXENTRIES && fmap >= 0) - { - int imap = (int)fmap; - fvaller = fval != 0 ? 0 : 1; - SETFLOAT(&x->x_map.map[imap], fval); - SETFLOAT(&x->x_map.nomap[imap], fvaller); - x->max = fmap > x->max ? fmap : x->max; - } -} - -void sieve_delete(t_sieve *x, t_floatarg loc) /* remove a value */ -{ - int addloc = (int)loc + 1; - int maxentry = (int)x->max; - int i; - float buffer; - if(loc<x->max && loc>=0) - { - for(i=addloc;i<=maxentry;i++) - { - buffer = atom_getfloatarg(i,MAXENTRIES,x->x_map.map); - SETFLOAT(&x->x_map.map[i-1],buffer); - if(buffer!=0) - { - SETFLOAT(&x->x_map.nomap[i-1],0); - } - else - { - SETFLOAT(&x->x_map.nomap[i-1],1); - } - } - SETFLOAT(&x->x_map.map[maxentry],0); - x->max--; - } - else if(loc==x->max) - { - x->max--; - SETFLOAT(&x->x_map.map[maxentry],0); - } -} - -void sieve_shunt(t_sieve *x, t_floatarg loc) /* move down - and decrement subsequent */ -{ - int addloc = (int)loc + 1; - int maxentry = (int)x->max; - int i; - float buffer, shunt; - if(loc<x->max && loc>=0) - { - for(i=addloc;i<=maxentry;i++) - { - buffer = atom_getfloatarg(i,MAXENTRIES,x->x_map.map); - shunt = buffer - 1; - SETFLOAT(&x->x_map.map[i-1],shunt); - if(shunt!=0) - { - SETFLOAT(&x->x_map.nomap[i-1],0); - } - else - { - SETFLOAT(&x->x_map.nomap[i-1],1); - } - } - SETFLOAT(&x->x_map.map[maxentry],0); - x->max--; - } - else if(loc==x->max) - { - x->max--; - SETFLOAT(&x->x_map.map[maxentry],0); - } -} - -void sieve_shift(t_sieve *x, t_floatarg loc) /* move up and - increment subsequent */ -{ - int location = (int)loc; - int addloc; - int maxentry = (int)x->max+1; - int i; - float buffer, shift; - if(location>=0 && maxentry < MAXENTRIES) - { - for(i=maxentry;i>=location;i--) - { - buffer = atom_getfloatarg(i-1,MAXENTRIES,x->x_map.map); - shift = buffer + 1; - SETFLOAT(&x->x_map.map[i],shift); - if(shift!=0) - { - SETFLOAT(&x->x_map.nomap[i],0); - } - else - { - SETFLOAT(&x->x_map.nomap[i],1); - } - } - x->max++; - } -} - -void sieve_insert(t_sieve *x, t_floatarg loc, t_floatarg val) -/* insert a value at specific location, moving subsequent values up */ -{ - int location = (int)loc; - int maxentry = (int)x->max+1; - int i; - float buffer; - if(loc>=0 && maxentry < MAXENTRIES) - { - for(i=maxentry;i>=location;i--) - { - buffer = atom_getfloatarg(i-1,MAXENTRIES,x->x_map.map); - SETFLOAT(&x->x_map.map[i],buffer); - if(buffer!=0) - { - SETFLOAT(&x->x_map.nomap[i],0); - } - else - { - SETFLOAT(&x->x_map.nomap[i],1); - } - } - x->max++; - SETFLOAT(&x->x_map.map[location], val); - if(val) - { - SETFLOAT(&x->x_map.nomap[location],0); - } - else - { - SETFLOAT(&x->x_map.nomap[location],1); - } - } -} - -void sieve_get(t_sieve *x, t_floatarg inv) /* outlet to map or inverse */ -{ - if(inv!=0) - { - outlet_list(x->mapout, gensym("list"), x->max+1, x->x_map.nomap); - } - else outlet_list(x->mapout, gensym("list"), x->max+1, x->x_map.map); - x->outmap = inv; -} - -void sieve_clear(t_sieve *x) -{ - int i; - for(i=0;i<MAXENTRIES;i++) - { - SETFLOAT(&x->x_map.map[i], 0); - SETFLOAT(&x->x_map.nomap[i], 1); - } - x->max = 0; -} - -void sieve_map(t_sieve *x, t_symbol *s, int argc, t_atom *argv) /* set the whole map */ -{ - int i; - for(i=0;i<MAXENTRIES;i++) - { - SETFLOAT(x->x_map.map+i, 0); - SETFLOAT(x->x_map.nomap+i, 1); - } - x->max = 0; - float arg; - for(i=0;i<argc;i++) - { - arg = atom_getfloat(argv+i); - if(arg != 0) - { - SETFLOAT(&x->x_map.map[i], arg); - SETFLOAT(&x->x_map.nomap[i], 0); - x->max = i; - } - } - if (x->max > 0 && x->outmap == 0) - { - outlet_list(x->mapout, gensym("list"), x->max+1, x->x_map.map); - } - else if (x->max > 0 && x->outmap == 1) - { - outlet_list(x->mapout, gensym("list"), x->max+1, x->x_map.nomap); - } -} - -void sieve_mode(t_sieve *x, t_floatarg fmode) -{ - x->mode = fmode < 0 ? 0 : fmode > 3 ? 3 : fmode; -} - -void sieve_debug(t_sieve *x) -{ - float ele0, ele1, ele2, ele3, ele4, ele5, ele6, ele7, ele8, ele9; - float nle0, nle1, nle2, nle3, nle4, nle5, nle6, nle7, nle8, nle9; - ele0 = atom_getfloatarg(0, MAXENTRIES, x->x_map.map); - ele1 = atom_getfloatarg(1, MAXENTRIES, x->x_map.map); - ele2 = atom_getfloatarg(2, MAXENTRIES, x->x_map.map); - ele3 = atom_getfloatarg(3, MAXENTRIES, x->x_map.map); - ele4 = atom_getfloatarg(4, MAXENTRIES, x->x_map.map); - ele5 = atom_getfloatarg(5, MAXENTRIES, x->x_map.map); - ele6 = atom_getfloatarg(6, MAXENTRIES, x->x_map.map); - ele7 = atom_getfloatarg(7, MAXENTRIES, x->x_map.map); - ele8 = atom_getfloatarg(8, MAXENTRIES, x->x_map.map); - ele9 = atom_getfloatarg(9, MAXENTRIES, x->x_map.map); - nle0 = atom_getfloatarg(0, MAXENTRIES, x->x_map.nomap); - nle1 = atom_getfloatarg(1, MAXENTRIES, x->x_map.nomap); - nle2 = atom_getfloatarg(2, MAXENTRIES, x->x_map.nomap); - nle3 = atom_getfloatarg(3, MAXENTRIES, x->x_map.nomap); - nle4 = atom_getfloatarg(4, MAXENTRIES, x->x_map.nomap); - nle5 = atom_getfloatarg(5, MAXENTRIES, x->x_map.nomap); - nle6 = atom_getfloatarg(6, MAXENTRIES, x->x_map.nomap); - nle7 = atom_getfloatarg(7, MAXENTRIES, x->x_map.nomap); - nle8 = atom_getfloatarg(8, MAXENTRIES, x->x_map.nomap); - nle9 = atom_getfloatarg(9, MAXENTRIES, x->x_map.nomap); - post("mode = %f, max = %f", x->mode, x->max); - post("first 10 elements = %f, %f, %f, %f, %f, %f, %f, %f, %f, %f", ele0, ele1, ele2, ele3, ele4, ele5, ele6, ele7, ele8, ele9); - post("first 10 elements = %f, %f, %f, %f, %f, %f, %f, %f, %f, %f", nle0, nle1, nle2, nle3, nle4, nle5, nle6, nle7, nle8, nle9); -} - -void *sieve_new(t_floatarg f) -{ - t_sieve *x = (t_sieve *)pd_new(sieve_class); - x->mode = f; - x->max = 0; - x->outmap = 0; - int i; - for(i=0;i<MAXENTRIES;i++) - { - SETFLOAT(x->x_map.map+i, 0); - SETFLOAT(x->x_map.nomap+i, 1); - } - x->mapped = outlet_new(&x->x_obj, &s_float); - x->value = outlet_new(&x->x_obj, &s_float); - x->mapout = outlet_new(&x->x_obj, &s_list); - x->inst = outlet_new(&x->x_obj, &s_bang); - return (void *)x; -} - -void sieve_setup(void) -{ - sieve_class = class_new(gensym("sieve"), - (t_newmethod)sieve_new, - 0, sizeof(t_sieve), - 0, A_DEFFLOAT, 0); - post("|^^^^^^^^^^^^^sieve^^^^^^^^^^^^^|"); - post("|->^^^integer map to floats^^^<-|"); - post("|^^^^^^^Edward Kelly 2006^^^^^^^|"); - - class_addfloat(sieve_class, sieve_float); - class_addmethod(sieve_class, (t_method)sieve_set, gensym("set"), A_DEFFLOAT, A_DEFFLOAT, 0); - class_addmethod(sieve_class, (t_method)sieve_map, gensym("map"), A_GIMME, 0); - class_addmethod(sieve_class, (t_method)sieve_clear, gensym("clear"), A_DEFFLOAT, 0); - class_addmethod(sieve_class, (t_method)sieve_get, gensym("get"), A_DEFFLOAT, 0); - class_addmethod(sieve_class, (t_method)sieve_delete, gensym("delete"), A_DEFFLOAT, 0); - class_addmethod(sieve_class, (t_method)sieve_shunt, gensym("shunt"), A_DEFFLOAT, 0); - class_addmethod(sieve_class, (t_method)sieve_shift, gensym("shift"), A_DEFFLOAT, 0); - class_addmethod(sieve_class, (t_method)sieve_insert, gensym("insert"), A_DEFFLOAT, A_DEFFLOAT, 0); - class_addmethod(sieve_class, (t_method)sieve_mode, gensym("mode"), A_DEFFLOAT, 0); - class_addmethod(sieve_class, (t_method)sieve_debug, gensym("debug"), A_DEFFLOAT, 0); -} |