/* This file is part of darktable, Copyright (C) 2014-2020 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. darktable is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with darktable. If not, see . */ #pragma once #include #include "common/darktable.h" // this function iterates over ALL images from the database and checks whether // - the XMP file on disk is newer than the timestamp from db // - there is a .txt or .wav file associated with the image and mark so in the db // or if such a file no longer exists // it returns the list of images with a (supposedly) updated xmp file to let the user decide // this blocks the calling thread; see dt_control_crawler_start_background() GList *dt_control_crawler_run(); // show a popup with the images, let the user decide what to do and free the list afterwards void dt_control_crawler_show_image_list(GList *images); // perform the same crawl as dt_control_crawler_run(), but from a background // job and one film roll at a time, most recently opened film roll first, so // that startup does not have to wait for it void dt_control_crawler_start_background(void); // examine a film roll now, waiting for it to finish, so that its images // are never shown or edited before their sidecar files have been checked. // called when a film roll is opened. returns immediately once that film // roll has been examined in this session, which after the initial crawl // is the usual case void dt_control_crawler_ensure_filmroll(const dt_filmid_t filmid); // ask the background crawler to stop, optionally waiting for it to do so void dt_control_crawler_stop(const gboolean wait); // background thread updating all thumbnails is there is no user activity while being in lightroom void dt_update_thumbs_thread(void *ptr); void dt_set_backthumb_time(const double offset); // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on