static void matrix_read(t_matrix *x, t_symbol *filename) { t_binbuf *bbuf = binbuf_new(); t_atom *ap; int n; if (binbuf_read_via_path(bbuf, filename->s_name, canvas_getdir(x->x_canvas)->s_name, 0)) pd_error(x,"matrix: failed to read %128s", filename->s_name); ap=binbuf_getvec(bbuf); n =binbuf_getnatom(bbuf)-1; if ((ap->a_type == A_SYMBOL) && (!strcmp(ap->a_w.w_symbol->s_name,"matrix") || !strcmp(ap->a_w.w_symbol->s_name,"#matrix")) ){ matrix_matrix2(x, gensym("matrix"), n, ap+1); } binbuf_free(bbuf); }
static void xeq_read(t_xeq *x, t_symbol *s, int ac, t_atom *av) { char *format, *filename; int fid = 0; if (!ac || av->a_type != A_SYMBOL) return; format = av->a_w.w_symbol->s_name; if (!strcmp(format, "cr")) fid = 1; else if (!strcmp(format, "mf")) fid = 2; if (fid && (!--ac || (++av)->a_type != A_SYMBOL)) return; filename = av->a_w.w_symbol->s_name; if (fid == 2) xeq_mfread(x, s, ac, av); else { if (binbuf_read_via_path(x->x_binbuf, filename, canvas_getdir(x->x_canvas)->s_name, fid)) error("%s: read failed", filename); xeq_rewind(x); hyphen_forallfriends((t_hyphen *)x, xeqhook_multicast_rewind, 0); } }