flext 0.6.2
Modules | Macros | Functions | Variables

Modules

 Actual PD or Max/MSP object
 
 Internal stuff
 

Macros

#define FLEXT_MAXNEWARGS   4
 This is a temporary holder. More...
 
#define FLEXT_MAXMETHARGS   5
 
#define FLEXT_CALL_PRE(F)   flext_c_##F
 
#define FLEXT_THR_PRE(F)   flext_t_##F
 
#define FLEXT_GET_PRE(F)   flext_g_##F
 
#define FLEXT_SET_PRE(F)   flext_s_##F
 
#define FLEXT_REALHDR(NEW_CLASS, PARENT_CLASS)
 
#define FLEXT_REALHDR_S(NEW_CLASS, PARENT_CLASS, SETUPFUN)
 
#define FLEXT_REALHDR_T(NEW_CLASS, PARENT_CLASS)
 
#define FLEXT_REALHDR_TS(NEW_CLASS, PARENT_CLASS, SETUPFUN)
 
#define FLEXT_STPF_(DSP)   FLEXT_STPF_##DSP
 
#define FLEXT_STPF(NAME, DSP)   FLEXT_STPF_(DSP)(NAME)
 
#define REAL_SETUP(cl, DSP)   extern void FLEXT_STPF(cl,DSP)(); FLEXT_STPF(cl,DSP)();
 
#define _FLEXT_REAL_SETUP_NAME(NAME)   NAME##_setup
 
#define FLEXT_EXP_0   extern "C" FLEXT_EXT
 
#define FLEXT_EXP_1
 
#define FLEXT_EXP(LIB)   FLEXT_EXP_##LIB
 
#define FLEXT_OBJ_SETUP_1(NEW_CLASS, DSP)
 
#define FLEXT_OBJ_SETUP(NEW_CLASS, DSP, LIB)   FLEXT_OBJ_SETUP_##LIB(NEW_CLASS,DSP)
 
#define FLEXTTPN_NULL   0
 
#define FLEXTTPN_PTR   1
 
#define FLEXTTPN_INT   2
 
#define FLEXTTPN_FLOAT   3
 
#define FLEXTTPN_SYM   4
 
#define FLEXTTPN_VAR   5
 
#define FLEXTTPN_DEFINT   6
 
#define FLEXTTPN_DEFFLOAT   7
 
#define FLEXTTPN_DEFSYM   8
 
#define FLEXTTYPE_void   FLEXTTPN_NULL
 
#define CALLBTYPE_void   void
 
#define FLEXTTYPE_float   FLEXTTPN_FLOAT
 
#define FLEXTTYPE_float0   FLEXTTPN_DEFFLOAT
 
#define CALLBTYPE_float   float
 
#define FLEXTTYPE_t_float   FLEXTTPN_FLOAT
 
#define CALLBTYPE_t_float   t_float
 
#define FLEXTTYPE_t_symptr   FLEXTTPN_SYM
 
#define FLEXTTYPE_t_symptr0   FLEXTTPN_DEFSYM
 
#define CALLBTYPE_t_symptr   t_symptr
 
#define FLEXTTYPE_t_symtype   FLEXTTYPE_t_symptr
 
#define FLEXTTYPE_t_symtype0   FLEXTTYPE_t_symptr0
 
#define CALLBTYPE_t_symtype   t_symptr
 
#define FLEXTTYPE_t_ptrtype   FLEXTTPN_PTR
 
#define CALLBTYPE_t_ptrtype   t_ptrtype
 
#define FLEXTTP(TP)   FLEXTTYPE_ ## TP
 
#define CALLBTP(TP)   CALLBTYPE_ ## TP
 
#define ARGMEMBER_bool(a)   GetBool(a)
 
#define ARGMEMBER_bool0(a)   ARGMEMBER_bool(a)
 
#define ARGMEMBER_int(a)   GetInt(a)
 
#define ARGMEMBER_int0(a)   ARGMEMBER_int(a)
 
#define ARGMEMBER_float(a)   GetFloat(a)
 
#define ARGMEMBER_float0(a)   ARGMEMBER_float(a)
 
#define ARGMEMBER_t_symptr(a)   GetSymbol(a)
 
#define ARGMEMBER_t_symptr0(a)   ARGMEMBER_t_symptr(a)
 
#define ARGMEMBER_t_symtype(a)   ARGMEMBER_t_symptr(a)
 
#define ARGMEMBER_t_symtype0(a)   ARGMEMBER_t_symptr0(a)
 
#define ARGCAST(a, tp)   ARGMEMBER_##tp(a)
 
#define REAL_NEW(NAME, NEW_CLASS, DSP, NOI, LIB)
 
