Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
Arquivo: xeq.c Projeto: pure-data/xeq
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);
    }
}