/* memread_12.10.04 sets up a pointer and then increments the position to read through memory Thadeus Frazier-Reed c. 2004 tcfr33@yahoo.com http://music.calarts.edu/~tcfr33 */ #include "ext.h" typedef struct memread { t_object f_ob; float *point; // create a point in memory char play; long phase; long limit; void *out; }t_memread; void *memread_class; void memread_bang(t_memread *x); void memread_int(t_memread *x, long n); void *memread_new(long arg1); //------------------------------------------------- //main void main(void) { setup((t_messlist **)&memread_class, (method)memread_new, 0L, (short)sizeof(t_memread), 0L, A_DEFLONG, 0); addbang((method)memread_bang); addint((method)memread_int); } //-------------------------- // new void *memread_new(long arg1) { t_memread *x; x = (t_memread *)newobject(memread_class); x->out = floatout(x); x->point = (float *)getbytes(1 * sizeof(float)); if(arg1 == 1) x->point = (float *)0x000; x->phase = 0; return(x); } //------------------------- // bang void memread_bang(t_memread *x) { } //------------------------ // int void memread_int(t_memread *x, long n) { x->phase = n; outlet_float(x->out, x->point[x->phase]); }