summaryrefslogtreecommitdiffstats
path: root/utils/storage/tag_utility.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/storage/tag_utility.h')
-rw-r--r--utils/storage/tag_utility.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/utils/storage/tag_utility.h b/utils/storage/tag_utility.h
index b852ad5..77c639b 100644
--- a/utils/storage/tag_utility.h
+++ b/utils/storage/tag_utility.h
@@ -51,4 +51,24 @@ bool taglib_pop_state();
bool taglib_fini();
+/* Useful macros to ease taglib_add_tag call,
+ * or else need to use C++0x-features.
+ */
+
+#define TAGLIB_BEGIN_ADD_TAG(line_type, line_tag, num_of_values) \
+ { \
+ const int line_type_saved = line_type; \
+ const char * line_tag_saved = line_tag; \
+ const int num_of_values_saved = num_of_values; \
+ ;
+
+#define TAGLIB_REQUIRED_TAGS const char * required_tags_saved[]
+/* #define TAGLIB_OPTIONAL_TAGS const char * optional_tags_saved */
+#define TAGLIB_IGNORED_TAGS const char * ignored_tags_saved[]
+
+#define TAGLIB_END_ADD_TAG \
+ taglib_add_tag(line_type_saved, line_tag_saved, num_of_values_saved, \
+ required_tags_saved, ignored_tags_saved); \
+ };
+
#endif