[PD-cvs] externals/grill/flext/source flbase.h,1.24,1.25 fllib.cpp,1.23,1.24 flstdc.h,1.21,1.22 flsupport.cpp,1.36,1.37 flsupport.h,1.66,1.67

Thomas Grill xovo at users.sourceforge.net
Fri Apr 23 04:32:57 CEST 2004


Update of /cvsroot/pure-data/externals/grill/flext/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29779/source

Modified Files:
	flbase.h fllib.cpp flstdc.h flsupport.cpp flsupport.h 
Log Message:
 ""

Index: flstdc.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flstdc.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** flstdc.h	27 Mar 2004 03:22:14 -0000	1.21
--- flstdc.h	23 Apr 2004 02:32:55 -0000	1.22
***************
*** 3,7 ****
  flext - C++ layer for Max/MSP and pd (pure data) externals
  
! Copyright (c) 2001-2003 Thomas Grill (xovo at gmx.net)
  For information on usage and redistribution, and for a DISCLAIMER OF ALL
  WARRANTIES, see the file, "license.txt," in this distribution.  
--- 3,7 ----
  flext - C++ layer for Max/MSP and pd (pure data) externals
  
! Copyright (c) 2001-2004 Thomas Grill (xovo at gmx.net)
  For information on usage and redistribution, and for a DISCLAIMER OF ALL
  WARRANTIES, see the file, "license.txt," in this distribution.  
***************
*** 78,81 ****
--- 78,82 ----
  #define A_FLINT A_FLOAT
  #define A_DEFFLINT A_DEFFLOAT
+ #define A_DEFSYMBOL A_DEFSYM
  
  
***************
*** 136,143 ****
--- 137,152 ----
  #endif
  
+ #ifndef A_DEFINT
+ #define A_DEFINT A_DEFLONG
+ #endif
+ 
  #ifndef A_SYMBOL
  #define A_SYMBOL A_SYM
  #endif
  
+ #ifndef A_DEFSYMBOL
+ #define A_DEFSYMBOL A_DEFSYM
+ #endif
+ 
  
  #elif FLEXT_SYS == FLEXT_SYS_JMAX

Index: flbase.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flbase.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** flbase.h	3 Apr 2004 02:21:04 -0000	1.24
--- flbase.h	23 Apr 2004 02:32:55 -0000	1.25
***************
*** 3,7 ****
  flext - C++ layer for Max/MSP and pd (pure data) externals
  
! Copyright (c) 2001-2003 Thomas Grill (xovo at gmx.net)
  For information on usage and redistribution, and for a DISCLAIMER OF ALL
  WARRANTIES, see the file, "license.txt," in this distribution.  
--- 3,7 ----
  flext - C++ layer for Max/MSP and pd (pure data) externals
  
! Copyright (c) 2001-2004 Thomas Grill (xovo at gmx.net)
  For information on usage and redistribution, and for a DISCLAIMER OF ALL
  WARRANTIES, see the file, "license.txt," in this distribution.  
***************
*** 412,418 ****
--- 412,421 ----
  	#else
  		#define FLEXTTPN_INT A_INT
+ 		#define FLEXTTPN_DEFINT A_DEFINT
  	#endif
  	#define FLEXTTPN_FLOAT A_FLOAT
+ 	#define FLEXTTPN_DEFFLOAT A_DEFFLOAT
  	#define FLEXTTPN_SYM A_SYMBOL
+ 	#define FLEXTTPN_DEFSYM A_DEFSYMBOL
  	#define FLEXTTPN_VAR A_GIMME
  #else
***************
*** 423,426 ****
--- 426,432 ----
  	#define FLEXTTPN_SYM 4
  	#define FLEXTTPN_VAR 5
+ 	#define FLEXTTPN_DEFINT 6
+ 	#define FLEXTTPN_DEFFLOAT 7
+ 	#define FLEXTTPN_DEFSYM 8
  #endif
  
