summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Walter Seikel <onefang@gmail.com>2011-10-28 11:21:03 +0000
committerDavid Walter Seikel <onefang@gmail.com>2011-10-28 11:21:03 +0000
commitb39d2c8f62ccda1fe27680131e89de0ec4c21d27 (patch)
tree7add46c353a43d167c28377793f6cd255ea2cde1
parenta9fc805e92cdec45e7e3322f4562cf8a2ed32502 (diff)
downloadeet-b39d2c8f62ccda1fe27680131e89de0ec4c21d27.tar.gz
A new macro to support adding arrays of basic types.
SVN revision: 64493
-rw-r--r--src/lib/Eet.h29
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.