1 #ifndef ZUNE_CUSTOMCLASSES_H
2 #define ZUNE_CUSTOMCLASSES_H
4 #include <proto/muimaster.h>
6 #include <aros/symbolsets.h>
7 #include <aros/autoinit.h>
8 #include <aros/debug.h>
10 #define __ZUNE_CUSTOMCLASS_START(name) \
11 BOOPSI_DISPATCHER_PROTO(IPTR, name ## _Dispatcher, __class, __self, __msg); \
12 BOOPSI_DISPATCHER(IPTR, name ## _Dispatcher, __class, __self, __msg) \
14 switch (__msg->MethodID) \
17 #define __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
19 return DoSuperMethodA(__class, __self, __msg); \
24 BOOPSI_DISPATCHER_END \
26 struct MUI_CustomClass * name ## _CLASS; \
28 int name ## _Initialize(void); \
29 int name ## _Initialize(void) \
31 name ## _CLASS = MUI_CreateCustomClass \
33 base, parent_name, parent_class, \
34 sizeof(struct name ## _DATA), name ## _Dispatcher \
37 if (!name ## _CLASS) \
41 "Could not create Zune custom class `" #name "'.", NULL \
50 void name ## _Deinitialize(void); \
51 void name ## _Deinitialize(void) \
53 MUI_DeleteCustomClass(name ## _CLASS); \
56 ADD2INIT(name ## _Initialize, 100); \
57 ADD2EXIT(name ## _Deinitialize, 100); \
59 #define __ZUNE_CUSTOMCLASS_METHOD(mname, mid, m_msg_type) \
62 D(bug("[ZCC] ENTERING "__AROS_STR(mname) \
63 "("__AROS_STR(m_msg_type)")\n")); \
65 return (IPTR) mname(__class, __self, (m_msg_type)__msg) \
67 /******************************************************************/
69 #define ZUNE_CUSTOMCLASS_1(name, base, parent_name, parent_class, \
71 __ZUNE_CUSTOMCLASS_START(name) \
72 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
73 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
75 #define ZUNE_CUSTOMCLASS_2(name, base, parent_name, parent_class, \
78 __ZUNE_CUSTOMCLASS_START(name) \
79 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
80 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
81 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
83 #define ZUNE_CUSTOMCLASS_3(name, base, parent_name, parent_class, \
87 __ZUNE_CUSTOMCLASS_START(name) \
88 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
89 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
90 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
91 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
93 #define ZUNE_CUSTOMCLASS_4(name, base, parent_name, parent_class, \
98 __ZUNE_CUSTOMCLASS_START(name) \
99 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
100 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
101 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
102 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
103 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
105 #define ZUNE_CUSTOMCLASS_5(name, base, parent_name, parent_class, \
111 __ZUNE_CUSTOMCLASS_START(name) \
112 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
113 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
114 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
115 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
116 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
117 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
119 #define ZUNE_CUSTOMCLASS_6(name, base, parent_name, parent_class, \
126 __ZUNE_CUSTOMCLASS_START(name) \
127 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
128 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
129 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
130 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
131 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
132 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
133 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
135 #define ZUNE_CUSTOMCLASS_7(name, base, parent_name, parent_class, \
143 __ZUNE_CUSTOMCLASS_START(name) \
144 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
145 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
146 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
147 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
148 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
149 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
150 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
151 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
153 #define ZUNE_CUSTOMCLASS_8(name, base, parent_name, parent_class, \
162 __ZUNE_CUSTOMCLASS_START(name) \
163 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
164 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
165 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
166 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
167 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
168 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
169 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
170 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
171 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
173 #define ZUNE_CUSTOMCLASS_9(name, base, parent_name, parent_class, \
183 __ZUNE_CUSTOMCLASS_START(name) \
184 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
185 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
186 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
187 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
188 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
189 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
190 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
191 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
192 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
193 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
195 #define ZUNE_CUSTOMCLASS_10(name, base, parent_name, parent_class, \
206 __ZUNE_CUSTOMCLASS_START(name) \
207 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
208 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
209 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
210 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
211 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
212 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
213 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
214 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
215 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
216 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
217 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
219 /*************************************************************************/
221 #define __ZUNE_CUSTOMCLASS_REMPARENS(...) __VA_ARGS__
223 #define __ZUNE_CUSTOMCLASS_INLINEMETHOD(cname, mname, m_msg_type, m_code) \
224 IPTR mname(Class *CLASS, Object *self, m_msg_type message); \
225 IPTR mname(Class *CLASS, Object *self, m_msg_type message) \
227 struct cname ## _DATA *data __unused = INST_DATA(CLASS, self); \
229 { __ZUNE_CUSTOMCLASS_REMPARENS m_code } \
232 #define __ZUNE_CUSTOMCLASS_INSTDATA(cname, inst_data) \
233 struct cname ## _DATA { __ZUNE_CUSTOMCLASS_REMPARENS inst_data }
235 #define ZUNE_CUSTOMCLASS_INLINE_1(name, base, parent_name, parent_class, \
237 m1, m1_msg_type, m1_code) \
238 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
239 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
240 __ZUNE_CUSTOMCLASS_START(name) \
241 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
242 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
244 #define ZUNE_CUSTOMCLASS_INLINE_2(name, base, parent_name, parent_class, \
246 m1, m1_msg_type, m1_code, \
247 m2, m2_msg_type, m2_code) \
248 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
249 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
250 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
251 __ZUNE_CUSTOMCLASS_START(name) \
252 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
253 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
254 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
256 #define ZUNE_CUSTOMCLASS_INLINE_3(name, base, parent_name, parent_class, \
258 m1, m1_msg_type, m1_code, \
259 m2, m2_msg_type, m2_code, \
260 m3, m3_msg_type, m3_code) \
261 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
262 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
263 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
264 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
265 __ZUNE_CUSTOMCLASS_START(name) \
266 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
267 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
268 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
269 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
271 #define ZUNE_CUSTOMCLASS_INLINE_4(name, base, parent_name, parent_class, \
273 m1, m1_msg_type, m1_code, \
274 m2, m2_msg_type, m2_code, \
275 m3, m3_msg_type, m3_code, \
276 m4, m4_msg_type, m4_code) \
277 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
278 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
279 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
280 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
281 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
282 __ZUNE_CUSTOMCLASS_START(name) \
283 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
284 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
285 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
286 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
287 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
289 #define ZUNE_CUSTOMCLASS_INLINE_5(name, base, parent_name, parent_class, \
291 m1, m1_msg_type, m1_code, \
292 m2, m2_msg_type, m2_code, \
293 m3, m3_msg_type, m3_code, \
294 m4, m4_msg_type, m4_code, \
295 m5, m5_msg_type, m5_code) \
296 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
297 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
298 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
299 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
300 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
301 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
302 __ZUNE_CUSTOMCLASS_START(name) \
303 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
304 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
305 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
306 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
307 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
308 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
310 #define ZUNE_CUSTOMCLASS_INLINE_6(name, base, parent_name, parent_class, \
312 m1, m1_msg_type, m1_code, \
313 m2, m2_msg_type, m2_code, \
314 m3, m3_msg_type, m3_code, \
315 m4, m4_msg_type, m4_code, \
316 m5, m5_msg_type, m5_code, \
317 m6, m6_msg_type, m6_code) \
318 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
319 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
320 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
321 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
322 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
323 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
324 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
325 __ZUNE_CUSTOMCLASS_START(name) \
326 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
327 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
328 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
329 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
330 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
331 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
332 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
334 #define ZUNE_CUSTOMCLASS_INLINE_7(name, base, parent_name, parent_class, \
336 m1, m1_msg_type, m1_code, \
337 m2, m2_msg_type, m2_code, \
338 m3, m3_msg_type, m3_code, \
339 m4, m4_msg_type, m4_code, \
340 m5, m5_msg_type, m5_code, \
341 m6, m6_msg_type, m6_code, \
342 m7, m7_msg_type, m7_code) \
343 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
344 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
345 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
346 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
347 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
348 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
349 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
350 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
351 __ZUNE_CUSTOMCLASS_START(name) \
352 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
353 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
354 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
355 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
356 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
357 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
358 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
359 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
361 #define ZUNE_CUSTOMCLASS_INLINE_8(name, base, parent_name, parent_class, \
363 m1, m1_msg_type, m1_code, \
364 m2, m2_msg_type, m2_code, \
365 m3, m3_msg_type, m3_code, \
366 m4, m4_msg_type, m4_code, \
367 m5, m5_msg_type, m5_code, \
368 m6, m6_msg_type, m6_code, \
369 m7, m7_msg_type, m7_code, \
370 m8, m8_msg_type, m8_code) \
371 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
372 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
373 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
374 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
375 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
376 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
377 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
378 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
379 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
380 __ZUNE_CUSTOMCLASS_START(name) \
381 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
382 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
383 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
384 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
385 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
386 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
387 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
388 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
389 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
391 #define ZUNE_CUSTOMCLASS_INLINE_9(name, base, parent_name, parent_class, \
393 m1, m1_msg_type, m1_code, \
394 m2, m2_msg_type, m2_code, \
395 m3, m3_msg_type, m3_code, \
396 m4, m4_msg_type, m4_code, \
397 m5, m5_msg_type, m5_code, \
398 m6, m6_msg_type, m6_code, \
399 m7, m7_msg_type, m7_code, \
400 m8, m8_msg_type, m8_code, \
401 m9, m9_msg_type, m9_code) \
402 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
403 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
404 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
405 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
406 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
407 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
408 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
409 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
410 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
411 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
412 __ZUNE_CUSTOMCLASS_START(name) \
413 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
414 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
415 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
416 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
417 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
418 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
419 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
420 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
421 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
422 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
424 #define ZUNE_CUSTOMCLASS_INLINE_10(name, base, parent_name, parent_class, \
426 m1, m1_msg_type, m1_code, \
427 m2, m2_msg_type, m2_code, \
428 m3, m3_msg_type, m3_code, \
429 m4, m4_msg_type, m4_code, \
430 m5, m5_msg_type, m5_code, \
431 m6, m6_msg_type, m6_code, \
432 m7, m7_msg_type, m7_code, \
433 m8, m8_msg_type, m8_code, \
434 m9, m9_msg_type, m9_code, \
435 m10, m10_msg_type, m10_code) \
436 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
437 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
438 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
439 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
440 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
441 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
442 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
443 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
444 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
445 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
446 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
447 __ZUNE_CUSTOMCLASS_START(name) \
448 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
449 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
450 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
451 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
452 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
453 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
454 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
455 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
456 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
457 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
458 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
460 #define ZUNE_CUSTOMCLASS_INLINE_11(name, base, parent_name, parent_class, \
462 m1, m1_msg_type, m1_code, \
463 m2, m2_msg_type, m2_code, \
464 m3, m3_msg_type, m3_code, \
465 m4, m4_msg_type, m4_code, \
466 m5, m5_msg_type, m5_code, \
467 m6, m6_msg_type, m6_code, \
468 m7, m7_msg_type, m7_code, \
469 m8, m8_msg_type, m8_code, \
470 m9, m9_msg_type, m9_code, \
471 m10, m10_msg_type, m10_code, \
472 m11, m11_msg_type, m11_code) \
473 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
474 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
475 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
476 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
477 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
478 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
479 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
480 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
481 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
482 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
483 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
484 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m11, m11_msg_type, m11_code); \
485 __ZUNE_CUSTOMCLASS_START(name) \
486 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
487 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
488 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
489 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
490 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
491 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
492 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
493 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
494 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
495 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
496 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
497 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
499 #endif /* !ZUNE_CUSTOMCLASSES_H */