summaryrefslogtreecommitdiffstats
path: root/debian/transcode/transcode-1.1.7/libtc/cfgfile.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/transcode/transcode-1.1.7/libtc/cfgfile.h')
-rw-r--r--debian/transcode/transcode-1.1.7/libtc/cfgfile.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/debian/transcode/transcode-1.1.7/libtc/cfgfile.h b/debian/transcode/transcode-1.1.7/libtc/cfgfile.h
new file mode 100644
index 00000000..7a1e4b77
--- /dev/null
+++ b/debian/transcode/transcode-1.1.7/libtc/cfgfile.h
@@ -0,0 +1,87 @@
+/*
+ * cfgfile.h -- include for configuration file handling
+ * Written by Andrew Church <achurch@achurch.org>
+ *
+ * This file is part of transcode, a video stream processing tool.
+ * transcode is free software, distributable under the terms of the GNU
+ * General Public License (version 2 or later). See the file COPYING
+ * for details.
+ */
+
+#ifndef LIBTC_CFGFILE_H
+#define LIBTC_CFGFILE_H
+
+/*************************************************************************/
+
+/* Configuration entry types */
+typedef enum {
+ TCCONF_TYPE_FLAG, /* type int */
+ TCCONF_TYPE_INT, /* type int */
+ TCCONF_TYPE_FLOAT, /* type float */
+ TCCONF_TYPE_STRING, /* type char * (memory will be allocated) */
+} TCConfigEntryType;
+
+
+/* Structure of a configuration entry. An array of these, as passed to the
+ * functions below, ends with an entry with name==NULL. */
+typedef struct {
+ const char *name; /* Name used in configuration file */
+ void *ptr; /* Pointer to value */
+ TCConfigEntryType type;
+ int flags; /* TCCONF_FLAG_* below */
+ double min, max; /* Used when FLAG_MIN or FLAG_MAX are set */
+} TCConfigEntry;
+
+#define TCCONF_FLAG_MIN (1<<0)
+#define TCCONF_FLAG_MAX (1<<1)
+#define TCCONF_FLAG_RANGE (1<<0)
+
+/*************************************************************************/
+
+/* Set the directory used to find configuration files. */
+void tc_set_config_dir(const char *dir);
+
+/* Read module configuration data from the given file. */
+int module_read_config(const char *filename, const char *section,
+ TCConfigEntry *conf, const char *tag);
+
+/* Process a string as if it were a line from a configuration file. */
+int module_read_config_line(const char *string, TCConfigEntry *conf,
+ const char *tag);
+
+/* Print module configuration data. */
+void module_print_config(const TCConfigEntry *conf, const char *tag);
+
+/*************************************************************************/
+
+typedef struct tcconfiglist_ TCConfigList;
+struct tcconfiglist_ {
+ char *value;
+ TCConfigList *next;
+ TCConfigList *last;
+};
+
+/* Read a List section of a configuration file. Triggered by PVM module. */
+TCConfigList *module_read_config_list(const char *filename,
+ const char *section, const char *tag);
+
+/* Print module configuration list for a given section */
+void module_print_config_list(const TCConfigList *list,
+ const char *section, const char *tag);
+
+/* Dispose a configuration list produced by read_config_list */
+void module_free_config_list(TCConfigList *list, int refonly);
+
+/*************************************************************************/
+
+#endif /* LIBTC_CFGFILE_H */
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * c-file-offsets: ((case-label . *) (statement-case-intro . *))
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vim: expandtab shiftwidth=4:
+ */