[PD-cvs] externals/miXed/cyclone/shadow dummies.c,1.6,1.7

Krzysztof Czaja krzyszcz at users.sourceforge.net
Wed May 12 17:01:38 CEST 2004


Update of /cvsroot/pure-data/externals/miXed/cyclone/shadow
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20056/miXed/cyclone/shadow

Modified Files:
	dummies.c 
Log Message:
mapping feature for ported names

Index: dummies.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/cyclone/shadow/dummies.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** dummies.c	17 Apr 2004 17:45:28 -0000	1.6
--- dummies.c	12 May 2004 15:01:35 -0000	1.7
***************
*** 1,3 ****
! /* Copyright (c) 2003 krzYszcz and others.
   * For information on usage and redistribution, and for a DISCLAIMER OF ALL
   * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
--- 1,3 ----
! /* Copyright (c) 2003-2004 krzYszcz and others.
   * For information on usage and redistribution, and for a DISCLAIMER OF ALL
   * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
***************
*** 12,15 ****
--- 12,16 ----
  #include "m_pd.h"
  #include "common/loud.h"
+ #include "common/port.h"
  
  //#define DUMMIES_DEBUG
***************
*** 17,20 ****
--- 18,22 ----
  static t_class *ccdummies_class;
  static int dummy_nclasses = 0;
+ static int pending_nclasses = 0;
  static t_class **dummy_classes;
  static int dummy_nreps = 0;
***************
*** 22,26 ****
  typedef struct _dummy_slot
  {
!     char        *s_name;
      int          s_nins;
      int          s_nouts;
--- 24,28 ----
  typedef struct _dummy_slot
  {
!     char        *s_name;  /* do not use after setup: invalid for mapped names */
      int          s_nins;
      int          s_nouts;
***************
*** 351,360 ****
      { "atanh",           1, 1, 0, 0 },
      { "begin~",          0, 1, 0, 0 },
-     { "Biquad~",         6, 1, 0, 0 },
      /* LATER try mapping bpatcher to a gop abstraction/subpatch */
      { "buffer~",         1, 2, 0, 0 },
      { "cd",              1, 2, 0, 0 },  /* CHECKED (refman error?) */
      { "cd~",             1, 6, 0, 0 },  /* CHECKED (refman error?) */
-     { "Change",          1, 3, 0, 0 },
      { "clocker",         2, 1, 0, 0 },
      { "closebang",       0, 1, 0, 0 },
--- 353,360 ----
***************
*** 391,395 ****
      { "gestalt",         1, 2, 0, 0 },
      { "Ggate",           2, 2, 0, 0 },
-     /* LATER glove? */
      { "graphic",         1, 0, 0, 0 },
      { "groove~",         3, -1, 0, (t_newmethod)dummy_groove_tilde_new },
--- 391,394 ----
***************
*** 402,411 ****
      { "info~",           1, 8, 0, 0 },  /* CHECKME nouts */
      { "ioscbank~",       4, 1, 0, 0 },
-     { "Key",             0, 3, 0, 0 },
-     { "Keyup",           0, 3, 0, 0 },
      { "kslider",         2, 2, 0, 0 },
      { "lcd",             1, 4, 0, 0 },  /* CHECKME nouts */
      { "led",             1, 1, 0, 0 },
-     { "Line",            3, 2, 0, 0 },
      { "matrixctrl",      1, 1, 0, 0 },  /* CHECKME nins, nouts */
      { "matrix~",        -1, -1, 0, (t_newmethod)dummy_matrix_tilde_new },
--- 401,407 ----
***************
*** 439,462 ****
      { "pictslider",      2, 2, 0, 0 },  /* CHECKME one-dimensional mode */
      { "playbar",         1, 2, 0, 0 },  /* CHECKME */
