flext  0.6.2
Classes | Macros | Typedefs | Functions
flbase.h File Reference

Internal flext base classes. More...

#include "flstdc.h"
#include "flsupport.h"
#include <map>
#include "flpushns.h"
#include "flpopns.h"

Go to the source code of this file.

Classes

struct  flext_hdr
 The obligatory PD or Max/MSP object header. More...
 

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_ATTRIBUTES
 Switch for global attribute processing. More...
 
#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
 

Typedefs

typedef std::map< const t_symbol *, FLEXT_TEMPINST(flext_class) * > LibMap
 

Functions

FLEXT_TEMPLATE class FLEXT_SHARE FLEXT_CLASSDEF (flext_obj)
 
typedef FLEXT_TEMPINST (FLEXT_CLASSDEF(flext_obj)) flext_obj
 

Detailed Description

Internal flext base classes.

Remarks
This uses some ideas of GEM invented by Mark Danks

Typedef Documentation

◆ LibMap

typedef std::map<const t_symbol *,FLEXT_TEMPINST(flext_class) *> LibMap

Function Documentation

◆ FLEXT_CLASSDEF()

FLEXT_TEMPLATE class FLEXT_SHARE FLEXT_CLASSDEF ( flext_obj  )

◆ FLEXT_TEMPINST()

typedef FLEXT_TEMPINST ( FLEXT_CLASSDEF(flext_obj)  )