[PD] opencv motion tracker external HELP!

nosehair911 at bellsouth.net nosehair911 at bellsouth.net
Wed May 30 20:21:27 CEST 2007


Martin,
Thanks for all your help.  I have a final question about the sprintf solution.  I have managed to get the 
out going(I think) but I am not quite undestanding the atol()inlet part.  I have this.

 void window_getframe(t_window *x, t_symbol *sym)
{
	char* decode;
	char symstr;
	x->sym->s_name = decode;
	symstr = atol(decode);
	frame = symstr;
}
But I get invalid conversion from 'char' to "IplImage*'. I have to read some more. If I used sprintf to write  
to an array a string/image formatted as a pointer and then turned that pointer to a symbol, how do i 
now convert the symbol back to a pointer of the original image, which I assume should still be in 
buffer?
Alain

> You can only work with atoms in pd's message system, and each atom usually contains a bang, a 
float or a symbol. You could convert the pointer to a float but it probably won't work because the 
pointer is a large integer that won't be accurately represented as a float. You could convert the pointer 
to a symbol using something like: 
> char symstr[10];
> t_symbol sym;
> sprintf(symstr, "%p", frame);
> sym = gensym(symstr);
> ...then send sym through the outlet and convert it back to a pointer at the receiving end by extracting 
the string from the s_name field of the symbol and passing it to atol().
> 
> Martin
> 





More information about the Pd-list mailing list