From f8444e7394237833706a89daf140b69376ee6095 Mon Sep 17 00:00:00 2001 From: mescalinum Date: Tue, 1 Sep 2009 21:02:11 +0000 Subject: pass inlet number around instead of binding it to the selector - this time for real svn path=/trunk/externals/tclpd/; revision=12173 --- pdlib.tcl | 2 +- tcl_class.cxx | 6 ++++-- tcl_extras.h | 8 ++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pdlib.tcl b/pdlib.tcl index 0a22957..c20f822 100644 --- a/pdlib.tcl +++ b/pdlib.tcl @@ -110,7 +110,7 @@ namespace eval ::pd { # class level dispatcher (sort of class constructor) proc ::$classname {self args} " if \$::verbose {::pd::post \[info level 0\]} - ::pd::call_classmethod $classname \$self 0 constructor {*}\$args + ::${classname}_constructor \$self {*}\$args # object dispatcher proc ::\$self {inlet selector args} \" if \\\$::verbose {::pd::post \\\[info level 0\\\]} diff --git a/tcl_class.cxx b/tcl_class.cxx index fb7131e..d5e9b77 100644 --- a/tcl_class.cxx +++ b/tcl_class.cxx @@ -5,7 +5,7 @@ using namespace std; -static long objectSequentialId = 0; +static unsigned long objectSequentialId = 0; map class_table; map object_table; @@ -29,6 +29,7 @@ t_class* tclpd_guiclass_new(const char* name, int flags) { wb->w_visfn = tclpd_guiclass_vis; wb->w_clickfn = tclpd_guiclass_click; class_setwidget(c, wb); + return c; } t_tcl* tclpd_new(t_symbol* classsym, int ac, t_atom* at) { @@ -37,7 +38,7 @@ t_tcl* tclpd_new(t_symbol* classsym, int ac, t_atom* at) { t_tcl* self = (t_tcl*)pd_new(qlass); self->ninlets = 1 /* qlass->c_firstin ??? */; char s[32]; - sprintf(s, "tclpd:%s:x%x", name, objectSequentialId++); + sprintf(s, "tclpd:%s:x%lx", name, objectSequentialId++); self->self = Tcl_NewStringObj(s, -1); Tcl_IncrRefCount(self->self); object_table[string(s)] = (t_pd*)self; @@ -139,4 +140,5 @@ void tclpd_guiclass_vis(t_gobj* z, t_glist* glist, int vis) { } int tclpd_guiclass_click(t_gobj* z, t_glist* glist, int xpix, int ypix, int shift, int alt, int dbl, int doit) { + return 0; } diff --git a/tcl_extras.h b/tcl_extras.h index 3400b7e..602ceef 100644 --- a/tcl_extras.h +++ b/tcl_extras.h @@ -1,7 +1,7 @@ #include "m_pd.h" -#include "m_imp.h" +//#include "m_imp.h" #include "g_canvas.h" -#include "s_stuff.h" +//#include "s_stuff.h" #include @@ -48,7 +48,7 @@ extern "C" void tclpd_setup(void); void tclpd_interp_error(int result); /* tcl_class.cxx */ -t_class* tclpd_class_new(char* name, int flags); +t_class* tclpd_class_new(const char* name, int flags); t_class* tclpd_guiclass_new(const char* name, int flags); t_tcl* tclpd_new(t_symbol* classsym, int ac, t_atom* at); void tclpd_free (t_tcl* self); @@ -71,7 +71,7 @@ int tclpd_guiclass_click(t_gobj* z, t_glist* glist, int xpix, int ypix, int shif extern "C" int tclpd_do_load_lib(t_canvas* canvas, char* objectname); /* pd loader private stuff: */ typedef int (*loader_t)(t_canvas *canvas, char* classname); -//extern "C" void sys_register_loader(loader_t loader); +extern "C" void sys_register_loader(loader_t loader); extern "C" int sys_onloadlist(char* classname); extern "C" void sys_putonloadlist(char* classname); extern "C" void class_set_extern_dir(t_symbol* s); -- cgit v1.2.1