Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
imageio_module.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2010-2011 Henrik Andersson.
4 Copyright (C) 2010-2011 johannes hanika.
5 Copyright (C) 2012, 2014, 2020-2021 Pascal Obry.
6 Copyright (C) 2012 Richard Wonka.
7 Copyright (C) 2012 Simon Spannagel.
8 Copyright (C) 2012, 2014-2017, 2019-2020 Tobias Ellinghaus.
9 Copyright (C) 2013-2015 Jérémy Rosen.
10 Copyright (C) 2013 Ulrich Pegelow.
11 Copyright (C) 2016 Roman Lebedev.
12 Copyright (C) 2017 luzpaz.
13 Copyright (C) 2019 Denis Dyakov.
14 Copyright (C) 2019 Edgardo Hoszowski.
15 Copyright (C) 2019 Philippe Weyland.
16 Copyright (C) 2020 a.
17 Copyright (C) 2020 Andreas Schneider.
18 Copyright (C) 2021 Bill Ferguson.
19 Copyright (C) 2021 Diederik Ter Rahe.
20 Copyright (C) 2022 Martin Bařinka.
21 Copyright (C) 2025 Alynx Zhou.
22 Copyright (C) 2025 Aurélien PIERRE.
23
24 darktable is free software: you can redistribute it and/or modify
25 it under the terms of the GNU General Public License as published by
26 the Free Software Foundation, either version 3 of the License, or
27 (at your option) any later version.
28
29 darktable is distributed in the hope that it will be useful,
30 but WITHOUT ANY WARRANTY; without even the implied warranty of
31 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32 GNU General Public License for more details.
33
34 You should have received a copy of the GNU General Public License
35 along with darktable. If not, see <http://www.gnu.org/licenses/>.
36*/
37
38#ifndef DT_IMAGEIO_IMAGEIO_MODULE_H
39#define DT_IMAGEIO_IMAGEIO_MODULE_H
40
43#include <gmodule.h>
44#include <gtk/gtk.h>
45#include <inttypes.h>
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
58
67/*
68 * custom data for the module. append private stuff after these.
69 * this will be inited once when the export button is hit, so the user can make
70 * gui adjustments that won't affect the currently running export.
71 */
78
81/* responsible for image encoding, such as jpg,png,etc */
83{
84#define INCLUDE_API_FROM_MODULE_H
86
87 // office use only:
88 char plugin_name[128];
89 GModule *module;
90
91 // gui stuff:
93
94 // data for you to initialize
95 void *gui_data;
96
97 gboolean ready;
99
100
101/* responsible for image storage, such as flickr, harddisk, etc */
103{
104#define INCLUDE_API_FROM_MODULE_H
106
107 // office use only:
108 char plugin_name[128];
109 GModule *module;
110
111 // gui stuff:
113
114 // data for you to initialize
115 void *gui_data;
116
118
119
120/* main struct */
126
127/* load all modules */
129
130// Interim accessor (Strategy B, doc/globals-migration.md): implemented by the orchestrator; long-term the handle should be carried on the job/view context (Strategy C).
132/* cleanup */
134
135/* get selected imageio plugin for export */
137
138/* get selected imageio plugin for export */
140
141/* get by name. */
144
145/* get by index */
150
151/* add a module into the known module list */
153/* remove a module from the known module list */
155
156// This function returns value of string which stored in the
157// "plugins/lighttable/export/resizing_factor" parameter of the configuration file
158// and its "num" and "denum" fraction's elements to calculate the scaling factor
159// and improve the readability of the displayed string itself in the "scale" field
160// of the settings export.
161gchar *dt_imageio_resizing_factor_get_and_parsing(double *num, double *denum);
162
163#ifdef __cplusplus
164}
165#endif
166
167#endif // DT_IMAGEIO_IMAGEIO_MODULE_H
168
169// clang-format off
170// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
171// vim: shiftwidth=2 expandtab tabstop=2 cindent
172// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
173// clang-format on
The colour-profile module's API: which profiles exist, and how to apply one.
struct _GtkWidget GtkWidget
GtkWidget, opaque, spelled exactly as GTK spells it.
Definition colorspaces.h:98
dt_imageio_module_storage_t * dt_imageio_get_storage_by_index(int index)
void dt_imageio_cleanup(dt_imageio_t *iio)
void dt_imageio_remove_storage(dt_imageio_module_storage_t *storage)
dt_imageio_module_storage_t * dt_imageio_get_storage()
int dt_imageio_get_index_of_format(dt_imageio_module_format_t *format)
dt_imageio_format_flags_t
@ FORMAT_FLAGS_SUPPORT_LAYERS
@ FORMAT_FLAGS_SUPPORT_XMP
@ FORMAT_FLAGS_NO_TMPFILE
int dt_imageio_get_index_of_storage(dt_imageio_module_storage_t *storage)
struct dt_imageio_t * dt_imageio_get_global(void)
Definition darktable.c:626
dt_imageio_module_format_t * dt_imageio_get_format_by_index(int index)
gchar * dt_imageio_resizing_factor_get_and_parsing(double *num, double *denum)
dt_imageio_module_format_t * dt_imageio_get_format()
void dt_imageio_init(dt_imageio_t *iio)
void dt_imageio_insert_storage(dt_imageio_module_storage_t *storage)
dt_imageio_module_format_t * dt_imageio_get_format_by_name(const char *name)
dt_imageio_module_storage_t * dt_imageio_get_storage_by_name(const char *name)
const char * name
Definition pdf.h:90
GModule *GtkWidget * widget
GModule *GtkWidget * widget
GList * plugins_storage
GList * plugins_format