***************
*** 429,432 ****
--- 435,439 ----
  #define CALLBTYPE_void void
  #define FLEXTTYPE_float FLEXTTPN_FLOAT
+ #define FLEXTTYPE_float0 FLEXTTPN_DEFFLOAT
  #define CALLBTYPE_float float
  #define FLEXTTYPE_t_float FLEXTTPN_FLOAT
***************
*** 435,441 ****
--- 442,450 ----
  #if FLEXT_SYS == FLEXT_SYS_PD
  #define FLEXTTYPE_int FLEXTTPN_FLOAT
+ #define FLEXTTYPE_int0 FLEXTTPN_DEFFLOAT
  #define CALLBTYPE_int float
  #elif FLEXT_SYS == FLEXT_SYS_MAX || FLEXT_SYS == FLEXT_SYS_JMAX
  #define FLEXTTYPE_int FLEXTTPN_INT
+ #define FLEXTTYPE_int0 FLEXTTPN_DEFINT
  #define CALLBTYPE_int int
  #else
***************
*** 444,449 ****
  
  #define FLEXTTYPE_t_symptr FLEXTTPN_SYM
  #define CALLBTYPE_t_symptr t_symptr
! #define FLEXTTYPE_t_symtype FLEXTTPN_SYM
  #define CALLBTYPE_t_symtype t_symptr
  #define FLEXTTYPE_t_ptrtype FLEXTTPN_PTR
--- 453,460 ----
  
  #define FLEXTTYPE_t_symptr FLEXTTPN_SYM
+ #define FLEXTTYPE_t_symptr0 FLEXTTPN_DEFSYM
  #define CALLBTYPE_t_symptr t_symptr
! #define FLEXTTYPE_t_symtype FLEXTTYPE_t_symptr
! #define FLEXTTYPE_t_symtype0 FLEXTTYPE_t_symptr0
  #define CALLBTYPE_t_symtype t_symptr
  #define FLEXTTYPE_t_ptrtype FLEXTTPN_PTR
***************
*** 455,462 ****
  
  #define ARGMEMBER_int(a) GetInt(a)
  #define ARGMEMBER_float(a) GetFloat(a)
  #define ARGMEMBER_t_symptr(a) GetSymbol(a)
! #define ARGMEMBER_t_symtype(a) GetSymbol(a)
! #define ARGCAST(arg,tp) ARGMEMBER_##tp(arg)
  
  
--- 466,477 ----
  
  #define ARGMEMBER_int(a) GetInt(a)
+ #define ARGMEMBER_int0(a) ARGMEMBER_int(a)
  #define ARGMEMBER_float(a) GetFloat(a)
+ #define ARGMEMBER_float0(a) ARGMEMBER_float(a)
  #define ARGMEMBER_t_symptr(a) GetSymbol(a)
! #define ARGMEMBER_t_symptr0(a) ARGMEMBER_t_symptr(a)
! #define ARGMEMBER_t_symtype(a) ARGMEMBER_t_symptr(a)
! #define ARGMEMBER_t_symtype0(a) ARGMEMBER_t_symptr0(a)
! #define ARGCAST(a,tp) ARGMEMBER_##tp(a)
  
  
***************
*** 484,488 ****
  
  #define REAL_NEW_1(NAME,NEW_CLASS,DSP,LIB, TYPE1) \
! flext_obj *NEW_CLASS::__init__(int ,t_atom *argv) \
  {     	    	    	    	    	    	    	    	\
      return new NEW_CLASS(ARGCAST(argv[0],TYPE1));                     \
--- 499,503 ----
  
  #define REAL_NEW_1(NAME,NEW_CLASS,DSP,LIB, TYPE1) \
! flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
  {     	    	    	    	    	    	    	    	\
      return new NEW_CLASS(ARGCAST(argv[0],TYPE1));                     \
***************
*** 495,499 ****
  
  #define REAL_NEW_2(NAME,NEW_CLASS,DSP,LIB, TYPE1,TYPE2) \
! flext_obj *NEW_CLASS::__init__(int ,t_atom *argv) \
  {     	    	    	    	    	    	    	    	\
      return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2));                     \
--- 510,514 ----
  
  #define REAL_NEW_2(NAME,NEW_CLASS,DSP,LIB, TYPE1,TYPE2) \
! flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
  {     	    	    	    	    	    	    	    	\
      return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2));                     \
