Added a new macro for adding variable arrays of basic types.

EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY



SVN revision: 69745
This commit is contained in:
David Walter Seikel 2012-03-29 11:18:52 +00:00
parent 74f07c6893
commit 7c55a30d70
3 changed files with 39 additions and 0 deletions

View File

@ -573,3 +573,9 @@
* add eet_dictionary_count.
* add "eet -t FILE.EET".
2012-03-29 David Seikel (onefang)
* Added a new macro for adding variable arrays of basic types.
EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY

View File

@ -29,6 +29,7 @@ Additions:
* eet_alias_get API
* eet_data_xattr_cipher_get and eet_data_xattr_cipher_set APIs
* EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY API
* EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY API
Fixes:

View File

@ -3156,6 +3156,38 @@ eet_data_descriptor_encode(Eet_Data_Descriptor *edd,
NULL, NULL); \
} while(0)
/**
* Add a variable 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 variable size array of basic data
* types. All the parameters are the same as for
* EET_DATA_DESCRIPTOR_ADD_BASIC(). This assumes you have
* a struct member (of type EET_T_INT) called member_count (note the
* _count appended to the member) that holds the number of items in
* the array. This array will be allocated separately to the struct it
* is in.
*
* @since 1.5.0
* @ingroup Eet_Data_Group
*/
#define EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY(edd, struct_type, name, member, type) \
do { \
struct_type ___ett; \
eet_data_descriptor_element_add(edd, name, type, EET_G_VAR_ARRAY, \
(char *)(& (___ett.member)) - \
(char *)(& (___ett)), \
(char *)(& (___ett.member ## _count)) - \
(char *)(& (___ett)), \
NULL, \
NULL); \
} while(0)
/**
* Add a fixed size array type to a data descriptor
* @param edd The data descriptor to add the type to.