aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/fldefs_setup.h
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2003-04-20 02:36:20 +0000
committerThomas Grill <xovo@users.sourceforge.net>2003-04-20 02:36:20 +0000
commit8248ce3d66a19f77ffe10ded4b922cf0606f47a4 (patch)
treeb94d6a69e6b481ec0da134fe42bce488cb329b9d /externals/grill/flext/source/fldefs_setup.h
parent0aac9d7803bc367ec22ed9df292d8a71d6013b55 (diff)
""
svn path=/trunk/; revision=579
Diffstat (limited to 'externals/grill/flext/source/fldefs_setup.h')
-rw-r--r--externals/grill/flext/source/fldefs_setup.h259
1 files changed, 259 insertions, 0 deletions
diff --git a/externals/grill/flext/source/fldefs_setup.h b/externals/grill/flext/source/fldefs_setup.h
new file mode 100644
index 00000000..b1a1f00d
--- /dev/null
+++ b/externals/grill/flext/source/fldefs_setup.h
@@ -0,0 +1,259 @@
+/*
+
+flext - C++ layer for Max/MSP and pd (pure data) externals
+
+Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net)
+For information on usage and redistribution, and for a DISCLAIMER OF ALL
+WARRANTIES, see the file, "license.txt," in this distribution.
+
+*/
+
+/*! \file fldef_setup.h
+ \brief This file contains all #defines for actual usage
+
+*/
+
+#ifndef __FLEXT_DEFS_SETUP_H
+#define __FLEXT_DEFS_SETUP_H
+
+// ====================================================================================
+
+/*! \defgroup FLEXT_D_INSTANCE Class instantiation
+ \note The name of your class is of importance! It must be the same as the external
+ \note (excluded an eventual ~ (tilde))
+*/
+
+
+/*! \defgroup FLEXT_D_NEW Stand-alone class instantiation
+ Makes an actual instance of a stand-alone class.
+*/
+
+/*! \defgroup FLEXT_D_NEW_DSP Dsp class instantiation
+ Makes an actual instance of a dsp (aka "tilde") class (with signal processing).
+*/
+
+/*! \defgroup FLEXT_D_LIB Library class instantiation
+ Makes an actual instance of a class which is part of an object library (and not stand-alone).
+*/
+
+/*! \defgroup FLEXT_D_LIB_DSP Dsp library class instantiation
+ Makes an actual instance of a dsp (aka "tilde") class with signal processing
+ which is part of an object library (and not stand-alone).
+*/
+
+// NO ARGUMENTS
+// ----------------------------------------
+
+/*! \brief Implementation of a flext class with no arguments
+ \ingroup FLEXT_D_NEW
+ \param NAME the object's actual name(s) as a string (like "*", "trigger", "noise~", etc.)
+ \param NEW_CLASS the object's C++ class name
+*/
+#define FLEXT_NEW(NAME,NEW_CLASS) \
+\
+REAL_NEW(NAME,NEW_CLASS,0,0)
+
+/*! \brief Implementation of a flext dsp class with no arguments
+ \ingroup FLEXT_D_NEW_DSP
+*/
+#define FLEXT_NEW_DSP(NAME,NEW_CLASS) \
+\
+REAL_NEW(NAME,NEW_CLASS,1,0)
+
+/*! \brief Implementation of a flext class (part of a library) with no arguments
+ \ingroup FLEXT_D_LIB
+*/
+#define FLEXT_LIB(NAME,NEW_CLASS) \
+\
+REAL_NEW(NAME,NEW_CLASS,0,1)
+
+/*! \brief Implementation of a flext dsp class (part of a library) with no arguments
+ \ingroup FLEXT_D_LIB_DSP
+*/
+#define FLEXT_LIB_DSP(NAME,NEW_CLASS) \
+\
+REAL_NEW(NAME,NEW_CLASS,1,1)
+
+
+// VARIABLE ARGUMENT LIST
+// ----------------------------------------
+
+/*! \brief Implementation of a flext class with a variable argument list
+ \ingroup FLEXT_D_NEW
+*/
+#define FLEXT_NEW_V(NAME,NEW_CLASS) \
+\
+REAL_NEW_V(NAME,NEW_CLASS,0,0) \
+
+/*! \brief Implementation of a flext dsp class with a variable argument list
+ \ingroup FLEXT_D_NEW_DSP
+*/
+#define FLEXT_NEW_DSP_V(NAME,NEW_CLASS) \
+\
+REAL_NEW_V(NAME,NEW_CLASS,1,0) \
+
+/*! \brief Implementation of a flext class (part of a library) with a variable argument list
+ \ingroup FLEXT_D_LIB
+*/
+#define FLEXT_LIB_V(NAME,NEW_CLASS) \
+\
+REAL_NEW_V(NAME,NEW_CLASS, 0,1)
+
+/*! \brief Implementation of a flext dsp class (part of a library) with a variable argument list
+ \ingroup FLEXT_D_LIB_DSP
+*/
+#define FLEXT_LIB_DSP_V(NAME,NEW_CLASS) \
+\
+REAL_NEW_V(NAME,NEW_CLASS, 1,1)
+
+
+// ONE ARGUMENT
+// ----------------------------------------
+
+/*! \brief Implementation of a flext class with one argument
+ \ingroup FLEXT_D_NEW
+*/
+#define FLEXT_NEW_1(NAME,NEW_CLASS, TYPE) \
+\
+REAL_NEW_1(NAME,NEW_CLASS, 0, 0,TYPE) \
+
+/*! \brief Implementation of a flext dsp class with one argument
+ \ingroup FLEXT_D_NEW_DSP
+*/
+#define FLEXT_NEW_DSP_1(NAME,NEW_CLASS, TYPE) \
+\
+REAL_NEW_1(NAME,NEW_CLASS, 1, 0,TYPE) \
+
+/*! \brief Implementation of a flext class (part of a library) with one argument
+ \ingroup FLEXT_D_LIB
+*/
+#define FLEXT_LIB_1(NAME,NEW_CLASS, TYPE) \
+\
+REAL_NEW_1(NAME,NEW_CLASS, 0,1,TYPE)
+
+/*! \brief Implementation of a flext dsp class (part of a library) with one argument
+ \ingroup FLEXT_D_LIB_DSP
+*/
+#define FLEXT_LIB_DSP_1(NAME,NEW_CLASS, TYPE) \
+\
+REAL_NEW_1(NAME,NEW_CLASS, 1,1, TYPE)
+
+
+// TWO ARGUMENTS
+// ----------------------------------------
+
+/*! \brief Implementation of a flext class with 2 arguments
+ \ingroup FLEXT_D_NEW
+*/
+#define FLEXT_NEW_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
+\
+REAL_NEW_2(NAME,NEW_CLASS, 0,0, TYPE1, TYPE2) \
+
+/*! \brief Implementation of a flext dsp class with 2 arguments
+ \ingroup FLEXT_D_NEW_DSP
+*/
+#define FLEXT_NEW_DSP_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
+\
+REAL_NEW_2(NAME,NEW_CLASS, 1,0, TYPE1, TYPE2) \
+
+/*! \brief Implementation of a flext class (part of a library) with 2 arguments
+ \ingroup FLEXT_D_LIB
+*/
+#define FLEXT_LIB_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
+\
+REAL_NEW_2(NAME,NEW_CLASS, 0,1, TYPE1, TYPE2)
+
+/*! \brief Implementation of a flext dsp class (part of a library) with 2 arguments
+ \ingroup FLEXT_D_LIB_DSP
+*/
+#define FLEXT_LIB_DSP_2(NAME,NEW_CLASS, TYPE1, TYPE2) \
+\
+REAL_NEW_2(NAME,NEW_CLASS, 1,1, TYPE1, TYPE2)
+
+
+// THREE ARGUMENTS
+// ----------------------------------------
+
+/*! \brief Implementation of a flext class with 3 arguments
+ \ingroup FLEXT_D_NEW
+*/
+#define FLEXT_NEW_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
+\
+REAL_NEW_3(NAME,NEW_CLASS, 0,0, TYPE1, TYPE2, TYPE3) \
+
+/*! \brief Implementation of a flext dsp class with 3 arguments
+ \ingroup FLEXT_D_NEW_DSP
+*/
+#define FLEXT_NEW_DSP_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
+\
+REAL_NEW_3(NAME,NEW_CLASS, 1,0, TYPE1, TYPE2, TYPE3) \
+
+/*! \brief Implementation of a flext class (part of a library) with 3 arguments
+ \ingroup FLEXT_D_LIB
+*/
+#define FLEXT_LIB_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
+\
+REAL_NEW_3(NAME,NEW_CLASS, 0,1,TYPE1, TYPE2, TYPE3)
+
+/*! \brief Implementation of a flext dsp class (part of a library) with 3 arguments
+ \ingroup FLEXT_D_LIB_DSP
+*/
+#define FLEXT_LIB_DSP_3(NAME,NEW_CLASS, TYPE1, TYPE2, TYPE3) \
+\
+REAL_NEW_3(NAME,NEW_CLASS, 1,1, TYPE1, TYPE2, TYPE3)
+
+
+// deprecated stuff
+
+/*! \defgroup FLEXT_D_DEPRECATED Deprecated definitions
+ \deprecated
+ @{
+*/
+
+#define FLEXT_NEW_G FLEXT_NEW_V
+
+#define FLEXT_NEW_TILDE FLEXT_NEW_DSP
+#define FLEXT_NEW_TILDE_G FLEXT_NEW_DSP_V
+#define FLEXT_NEW_TILDE_1 FLEXT_NEW_DSP_1
+#define FLEXT_NEW_TILDE_2 FLEXT_NEW_DSP_2
+#define FLEXT_NEW_TILDE_3 FLEXT_NEW_DSP_3
+
+#define FLEXT_LIB_G FLEXT_LIB_V
+
+#define FLEXT_LIB_TILDE FLEXT_LIB_DSP
+#define FLEXT_LIB_TILDE_G FLEXT_LIB_DSP_V
+#define FLEXT_LIB_TILDE_1 FLEXT_LIB_DSP_1
+#define FLEXT_LIB_TILDE_2 FLEXT_LIB_DSP_2
+#define FLEXT_LIB_TILDE_3 FLEXT_LIB_DSP_3
+
+#define FLEXT_TILDE_SETUP FLEXT_DSP_SETUP
+
+//! @} FLEXT_D_DEPRECATED
+
+
+/*! \defgroup FLEXT_D_LIBRARY Definitions for library objects
+ @{
+*/
+
+/*! \brief Specify that to declare the library itself.
+ \note If you have a library this is compulsory (to register all the objects of the library)
+*/
+#define FLEXT_LIB_SETUP(NAME,SETUPFUN) REAL_LIB_SETUP(NAME,SETUPFUN)
+
+/*! \brief Register an object in the library.
+ \note This is used in the library setup function
+*/
+#define FLEXT_SETUP(cl) REAL_SETUP(cl,0)
+
+/*! \brief Register a DSP object in the library.
+ \note This is used in the library setup function
+*/
+#define FLEXT_DSP_SETUP(cl) REAL_SETUP(cl,1)
+
+//! @} FLEXT_D_LIBRARY
+
+
+//! @} FLEXT_D_INSTANCE
+
+
+#endif