aboutsummaryrefslogtreecommitdiff
path: root/chaos/src/chaos_defs.hpp
diff options
context:
space:
mode:
authorTim Blechmann <timblech@users.sourceforge.net>2004-12-27 22:55:41 +0000
committerIOhannes m zmölnig <zmoelnig@iem.at>2015-10-14 15:11:58 +0200
commit6963657b3f3ee4321394953a2cc67cd7386cce2d (patch)
tree3ded4ec93a8843b9f990848a49afb9b514ec6a3e /chaos/src/chaos_defs.hpp
parentb2f2fd990f9059db784a7849726c6fc5006c70f9 (diff)
additions and better code reuse
svn path=/trunk/externals/tb/; revision=2433
Diffstat (limited to 'chaos/src/chaos_defs.hpp')
-rw-r--r--chaos/src/chaos_defs.hpp42
1 files changed, 41 insertions, 1 deletions
diff --git a/chaos/src/chaos_defs.hpp b/chaos/src/chaos_defs.hpp
index ae86223..b4c2b46 100644
--- a/chaos/src/chaos_defs.hpp
+++ b/chaos/src/chaos_defs.hpp
@@ -131,7 +131,47 @@ set_##NAME(VALUE);
-
+/* macros for class generation */
+#define CHAOS_DSP_CLASS(CLASSNAME,CLASSNAME_UC) \
+class CLASSNAME##_dsp: \
+ public chaos_dsp<CLASSNAME> \
+{ \
+ CHAOS_DSP_INIT(CLASSNAME, CLASSNAME_UC##_ATTRIBUTES); \
+ CLASSNAME_UC##_CALLBACKS; \
+}; \
+FLEXT_LIB_DSP_V(#CLASSNAME"~", CLASSNAME##_dsp);
+
+#define CHAOS_DSP_CLASS_NAME(CLASSNAME,CLASSNAME_UC, NAME) \
+class CLASSNAME##_dsp: \
+ public chaos_dsp<CLASSNAME> \
+{ \
+ CHAOS_DSP_INIT(CLASSNAME, CLASSNAME_UC##_ATTRIBUTES); \
+ CLASSNAME_UC##_CALLBACKS; \
+}; \
+FLEXT_LIB_DSP_V(#NAME, CLASSNAME##_dsp);
+
+
+#define CHAOS_MSG_CLASS(CLASSNAME,CLASSNAME_UC) \
+class CLASSNAME##_msg: \
+ public chaos_msg<CLASSNAME> \
+{ \
+ CHAOS_MSG_INIT(CLASSNAME, CLASSNAME_UC##_ATTRIBUTES); \
+ CLASSNAME_UC##_CALLBACKS; \
+}; \
+FLEXT_LIB_V(#CLASSNAME, CLASSNAME##_msg);
+
+#define CHAOS_MSG_CLASS_NAME(CLASSNAME,CLASSNAME_UC, NAME) \
+class CLASSNAME##_msg: \
+ public chaos_msg<CLASSNAME> \
+{ \
+ CHAOS_MSG_INIT(CLASSNAME, CLASSNAME_UC##_ATTRIBUTES); \
+ CLASSNAME_UC##_CALLBACKS; \
+}; \
+FLEXT_LIB_V(#NAME, CLASSNAME##_msg);
+
+#define CHAOS_ADD(NAME) \
+FLEXT_DSP_SETUP(NAME##_dsp); \
+FLEXT_SETUP(NAME##_msg);
#define __chaos_defs_hpp
#endif /* __chaos_defs_hpp */