Help/assistance functionality
Object creation/destruction functionality » Get various information

## 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_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_CLASSDEF
FLEXT_TEMPLATE class FLEXT_SHARE FLEXT_CLASSDEF(flext_obj)
flext_hdr
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_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_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_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)
FLEXT_ATTRIBUTES
#define FLEXT_ATTRIBUTES
Switch for global attribute processing.
Definition: flbase.h:347
FLEXT_STPF
#define FLEXT_STPF(NAME, DSP)
Definition: flbase.h:416
FLEXTTPN_NULL
#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)
FLEXTTP
#define FLEXTTP(TP)
Definition: flbase.h:528
ARGCAST
#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)
FLEXTTPN_VAR
#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)