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

dmorelli morellid at users.sourceforge.net
Fri Jan 13 20:02:39 CET 2006


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

Modified Files:
	clr.c test-clr.pd 
Log Message:
lists of atom working! still missing output

Index: test-clr.pd
===================================================================
RCS file: /cvsroot/pure-data/externals/clr/test-clr.pd,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** test-clr.pd	12 Jan 2006 17:09:45 -0000	1.3
--- test-clr.pd	13 Jan 2006 19:02:36 -0000	1.4
***************
*** 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
--- 1,3 ----
! #N canvas 0 0 742 490 12;
  #X obj 97 383 clr;
  #X obj 105 80 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
***************
*** 22,27 ****
  #X msg 239 342 selFloatList 1.1 2.2 3.3 4.4;
  #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;
--- 22,27 ----
  #X msg 239 342 selFloatList 1.1 2.2 3.3 4.4;
  #X msg 239 364 selFloatList 0.001 1000;
  #X msg 238 409 selGenericList abaco 1.1;
+ #X msg 239 387 selGenericList 0.001 abaco 1000 poroppoppero;
  #X connect 0 0 14 0;
  #X connect 1 0 0 0;

Index: clr.c
===================================================================
RCS file: /cvsroot/pure-data/externals/clr/clr.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** clr.c	13 Jan 2006 13:02:17 -0000	1.4
--- clr.c	13 Jan 2006 19:02:36 -0000	1.5
***************
*** 104,108 ****
  void createInlet(void *x1, MonoString *selectorString, int type);
  void createOutlet(void *x1, int type);
! void out2outlet(void *x, int outlet, int type, unsigned char  *val  /* TODO */);
  void post2pd(MonoString *mesString);
  void error2pd(MonoString *mesString);
--- 104,108 ----
  void createInlet(void *x1, MonoString *selectorString, int type);
  void createOutlet(void *x1, int type);
! void out2outlet(void *x1, int outlet, int atoms_length, atom_simple *atoms);
  void post2pd(MonoString *mesString);
  void error2pd(MonoString *mesString);
***************
*** 141,144 ****
--- 141,147 ----
  printf("will load %s, random_name %s\n", file, random_name_str);
  
+ 	//mono_set_dirs (NULL, NULL);
+ 	//mono_config_parse (NULL);
+ 
  	x->domain = mono_jit_init (random_name_str);
  
