![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include <glib.h>
#include <inttypes.h>
#include <stddef.h>
#include "control/jobs/control_jobs.h"
#include "control/jobs/develop_jobs.h"
#include "control/jobs/film_jobs.h"
#include "control/jobs/image_jobs.h"
Go to the source code of this file.
Macros | |
#define | DT_CONTROL_DESCRIPTION_LEN 256 |
#define | DT_CTL_WORKER_RESERVED 2 |
#define | DT_CTL_WORKER_DARKROOM_THUMB 0 |
#define | DT_CTL_WORKER_DARKROOM_MAIN 1 |
Typedefs | |
typedef enum dt_job_state_t | dt_job_state_t |
typedef enum dt_job_queue_t | dt_job_queue_t |
typedef struct _dt_job_t | dt_job_t |
typedef int32_t(* | dt_job_execute_callback) (dt_job_t *) |
typedef void(* | dt_job_state_change_callback) (dt_job_t *, dt_job_state_t state) |
typedef void(* | dt_job_destroy_callback) (void *data) |
Enumerations | |
enum | dt_job_state_t { DT_JOB_STATE_INITIALIZED = 0 , DT_JOB_STATE_QUEUED , DT_JOB_STATE_RUNNING , DT_JOB_STATE_FINISHED , DT_JOB_STATE_CANCELLED , DT_JOB_STATE_DISCARDED , DT_JOB_STATE_DISPOSED } |
enum | dt_job_queue_t { DT_JOB_QUEUE_USER_FG = 0 , DT_JOB_QUEUE_SYSTEM_FG = 1 , DT_JOB_QUEUE_USER_BG = 2 , DT_JOB_QUEUE_USER_EXPORT = 3 , DT_JOB_QUEUE_SYSTEM_BG = 4 , DT_JOB_QUEUE_MAX = 5 } |
#define DT_CONTROL_DESCRIPTION_LEN 256 |
#define DT_CTL_WORKER_DARKROOM_MAIN 1 |
#define DT_CTL_WORKER_DARKROOM_THUMB 0 |
#define DT_CTL_WORKER_RESERVED 2 |
typedef int32_t(* dt_job_execute_callback) (dt_job_t *) |
typedef enum dt_job_queue_t dt_job_queue_t |
typedef void(* dt_job_state_change_callback) (dt_job_t *, dt_job_state_t state) |
typedef enum dt_job_state_t dt_job_state_t |
enum dt_job_queue_t |
enum dt_job_state_t |
int dt_control_add_job | ( | struct dt_control_t * | control, |
dt_job_queue_t | queue_id, | ||
dt_job_t * | job | ||
) |
References dt_control_t::cond, dt_control_t::cond_mutex, DT_CONTROL_FG_PRIORITY, dt_control_job_dispose(), dt_control_job_equal(), dt_control_job_execute(), dt_control_job_print(), dt_control_job_set_state(), DT_CONTROL_MAX_JOBS, DT_DEBUG_CONTROL, DT_JOB_QUEUE_MAX, DT_JOB_QUEUE_SYSTEM_BG, DT_JOB_QUEUE_SYSTEM_FG, DT_JOB_QUEUE_USER_BG, DT_JOB_QUEUE_USER_EXPORT, DT_JOB_STATE_DISCARDED, DT_JOB_STATE_QUEUED, dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_control_t::job, dt_control_t::num_threads, _dt_job_t::priority, _dt_job_t::queue, dt_control_t::queue_length, dt_control_t::queue_mutex, dt_control_t::queues, dt_control_t::running, and _dt_job_t::wait_mutex.
Referenced by _print_button_clicked(), dt_control_copy_images(), dt_control_datetime(), dt_control_delete_image(), dt_control_delete_images(), dt_control_duplicate_images(), dt_control_export(), dt_control_flip_images(), dt_control_get_selected_files(), dt_control_gpx_apply(), dt_control_import(), dt_control_merge_hdr(), dt_control_monochrome_images(), dt_control_move_images(), dt_control_refresh_exif(), dt_control_remove_images(), dt_control_reset_local_copy_images(), dt_control_save_xmp(), dt_control_set_local_copy_images(), dt_control_write_sidecar_files(), dt_film_import(), dt_init(), dt_printers_discovery(), dt_thumbnail_get_image_buffer(), enter(), free_params_wrapper(), preload_image_cache_callback(), and requeue_job().
int32_t dt_control_add_job_res | ( | struct dt_control_t * | s, |
dt_job_t * | job, | ||
int32_t | res | ||
) |
References dt_control_t::cond, dt_control_t::cond_mutex, dt_control_job_dispose(), dt_control_job_print(), dt_control_job_set_state(), DT_CTL_WORKER_RESERVED, DT_DEBUG_CONTROL, DT_JOB_STATE_DISCARDED, DT_JOB_STATE_QUEUED, dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_control_t::job_res, dt_control_t::new_res, and dt_control_t::res_mutex.
Referenced by dt_dev_process_image(), and dt_dev_process_preview().
int32_t dt_control_get_threadid | ( | ) |
References darktable_t::control, darktable, dt_control_t::num_threads, and threadid.
Referenced by dt_control_job_execute(), dt_control_run_job(), and dt_control_schedule_job().
References darktable_t::control, darktable, dt_control_progress_attach_job(), dt_control_progress_create(), _dt_job_t::progress, and TRUE.
Referenced by _control_import_job_create(), _print_button_clicked(), dt_control_datetime_job_create(), dt_control_export(), dt_control_generic_image_job_create(), dt_control_generic_images_job_create(), dt_film_import1_create(), dt_image_import_job_create(), dt_pathlist_import_create(), and preload_image_cache_callback().
cancel a job, running or in queue.
References dt_control_job_set_state(), and DT_JOB_STATE_CANCELLED.
Referenced by dt_control_export_job_run(), dt_control_jobs_cleanup(), and dt_control_progress_cancel_callback().
dt_job_t * dt_control_job_create | ( | dt_job_execute_callback | execute, |
const char * | msg, | ||
... | |||
) |
create a new initialized job
destroy a job object and free its memory. this does NOT remove it from any job queues!
References darktable_t::control, darktable, dt_control_job_set_state(), dt_control_progress_destroy(), DT_JOB_STATE_DISPOSED, dt_pthread_mutex_destroy(), _dt_job_t::params, _dt_job_t::params_destroy, _dt_job_t::progress, _dt_job_t::state_mutex, and _dt_job_t::wait_mutex.
Referenced by _control_gpx_apply_job_create(), _control_import_job_create(), _print_button_clicked(), dt_control_add_job(), dt_control_add_job_res(), dt_control_copy_images(), dt_control_datetime_job_create(), dt_control_delete_image(), dt_control_delete_images(), dt_control_export(), dt_control_generic_image_job_create(), dt_control_generic_images_job_create(), dt_control_move_images(), dt_control_remove_images(), dt_control_run_job(), dt_control_run_job_res(), dt_film_import1_create(), dt_image_import_job_create(), dt_pathlist_import_create(), and free_params_wrapper().
get job params. WARNING: you must not free them. dt_control_job_dispose() will take care of that
References _dt_job_t::params.
Referenced by _control_import_job_run(), _create_pdf(), _detect_printers_callback(), _export_and_setup_pos(), _export_image(), _generic_dt_control_fileop_images_job_run(), _get_image_buffer(), _get_selected_files_job(), _pathlist_import_run(), _print_job_run(), dt_control_copy_images(), dt_control_datetime_job_run(), dt_control_delete_images(), dt_control_delete_images_job_run(), dt_control_duplicate_images_job_run(), dt_control_export_job_run(), dt_control_flip_images_job_run(), dt_control_gpx_apply_job_run(), dt_control_local_copy_images_job_run(), dt_control_merge_hdr_job_run(), dt_control_monochrome_images_job_run(), dt_control_move_images(), dt_control_refresh_exif_run(), dt_control_remove_images(), dt_control_remove_images_job_run(), dt_control_write_sidecar_files_job_run(), dt_dev_process_image_job_run(), dt_dev_process_preview_job_run(), dt_dev_save_xmp_job_run(), dt_film_import1_run(), dt_image_import_job_run(), free_param_wrapper_job(), and process_job_run().
References dt_control_progress_get_progress(), and _dt_job_t::progress.
dt_job_state_t dt_control_job_get_state | ( | dt_job_t * | job | ) |
References DT_JOB_STATE_DISPOSED, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), _dt_job_t::state, and _dt_job_t::state_mutex.
Referenced by _generic_dt_control_fileop_images_job_run(), _print_job_run(), dt_control_export_job_run(), dt_control_job_set_params(), dt_control_job_set_params_with_size(), dt_control_job_set_state_callback(), dt_control_job_wait(), dt_control_local_copy_images_job_run(), dt_control_run_job(), dt_control_run_job_res(), and preload_image_cache().
void dt_control_job_set_params | ( | dt_job_t * | job, |
void * | params, | ||
dt_job_destroy_callback | callback | ||
) |
set job params and a callback to destroy those params
References dt_control_job_get_state(), DT_JOB_STATE_INITIALIZED, _dt_job_t::params, _dt_job_t::params_destroy, and _dt_job_t::params_size.
Referenced by _control_gpx_apply_job_create(), _control_import_job_create(), _print_button_clicked(), dt_control_datetime_job_create(), dt_control_export(), dt_control_generic_image_job_create(), dt_control_generic_images_job_create(), dt_control_get_selected_files(), dt_dev_process_image_job_create(), dt_dev_process_preview_job_create(), dt_film_import1_create(), dt_image_import_job_create(), dt_pathlist_import_create(), dt_printers_discovery(), dt_thumbnail_get_image_buffer(), free_params_wrapper(), and process_job_create().
void dt_control_job_set_params_with_size | ( | dt_job_t * | job, |
void * | params, | ||
size_t | params_size, | ||
dt_job_destroy_callback | callback | ||
) |
set job params (with size params_size) and a callback to destroy those params. NOTE: in most cases you want dt_control_job_set_params()
References dt_control_job_get_state(), DT_JOB_STATE_INITIALIZED, _dt_job_t::params, _dt_job_t::params_destroy, _dt_job_t::params_size, and params_size().
References darktable_t::control, darktable, dt_control_progress_set_progress(), and _dt_job_t::progress.
Referenced by _export_image(), _film_import1(), _generic_dt_control_fileop_images_job_run(), _print_job_run(), _refresh_progress_counter(), dt_control_delete_images_job_run(), dt_control_duplicate_images_job_run(), dt_control_export_job_run(), dt_control_flip_images_job_run(), dt_control_local_copy_images_job_run(), dt_control_merge_hdr_job_run(), dt_control_monochrome_images_job_run(), dt_control_refresh_exif_run(), dt_control_remove_images_job_run(), dt_image_import_job_run(), and preload_image_cache().
References darktable_t::control, darktable, dt_control_progress_set_message(), and _dt_job_t::progress.
Referenced by _film_import1(), _generic_dt_control_fileop_images_job_run(), _refresh_progress_counter(), dt_control_datetime_job_run(), dt_control_delete_images_job_run(), dt_control_duplicate_images_job_run(), dt_control_export_job_run(), dt_control_flip_images_job_run(), dt_control_local_copy_images_job_run(), dt_control_merge_hdr_job_run(), dt_control_monochrome_images_job_run(), dt_control_refresh_exif_run(), dt_control_remove_images_job_run(), and dt_image_import_job_run().
void dt_control_job_set_state_callback | ( | dt_job_t * | job, |
dt_job_state_change_callback | cb | ||
) |
setup a state callback for job.
References dt_control_job_get_state(), DT_JOB_STATE_INITIALIZED, and _dt_job_t::state_changed_cb.
wait for a job to finish execution.
References dt_control_job_get_state(), DT_JOB_STATE_CANCELLED, DT_JOB_STATE_RUNNING, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), and _dt_job_t::wait_mutex.
void dt_control_jobs_cleanup | ( | struct dt_control_t * | control | ) |
References dt_control_job_cancel(), DT_JOB_QUEUE_MAX, DT_JOB_QUEUE_USER_EXPORT, dt_control_t::export_scheduled, dt_control_t::job, dt_control_t::queues, and dt_control_t::thread.
Referenced by dt_control_cleanup().
void dt_control_jobs_init | ( | struct dt_control_t * | control | ) |
References dt_control_work(), dt_control_work_res(), dt_control_worker_kicker(), DT_CTL_WORKER_RESERVED, dt_pthread_create(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_worker_threads(), FALSE, dt_control_t::job, dt_control_t::job_res, dt_control_t::kick_on_workers_thread, dt_control_t::new_res, dt_control_t::num_threads, dt_control_t::run_mutex, dt_control_t::running, dt_control_t::thread, dt_control_t::thread_res, and TRUE.
Referenced by dt_control_init().