[GEM-cvs] Gem/src/Base CPPExtern.h,1.8,1.9
Brought to you by:
zmoelnig
From: IOhannes m z. <zmo...@us...> - 2005-05-04 13:22:13
|
Update of /cvsroot/pd-gem/Gem/src/Base In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24041 Modified Files: CPPExtern.h Log Message: added a flag to declare the pdclass-definition non-static (so we can findbyclass() from other objects) Index: CPPExtern.h =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Base/CPPExtern.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** CPPExtern.h 7 Mar 2005 09:19:24 -0000 1.8 --- CPPExtern.h 4 May 2005 13:22:00 -0000 1.9 *************** *** 226,229 **** --- 226,241 ---- /////////////////////////////////////////////////////////////////////////////// + // static class: + // by default classes are declared static + // however, sometimes we need classes not-static, so we can refer to them + // from other classes + /////////////////////////////////////////////////////////////////////////////// + #ifdef NO_STATIC_CLASS + # define STATIC_CLASS + #else + # define STATIC_CLASS static + #endif + + /////////////////////////////////////////////////////////////////////////////// // auto registering a class // this creates a dummy class, whose constructor calls the setup-function *************** *** 268,272 **** /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME) \ ! static t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS () \ { \ --- 280,284 ---- /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME) \ ! STATIC_CLASS t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS () \ { \ *************** *** 301,305 **** /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, VAR_TYPE, PD_TYPE) \ ! static t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (VAR_TYPE arg) \ { \ --- 313,317 ---- /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, VAR_TYPE, PD_TYPE) \ ! STATIC_CLASS t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (VAR_TYPE arg) \ { \ *************** *** 334,338 **** /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_GIMME(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME) \ ! static t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (t_symbol *s, int argc, t_atom *argv) \ { \ --- 346,350 ---- /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_GIMME(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME) \ ! STATIC_CLASS t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (t_symbol *s, int argc, t_atom *argv) \ { \ *************** *** 367,371 **** /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, ONE_VAR_TYPE, ONE_PD_TYPE, TWO_VAR_TYPE, TWO_PD_TYPE) \ ! static t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (ONE_VAR_TYPE arg, TWO_VAR_TYPE argtwo) \ { \ --- 379,383 ---- /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, ONE_VAR_TYPE, ONE_PD_TYPE, TWO_VAR_TYPE, TWO_PD_TYPE) \ ! STATIC_CLASS t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (ONE_VAR_TYPE arg, TWO_VAR_TYPE argtwo) \ { \ *************** *** 400,404 **** /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG_ARG_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, ONE_VAR_TYPE, ONE_PD_TYPE, TWO_VAR_TYPE, TWO_PD_TYPE, THREE_VAR_TYPE, THREE_PD_TYPE) \ ! static t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (ONE_VAR_TYPE arg, TWO_VAR_TYPE argtwo, THREE_VAR_TYPE argthree) \ { \ --- 412,416 ---- /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG_ARG_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, ONE_VAR_TYPE, ONE_PD_TYPE, TWO_VAR_TYPE, TWO_PD_TYPE, THREE_VAR_TYPE, THREE_PD_TYPE) \ ! STATIC_CLASS t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (ONE_VAR_TYPE arg, TWO_VAR_TYPE argtwo, THREE_VAR_TYPE argthree) \ { \ *************** *** 433,437 **** /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG_ARG_ARG_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, ONE_VAR_TYPE, ONE_PD_TYPE, TWO_VAR_TYPE, TWO_PD_TYPE, THREE_VAR_TYPE, THREE_PD_TYPE, FOUR_VAR_TYPE, FOUR_PD_TYPE) \ ! static t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (ONE_VAR_TYPE arg, TWO_VAR_TYPE argtwo, THREE_VAR_TYPE argthree, FOUR_VAR_TYPE argfour) \ { \ --- 445,449 ---- /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG_ARG_ARG_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, ONE_VAR_TYPE, ONE_PD_TYPE, TWO_VAR_TYPE, TWO_PD_TYPE, THREE_VAR_TYPE, THREE_PD_TYPE, FOUR_VAR_TYPE, FOUR_PD_TYPE) \ ! STATIC_CLASS t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (ONE_VAR_TYPE arg, TWO_VAR_TYPE argtwo, THREE_VAR_TYPE argthree, FOUR_VAR_TYPE argfour) \ { \ *************** *** 466,470 **** /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG_ARG_ARG_ARG_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, ONE_VAR_TYPE, ONE_PD_TYPE, TWO_VAR_TYPE, TWO_PD_TYPE, THREE_VAR_TYPE, THREE_PD_TYPE, FOUR_VAR_TYPE, FOUR_PD_TYPE, FIVE_VAR_TYPE, FIVE_PD_TYPE) \ ! static t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (ONE_VAR_TYPE arg, TWO_VAR_TYPE argtwo, THREE_VAR_TYPE argthree, FOUR_VAR_TYPE argfour, FIVE_VAR_TYPE argfive) \ { \ --- 478,482 ---- /////////////////////////////////////////////////////////////////////////////// #define REAL_NEW_WITH_ARG_ARG_ARG_ARG_ARG(NEW_CLASS, SETUP_FUNCTION, EXTERN_NAME, ONE_VAR_TYPE, ONE_PD_TYPE, TWO_VAR_TYPE, TWO_PD_TYPE, THREE_VAR_TYPE, THREE_PD_TYPE, FOUR_VAR_TYPE, FOUR_PD_TYPE, FIVE_VAR_TYPE, FIVE_PD_TYPE) \ ! STATIC_CLASS t_class * NEW_CLASS ## EXTERN_NAME; \ void * EXTERN_NAME ## NEW_CLASS (ONE_VAR_TYPE arg, TWO_VAR_TYPE argtwo, THREE_VAR_TYPE argthree, FOUR_VAR_TYPE argfour, FIVE_VAR_TYPE argfive) \ { \ |