#define REAL_NEW_V(NAME, NEW_CLASS, DSP, NOI, LIB)
 
#define REAL_NEW_1(NAME, NEW_CLASS, DSP, NOI, LIB, TYPE1)
 
#define REAL_NEW_2(NAME, NEW_CLASS, DSP, NOI, LIB, TYPE1, TYPE2)
 
#define REAL_NEW_3(NAME, NEW_CLASS, DSP, NOI, LIB, TYPE1, TYPE2, TYPE3)
 
#define REAL_NEW_4(NAME, NEW_CLASS, DSP, NOI, LIB, TYPE1, TYPE2, TYPE3, TYPE4)
 
#define FLEXTARG_float   a_float
 
#define FLEXTARG_int   a_int
 
#define FLEXTARG_bool   a_int
 
#define FLEXTARG_t_float   a_float
 
#define FLEXTARG_t_symtype   a_symbol
 
#define FLEXTARG_t_symptr   a_symbol
 
#define FLEXTARG_t_ptrtype   a_pointer
 
#define FLEXTARG(TP)   FLEXTARG_ ## TP
 

Functions

 flext_hdr::FLEXT_TEMPINST (FLEXT_CLASSDEF(flext_obj)) *data
 This points to the actual polymorphic C++ class. More...
 

Variables

t_sigobj flext_hdr::obj
 The obligatory object header. More...
 

Detailed Description

Remarks
This is still PD only

Macro Definition Documentation

◆ _FLEXT_REAL_SETUP_NAME

#define _FLEXT_REAL_SETUP_NAME (   NAME)    NAME##_setup

◆ ARGCAST

#define ARGCAST (   a,
  tp 
)    ARGMEMBER_##tp(a)

◆ ARGMEMBER_bool

#define ARGMEMBER_bool (   a)    GetBool(a)

◆ ARGMEMBER_bool0

#define ARGMEMBER_bool0 (   a)    ARGMEMBER_bool(a)

◆ ARGMEMBER_float

#define ARGMEMBER_float (   a)    GetFloat(a)

◆ ARGMEMBER_float0

#define ARGMEMBER_float0 (   a)    ARGMEMBER_float(a)

◆ ARGMEMBER_int

#define ARGMEMBER_int (   a)    GetInt(a)

◆ ARGMEMBER_int0

#define ARGMEMBER_int0 (   a)    ARGMEMBER_int(a)

◆ ARGMEMBER_t_symptr

#define ARGMEMBER_t_symptr (   a)    GetSymbol(a)

◆ ARGMEMBER_t_symptr0

#define ARGMEMBER_t_symptr0 (   a)    ARGMEMBER_t_symptr(a)

◆ ARGMEMBER_t_symtype

#define ARGMEMBER_t_symtype (   a)    ARGMEMBER_t_symptr(a)

◆ ARGMEMBER_t_symtype0

#define ARGMEMBER_t_symtype0 (   a)    ARGMEMBER_t_symptr0(a)

◆ CALLBTP

#define CALLBTP (   TP)    CALLBTYPE_ ## TP

◆ CALLBTYPE_float

#define CALLBTYPE_float   float

◆ CALLBTYPE_t_float

#define CALLBTYPE_t_float   t_float

◆ CALLBTYPE_t_ptrtype

#define CALLBTYPE_t_ptrtype   t_ptrtype

◆ CALLBTYPE_t_symptr

#define CALLBTYPE_t_symptr   t_symptr

◆ CALLBTYPE_t_symtype

#define CALLBTYPE_t_symtype   t_symptr

◆ CALLBTYPE_void

#define CALLBTYPE_void   void

◆ FLEXT_CALL_PRE

#define FLEXT_CALL_PRE (   F)    flext_c_##F

◆ FLEXT_EXP

#define FLEXT_EXP (   LIB)    FLEXT_EXP_##LIB

◆ FLEXT_EXP_0

#define FLEXT_EXP_0   extern "C" FLEXT_EXT

◆ FLEXT_EXP_1

#define FLEXT_EXP_1

◆ FLEXT_GET_PRE

#define FLEXT_GET_PRE (   F)    flext_g_##F

◆ FLEXT_MAXMETHARGS

#define FLEXT_MAXMETHARGS   5

◆ FLEXT_MAXNEWARGS

#define FLEXT_MAXNEWARGS   4

This is a temporary holder.

Warning
don't touch it!

The object's name in the patcher

Note
objects of the same class can have various alias names!

Return true if in object initialization phase true when in constructor or Init, false when in Finalize

◆ FLEXT_OBJ_SETUP

