[PD-dev] String outlput

IOhannes m zmoelnig zmoelnig at iem.at
Mon Aug 16 08:57:49 CEST 2004


Thomas Ouellet Fredericks wrote:
> 
> Hi, I possess very little knowledge of C++ but I need to build a WIN32 
> PD external based on a third pardy API.
> My main problem is how do I output a String?
>  
> The external is for integration with a sensor system called Ubisense. In 
> the following code snippet, I need to find the name of an Object (the 
> name of a sensor) and output it throught a Pure Data outlet.  Would it 
> be easier to use outlet_symbol()? If so how?

if you want to output only one symbol (this reads: 1 single string 
(which *can* hold spaces but should rather not) then use outlet_symbol() 
(because that is what it is for)


>     //PROBLEMS START HERE
>     array<char> namearray = name->ToCharArray() ; //???Convert the 
> String to a char array????
>     outlet_anything(x->name_out, &s_symbol, name->Length , *namearray);  
> //???Output the char array??? void outlet_anything(t_outlet *x, t_symbol 
> *s, int argc, t_atom  *argv);


outlet_anything() expects a list of "t_atom"s.
a "t_atom" is *not* a character (or something you can arbitrarily 
choose) but a struct that is defined in m_pd.h and can hold a number OR 
a symbol OR a pointer.


to be precise, outlet_anything() is *very* similar to outlet_list(). the 
only difference is, that you can set the identifier (via the symbol "s") 
which is always "list" when using outlet_list().

so if you want to output several parameters at once (device-name, 
vendor-name, number of sensors), then use outlet_list() or 
outlet_anything().

if you just want to output the device-name as a symbol (the "normal" 
way, how pd handles "strings"), so you can use [select] or 
"$1"-substitution, use outlet_symbol(). the output will be "symbol foo".

if you want to output (only) the device-name as an "identifier" (the 
"other" way, how pd can handle "strings"), so you can use [route] but 
*not* "$1"-substitution, use outlet_anything().
the output will be "foo" (this is most likely *not* what you want)



mfg.a.sdr
IOhannes










More information about the Pd-dev mailing list