aboutsummaryrefslogtreecommitdiff
path: root/chaos/src/chaos_defs.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'chaos/src/chaos_defs.hpp')
-rw-r--r--chaos/src/chaos_defs.hpp43
1 files changed, 41 insertions, 2 deletions
diff --git a/chaos/src/chaos_defs.hpp b/chaos/src/chaos_defs.hpp
index 08c47d4..d9f60d8 100644
--- a/chaos/src/chaos_defs.hpp
+++ b/chaos/src/chaos_defs.hpp
@@ -124,9 +124,24 @@ FLEXT_CALLVAR_I(get_##NAME, set_##NAME);
#define CHAOS_SYS_ATTRIBUTE(NAME) \
FLEXT_ADDATTR_VAR(#NAME,get_##NAME, set_##NAME);
-#define CHAOS_SYS_INIT(NAME, VALUE) \
+
+#define CHAOS_INIT(NAME, VALUE) \
set_##NAME(VALUE);
+#define CHAOS_SYS_INIT(NAME, VALUE, INDEX) \
+set_##NAME(VALUE); \
+t_atom atom_##NAME; \
+flext::SetSymbol(atom_##NAME, flext::MakeSymbol(#NAME)); \
+System.Append(atom_##NAME); \
+attr_ind[flext::MakeSymbol(#NAME)] = INDEX;
+
+#define CHAOS_PAR_INIT(NAME, VALUE) \
+set_##NAME(VALUE); \
+t_atom atom_##NAME; \
+flext::SetSymbol(atom_##NAME, flext::MakeSymbol(#NAME)); \
+Parameter.Append(atom_##NAME);
+
+
#define CHAOS_PARAMETER(NAME) m_##NAME
@@ -142,6 +157,7 @@ class CLASSNAME##_dsp: \
}; \
FLEXT_LIB_DSP_V(#CLASSNAME"~", CLASSNAME##_dsp);
+
#define CHAOS_DSP_CLASS_NAME(CLASSNAME,CLASSNAME_UC, NAME) \
class CLASSNAME##_dsp: \
public chaos_dsp<CLASSNAME> \
@@ -161,6 +177,7 @@ class CLASSNAME##_msg: \
}; \
FLEXT_LIB_V(#CLASSNAME, CLASSNAME##_msg);
+
#define CHAOS_MSG_CLASS_NAME(CLASSNAME,CLASSNAME_UC, NAME) \
class CLASSNAME##_msg: \
public chaos_msg<CLASSNAME> \
@@ -170,9 +187,31 @@ class CLASSNAME##_msg: \
}; \
FLEXT_LIB_V(#NAME, CLASSNAME##_msg);
+#define CHAOS_SEARCH_CLASS(CLASSNAME,CLASSNAME_UC) \
+class CLASSNAME##_search: \
+ public chaos_search<CLASSNAME> \
+{ \
+ CHAOS_SEARCH_INIT(CLASSNAME, CLASSNAME_UC##_ATTRIBUTES); \
+ CLASSNAME_UC##_CALLBACKS; \
+}; \
+FLEXT_LIB_V(#CLASSNAME"_search", CLASSNAME##_search);
+
+
+#define CHAOS_SEARCH_CLASS_NAME(CLASSNAME,CLASSNAME_UC, NAME) \
+class CLASSNAME##_msg: \
+ public chaos_search<CLASSNAME> \
+{ \
+ CHAOS_SEARCH_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);
+FLEXT_SETUP(NAME##_msg); \
+FLEXT_SETUP(NAME##_search);
#define __chaos_defs_hpp
#endif /* __chaos_defs_hpp */