-     { "plugconfig",      1, 0, 0, 0 },
-     { "plugin~",         2, 2, 0, 0 },
-     { "plugmidiin",      0, 1, 0, 0 },
-     { "plugmidiout",     1, 0, 0, 0 },
-     { "plugmod",         5, 3, 0, 0 },
-     { "plugmorph",       2, 3, 0, 0 },
-     { "plugmultiparam",  1, 2, 0, 0 },
-     { "plugout~",        2, 2, 0, 0 },  /* CHECKME nouts */
-     { "plugphasor~",     0, 1, 0, 0 },  /* CHECKME nouts */
-     { "plugreceive~",    1, 1, 0, 0 },
-     { "plugsend~",       1, 0, 0, 0 },
-     { "plugstore",       1, 1, 0, 0 },  /* CHECKME nouts */
-     { "plugsync~",       0, 9, 0, 0 },  /* CHECKME nouts */
-     { "Poly",            2, 4, 0, 0 },
      { "polyin",          1, 3, 0, 0 },  /* LATER parse args for nouts */
      { "polyout",         3, 0, 0, 0 },  /* CHECKME nins */
      /* LATER poly~ */
-     { "pp",              2, 2, 0, 0 },  /* CHECKME nins */
-     { "pptempo",         2, 2, 0, 0 },
-     { "pptime",          4, 4, 0, 0 },
      { "preset",          1, 3, 0, 0 },
      { "radiogroup",      1, 1, 0, 0 },
--- 435,441 ----
***************
*** 465,469 ****
      { "rect",            6, 0, 0, 0 },
      { "relativepath",    1, 1, 0, 0 },
-     { "rewire~",         1, -1, 0, (t_newmethod)dummy_rewire_tilde_new },
      { "ring",            6, 0, 0, 0 },
      { "round~",          2, 1, 0, 0 },
--- 444,447 ----
***************
*** 480,484 ****
      { "sfplay~",         1, -1, 0, (t_newmethod)dummy_sfplay_tilde_new },
      { "sfrecord~",      -1, 0, 0, (t_newmethod)dummy_sfrecord_tilde_new },
-     { "sndmgrin~",       0, 2, 0, 0 },  /* CHECKME */
      { "strippath",       1, 2, 0, 0 },
      { "stutter~",       -1, -1, 0, (t_newmethod)dummy_stutter_tilde_new },
--- 458,461 ----
***************
*** 508,517 ****
      { "ubutton",         1, 4, 0, 0 },
      { "umenu",           1, 2, 0, 0 },
-     { "vdp",             3, 4, 0, 0 },
      { "vexpr",          -1, 1, 0, (t_newmethod)dummy_vexpr_new },
      { "vpicture",        0, 0, 0, 0 },
-     { "vst~",           -1, -1, 0, (t_newmethod)dummy_vst_tilde_new },
      { "waveform~",       5, 6, 0, 0 },  /* CHECKME */
      { "zigzag~",         2, 4, 0, 0 },
      { "_dummy",          0, 0, 0, 0 }
  };
--- 485,525 ----
      { "ubutton",         1, 4, 0, 0 },
      { "umenu",           1, 2, 0, 0 },
      { "vexpr",          -1, 1, 0, (t_newmethod)dummy_vexpr_new },
      { "vpicture",        0, 0, 0, 0 },
      { "waveform~",       5, 6, 0, 0 },  /* CHECKME */
      { "zigzag~",         2, 4, 0, 0 },
