A new macro to support adding arrays of basic types.

SVN revision: 64493
This commit is contained in:
David Walter Seikel 2011-10-28 11:21:03 +00:00
parent f627a72047
commit 38905202a4
1 changed files with 29 additions and 0 deletions

View File

@ -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.