#define FLEXT_OBJ_SETUP (   NEW_CLASS,
  DSP,
  LIB 
)    FLEXT_OBJ_SETUP_##LIB(NEW_CLASS,DSP)

◆ FLEXT_OBJ_SETUP_1

#define FLEXT_OBJ_SETUP_1 (   NEW_CLASS,
  DSP 
)

◆ FLEXT_REALHDR

#define FLEXT_REALHDR (   NEW_CLASS,
  PARENT_CLASS 
)
Value:
public: \
typedef NEW_CLASS thisType; \
typedef PARENT_CLASS thisParent; \
static FLEXT_TEMPINST(FLEXT_CLASSDEF(flext_obj)) *__init__(int argc,t_atom *argv); \
static void __free__(flext_hdr *hdr) { delete hdr->data; } \
static void __setup__(flext_obj::t_classid classid) { thisParent::__setup__(classid); }
FLEXT_TEMPLATE class FLEXT_SHARE FLEXT_CLASSDEF(flext_obj)
typedef FLEXT_TEMPINST(FLEXT_CLASSDEF(flext_obj)) flext_obj
The obligatory PD or Max/MSP object header.
Definition: flbase.h:39

◆ FLEXT_REALHDR_S

#define FLEXT_REALHDR_S (   NEW_CLASS,
  PARENT_CLASS,
  SETUPFUN 
)
Value:
public: \
typedef NEW_CLASS thisType; \
typedef PARENT_CLASS thisParent; \
static FLEXT_TEMPINST(FLEXT_CLASSDEF(flext_obj)) *__init__(int argc,t_atom *argv); \
static void __free__(flext_hdr *hdr) { delete hdr->data; } \
static void __setup__(flext_obj::t_classid classid) { \
thisParent::__setup__(classid); \
thisType::SETUPFUN(classid); \
}

◆ FLEXT_REALHDR_T

#define FLEXT_REALHDR_T (   NEW_CLASS,
  PARENT_CLASS 
)
Value:
public: \
typedef NEW_CLASS thisType; \
typedef PARENT_CLASS thisParent; \
typedef typename thisParent::t_classid t_classid; \
static FLEXT_TEMPINST(FLEXT_CLASSDEF(flext_obj)) *__init__(int argc,t_atom *argv); \
static void __free__(flext_hdr *hdr) { delete hdr->data; } \
static void __setup__(flext_obj::t_classid classid) { thisParent::__setup__(classid); }

◆ FLEXT_REALHDR_TS

#define FLEXT_REALHDR_TS (   NEW_CLASS,
  PARENT_CLASS,
  SETUPFUN 
)
Value:
public: \
typedef NEW_CLASS thisType; \
typedef PARENT_CLASS thisParent; \
typedef typename thisParent::t_classid t_classid; \
static FLEXT_TEMPINST(FLEXT_CLASSDEF(flext_obj)) *__init__(int argc,t_atom *argv); \
static void __free__(flext_hdr *hdr) { delete hdr->data; } \
static void __setup__(flext_obj::t_classid classid) { \
thisParent::__setup__(classid); \
thisType::SETUPFUN(classid); \
}

◆ FLEXT_SET_PRE

#define FLEXT_SET_PRE (   F)    flext_s_##F

◆ FLEXT_STPF

#define FLEXT_STPF (   NAME,
  DSP 
)    FLEXT_STPF_(DSP)(NAME)

◆ FLEXT_STPF_

#define FLEXT_STPF_ (   DSP)    FLEXT_STPF_##DSP

◆ FLEXT_THR_PRE

#define FLEXT_THR_PRE (   F)    flext_t_##F

◆ FLEXTARG

#define FLEXTARG (   TP)    FLEXTARG_ ## TP

◆ FLEXTARG_bool

#define FLEXTARG_bool   a_int

◆ FLEXTARG_float

#define FLEXTARG_float   a_float

◆ FLEXTARG_int

#define FLEXTARG_int   a_int

◆ FLEXTARG_t_float

#define FLEXTARG_t_float   a_float

◆ FLEXTARG_t_ptrtype

#define FLEXTARG_t_ptrtype   a_pointer

◆ FLEXTARG_t_symptr

#define FLEXTARG_t_symptr   a_symbol

◆ FLEXTARG_t_symtype

#define FLEXTARG_t_symtype   a_symbol

◆ FLEXTTP

#define FLEXTTP (   TP)    FLEXTTYPE_ ## TP

◆ FLEXTTPN_DEFFLOAT

#define FLEXTTPN_DEFFLOAT   7

◆ FLEXTTPN_DEFINT

#define FLEXTTPN_DEFINT   6

◆ FLEXTTPN_DEFSYM

#define FLEXTTPN_DEFSYM   8