+ 
+     /* mapped names (cf the structure `importmapping_default' in port.c) */
+     /* clashing dummies go first */
+     { "biquad~",         6, 1, 0, 0 },
+     { "change",          1, 3, 0, 0 },
+     { "key",             0, 3, 0, 0 },
+     { "keyup",           0, 3, 0, 0 },
+     { "line",            3, 2, 0, 0 },
+     { "poly",            2, 4, 0, 0 },
+ 
+     /* remaining slots define `doomed' kind of dummies */
+     { "appledvd",        1, 2, 0, 0 },
+     /* LATER glove? */
+     { "plugconfig",      1, 0, 0, 0 },
+     { "plugin~",         2, 2, 0, 0 },
+     { "plugmidiin",      0, 1, 0, 0 },
+     { "plugmidiout",     1, 0, 0, 0 },
+     { "plugmod",         5, 3, 0, 0 },
+     { "plugmorph",       2, 3, 0, 0 },
+     { "plugmultiparam",  1, 2, 0, 0 },
+     { "plugout~",        2, 2, 0, 0 },  /* CHECKME nouts */
+     { "plugphasor~",     0, 1, 0, 0 },  /* CHECKME nouts */
+     { "plugreceive~",    1, 1, 0, 0 },
+     { "plugsend~",       1, 0, 0, 0 },
+     { "plugstore",       1, 1, 0, 0 },  /* CHECKME nouts */
+     { "plugsync~",       0, 9, 0, 0 },  /* CHECKME nouts */
+     { "pp",              2, 2, 0, 0 },  /* CHECKME nins */
+     { "pptempo",         2, 2, 0, 0 },
+     { "pptime",          4, 4, 0, 0 },
+     { "rewire~",         1, -1, 0, (t_newmethod)dummy_rewire_tilde_new },
+     { "sndmgrin~",       0, 2, 0, 0 },  /* CHECKME */
+     { "vdp",             3, 4, 0, 0 },
+     { "vst~",           -1, -1, 0, (t_newmethod)dummy_vst_tilde_new },
      { "_dummy",          0, 0, 0, 0 }
  };
***************
*** 576,579 ****
--- 584,588 ----
  	    if (!dummy_classes[i])
  	    {
+ 		/* name field is valid here (reps are never mapped) */
  		int l = 1 + strlen(sl->s_name);
  		if ((len += l) > 66)
***************
*** 594,598 ****
  {
      t_dummy_slot *sl;
!     int i;
      dummy_nclasses = sizeof(dummy_slots)/sizeof(*dummy_slots);
      /* never freed: */
--- 603,609 ----
  {
      t_dummy_slot *sl;
!     int i, mapsize;
!     char **mapping = import_getmapping(&mapsize);
!     int ndoomed = 0;
      dummy_nclasses = sizeof(dummy_slots)/sizeof(*dummy_slots);
      /* never freed: */
***************
*** 602,605 ****
--- 613,625 ----
  	int fd;
  	char dirbuf[MAXPDSTRING], *nameptr;
+ 	char *name = port_usemapping(sl->s_name, mapsize, mapping);
+ 	if (name)
+ 	    ndoomed++;
+ 	else if (ndoomed && i < dummy_nclasses - 1)
+ 	{
+ 	    bug("dummies_setup");
+ 	    post("(\"%s\": clashing or doomed dummy not registered for import)",
+ 		 sl->s_name);
+ 	}
  	if ((fd = open_via_path("", sl->s_name, ".pd",
  				dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0)
***************
*** 609,617 ****
  	}
  	else
  	    dummy_classes[i] =
! 		class_new(gensym(sl->s_name),
  			  sl->s_method ? sl->s_method : (t_newmethod)dummy_new,
  			  0, sizeof(t_object),
  			  (sl->s_nins ? 0 : CLASS_NOINLET), A_GIMME, 0);
      }
      dummy_nclasses--;  /* use "_dummy" as a sentinel */
--- 629,639 ----
  	}
  	else
+ 	{
  	    dummy_classes[i] =
! 		class_new((name ? gensym(name) : gensym(sl->s_name)),
  			  sl->s_method ? sl->s_method : (t_newmethod)dummy_new,
  			  0, sizeof(t_object),
  			  (sl->s_nins ? 0 : CLASS_NOINLET), A_GIMME, 0);
+ 	}
      }
      dummy_nclasses--;  /* use "_dummy" as a sentinel */





More information about the Pd-cvs mailing list