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
#ifndef DT_METADATA_METADATA_H
31
#define DT_METADATA_METADATA_H
32
33
// Types this header's own declarations use. They used to arrive through gui/gtk.h, which
34
// this file included without using a single GTK symbol -- and which it then propagated to
35
// all 16 of its includers.
36
#include <glib.h>
37
#include <stdint.h>
38
39
40
#ifdef __cplusplus
41
extern
"C"
{
42
#endif
43
44
typedef
enum
dt_metadata_t
45
{
46
// do change the order. Must match with dt_metadata_def[] in metadata.c.
47
// just add new metadata before DT_METADATA_NUMBER when needed
48
// and this must also be synchronized with the collect.c module (legacy_presets).
49
DT_METADATA_XMP_DC_CREATOR
,
50
DT_METADATA_XMP_DC_PUBLISHER
,
51
DT_METADATA_XMP_DC_TITLE
,
52
DT_METADATA_XMP_DC_DESCRIPTION
,
53
DT_METADATA_XMP_DC_RIGHTS
,
54
DT_METADATA_XMP_ACDSEE_NOTES
,
55
DT_METADATA_XMP_VERSION_NAME
,
56
DT_METADATA_XMP_IMAGE_ID
,
57
DT_METADATA_NUMBER
58
}
59
dt_metadata_t
;
60
61
typedef
enum
dt_metadata_type_t
62
{
63
DT_METADATA_TYPE_USER
,
// metadata for users
64
DT_METADATA_TYPE_OPTIONAL
,
// metadata hidden by default
65
DT_METADATA_TYPE_INTERNAL
// metadata for dt internal usage - the user cannot see it
66
}
67
dt_metadata_type_t
;
68
69
typedef
enum
dt_metadata_signal_t
70
{
71
DT_METADATA_SIGNAL_SHOWN
,
// metadata set as shown
72
DT_METADATA_SIGNAL_HIDDEN
,
// metadata set as hidden
73
DT_METADATA_SIGNAL_NEW_VALUE
// metadata value changed
74
}
75
dt_metadata_signal_t
;
76
77
typedef
enum
dt_metadata_flag_t
78
{
79
DT_METADATA_FLAG_HIDDEN
= 1 << 0,
// metadata set as shown
80
DT_METADATA_FLAG_PRIVATE
= 1 << 1,
// metadata set as hidden
81
DT_METADATA_FLAG_IMPORTED
= 1 << 2
// metadata value changed
82
}
83
dt_metadata_flag_t
;
84
86
unsigned
int
dt_metadata_get_nb_user_metadata
();
87
89
const
char
*
dt_metadata_get_name_by_display_order
(
const
uint32_t order);
90
92
dt_metadata_t
dt_metadata_get_keyid_by_display_order
(
const
uint32_t order);
93
95
dt_metadata_t
dt_metadata_get_keyid_by_name
(
const
char
*
name
);
96
98
int
dt_metadata_get_type_by_display_order
(
const
uint32_t order);
99
101
const
char
*
dt_metadata_get_name
(
const
uint32_t keyid);
102
104
dt_metadata_t
dt_metadata_get_keyid
(
const
char
*
key
);
105
107
const
char
*
dt_metadata_get_key
(
const
uint32_t keyid);
108
110
const
char
*
dt_metadata_get_subkey
(
const
uint32_t keyid);
111
113
const
char
*
dt_metadata_get_key_by_subkey
(
const
char
*subkey);
114
116
int
dt_metadata_get_type
(
const
uint32_t keyid);
117
119
void
dt_metadata_init
();
120
122
void
dt_metadata_set
(
int
id
,
const
char
*
key
,
const
char
*
value
,
const
gboolean undo_on);
// duplicate.c, lua/image.c
123
125
void
dt_metadata_set_import
(
int
id
,
const
char
*
key
,
const
char
*
value
);
// exif.cc, ligthroom.c
126
129
void
dt_metadata_set_list
(
const
GList *imgs, GList *key_value,
const
gboolean undo_on);
// libs/metadata.c
130
134
void
dt_metadata_set_list_id
(
const
GList *img,
const
GList *metadata,
const
gboolean clear_on,
135
const
gboolean undo_on);
139
GList *
dt_metadata_get
(
int
id
,
const
char
*
key
, uint32_t *count);
// exif.cc, variables.c, gallery.c, watermark.c, metadata_view.c, libs/metadata.c, print_settings.c
140
142
GList *
dt_metadata_get_list_id
(
int
id
);
// libs/image.c
143
145
void
dt_metadata_clear
(
const
GList *imgs,
const
gboolean undo_on);
// libs/metadata.c
146
148
int
dt_metadata_already_imported
(
const
char
*filename,
const
char
*datetime);
149
151
void
dt_metadata_cleanup
(
void
);
152
153
#ifdef __cplusplus
154
}
155
#endif
156
157
#endif
// DT_METADATA_METADATA_H
158
159
// clang-format off
160
// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
161
// vim: shiftwidth=2 expandtab tabstop=2 cindent
162
// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
163
// clang-format on
key
char * key
Definition
metadata/metadata.c:62
dt_metadata_already_imported
int dt_metadata_already_imported(const char *filename, const char *datetime)
Definition
metadata/metadata.c:694
dt_metadata_clear
void dt_metadata_clear(const GList *imgs, const gboolean undo_on)
Definition
metadata/metadata.c:637
dt_metadata_set_list_id
void dt_metadata_set_list_id(const GList *img, const GList *metadata, const gboolean clear_on, const gboolean undo_on)
Definition
metadata/metadata.c:676
dt_metadata_set
void dt_metadata_set(int id, const char *key, const char *value, const gboolean undo_on)
dt_metadata_get_subkey
const char * dt_metadata_get_subkey(const uint32_t keyid)
Definition
metadata/metadata.c:167
dt_metadata_set_import
void dt_metadata_set_import(int id, const char *key, const char *value)
dt_metadata_get_key_by_subkey
const char * dt_metadata_get_key_by_subkey(const char *subkey)
Definition
metadata/metadata.c:177
dt_metadata_get_key
const char * dt_metadata_get_key(const uint32_t keyid)
Definition
metadata/metadata.c:159
dt_metadata_cleanup
void dt_metadata_cleanup(void)
Definition
metadata/metadata.c:414
dt_metadata_get_name_by_display_order
const char * dt_metadata_get_name_by_display_order(const uint32_t order)
Definition
metadata/metadata.c:90
dt_metadata_get_keyid_by_name
dt_metadata_t dt_metadata_get_keyid_by_name(const char *name)
Definition
metadata/metadata.c:116
dt_metadata_flag_t
dt_metadata_flag_t
Definition
metadata.h:78
DT_METADATA_FLAG_IMPORTED
@ DT_METADATA_FLAG_IMPORTED
Definition
metadata.h:81
DT_METADATA_FLAG_HIDDEN
@ DT_METADATA_FLAG_HIDDEN
Definition
metadata.h:79
DT_METADATA_FLAG_PRIVATE
@ DT_METADATA_FLAG_PRIVATE
Definition
metadata.h:80
dt_metadata_t
dt_metadata_t
Definition
metadata.h:45
DT_METADATA_XMP_DC_PUBLISHER
@ DT_METADATA_XMP_DC_PUBLISHER
Definition
metadata.h:50
DT_METADATA_XMP_DC_RIGHTS
@ DT_METADATA_XMP_DC_RIGHTS
Definition
metadata.h:53
DT_METADATA_XMP_ACDSEE_NOTES
@ DT_METADATA_XMP_ACDSEE_NOTES
Definition
metadata.h:54
DT_METADATA_XMP_IMAGE_ID
@ DT_METADATA_XMP_IMAGE_ID
Definition
metadata.h:56
DT_METADATA_XMP_DC_DESCRIPTION
@ DT_METADATA_XMP_DC_DESCRIPTION
Definition
metadata.h:52
DT_METADATA_XMP_VERSION_NAME
@ DT_METADATA_XMP_VERSION_NAME
Definition
metadata.h:55
DT_METADATA_XMP_DC_CREATOR
@ DT_METADATA_XMP_DC_CREATOR
Definition
metadata.h:49
DT_METADATA_NUMBER
@ DT_METADATA_NUMBER
Definition
metadata.h:57
DT_METADATA_XMP_DC_TITLE
@ DT_METADATA_XMP_DC_TITLE
Definition
metadata.h:51
dt_metadata_set_list
void dt_metadata_set_list(const GList *imgs, GList *key_value, const gboolean undo_on)
Definition
metadata/metadata.c:592
dt_metadata_get_keyid
dt_metadata_t dt_metadata_get_keyid(const char *key)
Definition
metadata/metadata.c:148
dt_metadata_type_t
dt_metadata_type_t
Definition
metadata.h:62
DT_METADATA_TYPE_OPTIONAL
@ DT_METADATA_TYPE_OPTIONAL
Definition
metadata.h:64
DT_METADATA_TYPE_INTERNAL
@ DT_METADATA_TYPE_INTERNAL
Definition
metadata.h:65
DT_METADATA_TYPE_USER
@ DT_METADATA_TYPE_USER
Definition
metadata.h:63
dt_metadata_get_name
const char * dt_metadata_get_name(const uint32_t keyid)
Definition
metadata/metadata.c:140
dt_metadata_get
GList * dt_metadata_get(int id, const char *key, uint32_t *count)
Definition
metadata/metadata.c:380
dt_metadata_signal_t
dt_metadata_signal_t
Definition
metadata.h:70
DT_METADATA_SIGNAL_SHOWN
@ DT_METADATA_SIGNAL_SHOWN
Definition
metadata.h:71
DT_METADATA_SIGNAL_NEW_VALUE
@ DT_METADATA_SIGNAL_NEW_VALUE
Definition
metadata.h:73
DT_METADATA_SIGNAL_HIDDEN
@ DT_METADATA_SIGNAL_HIDDEN
Definition
metadata.h:72
dt_metadata_get_list_id
GList * dt_metadata_get_list_id(int id)
Definition
metadata/metadata.c:341
dt_metadata_init
void dt_metadata_init()
Definition
metadata/metadata.c:199
dt_metadata_get_nb_user_metadata
unsigned int dt_metadata_get_nb_user_metadata()
Definition
metadata/metadata.c:79
dt_metadata_get_type_by_display_order
int dt_metadata_get_type_by_display_order(const uint32_t order)
Definition
metadata/metadata.c:127
dt_metadata_get_type
int dt_metadata_get_type(const uint32_t keyid)
Definition
metadata/metadata.c:191
dt_metadata_get_keyid_by_display_order
dt_metadata_t dt_metadata_get_keyid_by_display_order(const uint32_t order)
Definition
metadata/metadata.c:103
name
const char * name
Definition
pdf.h:90
value
static const dt_aligned_pixel_simd_t value
Definition
simd.h:144
src
metadata
metadata.h
Generated by
1.9.8