aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormescalinum <mescalinum@users.sourceforge.net>2009-08-29 19:03:44 +0000
committermescalinum <mescalinum@users.sourceforge.net>2009-08-29 19:03:44 +0000
commitd780c1e9b84d4710e80f952415dfdba48cdea6a3 (patch)
tree59056e297a793c8cb22f806549bb0c8eab9553ff
parentba069019909c54f3c90b7fec51c145f88cf99e3e (diff)
I fixed it. I hate SWIG.
svn path=/trunk/externals/tclpd/; revision=12137
-rw-r--r--list_change.tcl3
-rw-r--r--pdlib.tcl6
-rw-r--r--tcl_class.cxx4
-rw-r--r--tcl_extras.h1
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);