***************
*** 299,418 ****
  					{
  						gpointer args [1];
! 						MonoString *strmono;
  						t_symbol *strsymbol;
! 						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", "Atom2");
! 			if (!c)
! 				error("----> can't find Atom");
! 						//arystr = mono_array_new (x->domain, atom_simple, argc);
! 						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));
! 							//*ftmp =  j;
! 							//float ftmp = atom_getfloat(argv+j);
! 							//strsymbol = atom_getsymbol(argv+j);
! 							//MonoString *arg = mono_string_new (x->domain, strsymbol->s_name);
! 							//mono_array_set (arystr, MonoString *, j, arg);
! 							// gpointer
! 							
! 							//mono_array_set (arystr, gint32 , j, *ftmp);
! 							//mono_array_set (arystr, gint32 , j, ftmp);
! 
! 						}
! 						*/
! 
! 						// debug:
! 						// send just 1 atom
! 						
! 						
! 						atmp2 = malloc(sizeof(atom_simple));
! 						atmp2->a_type = 121;
! 						atmp2->float_value = atom_getfloat(argv);
! 						strsymbol = atom_getsymbol(argv);
! printf("strsymbol->s_name = %s\n", strsymbol->s_name);
! 						atmp2->string_value = mono_string_new (x->domain, strsymbol->s_name);
! 						args[0] = atmp2;
! 						
! 
! 						/*
! 						atmp2 = malloc(sizeof(atom_simple));
! 						atmp2->a = 121;
! 						atmp2->b = 1;
! 						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;
  						mono_runtime_invoke (x->selectors[i].func, x->obj, args, NULL);
  						break;
  					}
  				}
- 				
- 				//result = mono_runtime_invoke (x->selectors[i].func, x->obj, args, NULL);
- 				//val = *(int*)mono_object_unbox (result);
- 				//x->n = val;
  				return;
  			}
--- 302,346 ----
  					{
  						gpointer args [1];
! 						MonoString *stringtmp;
! 						double *floattmp;
! 						t_atomtype_simple *typetmp;
  						t_symbol *strsymbol;
! 						MonoArray *atoms;
! 						atom_simple *atom_array;
  						int j;		
! 						char strfloat[256], strnull[256];
! 						sprintf(strfloat, "float");
! 						sprintf(strnull, "null");
! 						atom_array = malloc(sizeof(atom_simple)*argc);
! 						MonoClass *c = mono_class_from_name (x->image, "PureData", "Atom");
! 						atoms = mono_array_new (x->domain, c, argc);
  						for (j=0; j<argc; j++)
  						{
  							switch ((argv+j)->a_type)
  							{
  							case A_FLOAT:
! 								atom_array[j].a_type =  A_S_FLOAT;
! 								atom_array[j].float_value = (double) atom_getfloat(argv+j);
! 								atom_array[j].string_value = mono_string_new (x->domain, strfloat);
  								break;
  							case A_SYMBOL:
! 								atom_array[j].a_type =  A_S_SYMBOL;
  								strsymbol = atom_getsymbol(argv+j);
! 								atom_array[j].string_value = mono_string_new (x->domain, strsymbol->s_name);
! 								atom_array[j].float_value = 0;
  								break;
  							default:
! 								atom_array[j].a_type =  A_S_NULL;
! 								atom_array[j].float_value = 0;
! 								atom_array[j].string_value = mono_string_new (x->domain, strnull);
  							}
! 							mono_array_set (atoms, atom_simple , j, atom_array[j]);
  						}
  
! 						args[0] = atoms;
  						mono_runtime_invoke (x->selectors[i].func, x->obj, args, NULL);
  						break;
  					}
  				}
  				return;
  			}
***************
*** 421,427 ****
  			i = MAX_SELECTORS;
  	}
- 
  	error("clr: selector not recognized");
- 
  }
  
--- 349,353 ----
***************
*** 556,565 ****
  
  // out to outlet
! void out2outlet(void *x1, int outlet, int type, unsigned char *val /* TODO */)
  {
  	t_clr *x;
  	x = (t_clr *)x1;
  	t_atom *lista;
! 
  	if ((outlet>MAX_OUTLETS) || (outlet<0))
  	{
--- 482,493 ----
  
  // out to outlet
! void out2outlet(void *x1, int outlet, int atoms_length, atom_simple *atoms)
  {
  	t_clr *x;
  	x = (t_clr *)x1;
  	t_atom *lista;
! 	int n;
! printf("outlet = %i\n" + outlet);
! printf("atoms_length = %i\n" + atoms_length);
  	if ((outlet>MAX_OUTLETS) || (outlet<0))
  	{
***************
*** 572,585 ****
  		return;
  	}
! printf("ricevuto %i %i\n", val[0], val[1]);
! if (val[0]==0x01)
! 	printf("val[0]==0x00");
  
! 	lista = (t_atom *) malloc(sizeof(t_atom) * 2);
! 	SETFLOAT(lista, (float) val[0]);
! 	SETFLOAT(lista+1, (float) val[1]);
  	outlet_anything(x->outlets[outlet].outlet_pointer,
  					gensym("list") ,
! 					2, 
  					lista);
  	free(lista);
--- 500,525 ----
  		return;
  	}
! 	lista = (t_atom *) malloc(sizeof(t_atom) * atoms_length);
! 	for (n=0; n<atoms_length; n++)
! 	{
! 		char *mesCstring;
! 		switch (atoms[n].a_type)
! 		{
! 			case A_S_NULL:
! 				SETFLOAT(lista+n, (float) 0);
! 				break;
! 			case A_S_FLOAT:
! 				mesCstring = mono_string_to_utf8 (atoms[n].string_value);
! 				SETFLOAT(lista+n, (float) atoms[n].float_value);
! 				break;
! 			case A_S_SYMBOL:
! 				SETSYMBOL(lista+n, gensym(mesCstring));
! 				break;
! 		}
  
! 	}
  	outlet_anything(x->outlets[outlet].outlet_pointer,
  					gensym("list") ,
! 					atoms_length, 
  					lista);
  	free(lista);





More information about the Pd-cvs mailing list