aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/fldefs_attrcb.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_attrcb.h
parent0aac9d7803bc367ec22ed9df292d8a71d6013b55 (diff)
""
svn path=/trunk/; revision=579
Diffstat (limited to 'externals/grill/flext/source/fldefs_attrcb.h')
-rw-r--r--externals/grill/flext/source/fldefs_attrcb.h147
1 files changed, 147 insertions, 0 deletions
diff --git a/externals/grill/flext/source/fldefs_attrcb.h b/externals/grill/flext/source/fldefs_attrcb.h
new file mode 100644
index 00000000..4e2fc700
--- /dev/null
+++ b/externals/grill/flext/source/fldefs_attrcb.h
@@ -0,0 +1,147 @@
+/*
+
+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 fldefs_attrcb.h
+ \brief This file contains all #defines for actual usage
+
+*/
+
+#ifndef __FLEXT_DEFS_ATTRCB_H
+#define __FLEXT_DEFS_ATTRCB_H
+
+
+
+/*! \brief Declare a attribute set function
+ \internal
+*/
+#define FLEXT_CALLSET_(FUN,TP) \
+static bool FLEXT_SET_PRE(FUN)(flext_base *c,TP &arg) \
+{ FLEXT_CAST<thisType *>(c)->FUN(arg); return true; }
+
+/*! \brief Declare a attribute get function
+ \internal
+*/
+#define FLEXT_CALLGET_(FUN,TP) \
+static bool FLEXT_GET_PRE(FUN)(flext_base *c,TP &arg) \
+{ FLEXT_CAST<thisType *>(c)->FUN(arg); return true; }
+
+
+
+/*! \defgroup FLEXT_DA_CALLSET Definition of attribute set handlers
+ @{
+*/
+
+//! Declare a set function for a float attribute
+#define FLEXT_CALLSET_F(SFUN) \
+\
+FLEXT_CALLSET_(SFUN,float)
+
+//! Declare a set function for an integer attribute
+#define FLEXT_CALLSET_I(SFUN) \
+\
+FLEXT_CALLSET_(SFUN,int)
+
+//! Declare a set function for a boolean attribute
+#define FLEXT_CALLSET_B(FUN) \
+static bool FLEXT_SET_PRE(FUN)(flext_base *c,int &arg) \
+{ bool b = arg != 0; FLEXT_CAST<thisType *>(c)->FUN(b); return true; }
+
+//! Declare a set function for an enum attribute
+#define FLEXT_CALLSET_E(SFUN,TP) \
+\
+FLEXT_CALLSET_(SFUN,TP)
+
+//! Declare a set function for a symbol attribute
+#define FLEXT_CALLSET_S(FUN) \
+static bool FLEXT_SET_PRE(FUN)(flext_base *c,const t_symbol *&arg) \
+{ FLEXT_CAST<thisType *>(c)->FUN(arg); return true; }
+
+//! Declare a set function for a variable list attribute
+#define FLEXT_CALLSET_V(FUN) \
+static bool FLEXT_SET_PRE(FUN)(flext_base *c,AtomList *&arg) \
+{ FLEXT_CAST<thisType *>(c)->FUN(*arg); return true; }
+
+//! @} FLEXT_DA_CALLSET
+
+/*! \defgroup FLEXT_DA_CALLGET Definition of attribute get handlers
+ @{
+*/
+
+//! Declare a get function for a float attribute
+#define FLEXT_CALLGET_F(GFUN) \
+\
+FLEXT_CALLGET_(GFUN,float)
+
+//! Declare a get function for an integer attribute
+#define FLEXT_CALLGET_I(GFUN) \
+\
+FLEXT_CALLGET_(GFUN,int)
+
+//! Declare a get function for a boolean attribute
+#define FLEXT_CALLGET_B(FUN) \
+static bool FLEXT_GET_PRE(FUN)(flext_base *c,int &arg) \
+{ bool b; FLEXT_CAST<thisType *>(c)->FUN(b); arg = b?1:0; return true; }
+
+//! Declare a get function for an enum attribute
+#define FLEXT_CALLGET_E(GFUN,TP) \
+\
+FLEXT_CALLGET_(GFUN,TP)
+
+//! Declare a get function for a symbol attribute
+#define FLEXT_CALLGET_S(FUN) \
+static bool FLEXT_GET_PRE(FUN)(flext_base *c,const t_symbol *&arg) \
+{ FLEXT_CAST<thisType *>(c)->FUN(arg); return true; }
+
+//! Declare a get function for a variable list attribute
+#define FLEXT_CALLGET_V(FUN) \
+static bool FLEXT_GET_PRE(FUN)(flext_base *c,AtomList *&arg) \
+{ FLEXT_CAST<thisType *>(c)->FUN(*arg); return true; }
+
+//! @} FLEXT_DA_CALLGET
+
+
+/*! \defgroup FLEXT_DA_CALLVAR Definition of attribute transfer handlers (both get and set)
+ @{
+*/
+
+//! Declare both get and set functions for a float attribute
+#define FLEXT_CALLVAR_F(GFUN,SFUN) \
+\
+FLEXT_CALLGET_F(GFUN) FLEXT_CALLSET_F(SFUN)
+
+//! Declare both get and set functions for an integer attribute
+#define FLEXT_CALLVAR_I(GFUN,SFUN) \
+\
+FLEXT_CALLGET_I(GFUN) FLEXT_CALLSET_I(SFUN)
+
+//! Declare both get and set functions for a symbol attribute
+#define FLEXT_CALLVAR_S(GFUN,SFUN) \
+\
+FLEXT_CALLGET_S(GFUN) FLEXT_CALLSET_S(SFUN)
+
+//! Declare both get and set functions for a boolean attribute
+#define FLEXT_CALLVAR_B(GFUN,SFUN) \
+\
+FLEXT_CALLGET_B(GFUN) FLEXT_CALLSET_B(SFUN)
+
+//! Declare both get and set functions for an enum attribute
+#define FLEXT_CALLVAR_E(GFUN,SFUN,TP) \
+\
+FLEXT_CALLGET_E(GFUN,TP) FLEXT_CALLSET_E(SFUN,TP)
+
+//! Declare both get and set functions for a variable list attribute
+#define FLEXT_CALLVAR_V(GFUN,SFUN) \
+\
+FLEXT_CALLGET_V(GFUN) FLEXT_CALLSET_V(SFUN)
+
+//! @} FLEXT_DA_CALLVAR
+
+
+#endif