Update of /cvsroot/pure-data/externals/grill/flext/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32688/source
Modified Files:
flbase.h flclass.h fldefs_setup.h flext.cpp fllib.cpp
flmsg.cpp flprefix.h flproxy.cpp
Log Message:
PD: possibility to create DSP objects without main DSP inlet (use FLEXT_DSP0_NEW or similar)
fixed buggy memory deallocation for AtomListStatic
Index: flext.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flext.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -C2 -d -r1.45 -r1.46
*** flext.cpp 24 May 2006 12:20:57 -0000 1.45
--- flext.cpp 31 Oct 2006 00:30:57 -0000 1.46
***************
*** 141,145 ****
! void flext_base::AddMessageMethods(t_class *c,bool dsp)
{
add_loadbang(c,cb_loadbang);
--- 141,145 ----
! void flext_base::AddMessageMethods(t_class *c,bool dsp,bool dspin)
{
add_loadbang(c,cb_loadbang);
***************
*** 160,164 ****
dsp_initclass();
#elif FLEXT_SYS == FLEXT_SYS_PD
! CLASS_MAINSIGNALIN(c,flext_hdr,defsig); // float messages going into the left inlet are converted to signal
add_dsp(c,cb_dsp);
#else
--- 160,165 ----
dsp_initclass();
#elif FLEXT_SYS == FLEXT_SYS_PD
! if(dspin)
! CLASS_MAINSIGNALIN(c,flext_hdr,defsig); // float messages going into the left inlet are converted to signal
add_dsp(c,cb_dsp);
#else
***************
*** 179,186 ****
if(!IsLib(id))
#endif
! AddMessageMethods(c,IsDSP(id));
if(HasAttributes(id)) {
- // if(process_attributes) {
AddMethod(id,0,"getattributes",cb_ListAttrib);
AddMethod(id,0,"getmethods",cb_ListMethods);
--- 180,186 ----
if(!IsLib(id))
#endif
! AddMessageMethods(c,IsDSP(id),HasDSPIn(id));
if(HasAttributes(id)) {
AddMethod(id,0,"getattributes",cb_ListAttrib);
AddMethod(id,0,"getmethods",cb_ListMethods);
Index: flproxy.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flproxy.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** flproxy.cpp 20 Jun 2006 00:04:11 -0000 1.14
--- flproxy.cpp 31 Oct 2006 00:30:57 -0000 1.15
***************
*** 80,83 ****
--- 80,103 ----
void flext_base::cb_anything(flext_hdr *c,const t_symbol *s,int argc,t_atom *argv)
{
+ if(UNLIKELY(!s)) {
+ // apparently, this happens only in one case... object is a DSP object, but has no main DSP inlet...
+
+ // interpret tag from args
+ if(!argc)
+ s = sym_bang;
+ else if(argc == 1) {
+ if(IsFloat(*argv))
+ s = sym_float;
+ else if(IsSymbol(*argv))
+ s = sym_symbol;
+ else if(IsPointer(*argv))
+ s = sym_pointer;
+ else
+ FLEXT_ASSERT(false);
+ }
+ else
+ s = sym_list;
+ }
+
thisObject(c)->CbMethodHandler(0,s,argc,argv);
}
Index: flmsg.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flmsg.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** flmsg.cpp 27 Oct 2006 13:34:56 -0000 1.21
--- flmsg.cpp 31 Oct 2006 00:30:57 -0000 1.22
***************
*** 257,269 ****
}
catch(std::exception &x) {
! error("%s - Exception while processing method: %s",thisName(),x.what());
ret = false;
}
catch(const char *txt) {
! error("%s - Exception while processing method: %s",thisName(),txt);
ret = false;
}
catch(...) {
! error("%s - Unknown exception while processing method",thisName());
ret = false;
}
--- 257,269 ----
}
catch(std::exception &x) {
! error("%s - %s: %s",thisName(),GetString(s),x.what());
ret = false;
}
catch(const char *txt) {
! error("%s - %s: %s",thisName(),GetString(s),txt);
ret = false;
}
catch(...) {
! error("%s - %s : Unknown exception while processing method",thisName(),GetString(s));
ret = false;
}
Index: flbase.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flbase.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** flbase.h 20 Sep 2006 14:24:10 -0000 1.40
--- flbase.h 31 Oct 2006 00:30:57 -0000 1.41
***************
*** 159,162 ****
--- 159,163 ----
static bool HasAttributes(t_classid id);
static bool IsDSP(t_classid id);
+ static bool HasDSPIn(t_classid id);
static bool IsLib(t_classid id);
***************
*** 164,167 ****
--- 165,169 ----
bool IsLib() const;
bool IsDSP() const;
+ bool HasDSPIn() const;
#if FLEXT_SYS == FLEXT_SYS_MAX
***************
*** 253,257 ****
// Definitions for library objects
static void lib_init(const char *name,void setupfun());
! static void obj_add(bool lib,bool dsp,bool attr,const char *idname,const char *names,void setupfun(t_classid),FLEXT_CLASSDEF(flext_obj) *(*newfun)(int,t_atom *),void (*freefun)(flext_hdr *),int argtp1,...);
#if FLEXT_SYS == FLEXT_SYS_MAX
static flext_hdr *obj_new(const t_symbol *s,short argc,t_atom *argv);
--- 255,259 ----
// Definitions for library objects
static void lib_init(const char *name,void setupfun());
! static void obj_add(bool lib,bool dsp,bool noi,bool attr,const char *idname,const char *names,void setupfun(t_classid),FLEXT_CLASSDEF(flext_obj) *(*newfun)(int,t_atom *),void (*freefun)(flext_hdr *),int argtp1,...);
#if FLEXT_SYS == FLEXT_SYS_MAX
static flext_hdr *obj_new(const t_symbol *s,short argc,t_atom *argv);
***************
*** 492,497 ****
#define ARGCAST(a,tp) ARGMEMBER_##tp(a)
!
! #define REAL_NEW(NAME,NEW_CLASS,DSP,LIB) \
flext_obj *NEW_CLASS::__init__(int ,t_atom *) \
{ \
--- 494,498 ----
#define ARGCAST(a,tp) ARGMEMBER_##tp(a)
! #define REAL_NEW(NAME,NEW_CLASS,DSP,NOI,LIB) \
flext_obj *NEW_CLASS::__init__(int ,t_atom *) \
{ \
***************
*** 500,508 ****
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,&NEW_CLASS::__free__,FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_V(NAME,NEW_CLASS,DSP,LIB) \
flext_obj *NEW_CLASS::__init__(int argc,t_atom *argv) \
{ \
--- 501,509 ----
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,NOI,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,&NEW_CLASS::__free__,FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_V(NAME,NEW_CLASS,DSP,NOI,LIB) \
flext_obj *NEW_CLASS::__init__(int argc,t_atom *argv) \
{ \
***************
*** 511,519 ****
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,&NEW_CLASS::__free__,FLEXTTPN_VAR,FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_1(NAME,NEW_CLASS,DSP,LIB, TYPE1) \
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
--- 512,520 ----
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,NOI,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,&NEW_CLASS::__free__,FLEXTTPN_VAR,FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_1(NAME,NEW_CLASS,DSP,NOI,LIB, TYPE1) \
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
***************
*** 522,530 ****
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,NEW_CLASS::__free__,FLEXTTP(TYPE1),FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_2(NAME,NEW_CLASS,DSP,LIB, TYPE1,TYPE2) \
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
--- 523,531 ----
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,NOI,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,NEW_CLASS::__free__,FLEXTTP(TYPE1),FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_2(NAME,NEW_CLASS,DSP,NOI,LIB, TYPE1,TYPE2) \
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
***************
*** 533,541 ****
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,NEW_CLASS::__free__,FLEXTTP(TYPE1),FLEXTTP(TYPE2),FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_3(NAME,NEW_CLASS,DSP,LIB, TYPE1, TYPE2, TYPE3) \
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
--- 534,542 ----
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,NOI,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,NEW_CLASS::__free__,FLEXTTP(TYPE1),FLEXTTP(TYPE2),FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_3(NAME,NEW_CLASS,DSP,NOI,LIB, TYPE1, TYPE2, TYPE3) \
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
***************
*** 544,552 ****
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,NEW_CLASS::__free__,FLEXTTP(TYPE1),FLEXTTP(TYPE2),FLEXTTP(TYPE3),FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_4(NAME,NEW_CLASS,DSP,LIB, TYPE1,TYPE2, TYPE3, TYPE4) \
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
--- 545,553 ----
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,NOI,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,NEW_CLASS::__free__,FLEXTTP(TYPE1),FLEXTTP(TYPE2),FLEXTTP(TYPE3),FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
! #define REAL_NEW_4(NAME,NEW_CLASS,DSP,NOI,LIB, TYPE1,TYPE2, TYPE3, TYPE4) \
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
***************
*** 555,559 ****
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,NEW_CLASS::__free__,FLEXTTP(TYPE1),FLEXTTP(TYPE2),FLEXTTP(TYPE3),FLEXTTP(TYPE4),FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
--- 556,560 ----
FLEXT_EXP(LIB) void FLEXT_STPF(NEW_CLASS,DSP)() \
{ \
! flext_obj::obj_add(LIB,DSP,NOI,FLEXT_ATTRIBUTES,#NEW_CLASS,NAME,NEW_CLASS::__setup__,NEW_CLASS::__init__,NEW_CLASS::__free__,FLEXTTP(TYPE1),FLEXTTP(TYPE2),FLEXTTP(TYPE3),FLEXTTP(TYPE4),FLEXTTPN_NULL); \
} \
FLEXT_OBJ_SETUP(NEW_CLASS,DSP,LIB)
Index: fllib.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/fllib.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** fllib.cpp 20 Sep 2006 14:24:10 -0000 1.40
--- fllib.cpp 31 Oct 2006 00:30:57 -0000 1.41
***************
*** 142,146 ****
flext_library *lib;
! bool dsp,attr,dist;
flext_base::ItemCont meths,attrs;
--- 142,146 ----
flext_library *lib;
! bool dsp:1,noi:1,attr:1,dist:1;
flext_base::ItemCont meths,attrs;
***************
*** 172,179 ****
--- 172,181 ----
bool flext_obj::HasAttributes(t_classid cl) { return cl->attr; }
bool flext_obj::IsDSP(t_classid cl) { return cl->dsp; }
+ bool flext_obj::HasDSPIn(t_classid cl) { return !cl->noi; }
bool flext_obj::IsLib(t_classid cl) { return cl->lib != NULL; }
bool flext_obj::HasAttributes() const { return clss->attr; }
bool flext_obj::IsDSP() const { return clss->dsp; }
+ bool flext_obj::HasDSPIn() const { return !clss->noi; }
bool flext_obj::IsLib() const { return clss->lib != NULL; }
***************
*** 225,229 ****
}
! void flext_obj::obj_add(bool lib,bool dsp,bool attr,const char *idname,const char *names,void setupfun(t_classid),flext_obj *(*newfun)(int,t_atom *),void (*freefun)(flext_hdr *),int argtp1,...)
{
// get first possible object name
--- 227,231 ----
}
! void flext_obj::obj_add(bool lib,bool dsp,bool noi,bool attr,const char *idname,const char *names,void setupfun(t_classid),flext_obj *(*newfun)(int,t_atom *),void (*freefun)(flext_hdr *),int argtp1,...)
{
// get first possible object name
***************
*** 275,278 ****
--- 277,281 ----
lo->lib = curlib;
lo->dsp = dsp;
+ lo->noi = noi;
lo->attr = attr;
***************
*** 346,353 ****
}
catch(std::exception &x) {
! error("%s - Exception while initializing class: %s",idname,x.what());
}
catch(char *txt) {
! error("%s - Exception while initializing class: %s",idname,txt);
}
catch(...) {
--- 349,356 ----
}
catch(std::exception &x) {
! error("%s: %s",idname,x.what());
}
catch(char *txt) {
! error("%s: %s",idname,txt);
}
catch(...) {
Index: fldefs_setup.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/fldefs_setup.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** fldefs_setup.h 26 Jan 2005 05:01:45 -0000 1.5
--- fldefs_setup.h 31 Oct 2006 00:30:57 -0000 1.6
***************
*** 60,64 ****
#define FLEXT_NEW(NAME,NEW_CLASS) \
\
! REAL_NEW(NAME,NEW_CLASS,0,0)
/*! \brief Implementation of a flext dsp class with no arguments
--- 60,64 ----
#define FLEXT_NEW(NAME,NEW_CLASS) \
\
! REAL_NEW(NAME,NEW_CLASS,0,0,0)
/*! \brief Implementation of a flext dsp class with no arguments
***************
*** 67,71 ****
#define FLEXT_NEW_DSP(NAME,NEW_CLASS) \
\
! REAL_NEW(NAME,NEW_CLASS,1,0)
/*! \brief Implementation of a flext class (part of a library) with no arguments
--- 67,78 ----
#define FLEXT_NEW_DSP(NAME,NEW_CLASS) \
\
! REAL_NEW(NAME,NEW_CLASS,1,0,0)
!
! /*! \brief Implementation of a flext dsp class with no arguments and no dsp inlet
! \ingroup FLEXT_D_NEW_DSP
! */
! #define FLEXT_NEW_DSP0(NAME,NEW_CLASS) \
! \
! REAL_NEW(NAME,NEW_CLASS,1,1,0)
/*! \brief Implementation of a flext class (part of a library) with no arguments
***************
*** 74,78 ****
#define FLEXT_LIB(NAME,NEW_CLASS) \
\
! REAL_NEW(NAME,NEW_CLASS,0,1)
/*! \brief Implementation of a flext dsp class (part of a library) with no arguments
--- 81,85 ----
#define FLEXT_LIB(NAME,NEW_CLASS) \
\
! REAL_NEW(NAME,NEW_CLASS,0,0,1)
/*! \brief Implementation of a flext dsp class (part of a library) with no arguments
***************
*** 81,85 ****
#define FLEXT_LIB_DSP(NAME,NEW_CLASS) \
\
! REAL_NEW(NAME,NEW_CLASS,1,1)
--- 88,99 ----
#define FLEXT_LIB_DSP(NAME,NEW_CLASS) \
\
! REAL_NEW(NAME,NEW_CLASS,1,0,1)
!
! /*! \brief Implementation of a flext dsp class (part of a library) with no arguments and no dsp inlet
! \ingroup FLEXT_D_LIB_DSP
! */
! #define FLEXT_LIB_DSP0(NAME,NEW_CLASS) \
! \
! REAL_NEW(NAME,NEW_CLASS,1,1,1)
***************
*** 92,96 ****
#define FLEXT_NEW_V(NAME,NEW_CLASS) \
\
! REAL_NEW_V(NAME,NEW_CLASS,0,0) \
/*! \brief Implementation of a flext dsp class with a variable argument list
--- 106,110 ----
#define FLEXT_NEW_V(NAME,NEW_CLASS) \
\
! REAL_NEW_V(NAME,NEW_CLASS,0,0,0)
/*! \brief Implementation of a flext dsp class with a variable argument list
***************
*** 99,103 ****
#define FLEXT_NEW_DSP_V(NAME,NEW_CLASS) \
\
! REAL_NEW_V(NAME,NEW_CLASS,1,0) \
/*! \brief Implementation of a flext class (part of a library) with a variable argument list
--- 113,124 ----
#define FLEXT_NEW_DSP_V(NAME,NEW_CLASS) \
\
! REAL_NEW_V(NAME,NEW_CLASS,1,0,0)
!
! /*! \brief Implementation of a flext dsp class with a variable argument list and no dsp inlet
! \ingroup FLEXT_D_NEW_DSP
! */
! #define FLEXT_NEW_DSP0_V(NAME,NEW_CLASS) \
! \
! REAL_NEW_V(NAME,NEW_CLASS,1,1,0)
/*! \brief Implementation of a flext class (part of a library) with a variable argument list
***************
*** 106,110 ****
#define FLEXT_LIB_V(NAME,NEW_CLASS) \
\
! REAL_NEW_V(NAME,NEW_CLASS, 0,1)
/*! \brief Implementation of a flext dsp class (part of a library) with a variable argument list
--- 127,131 ----
#define FLEXT_LIB_V(NAME,NEW_CLASS) \
\
! REAL_NEW_V(NAME,NEW_CLASS, 0,0,1)
/*! \brief Implementation of a flext dsp class (part of a library) with a variable argument list
***************
*** 113,117 ****
#define FLEXT_LIB_DSP_V(NAME,NEW_CLASS) \
\
! REAL_NEW_V(NAME,NEW_CLASS, 1,1)
--- 134,145 ----
#define FLEXT_LIB_DSP_V(NAME,NEW_CLASS) \
\
! REAL_NEW_V(NAME,NEW_CLASS, 1,0,1)
!
! /*! \brief Implementation of a flext dsp class (part of a library) with a variable argument list and no dsp inlet
! \ingroup FLEXT_D_LIB_DSP
! */
! #define FLEXT_LIB_DSP0_V(NAME,NEW_CLASS) \
! \
! REAL_NEW_V(NAME,NEW_CLASS, 1,1,1)
***************
*** 124,128 ****
#define FLEXT_NEW_1(NAME,NEW_CLASS, TYPE) \
\
! REAL_NEW_1(NAME,NEW_CLASS, 0, 0,TYPE) \
/*! \brief Implementation of a flext dsp class with one argument
--- 152,156 ----
#define FLEXT_NEW_1(NAME,NEW_CLASS, TYPE) \
\
! REAL_NEW_1(NAME,NEW_CLASS, 0,0,0, TYPE)
/*! \brief Implementation of a flext dsp class with one argument
***************
*** 131,135 ****
#define FLEXT_NEW_DSP_1(NAME,NEW_CLASS, TYPE) \
\
! REAL_NEW_1(NAME,NEW_CLASS, 1, 0,TYPE) \
/*! \brief Implementation of a flext class (part of a library) with one argument
--- 159,170 ----
#define FLEXT_NEW_DSP_1(NAME,NEW_CLASS, TYPE) \
\
! REAL_NEW_1(NAME,NEW_CLASS, 1,0,0, TYPE)
!
! /*! \brief Implementation of a flext dsp class with one argument and no dsp inlet
! \ingroup FLEXT_D_NEW_DSP
! */
! #define FLEXT_NEW_DSP0_1(NAME,NEW_CLASS, TYPE) \
! \
! REAL_NEW_1(NAME,NEW_CLASS, 1,1,0, TYPE)
/*! \brief Implementation of a flext class (part of a library) with one argument
***************
*** 138,142 ****
#define FLEXT_LIB_1(NAME,NEW_CLASS, TYPE) \
\
! REAL_NEW_1(NAME,NEW_CLASS, 0,1,TYPE)
/*! \brief Implementation of a flext dsp class (part of a library) with one argument
--- 173,177 ----
#define FLEXT_LIB_1(NAME,NEW_CLASS, TYPE) \
\
! REAL_NEW_1(NAME,NEW_CLASS, 0,0,1, TYPE)
/*! \brief Implementation of a flext dsp class (part of a library) with one argument
***************
*** 145,149 ****
#define FLEXT_LIB_DSP_1(NAME,NEW_CLASS, TYPE) \
\
! REAL_NEW_1(NAME,NEW_CLASS, 1,1, TYPE)
--- 180,191 ----
#define FLEXT_LIB_DSP_1(NAME,NEW_CLASS, TYPE) \
\
! REAL_NEW_1(NAME,NEW_CLASS, 1,0,1, TYPE)
!
! /*! \brief Implementation of a flext dsp class (part of a library) with one argument and no dsp inlet
! \ingroup FLEXT_D_LIB_DSP
! */
! #define FLEXT_LIB_DSP0_1(NAME,NEW_CLASS, TYPE) \
! \
! REAL_NEW_1(NAME,NEW_CLASS, 1,1,1, TYPE)
***************
*** 156,160 ****
#define FLEXT_NEW_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
\
! REAL_NEW_2(NAME,NEW_CLASS, 0,0, TYPE1, TYPE2) \
/*! \brief Implementation of a flext dsp class with 2 arguments
--- 198,202 ----
#define FLEXT_NEW_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
\
! REAL_NEW_2(NAME,NEW_CLASS, 0,0,0, TYPE1, TYPE2)
/*! \brief Implementation of a flext dsp class with 2 arguments
***************
*** 163,167 ****
#define FLEXT_NEW_DSP_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
\
! REAL_NEW_2(NAME,NEW_CLASS, 1,0, TYPE1, TYPE2) \
/*! \brief Implementation of a flext class (part of a library) with 2 arguments
--- 205,216 ----
#define FLEXT_NEW_DSP_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
\
! REAL_NEW_2(NAME,NEW_CLASS, 1,0,0, TYPE1, TYPE2)
!
! /*! \brief Implementation of a flext dsp class with 2 arguments and no dsp inlet
! \ingroup FLEXT_D_NEW_DSP
! */
! #define FLEXT_NEW_DSP0_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
! \
! REAL_NEW_2(NAME,NEW_CLASS, 1,1,0, TYPE1, TYPE2)
/*! \brief Implementation of a flext class (part of a library) with 2 arguments
***************
*** 170,174 ****
#define FLEXT_LIB_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
\
! REAL_NEW_2(NAME,NEW_CLASS, 0,1, TYPE1, TYPE2)
/*! \brief Implementation of a flext dsp class (part of a library) with 2 arguments
--- 219,223 ----
#define FLEXT_LIB_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
\
! REAL_NEW_2(NAME,NEW_CLASS, 0,0,1, TYPE1, TYPE2)
/*! \brief Implementation of a flext dsp class (part of a library) with 2 arguments
***************
*** 177,181 ****
#define FLEXT_LIB_DSP_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
\
! REAL_NEW_2(NAME,NEW_CLASS, 1,1, TYPE1, TYPE2)
--- 226,237 ----
#define FLEXT_LIB_DSP_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
\
! REAL_NEW_2(NAME,NEW_CLASS, 1,0,1, TYPE1, TYPE2)
!
! /*! \brief Implementation of a flext dsp class (part of a library) with 2 arguments and no dsp inlet
! \ingroup FLEXT_D_LIB_DSP
! */
! #define FLEXT_LIB_DSP0_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
! \
! REAL_NEW_2(NAME,NEW_CLASS, 1,1,1, TYPE1, TYPE2)
***************
*** 188,192 ****
#define FLEXT_NEW_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
\
! REAL_NEW_3(NAME,NEW_CLASS, 0,0, TYPE1, TYPE2, TYPE3) \
/*! \brief Implementation of a flext dsp class with 3 arguments
--- 244,248 ----
#define FLEXT_NEW_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
\
! REAL_NEW_3(NAME,NEW_CLASS, 0,0,0, TYPE1, TYPE2, TYPE3)
/*! \brief Implementation of a flext dsp class with 3 arguments
***************
*** 195,199 ****
#define FLEXT_NEW_DSP_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
\
! REAL_NEW_3(NAME,NEW_CLASS, 1,0, TYPE1, TYPE2, TYPE3) \
/*! \brief Implementation of a flext class (part of a library) with 3 arguments
--- 251,262 ----
#define FLEXT_NEW_DSP_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
\
! REAL_NEW_3(NAME,NEW_CLASS, 1,0,0, TYPE1, TYPE2, TYPE3)
!
! /*! \brief Implementation of a flext dsp class with 3 arguments and no dsp inlet
! \ingroup FLEXT_D_NEW_DSP
! */
! #define FLEXT_NEW_DSP0_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
! \
! REAL_NEW_3(NAME,NEW_CLASS, 1,1,0, TYPE1, TYPE2, TYPE3)
/*! \brief Implementation of a flext class (part of a library) with 3 arguments
***************
*** 202,206 ****
#define FLEXT_LIB_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
\
! REAL_NEW_3(NAME,NEW_CLASS, 0,1,TYPE1, TYPE2, TYPE3)
/*! \brief Implementation of a flext dsp class (part of a library) with 3 arguments
--- 265,269 ----
#define FLEXT_LIB_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
\
! REAL_NEW_3(NAME,NEW_CLASS, 0,0,1, TYPE1, TYPE2, TYPE3)
/*! \brief Implementation of a flext dsp class (part of a library) with 3 arguments
***************
*** 209,213 ****
#define FLEXT_LIB_DSP_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
\
! REAL_NEW_3(NAME,NEW_CLASS, 1,1, TYPE1, TYPE2, TYPE3)
--- 272,283 ----
#define FLEXT_LIB_DSP_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
\
! REAL_NEW_3(NAME,NEW_CLASS, 1,0,1, TYPE1, TYPE2, TYPE3)
!
! /*! \brief Implementation of a flext dsp class (part of a library) with 3 arguments and no dsp inlet
! \ingroup FLEXT_D_LIB_DSP
! */
! #define FLEXT_LIB_DSP0_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
! \
! REAL_NEW_3(NAME,NEW_CLASS, 1,1,1, TYPE1, TYPE2, TYPE3)
Index: flprefix.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flprefix.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** flprefix.h 27 Oct 2006 13:34:56 -0000 1.37
--- flprefix.h 31 Oct 2006 00:30:57 -0000 1.38
***************
*** 3,7 ****
flext - C++ layer for Max/MSP and pd (pure data) externals
! Copyright (c) 2001-2005 Thomas Grill (gr(a)grrrr.org)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.
--- 3,7 ----
flext - C++ layer for Max/MSP and pd (pure data) externals
! Copyright (c) 2001-2006 Thomas Grill (gr(a)grrrr.org)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.
Index: flclass.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flclass.h,v
retrieving revision 1.70
retrieving revision 1.71
diff -C2 -d -r1.70 -r1.71
*** flclass.h 20 Sep 2006 14:24:10 -0000 1.70
--- flclass.h 31 Oct 2006 00:30:57 -0000 1.71
***************
*** 844,848 ****
// add class method handlers
! static void AddMessageMethods(t_class *c,bool dsp);
private:
--- 844,848 ----
// add class method handlers
! static void AddMessageMethods(t_class *c,bool dsp,bool dspin);
private: