[PD-dev] changes in tclpd 0.3.0 - typemaps support

mescalinum at gmail.com mescalinum at gmail.com
Mon Nov 14 00:12:31 CET 2011


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)



More information about the Pd-dev mailing list