◆ FLEXTTPN_FLOAT

#define FLEXTTPN_FLOAT   3

◆ FLEXTTPN_INT

#define FLEXTTPN_INT   2

◆ FLEXTTPN_NULL

#define FLEXTTPN_NULL   0

◆ FLEXTTPN_PTR

#define FLEXTTPN_PTR   1

◆ FLEXTTPN_SYM

#define FLEXTTPN_SYM   4

◆ FLEXTTPN_VAR

#define FLEXTTPN_VAR   5

◆ FLEXTTYPE_float

#define FLEXTTYPE_float   FLEXTTPN_FLOAT

◆ FLEXTTYPE_float0

#define FLEXTTYPE_float0   FLEXTTPN_DEFFLOAT

◆ FLEXTTYPE_t_float

#define FLEXTTYPE_t_float   FLEXTTPN_FLOAT

◆ FLEXTTYPE_t_ptrtype

#define FLEXTTYPE_t_ptrtype   FLEXTTPN_PTR

◆ FLEXTTYPE_t_symptr

#define FLEXTTYPE_t_symptr   FLEXTTPN_SYM

◆ FLEXTTYPE_t_symptr0

#define FLEXTTYPE_t_symptr0   FLEXTTPN_DEFSYM

◆ FLEXTTYPE_t_symtype

#define FLEXTTYPE_t_symtype   FLEXTTYPE_t_symptr

◆ FLEXTTYPE_t_symtype0

#define FLEXTTYPE_t_symtype0   FLEXTTYPE_t_symptr0

◆ FLEXTTYPE_void

#define FLEXTTYPE_void   FLEXTTPN_NULL

◆ REAL_NEW

#define REAL_NEW (   NAME,
  NEW_CLASS,
  DSP,
  NOI,
  LIB 
)
Value:
flext_obj *NEW_CLASS::__init__(int ,t_atom *) \
{ \
return new NEW_CLASS; \
} \
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 FLEXT_ATTRIBUTES
Switch for global attribute processing.
Definition: flbase.h:347
#define FLEXT_STPF(NAME, DSP)
Definition: flbase.h:416
#define FLEXTTPN_NULL
Definition: flbase.h:481

◆ REAL_NEW_1

#define REAL_NEW_1 (   NAME,
  NEW_CLASS,
  DSP,
  NOI,
  LIB,
  TYPE1 
)
Value:
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
return new NEW_CLASS(ARGCAST(argv[0],TYPE1)); \
} \
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 FLEXTTP(TP)
Definition: flbase.h:528
#define ARGCAST(a, tp)
Definition: flbase.h:542

◆ REAL_NEW_2

#define REAL_NEW_2 (   NAME,
  NEW_CLASS,
  DSP,
  NOI,
  LIB,
  TYPE1,
  TYPE2 
)
Value:
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2)); \
} \
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)

◆ REAL_NEW_3

#define REAL_NEW_3 (   NAME,
  NEW_CLASS,
  DSP,
  NOI,
  LIB,
  TYPE1,
  TYPE2,
  TYPE3 
)
Value:
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2),ARGCAST(argv[2],TYPE3)); \
} \
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)

◆ REAL_NEW_4

#define REAL_NEW_4 (   NAME,
  NEW_CLASS,
  DSP,
  NOI,
  LIB,
  TYPE1,
  TYPE2,
  TYPE3,
  TYPE4 
)
Value:
flext_obj *NEW_CLASS::__init__(int,t_atom *argv) \
{ \
return new NEW_CLASS(ARGCAST(argv[0],TYPE1),ARGCAST(argv[1],TYPE2),ARGCAST(argv[2],TYPE3),ARGCAST(argv[3],TYPE4)); \
} \
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)

◆ REAL_NEW_V

#define REAL_NEW_V (   NAME,
  NEW_CLASS,
  DSP,
  NOI,
  LIB 
)
Value:
flext_obj *NEW_CLASS::__init__(int argc,t_atom *argv) \
{ \
return new NEW_CLASS(argc,argv); \
} \
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 FLEXTTPN_VAR
Definition: flbase.h:486

◆ REAL_SETUP

#define REAL_SETUP (   cl,
  DSP 
)    extern void FLEXT_STPF(cl,DSP)(); FLEXT_STPF(cl,DSP)();

Function Documentation

◆ FLEXT_TEMPINST()

flext_hdr::FLEXT_TEMPINST ( FLEXT_CLASSDEF(flext_obj)  )

This points to the actual polymorphic C++ class.

Variable Documentation

◆ obj

t_sigobj flext_hdr::obj

The obligatory object header.

Note
MUST reside at memory offset 0 (no virtual table possible)