diff options
author | David Walter Seikel <onefang@gmail.com> | 2011-10-28 11:21:03 +0000 |
---|---|---|
committer | David Walter Seikel <onefang@gmail.com> | 2011-10-28 11:21:03 +0000 |
commit | b39d2c8f62ccda1fe27680131e89de0ec4c21d27 (patch) | |
tree | 7add46c353a43d167c28377793f6cd255ea2cde1 | |
parent | a9fc805e92cdec45e7e3322f4562cf8a2ed32502 (diff) | |
download | eet-b39d2c8f62ccda1fe27680131e89de0ec4c21d27.tar.gz |
A new macro to support adding arrays of basic types.
SVN revision: 64493
-rw-r--r-- | src/lib/Eet.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/Eet.h b/src/lib/Eet.h index c4dfb89..b0c435e 100644 --- a/src/lib/Eet.h +++ b/src/lib/Eet.h @@ -3104,6 +3104,35 @@ eet_data_descriptor_encode(Eet_Data_Descriptor *edd, } 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. * @param struct_type The type of the struct. |