From 38905202a4aac5b1b192d444f7ac1be1b2940e17 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Fri, 28 Oct 2011 11:21:03 +0000 Subject: [PATCH] A new macro to support adding arrays of basic types. SVN revision: 64493 --- legacy/eet/src/lib/Eet.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/legacy/eet/src/lib/Eet.h b/legacy/eet/src/lib/Eet.h index c4dfb89362..b0c435e199 100644 --- a/legacy/eet/src/lib/Eet.h +++ b/legacy/eet/src/lib/Eet.h @@ -3103,6 +3103,35 @@ eet_data_descriptor_encode(Eet_Data_Descriptor *edd, 0, /* 0, */ NULL, NULL); \ } while (0) +/** + * Add an array of basic data elements to a data descriptor. + * @param edd The data descriptor to add the type to. + * @param struct_type The type of the struct. + * @param name The string name to use to encode/decode this member + * (must be a constant global and never change). + * @param member The struct member itself to be encoded. + * @param type The type of the member to encode. + * + * This macro lets you easily add a fixed size array of basic data + * types. All the parameters are the same as for + * EET_DATA_DESCRIPTOR_ADD_BASIC(). + * The array must be defined with a fixed size in the declaration of the + * struct containing it. + * + * @since 1.5.0 + * @ingroup Eet_Data_Group + */ +#define EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(edd, struct_type, name, member, type) \ + do { \ + struct_type ___ett; \ + eet_data_descriptor_element_add(edd, name, type, EET_G_ARRAY, \ + (char *)(& (___ett.member)) - \ + (char *)(& (___ett)), \ + sizeof(___ett.member) / \ + sizeof(___ett.member[0]), \ + NULL, NULL); \ + } while(0) + /** * Add a fixed size array type to a data descriptor * @param edd The data descriptor to add the type to.