***************
*** 506,510 ****
  
  #define REAL_NEW_3(NAME,NEW_CLASS,DSP,LIB, TYPE1, TYPE2, TYPE3) \
! flext_obj *NEW_CLASS::__init__(int ,t_atom *argv) \
  {     	    	    	    	    	    	    	    	\
      return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2),ARGCAST(argv[2],TYPE3));                     \
--- 521,525 ----
  
  #define REAL_NEW_3(NAME,NEW_CLASS,DSP,LIB, TYPE1, TYPE2, TYPE3) \
! flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
  {     	    	    	    	    	    	    	    	\
      return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2),ARGCAST(argv[2],TYPE3));                     \
***************
*** 517,521 ****
  
  #define REAL_NEW_4(NAME,NEW_CLASS,DSP,LIB, TYPE1,TYPE2, TYPE3, TYPE4) \
! flext_obj *NEW_CLASS::__init__(int ,t_atom *argv) \
  {     	    	    	    	    	    	    	    	\
      return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2),ARGCAST(argv[2],TYPE3),ARGCAST(argv[3],TYPE4));                     \
--- 532,536 ----
  
  #define REAL_NEW_4(NAME,NEW_CLASS,DSP,LIB, TYPE1,TYPE2, TYPE3, TYPE4) \
! flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
  {     	    	    	    	    	    	    	    	\
      return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2),ARGCAST(argv[2],TYPE3),ARGCAST(argv[3],TYPE4));                     \

Index: flsupport.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -d -r1.36 -r1.37
*** flsupport.cpp	14 Apr 2004 02:33:06 -0000	1.36
--- flsupport.cpp	23 Apr 2004 02:32:55 -0000	1.37
***************
*** 24,27 ****
--- 24,28 ----
  #endif
  
+ const t_symbol *flext::sym__ = NULL;
  const t_symbol *flext::sym_float = NULL;
  const t_symbol *flext::sym_symbol = NULL;
***************
*** 51,54 ****
--- 52,56 ----
  
  #if FLEXT_SYS == FLEXT_SYS_PD
+ 	sym__ = gensym("");
  	sym_anything = gensym("anything");
  	sym_pointer = gensym("pointer");
***************
*** 60,63 ****
--- 62,66 ----
  	sym_int = gensym("int");
  #elif FLEXT_SYS == FLEXT_SYS_MAX
+ 	sym__ = gensym("");
  	sym_int = gensym("int");
  	sym_float = gensym("float");
***************
*** 67,70 ****
--- 70,74 ----
  	sym_anything = gensym("anything");
  #elif FLEXT_SYS == FLEXT_SYS_JMAX
+ 	sym__ = fts_new_symbol("");; // is there a static symbol for that?
  	sym_int = fts_s_int;
  	sym_float = fts_s_float;

Index: flsupport.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.h,v
retrieving revision 1.66
retrieving revision 1.67
diff -C2 -d -r1.66 -r1.67
*** flsupport.h	26 Mar 2004 03:22:11 -0000	1.66
--- flsupport.h	23 Apr 2004 02:32:55 -0000	1.67
***************
*** 290,293 ****
--- 290,295 ----
  	*/
  
+ 	//! Symbol constant for ""
+ 	static const t_symbol *sym__;
  	//! Symbol constant for "float"
  	static const t_symbol *sym_float;

