[PD-cvs] externals/clr clr.c,1.2,1.3 test-clr.pd,1.2,1.3

dmorelli morellid at users.sourceforge.net
Thu Jan 12 18:09:47 CET 2006


Update of /cvsroot/pure-data/externals/clr
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26055

Modified Files:
	clr.c test-clr.pd 
Log Message:
working on lists of atoms

Index: test-clr.pd
===================================================================
RCS file: /cvsroot/pure-data/externals/clr/test-clr.pd,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** test-clr.pd	12 Jan 2006 11:59:58 -0000	1.2
--- test-clr.pd	12 Jan 2006 17:09:45 -0000	1.3
***************
*** 1,3 ****
! #N canvas 0 0 734 482 12;
  #X obj 97 383 clr;
  #X obj 105 80 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--- 1,3 ----
! #N canvas 0 0 738 486 12;
  #X obj 97 383 clr;
  #X obj 105 80 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
***************
*** 23,26 ****
--- 23,27 ----
  #X msg 239 364 selFloatList 0.001 1000;
  #X msg 239 387 selGenericList 0.001 abaco 1000;
+ #X msg 238 409 selGenericList abaco 1.1;
  #X connect 0 0 14 0;
  #X connect 1 0 0 0;
***************
*** 41,42 ****
--- 42,44 ----
  #X connect 18 0 0 0;
  #X connect 19 0 0 0;
+ #X connect 20 0 0 0;

Index: clr.c
===================================================================
RCS file: /cvsroot/pure-data/externals/clr/clr.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** clr.c	12 Jan 2006 11:59:58 -0000	1.2
--- clr.c	12 Jan 2006 17:09:45 -0000	1.3
***************
*** 54,61 ****
  	//t_atomtype_simple a_type;
  	int a_type;
! 	union{
  		float float_value;
  		MonoString *string_value;
! 	} stuff;
  };
  
--- 54,62 ----
  	//t_atomtype_simple a_type;
  	int a_type;
! 	//MonoString *a_type;
! 	//union{
  		float float_value;
  		MonoString *string_value;
! 	//} stuff;
  };
  
***************
*** 71,74 ****
--- 72,76 ----
  	MonoAssembly *assembly;
  	MonoObject *obj;
+ 	MonoImage *image;
  	MonoMethod *method, *setUp;
  	MonoClass *klass;
***************
*** 103,107 ****
  //	const char *file="D:\\Davide\\cygwin\\home\\Davide\\externalTest1.dll";
  	const char *file="PureData.dll";
! 	MonoImage *image;
  	MonoMethod *m = NULL, *ctor = NULL, *fail = NULL, *mvalues;
  	gpointer iter;
--- 105,109 ----
  //	const char *file="D:\\Davide\\cygwin\\home\\Davide\\externalTest1.dll";
  	const char *file="PureData.dll";
! 	
  	MonoMethod *m = NULL, *ctor = NULL, *fail = NULL, *mvalues;
  	gpointer iter;
***************
*** 147,156 ****
  	}
  
! 	image = mono_assembly_get_image (x->assembly);
  
  	
! 	x->klass = mono_class_from_name (image, "PureData", "External");
  	if (!x->klass) {
! 		error("Can't find MyType in assembly %s\n", mono_image_get_filename (image));
  		//exit (1);
  	}
--- 149,158 ----
  	}
  
! 	x->image = mono_assembly_get_image (x->assembly);
  
  	
! 	x->klass = mono_class_from_name (x->image, "PureData", "External");
  	if (!x->klass) {
! 		error("Can't find MyType in assembly %s\n", mono_image_get_filename (x->image));
  		//exit (1);
  	}
***************
*** 293,321 ****
  						float ftmp;
  						char *str;
  						MonoArray * arystr;
