Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5400
Modified Files: Tag: devel_0_39 desire.c Log Message: .
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.121 retrieving revision 1.1.2.122 diff -C2 -d -r1.1.2.121 -r1.1.2.122 *** desire.c 21 Aug 2006 05:34:37 -0000 1.1.2.121 --- desire.c 21 Aug 2006 05:45:08 -0000 1.1.2.122 *************** *** 7672,7691 ****
/* create a gstub which is "owned" by a glist (gl) or an array ("a"). */ ! ! t_gstub *gstub_new(t_glist *gl, t_array *a) ! { t_gstub *gs = (t_gstub *)t_getbytes(sizeof(*gs)); ! if (gl) ! { gs->gs_which = GP_GLIST; gs->gs_un.gs_glist = gl; ! } ! else ! { gs->gs_which = GP_ARRAY; gs->gs_un.gs_array = a; } gs->gs_refcount = 0; ! return (gs); }
--- 7672,7686 ----
/* create a gstub which is "owned" by a glist (gl) or an array ("a"). */ ! t_gstub *gstub_new(t_glist *gl, t_array *a) { t_gstub *gs = (t_gstub *)t_getbytes(sizeof(*gs)); ! if (gl) { gs->gs_which = GP_GLIST; gs->gs_un.gs_glist = gl; ! } else { gs->gs_which = GP_ARRAY; gs->gs_un.gs_array = a; } gs->gs_refcount = 0; ! return gs; }
*************** *** 7694,7703 **** whenever a gpointer is unset from pointing here. If the owner is gone and the refcount goes to zero, we can free the gstub safely. */ ! ! static void gstub_dis(t_gstub *gs) ! { int refcount = --gs->gs_refcount; ! if ((!refcount) && gs->gs_which == GP_NONE) ! t_freebytes(gs, sizeof (*gs)); else if (refcount < 0) bug("gstub_dis"); } --- 7689,7695 ---- whenever a gpointer is unset from pointing here. If the owner is gone and the refcount goes to zero, we can free the gstub safely. */ ! static void gstub_dis(t_gstub *gs) { int refcount = --gs->gs_refcount; ! if ((!refcount) && gs->gs_which == GP_NONE) t_freebytes(gs, sizeof (*gs)); else if (refcount < 0) bug("gstub_dis"); } *************** *** 7706,7712 **** being deleted. If no gpointers are pointing here, we can free the gstub; otherwise we wait for the last gstub_dis() to free it. */ ! ! void gstub_cutoff(t_gstub *gs) ! { gs->gs_which = GP_NONE; if (gs->gs_refcount < 0) bug("gstub_cutoff"); --- 7698,7702 ---- being deleted. If no gpointers are pointing here, we can free the gstub; otherwise we wait for the last gstub_dis() to free it. */ ! void gstub_cutoff(t_gstub *gs) { gs->gs_which = GP_NONE; if (gs->gs_refcount < 0) bug("gstub_cutoff"); *************** *** 7718,7781 **** the object hasn't disappeared since this pointer was generated. Unless "headok" is set, the routine also fails for the head of a list. */ ! ! int gpointer_check(const t_gpointer *gp, int headok) ! { t_gstub *gs = gp->gp_stub; if (!gs) return (0); ! if (gs->gs_which == GP_ARRAY) ! { ! if (gs->gs_un.gs_array->a_valid != gp->gp_valid) return (0); ! else return (1); ! } ! else if (gs->gs_which == GP_GLIST) ! { ! if (!headok && !gp->gp_un.gp_scalar) return (0); ! else if (gs->gs_un.gs_glist->gl_valid != gp->gp_valid) return (0); ! else return (1); ! } ! else return (0); }
/* get the template for the object pointer to. Assumes we've already checked freshness. Returns 0 if head of list. */ ! ! static t_symbol *gpointer_gettemplatesym(const t_gpointer *gp) ! { t_gstub *gs = gp->gp_stub; ! if (gs->gs_which == GP_GLIST) ! { t_scalar *sc = gp->gp_un.gp_scalar; ! if (sc) ! return (sc->sc_template); ! else return (0); ! } ! else ! { t_array *a = gs->gs_un.gs_array; ! return (a->a_templatesym); } }
! /* copy a pointer to another, assuming the second one hasn't yet been ! initialized. New gpointers should be initialized either by this ! routine or by gpointer_init below. */ ! void gpointer_copy(const t_gpointer *gpfrom, t_gpointer *gpto) ! { *gpto = *gpfrom; ! if (gpto->gp_stub) ! gpto->gp_stub->gs_refcount++; else bug("gpointer_copy"); }
! /* clear a gpointer that was previously set, releasing the associted ! gstub if this was the last reference to it. */ ! void gpointer_unset(t_gpointer *gp) ! { t_gstub *gs = gp->gp_stub; if (gs) {gstub_dis(gs); gp->gp_stub = 0;} }
! void gpointer_setglist(t_gpointer *gp, t_glist *glist, t_scalar *x) ! { t_gstub *gs = gp->gp_stub; if (gs) gstub_dis(gs); --- 7708,7752 ---- the object hasn't disappeared since this pointer was generated. Unless "headok" is set, the routine also fails for the head of a list. */ ! int gpointer_check(const t_gpointer *gp, int headok) { t_gstub *gs = gp->gp_stub; if (!gs) return (0); ! if (gs->gs_which == GP_ARRAY) return gs->gs_un.gs_array->a_valid == gp->gp_valid; ! if (gs->gs_which == GP_GLIST) { ! if (!headok && !gp->gp_un.gp_scalar) return 0; ! if (gs->gs_un.gs_glist->gl_valid != gp->gp_valid) return 0; ! return 1; ! } else return 0; }
/* get the template for the object pointer to. Assumes we've already checked freshness. Returns 0 if head of list. */ ! static t_symbol *gpointer_gettemplatesym(const t_gpointer *gp) { t_gstub *gs = gp->gp_stub; ! if (gs->gs_which == GP_GLIST) { t_scalar *sc = gp->gp_un.gp_scalar; ! return sc ? sc->sc_template : 0; ! } else { t_array *a = gs->gs_un.gs_array; ! return a->a_templatesym; } }
! /* copy a pointer to another, assuming the second one hasn't yet been ! initialized. New gpointers should be initialized either by this ! routine or by gpointer_init below. */ ! void gpointer_copy(const t_gpointer *gpfrom, t_gpointer *gpto) { *gpto = *gpfrom; ! if (gpto->gp_stub) gpto->gp_stub->gs_refcount++; else bug("gpointer_copy"); }
! /* clear a gpointer that was previously set, releasing the associted ! gstub if this was the last reference to it. */ ! void gpointer_unset(t_gpointer *gp) { t_gstub *gs = gp->gp_stub; if (gs) {gstub_dis(gs); gp->gp_stub = 0;} }
! void gpointer_setglist(t_gpointer *gp, t_glist *glist, t_scalar *x) { t_gstub *gs = gp->gp_stub; if (gs) gstub_dis(gs); *************** *** 7786,7791 **** }
! static void gpointer_setarray(t_gpointer *gp, t_array *array, t_word *w) ! { t_gstub *gs = gp->gp_stub; if (gs) gstub_dis(gs); --- 7757,7761 ---- }
! static void gpointer_setarray(t_gpointer *gp, t_array *array, t_word *w) { t_gstub *gs = gp->gp_stub; if (gs) gstub_dis(gs); *************** *** 7796,7801 **** }
! void gpointer_init(t_gpointer *gp) ! { gp->gp_stub = 0; gp->gp_valid = 0; --- 7766,7770 ---- }
! void gpointer_init(t_gpointer *gp) { gp->gp_stub = 0; gp->gp_valid = 0; *************** *** 7807,7818 **** static t_class *ptrobj_class;
! typedef struct ! { t_symbol *to_type; t_outlet *to_outlet; } t_typedout;
! typedef struct _ptrobj ! { t_object x_obj; t_gpointer x_gp; --- 7776,7785 ---- static t_class *ptrobj_class;
! typedef struct { t_symbol *to_type; t_outlet *to_outlet; } t_typedout;
! typedef struct _ptrobj { t_object x_obj; t_gpointer x_gp; *************** *** 7823,7828 **** } t_ptrobj;
! static void *ptrobj_new(t_symbol *classname, int argc, t_atom *argv) ! { t_ptrobj *x = (t_ptrobj *)pd_new(ptrobj_class); t_typedout *to; --- 7790,7794 ---- } t_ptrobj;
! static void *ptrobj_new(t_symbol *classname, int argc, t_atom *argv) { t_ptrobj *x = (t_ptrobj *)pd_new(ptrobj_class); t_typedout *to; *************** *** 7831,7836 **** x->x_typedout = to = (t_typedout *)getbytes(argc * sizeof (*to)); x->x_ntypedout = n = argc; ! for (; n--; to++) ! { to->to_outlet = outlet_new(&x->x_obj, &s_pointer); to->to_type = canvas_makebindsym(atom_getsymbol(argv++)); --- 7797,7801 ---- x->x_typedout = to = (t_typedout *)getbytes(argc * sizeof (*to)); x->x_ntypedout = n = argc; ! for (; n--; to++) { to->to_outlet = outlet_new(&x->x_obj, &s_pointer); to->to_type = canvas_makebindsym(atom_getsymbol(argv++)); *************** *** 7839,7847 **** x->x_bangout = outlet_new(&x->x_obj, &s_bang); pointerinlet_new(&x->x_obj, &x->x_gp); ! return (x); }
! static void ptrobj_traverse(t_ptrobj *x, t_symbol *s) ! { t_glist *glist = (t_glist *)pd_findbyclass(s, canvas_class); if (glist) gpointer_setglist(&x->x_gp, glist, 0); --- 7804,7811 ---- x->x_bangout = outlet_new(&x->x_obj, &s_bang); pointerinlet_new(&x->x_obj, &x->x_gp); ! return x; }
! static void ptrobj_traverse(t_ptrobj *x, t_symbol *s) { t_glist *glist = (t_glist *)pd_findbyclass(s, canvas_class); if (glist) gpointer_setglist(&x->x_gp, glist, 0); *************** *** 7849,7854 **** }
! static void ptrobj_vnext(t_ptrobj *x, float f) ! { t_gobj *gobj; t_gpointer *gp = &x->x_gp; --- 7813,7817 ---- }
! static void ptrobj_vnext(t_ptrobj *x, float f) { t_gobj *gobj; t_gpointer *gp = &x->x_gp; *************** *** 7887,7892 **** static void ptrobj_next(t_ptrobj *x) {ptrobj_vnext(x, 0);}
! static void ptrobj_sendwindow(t_ptrobj *x, t_symbol *s, int argc, t_atom *argv) ! { t_glist *glist; t_pd *canvas; --- 7850,7854 ---- static void ptrobj_next(t_ptrobj *x) {ptrobj_vnext(x, 0);}
! static void ptrobj_sendwindow(t_ptrobj *x, t_symbol *s, int argc, t_atom *argv) { t_glist *glist; t_pd *canvas; *************** *** 7907,7912 **** }
! static void ptrobj_bang(t_ptrobj *x) ! { t_symbol *templatesym; int n; --- 7869,7873 ---- }
! static void ptrobj_bang(t_ptrobj *x) { t_symbol *templatesym; int n; *************** *** 7921,7926 ****
! static void ptrobj_pointer(t_ptrobj *x, t_gpointer *gp) ! { gpointer_unset(&x->x_gp); gpointer_copy(gp, &x->x_gp); --- 7882,7886 ----
! static void ptrobj_pointer(t_ptrobj *x, t_gpointer *gp) { gpointer_unset(&x->x_gp); gpointer_copy(gp, &x->x_gp); *************** *** 7929,7934 ****
! static void ptrobj_rewind(t_ptrobj *x) ! { t_glist *glist; t_gstub *gs; --- 7889,7893 ----
! static void ptrobj_rewind(t_ptrobj *x) { t_glist *glist; t_gstub *gs; *************** *** 7936,7961 **** gs = x->x_gp.gp_stub; if (gs->gs_which != GP_GLIST) {pd_error(x, "pointer_rewind: sorry, unavailable for arrays"); return;} ! glist = gs->gs_un.gs_glist; gpointer_setglist(&x->x_gp, glist, 0); ptrobj_bang(x); }
! static void ptrobj_free(t_ptrobj *x) ! { freebytes(x->x_typedout, x->x_ntypedout * sizeof (*x->x_typedout)); gpointer_unset(&x->x_gp); }
! static void ptrobj_setup(void) ! { t_class *c = ptrobj_class = class_new(gensym("pointer"), (t_newmethod)ptrobj_new, (t_method)ptrobj_free, sizeof(t_ptrobj), 0, A_GIMME, 0); ! class_addmethod3(c, ptrobj_traverse,"traverse", "s"); ! class_addmethod3(c, ptrobj_next,"next",""); class_addmethod3(c, ptrobj_vnext,"vnext","F"); ! class_addmethod3(c, ptrobj_sendwindow,"send-window","*"); class_addmethod3(c, ptrobj_rewind, "rewind",""); ! class_addpointer(c, ptrobj_pointer); ! class_addbang(c, ptrobj_bang); }
--- 7895,7918 ---- gs = x->x_gp.gp_stub; if (gs->gs_which != GP_GLIST) {pd_error(x, "pointer_rewind: sorry, unavailable for arrays"); return;} ! glist = gs->gs_un.gs_glist; gpointer_setglist(&x->x_gp, glist, 0); ptrobj_bang(x); }
! static void ptrobj_free(t_ptrobj *x) { freebytes(x->x_typedout, x->x_ntypedout * sizeof (*x->x_typedout)); gpointer_unset(&x->x_gp); }
! static void ptrobj_setup(void) { t_class *c = ptrobj_class = class_new(gensym("pointer"), (t_newmethod)ptrobj_new, (t_method)ptrobj_free, sizeof(t_ptrobj), 0, A_GIMME, 0); ! class_addmethod3(c, ptrobj_traverse,"traverse", "s"); ! class_addmethod3(c, ptrobj_next,"next",""); class_addmethod3(c, ptrobj_vnext,"vnext","F"); ! class_addmethod3(c, ptrobj_sendwindow,"send-window","*"); class_addmethod3(c, ptrobj_rewind, "rewind",""); ! class_addpointer(c, ptrobj_pointer); ! class_addbang(c, ptrobj_bang); }
*************** *** 7964,7975 **** static t_class *get_class;
! typedef struct _getvariable ! { t_symbol *gv_sym; t_outlet *gv_outlet; } t_getvariable;
! typedef struct _get ! { t_object x_obj; t_symbol *x_templatesym; --- 7921,7930 ---- static t_class *get_class;
! typedef struct _getvariable { t_symbol *gv_sym; t_outlet *gv_outlet; } t_getvariable;
! typedef struct _get { t_object x_obj; t_symbol *x_templatesym; *************** *** 7978,7983 **** } t_get;
! static void *get_new(t_symbol *why, int argc, t_atom *argv) ! { t_get *x = (t_get *)pd_new(get_class); int i; --- 7933,7937 ---- } t_get;
! static void *get_new(t_symbol *why, int argc, t_atom *argv) { t_get *x = (t_get *)pd_new(get_class); int i; *************** *** 7985,8009 **** x->x_templatesym = canvas_makebindsym(atom_getsymbolarg(0, argc, argv)); if (argc) argc--, argv++; ! x->x_variables ! = (t_getvariable *)getbytes(argc * sizeof (*x->x_variables)); x->x_nout = argc; ! for (i = 0, sp = x->x_variables; i < argc; i++, sp++) ! { sp->gv_sym = atom_getsymbolarg(i, argc, argv); sp->gv_outlet = outlet_new(&x->x_obj, 0); ! /* LATER connect with the template and set the outlet's type ! correctly. We can't yet guarantee that the template is there ! before we hit this routine. */ } ! return (x); }
! static void get_pointer(t_get *x, t_gpointer *gp) ! { int nitems = x->x_nout, i; t_symbol *templatesym = x->x_templatesym; t_template *template = template_findbyname(templatesym); t_gstub *gs = gp->gp_stub; ! t_word *vec; t_getvariable *vp; TEMPLATE_CHECK(x,) --- 7939,7960 ---- x->x_templatesym = canvas_makebindsym(atom_getsymbolarg(0, argc, argv)); if (argc) argc--, argv++; ! x->x_variables = (t_getvariable *)getbytes(argc * sizeof (*x->x_variables)); x->x_nout = argc; ! for (i = 0, sp = x->x_variables; i < argc; i++, sp++) { sp->gv_sym = atom_getsymbolarg(i, argc, argv); sp->gv_outlet = outlet_new(&x->x_obj, 0); ! /* LATER connect with the template and set the outlet's type ! correctly. We can't yet guarantee that the template is there ! before we hit this routine. */ } ! return x; }
! static void get_pointer(t_get *x, t_gpointer *gp) { int nitems = x->x_nout, i; t_symbol *templatesym = x->x_templatesym; t_template *template = template_findbyname(templatesym); t_gstub *gs = gp->gp_stub; ! t_word *vec; t_getvariable *vp; TEMPLATE_CHECK(x,) *************** *** 8023,8033 **** }
! static void get_free(t_get *x) ! { freebytes(x->x_variables, x->x_nout * sizeof (*x->x_variables)); }
! static void get_setup(void) ! { get_class = class_new(gensym("get"), (t_newmethod)get_new, (t_method)get_free, sizeof(t_get), 0, A_GIMME, 0); --- 7974,7982 ---- }
! static void get_free(t_get *x) { freebytes(x->x_variables, x->x_nout * sizeof (*x->x_variables)); }
! static void get_setup(void) { get_class = class_new(gensym("get"), (t_newmethod)get_new, (t_method)get_free, sizeof(t_get), 0, A_GIMME, 0); *************** *** 8039,8050 **** static t_class *set_class;
! typedef struct _setvariable ! { t_symbol *gv_sym; union word gv_w; } t_setvariable;
! typedef struct _set ! { t_object x_obj; t_gpointer x_gp; --- 7988,7997 ---- static t_class *set_class;
! typedef struct _setvariable { t_symbol *gv_sym; union word gv_w; } t_setvariable;
! typedef struct _set { t_object x_obj; t_gpointer x_gp; *************** *** 8055,8066 **** } t_set;
! static void *set_new(t_symbol *why, int argc, t_atom *argv) ! { t_set *x = (t_set *)pd_new(set_class); int i; t_setvariable *sp; ! if (argc && (argv[0].a_type == A_SYMBOL) && ! !strcmp(argv[0].a_w.w_symbol->s_name, "-symbol")) ! { x->x_issymbol = 1; argc--; --- 8002,8010 ---- } t_set;
! static void *set_new(t_symbol *why, int argc, t_atom *argv) { t_set *x = (t_set *)pd_new(set_class); int i; t_setvariable *sp; ! if (argc && (argv[0].a_type == A_SYMBOL) && !strcmp(argv[0].a_w.w_symbol->s_name, "-symbol")) { x->x_issymbol = 1; argc--; *************** *** 8070,8089 **** x->x_templatesym = canvas_makebindsym(atom_getsymbolarg(0, argc, argv)); if (argc) argc--, argv++; ! x->x_variables ! = (t_setvariable *)getbytes(argc * sizeof (*x->x_variables)); x->x_nin = argc; ! if (argc) ! { ! for (i = 0, sp = x->x_variables; i < argc; i++, sp++) ! { sp->gv_sym = atom_getsymbolarg(i, argc, argv); ! if (x->x_issymbol) ! sp->gv_w.w_symbol = &s_; else sp->gv_w.w_float = 0; ! if (i) ! { ! if (x->x_issymbol) ! symbolinlet_new(&x->x_obj, &sp->gv_w.w_symbol); ! else floatinlet_new(&x->x_obj, &sp->gv_w.w_float); } } --- 8014,8027 ---- x->x_templatesym = canvas_makebindsym(atom_getsymbolarg(0, argc, argv)); if (argc) argc--, argv++; ! x->x_variables = (t_setvariable *)getbytes(argc * sizeof (*x->x_variables)); x->x_nin = argc; ! if (argc) { ! for (i = 0, sp = x->x_variables; i < argc; i++, sp++) { sp->gv_sym = atom_getsymbolarg(i, argc, argv); ! if (x->x_issymbol) sp->gv_w.w_symbol = &s_; else sp->gv_w.w_float = 0; ! if (i) { ! if (x->x_issymbol) symbolinlet_new(&x->x_obj, &sp->gv_w.w_symbol); ! else floatinlet_new(&x->x_obj, &sp->gv_w.w_float); } } *************** *** 8094,8099 **** }
! static void set_bang(t_set *x) ! { int nitems = x->x_nin, i; t_symbol *templatesym = x->x_templatesym; --- 8032,8036 ---- }
! static void set_bang(t_set *x) { int nitems = x->x_nin, i; t_symbol *templatesym = x->x_templatesym; *************** *** 8136,8152 **** }
! static void set_free(t_set *x) ! { freebytes(x->x_variables, x->x_nin * sizeof (*x->x_variables)); gpointer_unset(&x->x_gp); }
! static void set_setup(void) ! { set_class = class_new(gensym("set"), (t_newmethod)set_new, (t_method)set_free, sizeof(t_set), 0, A_GIMME, 0); ! class_addfloat(set_class, set_float); ! class_addsymbol(set_class, set_symbol); ! class_addbang(set_class, set_bang); }
--- 8073,8087 ---- }
! static void set_free(t_set *x) { freebytes(x->x_variables, x->x_nin * sizeof (*x->x_variables)); gpointer_unset(&x->x_gp); }
! static void set_setup(void) { set_class = class_new(gensym("set"), (t_newmethod)set_new, (t_method)set_free, sizeof(t_set), 0, A_GIMME, 0); ! class_addfloat(set_class, set_float); ! class_addsymbol(set_class, set_symbol); ! class_addbang(set_class, set_bang); }
*************** *** 8155,8160 **** static t_class *elem_class;
! typedef struct _elem ! { t_object x_obj; t_symbol *x_templatesym; --- 8090,8094 ---- static t_class *elem_class;
! typedef struct _elem { t_object x_obj; t_symbol *x_templatesym; *************** *** 8164,8169 **** } t_elem;
! static void *elem_new(t_symbol *templatesym, t_symbol *fieldsym) ! { t_elem *x = (t_elem *)pd_new(elem_class); x->x_templatesym = canvas_makebindsym(templatesym); --- 8098,8102 ---- } t_elem;
! static void *elem_new(t_symbol *templatesym, t_symbol *fieldsym) { t_elem *x = (t_elem *)pd_new(elem_class); x->x_templatesym = canvas_makebindsym(templatesym); *************** *** 8173,8184 **** pointerinlet_new(&x->x_obj, &x->x_gparent); outlet_new(&x->x_obj, &s_pointer); ! return (x); }
! static void elem_float(t_elem *x, t_float f) ! { int indx = f, nitems, onset; ! t_symbol *templatesym = x->x_templatesym, *fieldsym = x->x_fieldsym, ! *elemtemplatesym; t_template *template = template_findbyname(templatesym); t_template *elemtemplate; --- 8106,8115 ---- pointerinlet_new(&x->x_obj, &x->x_gparent); outlet_new(&x->x_obj, &s_pointer); ! return x; }
! static void elem_float(t_elem *x, t_float f) { int indx = f, nitems, onset; ! t_symbol *templatesym = x->x_templatesym, *fieldsym = x->x_fieldsym, *elemtemplatesym; t_template *template = template_findbyname(templatesym); t_template *elemtemplate; *************** *** 8187,8191 **** t_array *array; int elemsize, type; ! if (!gpointer_check(gparent, 0)) {pd_error(x, "element: empty pointer"); return;} if (gpointer_gettemplatesym(gparent) != x->x_templatesym) --- 8118,8122 ---- t_array *array; int elemsize, type; ! if (!gpointer_check(gparent, 0)) {pd_error(x, "element: empty pointer"); return;} if (gpointer_gettemplatesym(gparent) != x->x_templatesym) *************** *** 8819,8824 **** {binbuf_eval(x->m_text.te_binbuf, &x->m_mresp.mr_pd, argc, argv);}
! static void message_set(t_message *x, t_symbol *s, int argc, t_atom *argv) ! { binbuf_clear(x->m_text.te_binbuf); binbuf_add(x->m_text.te_binbuf, argc, argv); --- 8750,8754 ---- {binbuf_eval(x->m_text.te_binbuf, &x->m_mresp.mr_pd, argc, argv);}
! static void message_set(t_message *x, t_symbol *s, int argc, t_atom *argv) { binbuf_clear(x->m_text.te_binbuf); binbuf_add(x->m_text.te_binbuf, argc, argv); *************** *** 8826,8837 **** }
! static void message_add2(t_message *x, t_symbol *s, int argc, t_atom *argv) ! { binbuf_add(x->m_text.te_binbuf, argc, argv); glist_retext(x->m_glist, &x->m_text); }
! static void message_add(t_message *x, t_symbol *s, int argc, t_atom *argv) ! { binbuf_add(x->m_text.te_binbuf, argc, argv); binbuf_addsemi(x->m_text.te_binbuf); --- 8756,8765 ---- }
! static void message_add2(t_message *x, t_symbol *s, int argc, t_atom *argv) { binbuf_add(x->m_text.te_binbuf, argc, argv); glist_retext(x->m_glist, &x->m_text); }
! static void message_add(t_message *x, t_symbol *s, int argc, t_atom *argv) { binbuf_add(x->m_text.te_binbuf, argc, argv); binbuf_addsemi(x->m_text.te_binbuf); *************** *** 8839,8844 **** }
! static void message_addcomma(t_message *x) ! { t_atom a; SETCOMMA(&a); --- 8767,8771 ---- }
! static void message_addcomma(t_message *x) { t_atom a; SETCOMMA(&a); *************** *** 8847,8857 **** }
! static void message_addsemi(t_message *x) ! { message_add(x, 0, 0, 0); }
! static void message_adddollar(t_message *x, t_floatarg f) ! { t_atom a; int n = f; --- 8774,8782 ---- }
! static void message_addsemi(t_message *x) { message_add(x, 0, 0, 0); }
! static void message_adddollar(t_message *x, t_floatarg f) { t_atom a; int n = f; *************** *** 8863,8868 **** }
! static void message_adddollsym(t_message *x, t_symbol *s) ! { t_atom a; SETDOLLSYM(&a, s); --- 8788,8792 ---- }
! static void message_adddollsym(t_message *x, t_symbol *s) { t_atom a; SETDOLLSYM(&a, s); *************** *** 8871,8876 **** }
! void canvas_msg(t_glist *gl, t_symbol *s, int argc, t_atom *argv) ! { t_message *x = (t_message *)pd_new(message_class); x->m_mresp.mr_pd = mresp_class; --- 8795,8799 ---- }
! void canvas_msg(t_glist *gl, t_symbol *s, int argc, t_atom *argv) { t_message *x = (t_message *)pd_new(message_class); x->m_mresp.mr_pd = mresp_class; *************** *** 8880,8885 **** x->m_text.te_binbuf = binbuf_new(); x->m_glist = gl; ! if (argc > 1) ! { x->m_text.te_xpix = atom_getfloatarg(0, argc, argv); x->m_text.te_ypix = atom_getfloatarg(1, argc, argv); --- 8803,8807 ---- x->m_text.te_binbuf = binbuf_new(); x->m_glist = gl; ! if (argc > 1) { x->m_text.te_xpix = atom_getfloatarg(0, argc, argv); x->m_text.te_ypix = atom_getfloatarg(1, argc, argv); *************** *** 8990,9057 **** {t_atom at; SETSYMBOL(&at, s); gatom_set(x, 0, 1, &at); gatom_bang(x);}
- /* - static void gatom_motion(void *z, t_floatarg dx, t_floatarg dy) { - t_gatom *x = (t_gatom *)z; - if (dy == 0) return; - if (x->a_atom.a_type == A_FLOAT) { - if (x->a_shift) { - double nval = x->a_atom.a_w.w_float - 0.01 * dy; - double trunc = 0.01 * (floor(100. * nval + 0.5)); - if (trunc < nval + 0.0001 && trunc > nval - 0.0001) nval = trunc; - } else { - double nval = x->a_atom.a_w.w_float - dy; - double trunc = 0.01 * (floor(100. * nval + 0.5)); - if (trunc < nval + 0.0001 && trunc > nval - 0.0001) nval = trunc; - trunc = floor(nval + 0.5); - if (trunc < nval + 0.001 && trunc > nval - 0.001) nval = trunc; - } - gatom_clipfloat(x, nval); - } - } - */ - - /* - static void gatom_key(void *z, t_floatarg f) { - t_gatom *x = (t_gatom *)z; - int c = f; - int len = strlen(x->a_buf); - t_atom at; - char sbuf[ATOMBUFSIZE + 4]; - if (c == 0) { - // we're being notified that no more keys will come for this grab - if (x->a_buf[0]) - gatom_retext(x, 1); - return; - } else if (c == ' ') return; - else if (c == '\b') { - if (len > 0) - x->a_buf[len-1] = 0; - goto redraw; - } else if (c == '\n') { - if (x->a_atom.a_type == A_FLOAT) - x->a_atom.a_w.w_float = atof(x->a_buf); - else if (x->a_atom.a_type == A_SYMBOL) - x->a_atom.a_w.w_symbol = gensym(x->a_buf); - else bug("gatom_key"); - gatom_bang(x); - gatom_retext(x, 1); - x->a_buf[0] = 0; - } else if (len < (ATOMBUFSIZE-1)) { - if ((x->a_atom.a_type == A_SYMBOL) || - (c >= '0' && c <= '9') || c == '.' || c == '-' || c == 'e' || c == 'E') { - x->a_buf[len] = c; - x->a_buf[len+1] = 0; - goto redraw; - } - } - return; - redraw: - sprintf(sbuf, "%s...", x->a_buf); - SETSYMBOL(&at, gensym(sbuf)); - binbuf_clear(x->a_text.te_binbuf); - binbuf_add(x->a_text.te_binbuf, 1, &at); - glist_retext(x->a_glist, &x->a_text); - }*/ - /* message back from dialog window */ static void gatom_param(t_gatom *x, t_symbol *sel, int argc, t_atom *argv) --- 8912,8915 ----