diff options
author | mescalinum <mescalinum@users.sourceforge.net> | 2011-10-13 23:54:03 +0000 |
---|---|---|
committer | mescalinum <mescalinum@users.sourceforge.net> | 2011-10-13 23:54:03 +0000 |
commit | 41a929df365c8d025c3be97c6e4068275c908faf (patch) | |
tree | 848bfd09b0c5734d30f3321685a1bb87a859539c | |
parent | 8303218509a59630ec4c3a31aed0b5264e977500 (diff) |
binbuf now fully working
svn path=/trunk/externals/loaders/tclpd/; revision=15593
-rw-r--r-- | tcl_typemap.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/tcl_typemap.c b/tcl_typemap.c index 94c3aa0..65f3872 100644 --- a/tcl_typemap.c +++ b/tcl_typemap.c @@ -30,14 +30,31 @@ int tcl_to_pd(Tcl_Obj *input, t_atom *output) { const char* atom_type_string(t_atom* a) { switch(a->a_type) { - case A_FLOAT: return "float"; - case A_SYMBOL: return "symbol"; - case A_POINTER: return "pointer"; - default: return "???"; + case A_FLOAT: + case A_DEFFLOAT: + return "float"; + case A_SYMBOL: + case A_DEFSYM: + case A_DOLLAR: + case A_DOLLSYM: + case A_SEMI: + case A_COMMA: + return "symbol"; + case A_POINTER: + return "pointer"; + default: + post("atom_type_string: unsupported/unknown selector: %d", a->a_type); + return "???"; } } const char* atom_symbol_value(t_atom* a) { + if(a->a_type == A_DOLLAR) { + char buf[6]; + snprintf(buf, 6, "$%d", a->a_w.w_index); + t_symbol* s = gensym(buf); + return s->s_name; + } return a->a_w.w_symbol->s_name; } |