Hi,
I'm trying to use SWIG in my work on a Lua external for Pd, and had to comment out the following definitions in m_pd.h to get code generated by SWIG to load without "undefined symbol" errors:
EXTERN t_symbol *pd_getfilename(void); EXTERN t_symbol *pd_getdirname(void); EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv); EXTERN t_parentwidgetbehavior *class_parentwidget(t_class *c); EXTERN int sys_isreadablefile(const char *name); EXTERN float garray_get(t_garray *x, t_symbol *s, t_int indx); EXTERN void c_extern(t_externclass *cls, t_newmethod newroutine, t_method freeroutine, t_symbol *name, size_t size, int tiny, t_atomtype arg1, ...); EXTERN void c_addmess(t_method fn, t_symbol *sel, t_atomtype arg1, ...);
I guess these have either been removed from pd, or aren't declared with the right visibility in the source. It would be great if this could be fixed.
Also, the following are visible in pd, but undeclared in m_pd.h, meaning I have to declare them myself:
typedef int (*loader_t)(t_canvas *, char *); void sys_register_loader(loader_t loader);
Would be super if this could be fixed too.
Tested with pd-0.40-2 from Miller's site.
Claude
I think that void sys_register_loader(loader_t loader); is now declared in the HEAD of MAIN. (0.41.0-test3?). As for the rest, make a patch and submit it to the tracker. If you want it to be included in Pd-extended, it goes into packages/patches, and has to compile on all platforms. The patch needs to be a 'diff -uw', and should have no path information.
.hc
On Apr 29, 2007, at 4:32 PM, Claude Heiland-Allen wrote:
Hi,
I'm trying to use SWIG in my work on a Lua external for Pd, and had to comment out the following definitions in m_pd.h to get code generated by SWIG to load without "undefined symbol" errors:
EXTERN t_symbol *pd_getfilename(void); EXTERN t_symbol *pd_getdirname(void); EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv); EXTERN t_parentwidgetbehavior *class_parentwidget(t_class *c); EXTERN int sys_isreadablefile(const char *name); EXTERN float garray_get(t_garray *x, t_symbol *s, t_int indx); EXTERN void c_extern(t_externclass *cls, t_newmethod newroutine, t_method freeroutine, t_symbol *name, size_t size, int tiny, t_atomtype arg1, ...); EXTERN void c_addmess(t_method fn, t_symbol *sel, t_atomtype arg1, ...);
I guess these have either been removed from pd, or aren't declared with the right visibility in the source. It would be great if this could be fixed.
Also, the following are visible in pd, but undeclared in m_pd.h, meaning I have to declare them myself:
typedef int (*loader_t)(t_canvas *, char *); void sys_register_loader(loader_t loader);
Would be super if this could be fixed too.
Tested with pd-0.40-2 from Miller's site.
Claude
http://claudiusmaximus.goto10.org
PD-dev mailing list PD-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
------------------------------------------------------------------------ ----
All information should be free. - the hacker ethic