From 562dcc336797951b2a8707413aa44177484c9f2a Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Sat, 28 Dec 2002 04:37:42 +0000 Subject: "" svn path=/trunk/; revision=309 --- externals/grill/py/source/main.h | 2 +- externals/grill/py/source/py.cpp | 38 ++++++++++++++++++++----------------- externals/grill/py/source/pyext.cpp | 22 ++++++++++----------- externals/grill/py/source/pyext.h | 4 ++-- 4 files changed, 35 insertions(+), 31 deletions(-) (limited to 'externals/grill/py/source') diff --git a/externals/grill/py/source/main.h b/externals/grill/py/source/main.h index eaa9f7b6..721a1d43 100644 --- a/externals/grill/py/source/main.h +++ b/externals/grill/py/source/main.h @@ -22,7 +22,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. #error You need at least flext version 0.4.1 #endif -#define PY__VERSION "0.1.1" +#define PY__VERSION "0.1.2pre" #define PYEXT_MODULE "pyext" // name for module diff --git a/externals/grill/py/source/py.cpp b/externals/grill/py/source/py.cpp index f6127716..00f1f992 100644 --- a/externals/grill/py/source/py.cpp +++ b/externals/grill/py/source/py.cpp @@ -14,7 +14,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. class pyobj: public py { - FLEXT_HEADER(pyobj,py) + FLEXT_HEADER_S(pyobj,py,Setup) public: pyobj(I argc,const t_atom *argv); @@ -50,6 +50,7 @@ protected: V ResetFunction(); private: + static void Setup(t_class *c); FLEXT_CALLBACK(m_bang) FLEXT_CALLBACK(m_reload) @@ -72,6 +73,25 @@ private: FLEXT_LIB_V("py",pyobj) +void pyobj::Setup(t_class *c) +{ + FLEXT_CADDBANG(c,0,m_bang); + FLEXT_CADDMETHOD_(c,0,"reload",m_reload_); + FLEXT_CADDMETHOD_(c,0,"reload.",m_reload); + FLEXT_CADDMETHOD_(c,0,"set",m_set); + FLEXT_CADDMETHOD_(c,0,"doc",m_doc); + FLEXT_CADDMETHOD_(c,0,"doc+",m_doc_); +#ifdef FLEXT_THREADS + FLEXT_CADDMETHOD_(c,0,"detach",m_detach); + FLEXT_CADDMETHOD_(c,0,"stop",m_stop); +#endif + + FLEXT_CADDMETHOD_(c,1,"float",m_py_float); + FLEXT_CADDMETHOD_(c,1,"int",m_py_int); + FLEXT_CADDMETHOD(c,1,m_py_list); + FLEXT_CADDMETHOD(c,1,m_py_any); +} + pyobj::pyobj(I argc,const t_atom *argv): function(NULL),funname(NULL) { @@ -80,22 +100,6 @@ pyobj::pyobj(I argc,const t_atom *argv): AddInAnything(2); AddOutAnything(); - FLEXT_ADDBANG(0,m_bang); - FLEXT_ADDMETHOD_(0,"reload",m_reload_); - FLEXT_ADDMETHOD_(0,"reload.",m_reload); - FLEXT_ADDMETHOD_(0,"set",m_set); - FLEXT_ADDMETHOD_(0,"doc",m_doc); - FLEXT_ADDMETHOD_(0,"doc+",m_doc_); -#ifdef FLEXT_THREADS - FLEXT_ADDMETHOD_(0,"detach",m_detach); - FLEXT_ADDMETHOD_(0,"stop",m_stop); -#endif - - FLEXT_ADDMETHOD_(1,"float",m_py_float); - FLEXT_ADDMETHOD_(1,"int",m_py_int); - FLEXT_ADDMETHOD(1,m_py_list); - FLEXT_ADDMETHOD(1,m_py_any); - if(argc > 2) SetArgs(argc-2,argv+2); else diff --git a/externals/grill/py/source/pyext.cpp b/externals/grill/py/source/pyext.cpp index 8bff5913..958f1882 100644 --- a/externals/grill/py/source/pyext.cpp +++ b/externals/grill/py/source/pyext.cpp @@ -14,12 +14,22 @@ WARRANTIES, see the file, "license.txt," in this distribution. FLEXT_LIB_V("pyext",pyext) -V pyext::setup(t_class *) +V pyext::Setup(t_class *c) { px_head = px_tail = NULL; px_class = class_new(gensym("pyext proxy"),NULL,NULL,sizeof(py_proxy),CLASS_PD|CLASS_NOINLET, A_NULL); ::add_anything(px_class,py_proxy::px_method); // for other inlets + + FLEXT_CADDMETHOD_(c,0,"reload.",m_reload); + FLEXT_CADDMETHOD_(c,0,"reload",m_reload_); + FLEXT_CADDMETHOD_(c,0,"doc",m_doc); + FLEXT_CADDMETHOD_(c,0,"doc+",m_doc_); + +#ifdef FLEXT_THREADS + FLEXT_CADDMETHOD_(c,0,"detach",m_detach); + FLEXT_CADDMETHOD_(c,0,"stop",m_stop); +#endif } pyext *pyext::GetThis(PyObject *self) @@ -165,16 +175,6 @@ pyext::pyext(I argc,const t_atom *argv): AddInAnything(1+inlets); AddOutAnything(outlets); - FLEXT_ADDMETHOD_(0,"reload.",m_reload); - FLEXT_ADDMETHOD_(0,"reload",m_reload_); - FLEXT_ADDMETHOD_(0,"doc",m_doc); - FLEXT_ADDMETHOD_(0,"doc+",m_doc_); - -#ifdef FLEXT_THREADS - FLEXT_ADDMETHOD_(0,"detach",m_detach); - FLEXT_ADDMETHOD_(0,"stop",m_stop); -#endif - if(!pyobj) InitProblem(); } diff --git a/externals/grill/py/source/pyext.h b/externals/grill/py/source/pyext.h index d804d825..4d35e0a4 100644 --- a/externals/grill/py/source/pyext.h +++ b/externals/grill/py/source/pyext.h @@ -16,7 +16,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. class pyext: public py { - FLEXT_HEADER_S(pyext,py,setup) + FLEXT_HEADER_S(pyext,py,Setup) public: pyext(I argc,const t_atom *argv); @@ -53,7 +53,7 @@ protected: I inlets,outlets; private: - static V setup(t_class *); + static V Setup(t_class *); static pyext *GetThis(PyObject *self); V ClearBinding(); -- cgit v1.2.1