[PD-cvs] externals/miXed/shared/common binport.c,1.4,1.5 port.c,1.12,1.13 port.h,1.1.1.1,1.2

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


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

Modified Files:
	binport.c port.c port.h 
Log Message:
mapping feature for ported names

Index: port.h
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/shared/common/port.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** port.h	23 May 2003 12:29:52 -0000	1.1.1.1
--- port.h	12 May 2004 15:01:35 -0000	1.2
***************
*** 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.  */
***************
*** 7,10 ****
--- 7,13 ----
  
  void import_max(char *fn, char *dir);
+ void import_setmapping(int size, char **mapping);
+ char **import_getmapping(int *sizep);
+ char *port_usemapping(char *from, int mapsize, char **mapping);
  
  #endif

Index: port.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/shared/common/port.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** port.c	23 Apr 2004 11:25:53 -0000	1.12
--- port.c	12 May 2004 15:01:35 -0000	1.13
***************
*** 93,96 ****
--- 93,173 ----
  static t_symbol *portps_picture;
  
+ static char *import_defmapping[] =
+ {
+     /* clashing clones */
+     "append", "Append",
+     "b", "bangbang",
+     "clip", "Clip",
+     "clip~", "Clip~",
+     "line~", "Line~",
+     "scope~", "Scope~",
+     "snapshot~", "Snapshot~",
+ 
+     /* clashing dummies */
+     "biquad~", "Biquad~",
+     "change", "Change",
+     "key", "Key",
+     "keyup", "Keyup",
+     "line", "Line",
+     "poly", "Poly",
+ 
+     /* doomed dummies */
+     "appledvd", "c74.appledvd",
+     "plugconfig", "c74.plugconfig",
+     "plugin~", "c74.plugin~",
+     "plugmidiin", "c74.plugmidiin",
+     "plugmidiout", "c74.plugmidiout",
+     "plugmod", "c74.plugmod",
+     "plugmorph", "c74.plugmorph",
+     "plugmultiparam", "c74.plugmultiparam",
+     "plugout~", "c74.plugout~",
+     "plugphasor~", "c74.plugphasor~",
+     "plugreceive~", "c74.plugreceive~",
+     "plugsend~", "c74.plugsend~",
+     "plugstore", "c74.plugstore",
+     "plugsync~", "c74.plugsync~",
+     "pp", "c74.pp",
+     "pptempo", "c74.pptempo",
+     "pptime", "c74.pptime",
+     "rewire~", "c74.rewire~",
+     "sndmgrin~", "c74.sndmgrin~",
+     "vdp", "c74.vdp",
+     "vst~", "c74.vst~"
+ };
+ 
+ static int import_mapsize = 0;
+ static char **import_mapping = 0;
+ 
+ static void import_setdefmapping(void)
+ {
+     import_mapsize = sizeof(import_defmapping)/(2 * sizeof(*import_defmapping));
+     import_mapping = import_defmapping;
+ }
+ 
+ void import_setmapping(int size, char **mapping)
+ {
+     import_mapsize = size;
+     import_mapping = mapping;
+ }
+ 
+ char **import_getmapping(int *sizep)
+ {
+     if (!import_mapping) import_setdefmapping();
+     *sizep = import_mapsize;
+     return (import_mapping);
+ }
+ 
+ char *port_usemapping(char *from, int mapsize, char **mapping)
+ {
+     while (mapsize--)
+     {
+ 	if (strcmp(*mapping, from))
+ 	    mapping += 2;
+ 	else
+ 	    return (mapping[1]);
+     }
+     return (0);
+ }
+ 
  static t_int port_getint(t_port *x, int ndx)
  {
***************
*** 393,400 ****
      else
      {
  	if (inatom->a_type == A_SYMBOL)
  	{
  	    /* LATER bash inatom to lowercase (CHECKME first) */
! 	    t_symbol *insym = inatom->a_w.w_symbol;
  	    if (insym != &s_bang && insym != &s_float &&
  		insym != &s_symbol && insym != &s_list &&
--- 470,497 ----
      else
      {
+ 	t_symbol *insym = 0;
  	if (inatom->a_type == A_SYMBOL)
  	{
  	    /* LATER bash inatom to lowercase (CHECKME first) */
! 	    insym = inatom->a_w.w_symbol;
! 	    if (import_mapping && import_mapsize)
! 	    {
! 		char **fromp = import_mapping, **top = import_mapping + 1;
! 		int cnt = import_mapsize;
! 		while (cnt--)
! 		{
! 		    if (strcmp(*fromp, insym->s_name))
! 		    {
! 			fromp += 2;
! 			top += 2;
! 		    }
! 		    else
! 		    {
! 			insym = gensym(*top);
! 			inatom = 0;
! 			break;
! 		    }
! 		}
! 	    }
  	    if (insym != &s_bang && insym != &s_float &&
  		insym != &s_symbol && insym != &s_list &&
***************
*** 407,411 ****
  	    }
  	}
! 	import_copyatoms(&at, inatom, 1);
      }
      binbuf_add(x->x_outbb, 1, &at);
--- 504,516 ----
  	    }
  	}
! 	if (inatom)
! 	    import_copyatoms(&at, inatom, 1);
! 	else if (insym)
! 	    SETSYMBOL(&at, insym);
! 	else
! 	{
! 	    bug("import_addclassname");
! 	    SETSYMBOL(&at, gensym("???"));
! 	}
      }
      binbuf_add(x->x_outbb, 1, &at);
***************
*** 922,936 ****
  static t_portslot imslots_newex[] =
  {
-     { "append",      import_objarg, "Append", 0, 0 },
-     { "biquad~",     import_objarg, "Biquad~", 0, 0 },
-     { "change",      import_objarg, "Change", 0, 0 },
-     { "clip",        import_objarg, "Clip", 0, 0 },
-     { "clip~",       import_objarg, "Clip~", 0, 0 },
      { "key",         import_obj, "Key", 0, 0 },
      { "keyup",       import_obj, "Keyup", 0, 0 },
-     { "line",        import_objarg, "Line", 0, 0 },
-     { "line~",       import_objarg, "Line~", 0, 0 },
-     { "poly",        import_objarg, "Poly", 0, 0 },
-     { "snapshot~",   import_objarg, "Snapshot~", 0, 0 },
  
      { "pack",        imaction_P6_pack, 0, 0, 0 },
--- 1027,1032 ----
***************
*** 1125,1128 ****
--- 1221,1225 ----
  	    port_dochecksetup(subtree);
      }
+     import_setdefmapping();
  }
  

