+/**
+ * Get the name of the given audio format.
+ *
+ * \param i The audio format number.
+ *
+ * \return This returns a pointer to statically allocated memory so it
+ * must not be freed by the caller.
+ */
+const char *audio_format_name(int i)
+{
+ if (i < 0 || i >= ARRAY_SIZE(afl) - 1)
+ return "???";
+ return afl[i].name;
+}
+
+static int get_file_info(int format, const char *path, char *data,
+ size_t size, int fd, struct afh_info *afhi)
+{
+ int ret;
+ const char *fmt = audio_format_name(format);
+
+ memset(afhi, 0, sizeof(*afhi));
+ ret = afl[format].get_file_info(data, size, fd, afhi);
+ if (ret < 0) {
+ PARA_WARNING_LOG("%s: %s format not detected: %s\n",
+ path, fmt, para_strerror(-ret));
+ return ret;
+ }
+ PARA_NOTICE_LOG("%s: detected %s format\n", path, fmt);
+ return format;
+}
+