summaryrefslogtreecommitdiff
path: root/src/enhancer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/enhancer.h')
-rw-r--r--src/enhancer.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/enhancer.h b/src/enhancer.h
new file mode 100644
index 0000000..fce3fe7
--- /dev/null
+++ b/src/enhancer.h
@@ -0,0 +1,36 @@
+#ifndef GGAZE_ENHANCER_H
+#define GGAZE_ENHANCER_H
+
+#include <gio/gio.h>
+#include <glib.h>
+#include <gegl.h>
+
+G_BEGIN_DECLS
+
+typedef struct {
+ char *c_name;
+ char *c_graph; /* GEGL graph string (for user presets) or NULL (built-in) */
+ int i_builtin; /* 1 if built-in (programmatic), 0 if user (graph text) */
+} EnhancerPreset;
+
+typedef struct Enhancer Enhancer;
+
+Enhancer *enhancer_new(void);
+void enhancer_delete(Enhancer *p_e);
+
+void enhancer_set_presets(Enhancer *p_e, const GPtrArray *p_presets);
+const GPtrArray *enhancer_get_presets(Enhancer *p_e);
+
+/* Apply a preset to a GeglBuffer (returns a new buffer, or NULL on error). */
+GeglBuffer *enhancer_apply(Enhancer *p_e, GeglBuffer *p_in,
+ const EnhancerPreset *p_preset, GError **p_err);
+
+/* Export the enhanced buffer to a file (JPEG quality 95, EXIF Orientation=1).
+ * Returns TRUE on success. */
+gboolean enhancer_export(Enhancer *p_e, GeglBuffer *p_in,
+ const EnhancerPreset *p_preset, GFile *p_out,
+ GError **p_err);
+
+G_END_DECLS
+
+#endif \ No newline at end of file