flext  0.6.2
fldefs_attrvar.h
Go to the documentation of this file.
1 /*
2 flext - C++ layer for Max and Pure Data externals
3 
4 Copyright (c) 2001-2015 Thomas Grill (gr@grrrr.org)
5 For information on usage and redistribution, and for a DISCLAIMER OF ALL
6 WARRANTIES, see the file, "license.txt," in this distribution.
7 */
8 
14 #ifndef __FLEXT_DEFS_ATTRVAR_H
15 #define __FLEXT_DEFS_ATTRVAR_H
16 
17 
21 #define FLEXT_ATTRSET_(VAR,TP) \
22 static bool FLEXT_SET_PRE(VAR)(flext_base *c,TP &arg) \
23 { FLEXT_CAST<thisType *>(c)->VAR = arg; return true; }
24 
28 #define FLEXT_ATTRGET_(VAR,TP) \
29 static bool FLEXT_GET_PRE(VAR)(flext_base *c,TP &arg) \
30 { arg = (TP)FLEXT_CAST<thisType *>(c)->VAR; return true; }
31 
32 
33 
40 #define FLEXT_ATTRSET_F(VAR) \
41 \
42 FLEXT_ATTRSET_(VAR,float)
43 
45 #define FLEXT_ATTRSET_I(VAR) \
46 \
47 FLEXT_ATTRSET_(VAR,int)
48 
50 #define FLEXT_ATTRSET_S(VAR) \
51 \
52 FLEXT_ATTRSET_(VAR,const t_symbol *)
53 
55 #define FLEXT_ATTRSET_B(VAR) \
56 \
57 FLEXT_ATTRSET_(VAR,bool)
58 /*
59 static bool FLEXT_SET_PRE(VAR)(flext_base *c,int &arg) \
60 { FLEXT_CAST<thisType *>(c)->VAR = arg != 0; return true; }
61 */
62 
64 #define FLEXT_ATTRSET_E(VAR,TP) \
65 \
66 FLEXT_ATTRSET_(VAR,TP)
67 
69 #define FLEXT_ATTRSET_V(VAR) \
70 static bool FLEXT_SET_PRE(VAR)(flext_base *c,flext::AtomList *&arg) \
71 { FLEXT_CAST<thisType *>(c)->VAR = *arg; return true; }
72 
74 
81 #define FLEXT_ATTRGET_F(VAR) \
82 \
83 FLEXT_ATTRGET_(VAR,float)
84 
86 #define FLEXT_ATTRGET_I(VAR) \
87 \
88 FLEXT_ATTRGET_(VAR,int)
89 
91 #define FLEXT_ATTRGET_S(VAR) \
92 \
93 FLEXT_ATTRGET_(VAR,const t_symbol *)
94 
96 #define FLEXT_ATTRGET_B(VAR) \
97 \
98 FLEXT_ATTRGET_(VAR,bool)
99 /*
100 static bool FLEXT_GET_PRE(VAR)(flext_base *c,int &arg) \
101 { arg = FLEXT_CAST<thisType *>(c)->VAR?1:0; return true; }
102 */
103 
105 #define FLEXT_ATTRGET_E(VAR,TP) \
106 \
107 FLEXT_ATTRGET_(VAR,TP)
108 
110 #define FLEXT_ATTRGET_V(VAR) \
111 static bool FLEXT_GET_PRE(VAR)(flext_base *c,AtomList *&arg) \
112 { *arg = FLEXT_CAST<thisType *>(c)->VAR; return true; }
113 
115 
116 
123 #define FLEXT_ATTRVAR_F(VAR) \
124 \
125 FLEXT_ATTRGET_F(VAR) FLEXT_ATTRSET_F(VAR)
126 
128 #define FLEXT_ATTRVAR_I(VAR) \
129 \
130 FLEXT_ATTRGET_I(VAR) FLEXT_ATTRSET_I(VAR)
131 
133 #define FLEXT_ATTRVAR_S(VAR) \
134 \
135 FLEXT_ATTRGET_S(VAR) FLEXT_ATTRSET_S(VAR)
136 
138 #define FLEXT_ATTRVAR_B(VAR) \
139 \
140 FLEXT_ATTRGET_B(VAR) FLEXT_ATTRSET_B(VAR)
141 
143 #define FLEXT_ATTRVAR_E(VAR,TP) \
144 \
145 FLEXT_ATTRGET_(VAR,TP) FLEXT_ATTRSET_(VAR,TP)
146 
148 #define FLEXT_ATTRVAR_V(VAR) \
149 \
150 FLEXT_ATTRGET_V(VAR) FLEXT_ATTRSET_V(VAR)
151 
152 
154 
155 
156 #endif