Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
metadata.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2010, 2012 johannes hanika.
4 Copyright (C) 2010, 2014, 2016 Tobias Ellinghaus.
5 Copyright (C) 2011 Henrik Andersson.
6 Copyright (C) 2012 Richard Wonka.
7 Copyright (C) 2019-2020 Pascal Obry.
8 Copyright (C) 2019-2022 Philippe Weyland.
9 Copyright (C) 2020 Aldric Renaudin.
10 Copyright (C) 2020 Chris Elston.
11 Copyright (C) 2021 Hubert Kowalski.
12 Copyright (C) 2022-2023, 2026 Aurélien PIERRE.
13 Copyright (C) 2022 Martin Bařinka.
14 Copyright (C) 2025 Alynx Zhou.
15
16 darktable is free software: you can redistribute it and/or modify
17 it under the terms of the GNU General Public License as published by
18 the Free Software Foundation, either version 3 of the License, or
19 (at your option) any later version.
20
21 darktable is distributed in the hope that it will be useful,
22 but WITHOUT ANY WARRANTY; without even the implied warranty of
23 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 GNU General Public License for more details.
25
26 You should have received a copy of the GNU General Public License
27 along with darktable. If not, see <http://www.gnu.org/licenses/>.
28*/
29
30#pragma once
31
32#include "common/darktable.h"
33#include "gui/gtk.h"
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39typedef enum dt_metadata_t
40{
41 // do change the order. Must match with dt_metadata_def[] in metadata.c.
42 // just add new metadata before DT_METADATA_NUMBER when needed
43 // and this must also be synchronized with the collect.c module (legacy_presets).
55
57{
58 DT_METADATA_TYPE_USER, // metadata for users
59 DT_METADATA_TYPE_OPTIONAL, // metadata hidden by default
60 DT_METADATA_TYPE_INTERNAL // metadata for dt internal usage - the user cannot see it
63
65{
66 DT_METADATA_SIGNAL_SHOWN, // metadata set as shown
67 DT_METADATA_SIGNAL_HIDDEN, // metadata set as hidden
68 DT_METADATA_SIGNAL_NEW_VALUE // metadata value changed
71
73{
74 DT_METADATA_FLAG_HIDDEN = 1 << 0, // metadata set as shown
75 DT_METADATA_FLAG_PRIVATE = 1 << 1, // metadata set as hidden
76 DT_METADATA_FLAG_IMPORTED = 1 << 2 // metadata value changed
79
82
84const char *dt_metadata_get_name_by_display_order(const uint32_t order);
85
88
91
93int dt_metadata_get_type_by_display_order(const uint32_t order);
94
96const char *dt_metadata_get_name(const uint32_t keyid);
97
100
102const char *dt_metadata_get_key(const uint32_t keyid);
103
105const char *dt_metadata_get_subkey(const uint32_t keyid);
106
108const char *dt_metadata_get_key_by_subkey(const char *subkey);
109
111int dt_metadata_get_type(const uint32_t keyid);
112
114void dt_metadata_init();
115
117void dt_metadata_set(int id, const char *key, const char *value, const gboolean undo_on); // duplicate.c, lua/image.c
118
120void dt_metadata_set_import(int id, const char *key, const char *value); // exif.cc, ligthroom.c
121
124void dt_metadata_set_list(const GList *imgs, GList *key_value, const gboolean undo_on); // libs/metadata.c
125
129void dt_metadata_set_list_id(const GList *img, const GList *metadata, const gboolean clear_on,
130 const gboolean undo_on);
134GList *dt_metadata_get(int id, const char *key, uint32_t *count); // exif.cc, variables.c, facebook.c, flicker.c, gallery.c, googlephoto.c, latex.c, piwigo.c, watermark.c, metadata_view.c, libs/metadata.c, print_settings.c, lua/image.c
135
137GList *dt_metadata_get_list_id(int id); // libs/image.c
138
140void dt_metadata_clear(const GList *imgs, const gboolean undo_on); // libs/metadata.c
141
143int dt_metadata_already_imported(const char *filename, const char *datetime);
144
146void dt_metadata_cleanup(void);
147
148#ifdef __cplusplus
149}
150#endif
151
152// clang-format off
153// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
154// vim: shiftwidth=2 expandtab tabstop=2 cindent
155// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
156// clang-format on
char * key
Definition common/metadata.c:60
char * name
Definition common/metadata.c:61
static const dt_aligned_pixel_simd_t value
Definition darktable.h:501
int dt_metadata_already_imported(const char *filename, const char *datetime)
Definition common/metadata.c:825
void dt_metadata_clear(const GList *imgs, const gboolean undo_on)
Definition common/metadata.c:768
void dt_metadata_set_list_id(const GList *img, const GList *metadata, const gboolean clear_on, const gboolean undo_on)
Definition common/metadata.c:807
void dt_metadata_set(int id, const char *key, const char *value, const gboolean undo_on)
const char * dt_metadata_get_subkey(const uint32_t keyid)
Definition common/metadata.c:165
void dt_metadata_set_import(int id, const char *key, const char *value)
const char * dt_metadata_get_key_by_subkey(const char *subkey)
Definition common/metadata.c:175
const char * dt_metadata_get_key(const uint32_t keyid)
Definition common/metadata.c:157
void dt_metadata_cleanup(void)
Definition common/metadata.c:536
const char * dt_metadata_get_name_by_display_order(const uint32_t order)
Definition common/metadata.c:88
dt_metadata_t dt_metadata_get_keyid_by_name(const char *name)
Definition common/metadata.c:114
dt_metadata_flag_t
Definition metadata.h:73
@ DT_METADATA_FLAG_IMPORTED
Definition metadata.h:76
@ DT_METADATA_FLAG_HIDDEN
Definition metadata.h:74
@ DT_METADATA_FLAG_PRIVATE
Definition metadata.h:75
dt_metadata_t
Definition metadata.h:40
@ DT_METADATA_XMP_DC_PUBLISHER
Definition metadata.h:45
@ DT_METADATA_XMP_DC_RIGHTS
Definition metadata.h:48
@ DT_METADATA_XMP_ACDSEE_NOTES
Definition metadata.h:49
@ DT_METADATA_XMP_IMAGE_ID
Definition metadata.h:51
@ DT_METADATA_XMP_DC_DESCRIPTION
Definition metadata.h:47
@ DT_METADATA_XMP_VERSION_NAME
Definition metadata.h:50
@ DT_METADATA_XMP_DC_CREATOR
Definition metadata.h:44
@ DT_METADATA_NUMBER
Definition metadata.h:52
@ DT_METADATA_XMP_DC_TITLE
Definition metadata.h:46
void dt_metadata_set_list(const GList *imgs, GList *key_value, const gboolean undo_on)
Definition common/metadata.c:723
dt_metadata_t dt_metadata_get_keyid(const char *key)
Definition common/metadata.c:146
dt_metadata_type_t
Definition metadata.h:57
@ DT_METADATA_TYPE_OPTIONAL
Definition metadata.h:59
@ DT_METADATA_TYPE_INTERNAL
Definition metadata.h:60
@ DT_METADATA_TYPE_USER
Definition metadata.h:58
const char * dt_metadata_get_name(const uint32_t keyid)
Definition common/metadata.c:138
GList * dt_metadata_get(int id, const char *key, uint32_t *count)
Definition common/metadata.c:402
dt_metadata_signal_t
Definition metadata.h:65
@ DT_METADATA_SIGNAL_SHOWN
Definition metadata.h:66
@ DT_METADATA_SIGNAL_NEW_VALUE
Definition metadata.h:68
@ DT_METADATA_SIGNAL_HIDDEN
Definition metadata.h:67
GList * dt_metadata_get_list_id(int id)
Definition common/metadata.c:349
void dt_metadata_init()
Definition common/metadata.c:197
unsigned int dt_metadata_get_nb_user_metadata()
Definition common/metadata.c:77
int dt_metadata_get_type_by_display_order(const uint32_t order)
Definition common/metadata.c:125
int dt_metadata_get_type(const uint32_t keyid)
Definition common/metadata.c:189
dt_metadata_t dt_metadata_get_keyid_by_display_order(const uint32_t order)
Definition common/metadata.c:101