t_pd_err binbuf_get_attribute(t_binbuf *d, t_symbol *key, int *argc, t_atom **argv) { if(d) return atoms_get_attribute(binbuf_getnatom(d), binbuf_getvec(d), key, argc, argv); else return -1; }
void hoa_optim_deprecated(t_hoa_optim* x, t_symbol *s, long ac, t_atom* av) { t_atom* argv; long argc; if(s && s == gensym("mode") && ac && av) { if(atom_gettype(av) == A_SYM) { if(atom_getsym(av) == gensym("maxRe")) x->f_optim->setMode(Hoa2D::Optim::MaxRe); else if(atom_getsym(av) == gensym("basic")) x->f_optim->setMode(Hoa2D::Optim::Basic); else x->f_optim->setMode(Hoa2D::Optim::InPhase); } else { if(atom_getlong(av) == 1) x->f_optim->setMode(Hoa2D::Optim::MaxRe); else if(atom_getlong(av) == 0) x->f_optim->setMode(Hoa2D::Optim::Basic); else x->f_optim->setMode(Hoa2D::Optim::InPhase); } object_error(x, "%s attribute @mode is deprecated, please use it as an argument.", eobj_getclassname(x)->s_name); } atoms_get_attribute(ac, av, gensym("@mode"), &argc, &argv); if(argc && argv) { if(atom_gettype(argv) == A_SYM) { if(atom_getsym(argv) == gensym("maxRe")) x->f_optim->setMode(Hoa2D::Optim::MaxRe); else if(atom_getsym(argv) == gensym("basic")) x->f_optim->setMode(Hoa2D::Optim::Basic); else x->f_optim->setMode(Hoa2D::Optim::InPhase); } else { if(atom_getlong(argv) == 1) x->f_optim->setMode(Hoa2D::Optim::MaxRe); else if(atom_getlong(argv) == 0) x->f_optim->setMode(Hoa2D::Optim::Basic); else x->f_optim->setMode(Hoa2D::Optim::InPhase); } object_error(x, "%s attribute @mode is deprecated, please use it as an argument.", eobj_getclassname(x)->s_name); argc = 0;free(argv);argv = NULL; } }
void hoa_meter_deprecated(t_hoa_meter* x, t_symbol *s, long ac, t_atom* av) { t_atom* argv; long argc; if(s && s == gensym("loudspeakers") && ac && av) { object_error(x, "%s attribute @loudspeakers is deprecated, please use @channels.", eobj_getclassname(x)->s_name); channels_set(x, NULL, ac, av); } if(s && s == gensym("bordercolor") && ac && av) { object_attr_setvalueof((t_object *)x, gensym("bdcolor"), ac, av); object_error(x, "%s attribute @bordercolor is deprecated, please use @bdcolor.", eobj_getclassname(x)->s_name); } atoms_get_attribute(ac, av, gensym("@loudspeakers"), &argc, &argv); if(argc && argv) { object_error(x, "%s attribute @loudspeakers is deprecated, please use @channels.", eobj_getclassname(x)->s_name); channels_set(x, NULL, argc, argv); argc = 0;free(argv);argv = NULL; } atoms_get_attribute(ac, av, gensym("@bordercolor"), &argc, &argv); if(argc && argv) { object_attr_setvalueof((t_object *)x, gensym("bdcolor"), argc, argv); object_error(x, "%s attribute @bordercolor is deprecated, please use @bdcolor.", eobj_getclassname(x)->s_name); argc = 0;free(argv);argv = NULL; } if((s && s == gensym("mbgcolor")) || atoms_has_attribute(ac, av, gensym("@mbgcolor"))) { object_error(x, "%s attribute @mbgcolor is deprecated.", eobj_getclassname(x)->s_name); argc = 0;free(argv);argv = NULL; } }
t_pd_err atoms_get_attribute_symbol(int ac, t_atom* av, t_symbol *key, t_symbol **value) { int argc = 0; t_atom* argv = NULL; if(!atoms_get_attribute(ac, av, key, &argc, &argv)) { if(argc && argv) { if(atom_gettype(argv) == A_SYMBOL) { value[0] = atom_getsymbol(argv); free(argv); return 0; } free(argv); } return -1; } return -1; }
t_pd_err atoms_get_attribute_float(int ac, t_atom* av, t_symbol *key, float *value) { int argc = 0; t_atom* argv = NULL; if(!atoms_get_attribute(ac, av, key, &argc, &argv)) { if(argc && argv) { if(atom_gettype(argv) == A_FLOAT) { value[0] = atom_getfloat(argv); free(argv); return 0; } free(argv); } return -1; } return -1; }
void eobj_attrprocess_viatoms(void *x, int argc, t_atom *argv) { int i; char buffer[MAXPDSTRING]; int defc = 0; t_atom* defv = NULL; t_eclass* c = eobj_getclass(x); for(i = 0; i < c->c_nattr; i++) { sprintf(buffer, "@%s", c->c_attr[i]->name->s_name); atoms_get_attribute(argc, argv, gensym(buffer), &defc, &defv); if(defc && defv) { eobj_attr_setvalueof(x, c->c_attr[i]->name, defc, defv); defc = 0; free(defv); defv = NULL; } } }