30#include <libxml/xmlwriter.h>
31#include <libxml/parser.h>
32#include <libxml/xpath.h>
56 fprintf(
stderr,
"[dt_presets_save_to_file] Error creating the xml writer\n, path: %s", filename);
62 fprintf(
stderr,
"[dt_presets_save_to_file]: Error on encoding setting");
110 char xpath[128] = { 0 };
112 gchar *result =
NULL;
void cleanup(dt_imageio_module_format_t *self)
unsigned char * dt_exif_xmp_decode(const char *input, const int len, int *output_len)
char * dt_exif_xmp_encode(const unsigned char *input, const int len, int *output_len)
What a photograph says about itself: the EXIF, IPTC and XMP tags a camera and a cataloguer write,...
int dt_presets_import_from_file(const char *preset_path)
void dt_presets_set_autoapply_resolver(dt_presets_autoapply_resolver_t resolver)
static int get_preset_element_float(xmlDocPtr doc, gchar *name)
void dt_presets_save_to_file(const int rowid, const char *preset_name, const char *filedir)
static gchar * get_preset_element(xmlDocPtr doc, gchar *name)
static dt_presets_autoapply_resolver_t _autoapply_resolver
gboolean dt_presets_module_can_autoapply(const gchar *operation)
static int get_preset_element_int(xmlDocPtr doc, gchar *name)
gboolean(* dt_presets_autoapply_resolver_t)(const gchar *operation)
Answers whether the panel named operation allows its presets to auto-apply.
struct dt_iop_tonecurve_params_t preset
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
gboolean dt_preset_repository_insert(const dt_preset_t *preset)
Insert preset, replacing any row that collides with it.
dt_preset_t * dt_preset_repository_get_by_rowid(const int rowid)
The preset at rowid, or NULL when there is none. Free with dt_preset_free().
void dt_preset_free(dt_preset_t *preset)
Release a dt_preset_t and everything it owns. NULL-safe.
data.presets: a module's saved parameters, with the conditions under which it auto-applies.
static const dt_aligned_pixel_simd_t value
One row of data.presets, owned by the caller.