Index: binport.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/shared/common/binport.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** binport.c	17 Apr 2004 17:45:28 -0000	1.4
--- binport.c	12 May 2004 15:01:35 -0000	1.5
***************
*** 246,255 ****
  	else if (ex || hi || lo)
  	{
! 	    double d;
  	    ex -= 0x401e;
! 	    hi = ((hi - 0x7fffffff) - 1) + ((float)0x7fffffff + 1.);
! 	    lo = ((lo - 0x7fffffff) - 1) + ((float)0x7fffffff + 1.);
! 	    d  = ldexp(hi, ex) + ldexp(lo, ex - 32);
! 	    *fptr = ((word[0] & 0x80) ? -(float)d : (float)d);
  	}
  	else *fptr = 0.;
--- 246,255 ----
  	else if (ex || hi || lo)
  	{
! 	    double dhi, dlo, dabs;
  	    ex -= 0x401e;
! 	    dhi = (double)((hi - 0x7fffffff) - 1) + ((float)0x7fffffff + 1.);
! 	    dlo = (double)((lo - 0x7fffffff) - 1) + ((float)0x7fffffff + 1.);
! 	    dabs  = ldexp(dhi, ex) + ldexp(dlo, ex - 32);
! 	    *fptr = ((word[0] & 0x80) ? -(float)dabs : (float)dabs);
  	}
  	else *fptr = 0.;
***************
*** 680,684 ****
  	    binport_setint(ap, atoi(buf));
  	else if (floatstate == 4 || floatstate == 5 || floatstate == 8)
! 	    binport_setfloat(ap, atof(buf));
  	else
  	    binport_setsymbol(ap, gensym(buf));
--- 680,684 ----
  	    binport_setint(ap, atoi(buf));
  	else if (floatstate == 4 || floatstate == 5 || floatstate == 8)
! 	    binport_setfloat(ap, (float)atof(buf));
  	else
  	    binport_setsymbol(ap, gensym(buf));





More information about the Pd-cvs mailing list