Index: fllib.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/fllib.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** fllib.cpp	3 Apr 2004 02:21:04 -0000	1.23
--- fllib.cpp	23 Apr 2004 02:32:55 -0000	1.24
***************
*** 325,360 ****
  #endif
  
! 			if(argc == lo->argc) {
! 				for(int i = 0; /*ok &&*/ i < lo->argc; ++i) {
! 					switch(lo->argv[i]) {
  #if FLEXT_SYS != FLEXT_SYS_PD
! 					case FLEXTTPN_INT:
! 						if(IsInt(argv[i])) args[i] = argv[i];
! 						else if(flext::IsFloat(argv[i])) flext::SetInt(args[i],(int)flext::GetFloat(argv[i]));
! 						else ok = false;
! 						break;
  #endif
! 					case FLEXTTPN_FLOAT:
! 						if(IsInt(argv[i])) flext::SetFloat(args[i],(float)flext::GetInt(argv[i]));
! 						else if(flext::IsFloat(argv[i])) args[i] = argv[i];
! 						else ok = false;
! 						break;
! 					case FLEXTTPN_SYM:
! 						// \todo shall we analyze the patcher args????... should already be done!
! 						if(IsSymbol(argv[i])) 
  //							SetSymbol(args[i],GetParamSym(GetSymbol(argv[i]),NULL));
! 							args[i] = argv[i];
! 						else ok = false;
! 						break;
! 					}
! 				}
! 			
! 				if(!ok)
! 					post("%s: Creation arguments do not match",GetString(s));
! 			}
! 			else {
! 				error("%s: %s creation arguments",GetString(s),argc < lo->argc?"Not enough":"Too many");
! 				ok = false;
  			}
  		}
  
--- 325,372 ----
  #endif
  
! 			int misnum = 0;
! 			if(argc > lo->argc) { ok = false; misnum = 1; }
! 
! 			for(int i = 0; ok && i < lo->argc; ++i) {
! 				switch(lo->argv[i]) {
  #if FLEXT_SYS != FLEXT_SYS_PD
! 				case FLEXTTPN_INT:
! 				case FLEXTTPN_DEFINT:
! 					if(i >= argc)
! 						if(lo->argv[i] == FLEXTTPN_DEFINT) SetInt(args[i],0);
! 						else { misnum = -1,ok = false; break; }
! 					else if(IsInt(argv[i])) args[i] = argv[i];
! 					else if(IsFloat(argv[i])) SetInt(args[i],(int)GetFloat(argv[i]));
! 					else ok = false;
! 					break;
  #endif
! 				case FLEXTTPN_FLOAT:
! 				case FLEXTTPN_DEFFLOAT:
! 					if(i >= argc)
! 						if(lo->argv[i] == FLEXTTPN_DEFFLOAT) SetFloat(args[i],0);
! 						else { misnum = -1,ok = false; break; }
! 					else if(IsInt(argv[i])) SetFloat(args[i],(float)GetInt(argv[i]));
! 					else if(IsFloat(argv[i])) args[i] = argv[i];
! 					else ok = false;
! 					break;
! 				case FLEXTTPN_SYM:
! 				case FLEXTTPN_DEFSYM:
! 					// \todo shall we analyze the patcher args????... should already be done!
! 					if(i >= argc)
! 						if(lo->argv[i] == FLEXTTPN_DEFSYM) SetSymbol(args[i],sym__);
! 						else { misnum = -1,ok = false; break; }
! 					else if(IsSymbol(argv[i])) 
  //							SetSymbol(args[i],GetParamSym(GetSymbol(argv[i]),NULL));
! 						args[i] = argv[i];
! 					else ok = false;
! 					break;
! 				}	
  			}
+ 
+ 			if(!ok)
+ 				if(misnum)
+ 					error("%s: %s creation arguments",GetString(s),misnum < 0?"Not enough":"Too many");
+ 				else
+ 					error("%s: Creation arguments do not match",GetString(s));
  		}
  





More information about the Pd-cvs mailing list