! 						int j;						
! 						arystr = mono_array_new (x->domain, mono_get_string_class (), argc);
  						for (j=0; j<argc; j++)
  						{
! 							atom_simple *atmp = malloc(sizeof(atom_simple));
  							switch ((argv+j)->a_type)
  							{
  							case A_FLOAT:
  post("setting type float in position %i", j);
! 								atmp->a_type = 1;
  								ftmp = atom_getfloat(argv+j);
! 								atmp->stuff.float_value = ftmp;
  								break;
  							case A_SYMBOL:
  post("setting type symbol in position %i", j);
! 								atmp->a_type = 2;
  								strsymbol = atom_getsymbol(argv+j);
! 								atmp->stuff.string_value = mono_string_new (x->domain, strsymbol->s_name);
  								break;
  							default:
  post("setting type null in position %i", j);
! 								atmp->a_type = 0;
  							}
! 
  							mono_array_set (arystr, atom_simple *, j, atmp);
  							//int * ftmp = malloc(sizeof(int));
--- 295,339 ----
  						float ftmp;
  						char *str;
+ 						char strtmp[265], strtmp2[256];
  						MonoArray * arystr;
! 						int j;		
! 						atom_simple *atmp;
! 						atom_simple *atmp2, *atmp3;
! 
! 							int *tipo;
! 							float *fp;
! 
! 						MonoClass *c = mono_class_from_name (x->image, "PureData", "Atom");
! 						arystr = mono_array_new (x->domain, c /*mono_get_string_class ()*/, argc);
! 						//arystr = mono_array_new (x->domain, c, 2);
! 						/*
  						for (j=0; j<argc; j++)
  						{
! 							atmp = malloc(sizeof(atom_simple));
  							switch ((argv+j)->a_type)
  							{
  							case A_FLOAT:
  post("setting type float in position %i", j);
! 								//atmp->a_type = 1;
! 								sprintf(strtmp, "1");
! 						//		atmp->a_type = mono_string_new (x->domain, strtmp);
  								ftmp = atom_getfloat(argv+j);
! 								atmp->float_value = ftmp;
  								break;
  							case A_SYMBOL:
  post("setting type symbol in position %i", j);
! 								//atmp->a_type = 2;
! 								sprintf(strtmp, "2");
! 							//	atmp->a_type = mono_string_new (x->domain, strtmp);
  								strsymbol = atom_getsymbol(argv+j);
! 								atmp->string_value = mono_string_new (x->domain, strsymbol->s_name);
  								break;
  							default:
  post("setting type null in position %i", j);
! 								//atmp->a_type = 0;
! 								sprintf(strtmp, "0");
! 							//	atmp->a_type = mono_string_new (x->domain, strtmp);
  							}
! 						//	mono_array_set (arystr, MonoString *, j, atmp->a_type);
  							mono_array_set (arystr, atom_simple *, j, atmp);
  							//int * ftmp = malloc(sizeof(int));
***************
*** 331,335 ****
  
  						}
! 						args[0] = arystr;
  						
  						//args[0] = strings;
--- 349,388 ----
  
  						}
! 						*/
! 
! 						// debug:
! 						// send just 1 atom
! 						
! 							atmp2 = malloc(sizeof(atom_simple));
! 							atmp2->a_type = 121;
! 							atmp2->float_value = atom_getfloat(argv);
! 							strsymbol = atom_getsymbol(argv);
! 							atmp2->string_value = mono_string_new (x->domain, strsymbol->s_name);
! 						args[0] = atmp2;
! 						
! 						
! 						/*
! 						// a list of atoms
! 						for (j=0; j<argc; j++)
! 						{
! 							atmp2 = malloc(sizeof(atom_simple));
! 							atmp2->a_type = 4;
! 							atmp2->float_value = atom_getfloat(argv+j);
! 							strsymbol = atom_getsymbol(argv+j);
! 							atmp2->string_value = mono_string_new (x->domain, strsymbol->s_name);
! 							mono_array_set (arystr, atom_simple *, j, atmp2);
! 						}
! 						*/
! 
! 
! 						/*
! 						atmp3 = malloc(sizeof(atom_simple));
! 						atmp3->a_type = 2;
! 						atmp3->float_value = 0.5;
! 						sprintf(strtmp2, "abracadabra");
! 						atmp3->string_value = mono_string_new (x->domain, strtmp2);
! 						mono_array_set (arystr, atom_simple *, 1, atmp3);
! 						*/
! 					//	args[0] = arystr;
  						
  						//args[0] = strings;





More information about the Pd-cvs mailing list