![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/image.h"
#include "common/collection.h"
#include "common/darktable.h"
#include "common/debug.h"
#include "common/exif.h"
#include "common/file_location.h"
#include "common/grouping.h"
#include "common/history.h"
#include "common/history_snapshot.h"
#include "common/image_cache.h"
#include "common/imageio.h"
#include "common/imageio_rawspeed.h"
#include "common/imageio_libraw.h"
#include "common/mipmap_cache.h"
#include "common/ratings.h"
#include "common/tags.h"
#include "common/undo.h"
#include "common/selection.h"
#include "common/datetime.h"
#include "control/conf.h"
#include "control/control.h"
#include "control/jobs.h"
#include "develop/lightroom.h"
#include "win/filepath.h"
#include <assert.h>
#include <ctype.h>
#include <math.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <glob.h>
#include <glib/gstdio.h>
Data Structures | |
struct | dt_undo_monochrome_t |
struct | dt_undo_datetime_t |
struct | dt_undo_geotag_t |
struct | dt_undo_duplicate_t |
struct | _datetime_t |
Typedefs | |
typedef struct dt_undo_monochrome_t | dt_undo_monochrome_t |
typedef struct dt_undo_datetime_t | dt_undo_datetime_t |
typedef struct dt_undo_geotag_t | dt_undo_geotag_t |
typedef struct dt_undo_duplicate_t | dt_undo_duplicate_t |
typedef struct _datetime_t | _datetime_t |
Functions | |
static void | _pop_undo_execute (const int32_t imgid, const gboolean before, const gboolean after) |
static int32_t | _image_duplicate_with_version (const int32_t imgid, const int32_t newversion, const gboolean undo) |
static void | _pop_undo (gpointer user_data, const dt_undo_type_t type, dt_undo_data_t data, const dt_undo_action_t action, GList **imgs) |
static void | _image_local_copy_full_path (const int32_t imgid, char *pathname, size_t pathname_len) |
int | dt_image_is_ldr (const dt_image_t *img) |
int | dt_image_is_hdr (const dt_image_t *img) |
int | dt_image_is_raw (const dt_image_t *img) |
gboolean | dt_image_is_monochrome (const dt_image_t *img) |
static void | _image_set_monochrome_flag (const int32_t imgid, gboolean monochrome, gboolean undo_on) |
void | dt_image_set_monochrome_flag (const int32_t imgid, gboolean monochrome) |
gboolean | dt_image_is_matrix_correction_supported (const dt_image_t *img) |
gboolean | dt_image_is_rawprepare_supported (const dt_image_t *img) |
gboolean | dt_image_use_monochrome_workflow (const dt_image_t *img) |
int | dt_image_monochrome_flags (const dt_image_t *img) |
const char * | dt_image_film_roll_name (const char *path) |
void | dt_image_film_roll_directory (const dt_image_t *img, char *pathname, size_t pathname_len) |
void | dt_image_film_roll (const dt_image_t *img, char *pathname, size_t pathname_len) |
gboolean | dt_image_get_xmp_mode () |
gboolean | dt_image_safe_remove (const int32_t imgid) |
void | dt_image_full_path (const int32_t imgid, char *pathname, size_t pathname_len, gboolean *from_cache, const char *calling_func) |
Get the full path of an image out of the database. TODO: This gets called too many times and the output should be cached. TODO: Document where the pathname_len is being set. | |
void | dt_image_path_append_version_no_db (int version, char *pathname, size_t pathname_len) |
void | dt_image_path_append_version (const int32_t imgid, char *pathname, size_t pathname_len) |
void | dt_image_print_exif (const dt_image_t *img, char *line, size_t line_len) |
int | dt_image_get_xmp_rating_from_flags (const int flags) |
int | dt_image_get_xmp_rating (const dt_image_t *img) |
void | dt_image_set_xmp_rating (dt_image_t *img, const int rating) |
void | dt_image_get_location (const int32_t imgid, dt_image_geoloc_t *geoloc) |
static void | _set_location (const int32_t imgid, const dt_image_geoloc_t *geoloc) |
static void | _set_datetime (const int32_t imgid, const char *datetime) |
static void | _geotag_undo_data_free (gpointer data) |
static void | _image_set_location (GList *imgs, const dt_image_geoloc_t *geoloc, GList **undo, const gboolean undo_on) |
void | dt_image_set_locations (const GList *imgs, const dt_image_geoloc_t *geoloc, const gboolean undo_on) |
void | dt_image_set_location (const int32_t imgid, const dt_image_geoloc_t *geoloc, const gboolean undo_on, const gboolean group_on) |
static void | _image_set_images_locations (const GList *img, const GArray *gloc, GList **undo, const gboolean undo_on) |
void | dt_image_set_images_locations (const GList *imgs, const GArray *gloc, const gboolean undo_on) |
void | dt_image_set_flip (const int32_t imgid, const dt_image_orientation_t orientation) |
dt_image_orientation_t | dt_image_get_orientation (const int32_t imgid) |
void | dt_image_flip (const int32_t imgid, const int32_t cw) |
int32_t | dt_image_duplicate (const int32_t imgid) |
static int32_t | _image_duplicate_with_version_ext (const int32_t imgid, const int32_t newversion) |
int32_t | dt_image_duplicate_with_version (const int32_t imgid, const int32_t newversion) |
void | dt_image_remove (const int32_t imgid) |
uint32_t | dt_image_altered (const int32_t imgid) |
static int | _valid_glob_match (const char *const name, size_t offset) |
GList * | dt_image_find_xmps (const char *filename) |
int | dt_image_read_duplicates (const uint32_t id, const char *filename, const gboolean clear_selection) |
static int32_t | _image_import_internal (const int32_t film_id, const char *filename, gboolean lua_locking, gboolean raise_signals) |
int32_t | dt_image_get_id_full_path (const gchar *filename) |
int32_t | dt_image_get_id (int32_t film_id, const gchar *filename) |
int32_t | dt_image_import (const int32_t film_id, const char *filename, gboolean raise_signals) |
int32_t | dt_image_import_lua (const int32_t film_id, const char *filename) |
void | dt_image_init (dt_image_t *img) |
void | dt_image_refresh_makermodel (dt_image_t *img) |
int32_t | dt_image_rename (const int32_t imgid, const int32_t filmid, const gchar *newname) |
int32_t | dt_image_move (const int32_t imgid, const int32_t filmid) |
int32_t | dt_image_copy_rename (const int32_t imgid, const int32_t filmid, const gchar *newname) |
int32_t | dt_image_copy (const int32_t imgid, const int32_t filmid) |
int | dt_image_local_copy_set (const int32_t imgid) |
static int | _nb_other_local_copy_for (const int32_t imgid) |
int | dt_image_local_copy_reset (const int32_t imgid) |
int | dt_image_write_sidecar_file (const int32_t imgid) |
void | dt_image_synch_xmps (const GList *img) |
void | dt_image_synch_xmp (const int selected) |
void | dt_image_synch_all_xmp (const gchar *pathname) |
void | dt_image_local_copy_synch () |
void | dt_image_get_datetime (const int32_t imgid, char *datetime) |
static void | _datetime_undo_data_free (gpointer data) |
static void | _image_set_datetimes (const GList *img, const GArray *dtime, GList **undo, const gboolean undo_on) |
void | dt_image_set_datetimes (const GList *imgs, const GArray *dtime, const gboolean undo_on) |
static void | _image_set_datetime (const GList *img, const char *datetime, GList **undo, const gboolean undo_on) |
void | dt_image_set_datetime (const GList *imgs, const char *datetime, const gboolean undo_on) |
char * | dt_image_get_audio_path_from_path (const char *image_path) |
char * | dt_image_get_audio_path (const int32_t imgid) |
char * | dt_image_get_text_path_from_path (const char *image_path) |
char * | dt_image_get_text_path (const int32_t imgid) |
float | dt_image_get_exposure_bias (const struct dt_image_t *image_storage) |
char * | dt_image_camera_missing_sample_message (const struct dt_image_t *img, gboolean logmsg) |
void | dt_image_check_camera_missing_sample (const struct dt_image_t *img) |
void | dt_get_dirname_from_imgid (gchar *dir, const int32_t imgid) |
typedef struct _datetime_t _datetime_t |
typedef struct dt_undo_datetime_t dt_undo_datetime_t |
typedef struct dt_undo_duplicate_t dt_undo_duplicate_t |
typedef struct dt_undo_geotag_t dt_undo_geotag_t |
typedef struct dt_undo_monochrome_t dt_undo_monochrome_t |
|
static |
Referenced by dt_image_set_datetime(), and dt_image_set_datetimes().
|
static |
Referenced by dt_image_set_images_locations(), and dt_image_set_locations().
|
static |
References _image_duplicate_with_version_ext(), _pop_undo(), darktable_t::collection, darktable, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, dt_collection_update_query(), DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_grouping_add_to_group(), dt_image_cache_get(), dt_image_cache_read_release(), dt_image_cache_unset_change_timestamp(), DT_SIGNAL_TAG_CHANGED, dt_tag_detach_by_string(), DT_UNDO_DUPLICATE, dt_undo_record(), FALSE, dt_image_t::group_id, darktable_t::image_cache, dt_undo_duplicate_t::new_imgid, dt_undo_duplicate_t::orig_imgid, darktable_t::signals, darktable_t::undo, and dt_undo_duplicate_t::version.
Referenced by _pop_undo(), and dt_image_duplicate_with_version().
|
static |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, MAX, and UNKNOWN_IMAGE.
Referenced by _image_duplicate_with_version(), and dt_image_read_duplicates().
|
static |
References darktable, darktable_t::db, dt_control_log(), dt_control_save_xmp(), dt_database_get(), dt_datetime_now_to_gtimespan(), DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_INT64, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_exif_read(), dt_exif_xmp_read(), dt_image_cache_get(), DT_IMAGE_CACHE_RELAXED, DT_IMAGE_CACHE_SAFE, dt_image_cache_write_release(), dt_image_get_audio_path_from_path(), dt_image_get_id(), dt_image_get_text_path_from_path(), dt_image_get_xmp_mode(), DT_IMAGE_HAS_TXT, DT_IMAGE_HAS_WAV, DT_IMAGE_NO_LEGACY_PRESETS, dt_image_read_duplicates(), dt_image_synch_all_xmp(), dt_imageio_get_type_from_extension(), dt_lightroom_import(), dt_lua_event_trigger(), dt_mipmap_cache_remove(), DT_SIGNAL_GEOTAG_CHANGED, DT_SIGNAL_IMAGE_IMPORT, dt_tag_attach(), dt_tag_new(), dt_util_normalize_path(), dt_util_test_image_file(), extension(), FALSE, dt_image_t::filename, flags, dt_image_t::group_id, darktable_t::image_cache, darktable_t::lua_state, darktable_t::mipmap_cache, PATH_MAX, darktable_t::signals, supported(), TRUE, UNKNOWN_IMAGE, and void().
Referenced by dt_image_import(), and dt_image_import_lua().
|
static |
|
static |
References _set_datetime(), dt_undo_datetime_t::after, dt_undo_datetime_t::before, DT_DATETIME_LENGTH, dt_image_get_datetime(), and dt_undo_datetime_t::imgid.
Referenced by dt_image_set_datetime().
|
static |
References _set_datetime(), dt_undo_datetime_t::after, dt_undo_datetime_t::before, _datetime_t::dt, DT_DATETIME_LENGTH, dt_image_get_datetime(), and dt_undo_datetime_t::imgid.
Referenced by dt_image_set_datetimes().
|
static |
References _set_location(), dt_undo_geotag_t::after, dt_undo_geotag_t::before, dt_image_get_location(), and dt_undo_geotag_t::imgid.
Referenced by dt_image_set_images_locations().
|
static |
References _set_location(), dt_undo_geotag_t::after, dt_undo_geotag_t::before, dt_image_get_location(), and dt_undo_geotag_t::imgid.
Referenced by dt_image_set_locations().
|
static |
References _pop_undo(), dt_undo_monochrome_t::after, dt_undo_monochrome_t::before, darktable, dt_image_cache_get(), dt_image_cache_read_release(), DT_IMAGE_CACHE_RELAXED, dt_image_cache_write_release(), dt_image_monochrome_flags(), DT_IMAGE_MONOCHROME_PREVIEW, DT_IMAGE_MONOCHROME_WORKFLOW, dt_imageio_update_monochrome_workflow_tag(), DT_UNDO_FLAGS, dt_undo_record(), FALSE, dt_image_t::flags, darktable_t::image_cache, dt_undo_monochrome_t::imgid, TRUE, and darktable_t::undo.
Referenced by _pop_undo_execute(), and dt_image_set_monochrome_flag().
|
static |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, and DT_IMAGE_LOCAL_COPY.
Referenced by dt_image_local_copy_reset().
|
static |
References _image_duplicate_with_version(), _pop_undo_execute(), _set_datetime(), _set_location(), dt_undo_monochrome_t::after, dt_undo_datetime_t::after, dt_undo_geotag_t::after, dt_undo_monochrome_t::before, dt_undo_datetime_t::before, dt_undo_geotag_t::before, darktable, DT_ACTION_UNDO, dt_control_log(), DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_image_remove(), DT_SIGNAL_GEOTAG_CHANGED, DT_SIGNAL_IMAGE_INFO_CHANGED, DT_UNDO_DATETIME, DT_UNDO_DUPLICATE, DT_UNDO_FLAGS, DT_UNDO_GEOTAG, FALSE, dt_undo_monochrome_t::imgid, dt_undo_datetime_t::imgid, dt_undo_geotag_t::imgid, dt_undo_duplicate_t::new_imgid, dt_undo_duplicate_t::orig_imgid, darktable_t::signals, type, and dt_undo_duplicate_t::version.
Referenced by _image_duplicate_with_version(), _image_set_monochrome_flag(), dt_image_set_datetime(), dt_image_set_datetimes(), dt_image_set_images_locations(), and dt_image_set_locations().
|
static |
References _image_set_monochrome_flag(), and FALSE.
Referenced by _pop_undo().
|
static |
References darktable, dt_datetime_exif_to_img(), dt_image_cache_get(), DT_IMAGE_CACHE_SAFE, dt_image_cache_write_release(), and darktable_t::image_cache.
Referenced by _image_set_datetime(), _image_set_datetimes(), and _pop_undo().
|
static |
References darktable, dt_image_cache_get(), DT_IMAGE_CACHE_SAFE, dt_image_cache_write_release(), dt_image_t::geoloc, and darktable_t::image_cache.
Referenced by _image_set_images_locations(), _image_set_location(), and _pop_undo().
|
static |
Referenced by dt_image_find_xmps().
void dt_get_dirname_from_imgid | ( | gchar * | dir, |
const int32_t | imgid | ||
) |
get dirname from imgid
References dt_image_full_path(), FALSE, and PATH_MAX.
Referenced by dt_collection_load_filmroll().
uint32_t dt_image_altered | ( | const int32_t | imgid | ) |
returns the number of history entries in library for this image
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, and DT_DEBUG_SQLITE3_PREPARE_V2.
Referenced by _dt_image_info_changed_callback(), _write_mipmap_to_disk(), and is_altered_member().
char * dt_image_camera_missing_sample_message | ( | const struct dt_image_t * | img, |
gboolean | logmsg | ||
) |
handle message for missing camera samples reported by rawspeed
References dt_image_t::camera_maker, dt_image_t::camera_model, and dt_util_str_replace().
Referenced by dt_image_check_camera_missing_sample().
void dt_image_check_camera_missing_sample | ( | const struct dt_image_t * | img | ) |
References dt_image_t::camera_missing_sample, dt_control_log(), dt_image_camera_missing_sample_message(), and TRUE.
Referenced by enter().
int32_t dt_image_copy | ( | const int32_t | imgid, |
const int32_t | filmid | ||
) |
physically copy image to the folder of the film roll with filmid and duplicate update database entries.
References dt_image_copy_rename().
Referenced by dt_control_copy_images_job_run(), and dt_lua_copy_image().
int32_t dt_image_copy_rename | ( | const int32_t | imgid, |
const int32_t | filmid, | ||
const gchar * | newname | ||
) |
physically copy image to the folder of the film roll with filmid and the name given by newname, and duplicate update database entries.
References darktable_t::collection, darktable, darktable_t::db, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, dt_collection_update_query(), dt_control_save_xmp(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_history_copy_and_paste_on_image(), dt_image_full_path(), dt_mipmap_cache_copy_thumbnails(), FALSE, darktable_t::mipmap_cache, PATH_MAX, and TRUE.
Referenced by dt_image_copy(), and dt_lua_copy_image().
int32_t dt_image_duplicate | ( | const int32_t | imgid | ) |
duplicates the given image in the database.
References dt_image_duplicate_with_version().
Referenced by dt_control_duplicate_images_job_run(), dt_lua_duplicate_image(), and dt_styles_apply_to_image().
int32_t dt_image_duplicate_with_version | ( | const int32_t | imgid, |
const int32_t | newversion | ||
) |
duplicates the given image in the database with the duplicate getting the supplied version number. if that version already exists just return the imgid without producing new duplicate. called with newversion -1 a new duplicate is produced with the next free version number.
References _image_duplicate_with_version(), and TRUE.
Referenced by dt_image_duplicate().
void dt_image_film_roll | ( | const dt_image_t * | img, |
char * | pathname, | ||
size_t | pathname_len | ||
) |
returns the film roll name, i.e. without the path.
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_image_film_roll_name(), f(), and dt_image_t::film_id.
Referenced by _metadata_view_update_values().
void dt_image_film_roll_directory | ( | const dt_image_t * | img, |
char * | pathname, | ||
size_t | pathname_len | ||
) |
returns the full directory of the associated film roll.
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, f(), and dt_image_t::film_id.
Referenced by _image_get_infos(), _jump_to(), load_xmp_callback(), path_member(), and update_preview_cb().
const char * dt_image_film_roll_name | ( | const char * | path | ) |
returns the portion of the path used for the film roll name.
References CLAMPS, and dt_conf_get_int().
Referenced by dt_image_film_roll(), list_view(), and pretty_print_collection().
GList * dt_image_find_xmps | ( | const char * | filename | ) |
finds all xmp duplicates for the given image in the database.
References _valid_glob_match(), dt_util_test_image_file(), PATH_MAX, and win_image_find_duplicates().
Referenced by _import_copy_xmp(), dt_control_delete_images_job_run(), and dt_image_read_duplicates().
void dt_image_flip | ( | const int32_t | imgid, |
const int32_t | cw | ||
) |
flips the image, clock wise, if given flag.
References dt_undo_lt_history_t::after, dt_undo_lt_history_t::after_history_end, dt_undo_lt_history_t::before, dt_undo_lt_history_t::before_history_end, darktable, darktable_t::develop, dt_history_snapshot_item_init(), dt_history_snapshot_undo_create(), dt_history_snapshot_undo_lt_history_data_free(), dt_history_snapshot_undo_pop(), dt_image_get_orientation(), dt_image_set_flip(), dt_mipmap_cache_remove(), dt_thumbtable_refresh_thumbnail, DT_UNDO_LT_HISTORY, dt_undo_record(), DT_VIEW_DARKROOM, dt_view_manager_get_current_view(), darktable_t::gui, dt_image_t::id, dt_develop_t::image_storage, dt_undo_lt_history_t::imgid, darktable_t::mipmap_cache, ORIENTATION_FLIP_X, ORIENTATION_FLIP_Y, ORIENTATION_NULL, ORIENTATION_SWAP_XY, dt_ui_t::thumbtable_lighttable, TRUE, dt_gui_gtk_t::ui, darktable_t::undo, and darktable_t::view_manager.
Referenced by dt_control_flip_images_job_run().
void dt_image_full_path | ( | const int32_t | imgid, |
char * | pathname, | ||
size_t | pathname_len, | ||
gboolean * | from_cache, | ||
const char * | calling_func | ||
) |
Get the full path of an image out of the database. TODO: This gets called too many times and the output should be cached. TODO: Document where the pathname_len is being set.
imgid | The image ID. |
pathname | A pointer storing the returned value from the sql request. |
pathname_len | Number of characters of the path set outside the function. |
from_cache | Boolean, false returns the orgina file (file system), true tries to ge a local copy. |
calling_func | Pass FUNCTION for identifcation of callers of this function. |
References _image_local_copy_full_path(), darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQL, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_print(), FALSE, and PATH_MAX.
Referenced by _event_dnd_get(), _generate_blocking(), _get_image_buffer(), _init_f(), _metadata_view_update_values(), _view_map_dnd_get_callback(), _watermark_get_svgdoc(), _write_mipmap_to_disk(), dt_control_delete_images_job_run(), dt_control_export_job_run(), dt_control_merge_hdr_job_run(), dt_control_refresh_exif_run(), dt_control_write_sidecar_files_job_run(), dt_exif_xmp_attach_export(), dt_exif_xmp_read_string(), dt_exif_xmp_write(), dt_get_dirname_from_imgid(), dt_get_lightroom_xmp(), dt_image_copy_rename(), dt_image_find_best_color_profile(), dt_image_get_audio_path(), dt_image_get_text_path(), dt_image_local_copy_reset(), dt_image_local_copy_set(), dt_image_local_copy_synch(), dt_image_rename(), dt_image_safe_remove(), dt_image_write_sidecar_file(), dt_imageio_export_with_flags(), dt_view_image_info_update(), image_tostring(), sidecar_member(), store(), store(), store_wrapper(), try_enter(), and write_image().
char * dt_image_get_audio_path | ( | const int32_t | imgid | ) |
helper function to get the audio file filename that is accompanying the image. g_free() after use
References dt_image_full_path(), dt_image_get_audio_path_from_path(), FALSE, and PATH_MAX.
Referenced by dt_view_audio_start().
char * dt_image_get_audio_path_from_path | ( | const char * | image_path | ) |
Referenced by _image_import_internal(), and dt_image_get_audio_path().
void dt_image_get_datetime | ( | const int32_t | imgid, |
char * | datetime | ||
) |
float dt_image_get_exposure_bias | ( | const struct dt_image_t * | image_storage | ) |
References dt_image_t::exif_exposure_bias.
Referenced by reload_defaults().
int32_t dt_image_get_id | ( | int32_t | film_id, |
const gchar * | filename | ||
) |
get image id by film_id and filename
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, and DT_DEBUG_SQLITE3_PREPARE_V2.
Referenced by _image_import_internal(), and _is_in_library_by_path().
int32_t dt_image_get_id_full_path | ( | const gchar * | filename | ) |
get image id by filename
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_TEXT, and DT_DEBUG_SQLITE3_PREPARE_V2.
Referenced by dt_image_synch_all_xmp().
void dt_image_get_location | ( | const int32_t | imgid, |
dt_image_geoloc_t * | geoloc | ||
) |
get image location lon/lat/ele
References darktable, dt_image_cache_get(), dt_image_cache_read_release(), dt_image_geoloc_t::elevation, dt_image_t::geoloc, darktable_t::image_cache, dt_image_geoloc_t::latitude, and dt_image_geoloc_t::longitude.
Referenced by _image_set_images_locations(), _image_set_location(), and _view_map_center_on_image().
dt_image_orientation_t dt_image_get_orientation | ( | const int32_t | imgid | ) |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_image_cache_get(), dt_image_cache_read_release(), dt_image_orientation(), flip(), darktable_t::image_cache, darktable_t::iop, and ORIENTATION_NULL.
Referenced by _init_8(), and dt_image_flip().
char * dt_image_get_text_path | ( | const int32_t | imgid | ) |
helper function to get the text file filename that is accompanying the image. g_free() after use
References dt_image_full_path(), dt_image_get_text_path_from_path(), FALSE, and PATH_MAX.
Referenced by _get_base_value().
char * dt_image_get_text_path_from_path | ( | const char * | image_path | ) |
Referenced by _image_import_internal(), and dt_image_get_text_path().
gboolean dt_image_get_xmp_mode | ( | ) |
get the mode xmp sidecars are written
References dt_conf_get_string_const(), dt_conf_set_string(), FALSE, and TRUE.
Referenced by _exif_decode_xmp_data(), _image_import_internal(), dt_control_crawler_run(), dt_image_local_copy_synch(), dt_image_safe_remove(), dt_image_synch_all_xmp(), dt_image_synch_xmps(), dt_image_write_sidecar_file(), and dt_metadata_set_import().
int dt_image_get_xmp_rating | ( | const dt_image_t * | img | ) |
References dt_image_get_xmp_rating_from_flags(), and dt_image_t::flags.
int dt_image_get_xmp_rating_from_flags | ( | const int | flags | ) |
References DT_IMAGE_REJECTED, DT_VIEW_RATINGS_MASK, and flags.
Referenced by _exif_xmp_read_data(), _exif_xmp_read_data_export(), and dt_image_get_xmp_rating().
int32_t dt_image_import | ( | int32_t | film_id, |
const char * | filename, | ||
gboolean | raise_signals | ||
) |
imports a new image from raw/etc file and adds it to the data base and image cache. Use from threads other than lua.
References _image_import_internal(), and TRUE.
Referenced by _film_import1(), _import_job(), dt_control_merge_hdr_job_run(), dt_image_import_job_run(), dt_load_from_string(), and main().
int32_t dt_image_import_lua | ( | int32_t | film_id, |
const char * | filename | ||
) |
imports a new image from raw/etc file and adds it to the data base and image cache. Use from lua thread.
References _image_import_internal(), FALSE, and TRUE.
Referenced by import_images().
void dt_image_init | ( | dt_image_t * | img | ) |
inits basic values to sensible defaults.
References dt_image_t::adobe_XYZ_to_CAM, dt_image_t::buf_dsc, dt_image_t::cache_entry, dt_image_t::camera_alias, dt_image_t::camera_legacy_makermodel, dt_image_t::camera_maker, dt_image_t::camera_makermodel, dt_image_t::camera_missing_sample, dt_image_t::camera_model, dt_image_t::change_timestamp, dt_iop_buffer_dsc_t::channels, dt_image_t::color_labels, dt_image_t::colorspace, dt_image_t::crop_height, dt_image_t::crop_width, dt_image_t::crop_x, dt_image_t::crop_y, dt_image_t::d65_color_matrix, dt_image_t::dng_gain_maps, dt_datetime_exif_to_img(), DT_IMAGE_COLORSPACE_NONE, dt_image_geoloc_t::elevation, dt_image_t::exif_aperture, dt_image_t::exif_crop, dt_image_t::exif_exposure, dt_image_t::exif_exposure_bias, dt_image_t::exif_focal_length, dt_image_t::exif_focus_distance, dt_image_t::exif_inited, dt_image_t::exif_iso, dt_image_t::exif_lens, dt_image_t::exif_maker, dt_image_t::exif_model, dt_image_t::export_timestamp, FALSE, dt_image_t::filename, dt_image_t::film_id, dt_iop_buffer_dsc_t::filters, dt_image_t::flags, dt_image_t::fuji_rotation_pos, dt_image_t::geoloc, dt_image_t::group_id, dt_image_t::height, dt_image_t::id, dt_image_t::import_timestamp, dt_image_geoloc_t::latitude, dt_image_raw_parameters_t::legacy, dt_image_t::legacy_flip, dt_image_t::loader, LOADER_UNKNOWN, dt_image_geoloc_t::longitude, dt_image_t::orientation, ORIENTATION_NULL, dt_image_t::p_height, dt_image_t::p_width, dt_image_t::pixel_aspect_ratio, dt_image_t::print_timestamp, dt_image_t::profile, dt_image_t::profile_size, dt_image_t::raw_black_level, dt_image_t::raw_black_level_separate, dt_image_t::raw_white_point, TYPE_UNKNOWN, UNKNOWN_IMAGE, dt_image_raw_parameters_t::user_flip, dt_image_t::usercrop, dt_image_t::version, dt_image_t::wb_coeffs, and dt_image_t::width.
Referenced by _import_copy_file(), _set_test_path(), dt_dev_init(), dt_image_cache_allocate(), and update_preview_cb().
int dt_image_is_hdr | ( | const dt_image_t * | img | ) |
returns non-zero if the image contains float data.
References DT_IMAGE_HDR, dt_image_t::filename, and dt_image_t::flags.
Referenced by _dev_auto_apply_presets(), _exif_decode_exif_data(), _gui_presets_popup_menu_show_internal(), _image_get_infos(), dt_gui_presets_autoapply_for_module(), and is_hdr_member().
int dt_image_is_ldr | ( | const dt_image_t * | img | ) |
returns non-zero if the image contains low-dynamic range data.
References DT_IMAGE_LDR, dt_image_t::filename, and dt_image_t::flags.
Referenced by _exif_decode_exif_data(), generate_preset_combo(), and is_ldr_member().
gboolean dt_image_is_matrix_correction_supported | ( | const dt_image_t * | img | ) |
returns non-zero if the image supports a color correction matrix
References DT_IMAGE_MONOCHROME, DT_IMAGE_RAW, DT_IMAGE_S_RAW, FALSE, dt_image_t::flags, and TRUE.
Referenced by _dev_auto_apply_presets(), _insert_default_modules(), calculate_bogus_daylight_wb(), commit_params(), dt_gui_presets_autoapply_for_module(), dt_image_find_best_color_profile(), find_temperature_from_raw_coeffs(), get_white_balance_coeff(), gui_update(), process_cmatrix(), process_lcms2(), and reload_defaults().
gboolean dt_image_is_monochrome | ( | const dt_image_t * | img | ) |
returns non-zero if this image was taken using a monochrome camera
References DT_IMAGE_MONOCHROME, DT_IMAGE_MONOCHROME_BAYER, FALSE, dt_image_t::flags, and TRUE.
Referenced by colorpicker_callback(), commit_params(), commit_params(), distort_backtransform(), distort_transform(), dt_image_find_best_color_profile(), gui_changed(), gui_update(), gui_update(), process(), reload_defaults(), and reload_defaults().
int dt_image_is_raw | ( | const dt_image_t * | img | ) |
returns non-zero if the image contains mosaic data.
References DT_IMAGE_RAW, and dt_image_t::flags.
Referenced by _get_structure(), _insert_default_modules(), _set_params(), commit_params(), commit_params(), default_input_format(), default_output_format(), dt_dev_pixelpipe_change(), dt_lightroom_import(), force_enable(), get_output_format(), gui_changed(), gui_update(), gui_update(), is_raw_member(), prepare_matrices(), and reload_defaults().
gboolean dt_image_is_rawprepare_supported | ( | const dt_image_t * | img | ) |
returns non-zero if the image supports the rawprepare module
References DT_IMAGE_RAW, DT_IMAGE_S_RAW, FALSE, dt_image_t::flags, and TRUE.
Referenced by _dev_auto_apply_presets(), _gui_presets_popup_menu_show_internal(), commit_params(), dt_dev_pixelpipe_change(), dt_gui_presets_autoapply_for_module(), dt_iop_gui_update_blending(), gui_update(), and reload_defaults().
int dt_image_local_copy_reset | ( | const int32_t | imgid | ) |
References _image_local_copy_full_path(), _nb_other_local_copy_for(), darktable, dt_control_log(), dt_control_queue_redraw_center(), dt_control_save_xmp(), dt_image_cache_get(), dt_image_cache_read_release(), DT_IMAGE_CACHE_RELAXED, dt_image_cache_write_release(), dt_image_full_path(), DT_IMAGE_LOCAL_COPY, dt_image_path_append_version(), dt_loc_get_user_cache_dir(), FALSE, dt_image_t::flags, darktable_t::image_cache, PATH_MAX, and TRUE.
Referenced by dt_control_delete_images_job_run(), dt_control_local_copy_images_job_run(), dt_film_remove(), dt_image_remove(), and local_copy_member().
int dt_image_local_copy_set | ( | const int32_t | imgid | ) |
References _image_local_copy_full_path(), darktable, dt_control_log(), dt_control_queue_redraw_center(), dt_image_cache_get(), DT_IMAGE_CACHE_RELAXED, dt_image_cache_write_release(), dt_image_full_path(), DT_IMAGE_LOCAL_COPY, FALSE, dt_image_t::flags, darktable_t::image_cache, and PATH_MAX.
Referenced by dt_control_local_copy_images_job_run(), and local_copy_member().
void dt_image_local_copy_synch | ( | ) |
int dt_image_monochrome_flags | ( | const dt_image_t * | img | ) |
returns the bitmask containing info about monochrome images
References DT_IMAGE_MONOCHROME, DT_IMAGE_MONOCHROME_BAYER, DT_IMAGE_MONOCHROME_PREVIEW, and dt_image_t::flags.
Referenced by _dev_auto_apply_presets(), _gui_presets_popup_menu_show_internal(), _image_get_infos(), _image_set_monochrome_flag(), _metadata_get_flags(), dt_gui_presets_autoapply_for_module(), and dt_imageio_open().
int32_t dt_image_move | ( | const int32_t | imgid, |
const int32_t | filmid | ||
) |
physically move image with imgid and its duplicates to the film roll given by filmid. returns -1 on error, 0 on success.
References dt_image_rename().
Referenced by dt_control_move_images_job_run(), and dt_lua_move_image().
void dt_image_path_append_version | ( | const int32_t | imgid, |
char * | pathname, | ||
size_t | pathname_len | ||
) |
appends version numbering for duplicated images.
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, and dt_image_path_append_version_no_db().
Referenced by dt_control_delete_images_job_run(), dt_control_write_sidecar_files_job_run(), dt_exif_xmp_attach_export(), dt_exif_xmp_read_string(), dt_image_local_copy_reset(), dt_image_rename(), dt_image_write_sidecar_file(), image_tostring(), sidecar_member(), store(), and store_wrapper().
void dt_image_path_append_version_no_db | ( | int | version, |
char * | pathname, | ||
size_t | pathname_len | ||
) |
appends version numbering for duplicated images without querying the db.
References c2.
Referenced by dt_control_crawler_run(), and dt_image_path_append_version().
void dt_image_print_exif | ( | const dt_image_t * | img, |
char * | line, | ||
size_t | line_len | ||
) |
prints a one-line exif information string.
References dt_util_format_exposure(), dt_image_t::exif_aperture, dt_image_t::exif_exposure, dt_image_t::exif_focal_length, and dt_image_t::exif_iso.
Referenced by _get_base_value(), and finalize_store().
int dt_image_read_duplicates | ( | const uint32_t | id, |
const char * | filename, | ||
const gboolean | clear_selection | ||
) |
References _image_duplicate_with_version_ext(), darktable_t::collection, darktable, darktable_t::db, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, dt_collection_update_query(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_exif_xmp_read(), dt_grouping_add_to_group(), dt_image_cache_get(), dt_image_cache_read_release(), DT_IMAGE_CACHE_RELAXED, dt_image_cache_write_release(), dt_image_find_xmps(), dt_selection_clear(), dt_image_t::group_id, darktable_t::image_cache, PATH_MAX, darktable_t::selection, dt_image_t::version, and void().
Referenced by _image_import_internal(), and _import_image().
void dt_image_refresh_makermodel | ( | dt_image_t * | img | ) |
Refresh makermodel from the raw and exif values
References dt_image_t::camera_alias, dt_image_t::camera_maker, dt_image_t::camera_makermodel, dt_image_t::camera_model, dt_imageio_lookup_makermodel(), dt_image_t::exif_maker, and dt_image_t::exif_model.
Referenced by _exif_decode_exif_data(), dt_image_cache_allocate(), and dt_imageio_open_rawspeed().
void dt_image_remove | ( | const int32_t | imgid | ) |
removes the given image from the database.
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_grouping_remove_from_group(), dt_image_cache_get(), dt_image_cache_read_release(), dt_image_cache_remove(), dt_image_local_copy_reset(), dt_mipmap_cache_remove(), darktable_t::image_cache, darktable_t::mipmap_cache, and TRUE.
Referenced by _pop_undo(), dt_control_delete_images_job_run(), dt_control_remove_images_job_run(), and dt_lua_delete_image().
int32_t dt_image_rename | ( | const int32_t | imgid, |
const int32_t | filmid, | ||
const gchar * | newname | ||
) |
physically move image with imgid and its duplicates to the film roll given by filmid and the name given by newname. returns -1 on error, 0 on success.
References _image_local_copy_full_path(), darktable, darktable_t::db, dt_control_log(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_image_cache_get(), DT_IMAGE_CACHE_RELAXED, dt_image_cache_write_release(), dt_image_full_path(), dt_image_path_append_version(), dt_image_write_sidecar_file(), DT_MAX_FILENAME_LEN, FALSE, dt_image_t::filename, dt_image_t::film_id, darktable_t::image_cache, and PATH_MAX.
Referenced by dt_image_move(), and dt_lua_move_image().
gboolean dt_image_safe_remove | ( | const int32_t | imgid | ) |
References dt_image_full_path(), dt_image_get_xmp_mode(), PATH_MAX, and TRUE.
Referenced by dt_control_remove_images_job_run(), and dt_film_remove().
void dt_image_set_datetime | ( | const GList * | imgs, |
const char * | datetime, | ||
const gboolean | undo_on | ||
) |
References _datetime_undo_data_free(), _image_set_datetime(), _pop_undo(), darktable, DT_UNDO_DATETIME, dt_undo_end_group(), dt_undo_record(), dt_undo_start_group(), and darktable_t::undo.
Referenced by dt_control_datetime_job_run().
void dt_image_set_datetimes | ( | const GList * | imgs, |
const GArray * | dtime, | ||
const gboolean | undo_on | ||
) |
References _datetime_undo_data_free(), _image_set_datetimes(), _pop_undo(), darktable, DT_UNDO_DATETIME, dt_undo_end_group(), dt_undo_record(), dt_undo_start_group(), and darktable_t::undo.
Referenced by dt_control_datetime_job_run().
void dt_image_set_flip | ( | const int32_t | imgid, |
const dt_image_orientation_t | orientation | ||
) |
References darktable, darktable_t::db, dt_control_save_xmp(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_BLOB, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, DT_HISTORY_HASH_CURRENT, dt_history_hash_write_from_history(), dt_mipmap_cache_remove(), darktable_t::mipmap_cache, and TRUE.
Referenced by dt_image_flip().
void dt_image_set_images_locations | ( | const GList * | imgs, |
const GArray * | gloc, | ||
const gboolean | undo_on | ||
) |
set images locations lon/lat/ele
References _geotag_undo_data_free(), _image_set_images_locations(), _pop_undo(), darktable, dt_undo_end_group(), DT_UNDO_GEOTAG, dt_undo_record(), dt_undo_start_group(), and darktable_t::undo.
Referenced by dt_control_gpx_apply_job_run().
void dt_image_set_location | ( | const int32_t | imgid, |
const dt_image_geoloc_t * | geoloc, | ||
const gboolean | undo_on, | ||
const gboolean | group_on | ||
) |
set image location lon/lat/ele
References dt_act_on_get_images(), dt_grouping_add_grouped_images(), dt_image_set_locations(), and UNKNOWN_IMAGE.
Referenced by dt_lightroom_import().
void dt_image_set_locations | ( | const GList * | img, |
const dt_image_geoloc_t * | geoloc, | ||
const gboolean | undo_on | ||
) |
set images location lon/lat/ele
References _geotag_undo_data_free(), _image_set_location(), _pop_undo(), darktable, dt_undo_end_group(), DT_UNDO_GEOTAG, dt_undo_record(), dt_undo_start_group(), and darktable_t::undo.
Referenced by _drag_and_drop_received(), and dt_image_set_location().
void dt_image_set_monochrome_flag | ( | const int32_t | imgid, |
gboolean | monochrome | ||
) |
set the monochrome flags if monochrome is TRUE and clear it otherwise
References _image_set_monochrome_flag(), and TRUE.
Referenced by dt_control_monochrome_images_job_run().
void dt_image_set_xmp_rating | ( | dt_image_t * | img, |
const int | rating | ||
) |
References DT_IMAGE_REJECTED, DT_VIEW_RATINGS_MASK, and dt_image_t::flags.
Referenced by _exif_decode_exif_data(), and _exif_decode_xmp_data().
void dt_image_synch_all_xmp | ( | const gchar * | pathname | ) |
References dt_image_get_id_full_path(), dt_image_get_xmp_mode(), dt_image_write_sidecar_file(), and UNKNOWN_IMAGE.
Referenced by _image_import_internal(), dt_control_delete_images_job_run(), and dt_control_remove_images_job_run().
void dt_image_synch_xmp | ( | const int | selected | ) |
References dt_act_on_get_images(), dt_image_synch_xmps(), and dt_image_write_sidecar_file().
Referenced by _attach_selected_tag(), _event_dnd_received(), _pop_menu_attached_attach_to_all(), dt_lightroom_import(), dt_lua_tag_attach(), dt_lua_tag_detach(), exif_datetime_taken_member(), metadata_member(), set_params(), and tag_delete().
void dt_image_synch_xmps | ( | const GList * | img | ) |
References dt_image_get_xmp_mode(), and dt_image_write_sidecar_file().
Referenced by _apply_rename_path(), _detach_selected_tag(), _new_button_clicked(), _pop_menu_dictionary_delete_node(), _pop_menu_dictionary_delete_tag(), _pop_menu_dictionary_edit_tag(), _undo_do_undo_redo(), _write_metadata(), dt_image_synch_xmp(), and set_params().
gboolean dt_image_use_monochrome_workflow | ( | const dt_image_t * | img | ) |
returns true if the image has been tested to be monochrome and the image wants monochrome workflow
References DT_IMAGE_MONOCHROME, DT_IMAGE_MONOCHROME_BAYER, DT_IMAGE_MONOCHROME_PREVIEW, DT_IMAGE_MONOCHROME_WORKFLOW, and dt_image_t::flags.
Referenced by _image_get_infos().
int dt_image_write_sidecar_file | ( | const int32_t | imgid | ) |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_exif_xmp_write(), dt_image_full_path(), dt_image_get_xmp_mode(), dt_image_path_append_version(), FALSE, PATH_MAX, and TRUE.
Referenced by dt_dev_save_xmp_job_run(), dt_image_cache_write_release(), dt_image_local_copy_synch(), dt_image_rename(), dt_image_synch_all_xmp(), dt_image_synch_xmp(), dt_image_synch_xmps(), sync_db_to_xmp(), sync_newest_to_oldest(), and sync_oldest_to_newest().