From d780c1e9b84d4710e80f952415dfdba48cdea6a3 Mon Sep 17 00:00:00 2001 From: mescalinum Date: Sat, 29 Aug 2009 19:03:44 +0000 Subject: I fixed it. I hate SWIG. svn path=/trunk/externals/tclpd/; revision=12137 --- list_change.tcl | 3 ++- pdlib.tcl | 6 +++++- tcl_class.cxx | 4 ++++ tcl_extras.h | 1 + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/list_change.tcl b/list_change.tcl index 562d036..13d2875 100644 --- a/list_change.tcl +++ b/list_change.tcl @@ -17,7 +17,8 @@ pd::class list_change { 0_list { if {$args != $@curlist} { set @curlist $args - 0_bang + pd::outlet $self 0 list $@curlist + #0_bang } } diff --git a/pdlib.tcl b/pdlib.tcl index 904be91..2a5747e 100644 --- a/pdlib.tcl +++ b/pdlib.tcl @@ -33,7 +33,11 @@ namespace eval ::pd { set ptr [new_t_proxyinlet] proxyinlet_init $ptr #proxyinlet_list $ptr [gensym list] 2 {{symbol foo} {symbol bar}} - inlet_new [tclpd_get_object $self] [$ptr cget -pd] 0 {} + #puts "(t_proxyinlet) $ptr cget -pd = " + #puts " [$ptr cget -pd]" + #inlet_new [tclpd_get_object $self] [$ptr cget -pd] 0 {} + # I HATE SWIG + tclpd_add_proxyinlet [tclpd_get_object $self] $ptr lappend _($self:p_inlet) $ptr lappend _($self:t_inlet) "list" } diff --git a/tcl_class.cxx b/tcl_class.cxx index bb070f9..1c57b3e 100644 --- a/tcl_class.cxx +++ b/tcl_class.cxx @@ -79,6 +79,10 @@ void tclpd_anything(t_tcl *self, t_symbol *s, int ac, t_atom *at) { /* Tcl glue: */ +void tclpd_add_proxyinlet(t_object* o, t_proxyinlet* i) { + inlet_new(o, &i->pd, 0, 0); +} + t_pd* tclpd_get_instance(const char* objectSequentialId) { return object_table[objectSequentialId]; } diff --git a/tcl_extras.h b/tcl_extras.h index a540dad..4ddb56e 100644 --- a/tcl_extras.h +++ b/tcl_extras.h @@ -42,6 +42,7 @@ t_class* tclpd_class_new(char *name, int flags); t_tcl* tclpd_new(t_symbol *classsym, int ac, t_atom *at); void tclpd_free (t_tcl *self); void tclpd_anything(t_tcl *self, t_symbol *s, int ac, t_atom *at); +void tclpd_add_proxyinlet(t_object* o, t_proxyinlet* i); t_pd* tclpd_get_instance(const char* objectSequentialId); t_object* tclpd_get_object(const char* objectSequentialId); t_pd* tclpd_get_object_pd(const char* objectSequentialId); -- cgit v1.2.1