format: Add function to get format by name
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
diff --git a/include/gapk/formats.h b/include/gapk/formats.h
index d38b934..89cb8d7 100644
--- a/include/gapk/formats.h
+++ b/include/gapk/formats.h
@@ -62,5 +62,6 @@
};
const struct format_desc *fmt_get_from_type(enum format_type type);
+const struct format_desc *fmt_get_from_name(const char *name);
#endif /* __GAPK_FORMATS_H__ */
diff --git a/src/formats.c b/src/formats.c
index 9e8da5e..8f51c2d 100644
--- a/src/formats.c
+++ b/src/formats.c
@@ -18,6 +18,7 @@
*/
#include <stdio.h> /* for NULL */
+#include <string.h>
#include <gapk/formats.h>
@@ -49,3 +50,17 @@
return NULL;
return supported_formats[type];
}
+
+const struct format_desc *
+fmt_get_from_name(const char *name)
+{
+ int i;
+ for (i=FMT_INVALID+1; i<_FMT_MAX; i++) {
+ const struct format_desc *fmt = supported_formats[i];
+ if (!fmt)
+ continue;
+ if (!strcmp(fmt->name, name))
+ return fmt;
+ }
+ return NULL;
+}