with tclpd 0.3 I finally fixed typemaps support.

there are some conversions that take place automatically, when calling pd C functions from tcl, namely: for arguments t_symbol*, t_atom* (one atom), and for (int argc, t_atom *argv) (a list of atoms).

t_symbol* maps directly to tcl strings and vice versa.
t_atom* maps to {selector value} (e.g. {float 1} or {symbol foo})
and similarily (int argc,t_atom* argv) maps to atom lists, like {{float 1} {float 2} {float 3} {symbol foo}}

in addition, $self is cast automatically to t_tcl*, t_text*, t_pd*, t_object* when needed.

so, calling the pd api should now be straightforward.

those changes are reflected in tclpd.tcl and in the examples.

there are still bugs unfixed:
 - get_binbuf problem (binbuf actually not available, needs fix)
 - slider2.tcl remains somewhat broken because I haven't had time to fix
 - bitmap's help (makes pd crash only if opened via context menu Help)
 - problem with namespace prefixes (e.g. [dir/classname])

@hc: note for tclfile externals, now you need to apply such changes:
-        set dir [[canvas_getdir $current_canvas] cget -s_name]
+        set dir [canvas_getdir $current_canvas]
and similar. (also, update package requires with TclpdLib 0.20 and Tclpd 0.3.0)

_______________________________________________
Pd-dev mailing list
[email protected]
http://lists.puredata.info/listinfo/pd-dev

Reply via email to