/*
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