Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
jobs.h File Reference
#include <glib.h>
#include <inttypes.h>
#include <stddef.h>
#include "control/jobs/control_jobs.h"
#include "control/jobs/film_jobs.h"
#include "control/jobs/image_jobs.h"
+ Include dependency graph for jobs.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DT_CONTROL_DESCRIPTION_LEN   256
 
#define DT_CTL_WORKER_RESERVED   1
 
#define DT_CTL_WORKER_DARKROOM   0
 

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
}
 

Functions

dt_job_tdt_control_job_create (dt_job_execute_callback execute, const char *msg,...) __attribute__((format(printf
 
dt_job_t void dt_control_job_dispose (dt_job_t *job)
 
void dt_control_job_set_state_callback (dt_job_t *job, dt_job_state_change_callback cb)
 
void dt_control_job_cancel (dt_job_t *job)
 
dt_job_state_t dt_control_job_get_state (dt_job_t *job)
 
void dt_control_job_wait (dt_job_t *job)
 
void dt_control_job_set_params (dt_job_t *job, void *params, dt_job_destroy_callback callback)
 
void dt_control_job_set_params_with_size (dt_job_t *job, void *params, size_t params_size, dt_job_destroy_callback callback)
 
voiddt_control_job_get_params (const dt_job_t *job)
 
void dt_control_job_add_progress (dt_job_t *job, const char *message, gboolean cancellable)
 
void dt_control_job_set_progress_message (dt_job_t *job, const char *message)
 
void dt_control_job_set_progress (dt_job_t *job, double value)
 
double dt_control_job_get_progress (dt_job_t *job)
 
void dt_control_jobs_init (struct dt_control_t *control)
 
void dt_control_jobs_cleanup (struct dt_control_t *control)
 
int dt_control_add_job (struct dt_control_t *control, dt_job_queue_t queue_id, dt_job_t *job)
 
int32_t dt_control_add_job_res (struct dt_control_t *s, dt_job_t *job, int32_t res)
 
int32_t dt_control_get_threadid ()
 
void dt_control_flush_jobs_queue (struct dt_control_t *control, dt_job_queue_t queue_id)
 

Macro Definition Documentation

◆ DT_CONTROL_DESCRIPTION_LEN

#define DT_CONTROL_DESCRIPTION_LEN   256

Definition at line 35 of file jobs.h.

◆ DT_CTL_WORKER_DARKROOM

#define DT_CTL_WORKER_DARKROOM   0

Definition at line 38 of file jobs.h.

◆ DT_CTL_WORKER_RESERVED

#define DT_CTL_WORKER_RESERVED   1

Definition at line 37 of file jobs.h.

Typedef Documentation

◆ dt_job_destroy_callback

typedef void(* dt_job_destroy_callback) (void *data)

Definition at line 65 of file jobs.h.

◆ dt_job_execute_callback

typedef int32_t(* dt_job_execute_callback) (dt_job_t *)

Definition at line 63 of file jobs.h.

◆ dt_job_queue_t

◆ dt_job_state_change_callback

typedef void(* dt_job_state_change_callback) (dt_job_t *, dt_job_state_t state)

Definition at line 64 of file jobs.h.

◆ dt_job_state_t

◆ dt_job_t

typedef struct _dt_job_t dt_job_t

Definition at line 61 of file jobs.h.

Enumeration Type Documentation

◆ dt_job_queue_t

Enumerator
DT_JOB_QUEUE_USER_FG 
DT_JOB_QUEUE_SYSTEM_FG 
DT_JOB_QUEUE_USER_BG 
DT_JOB_QUEUE_USER_EXPORT 
DT_JOB_QUEUE_SYSTEM_BG 
DT_JOB_QUEUE_MAX 

Definition at line 51 of file jobs.h.

◆ dt_job_state_t

Enumerator
DT_JOB_STATE_INITIALIZED 
DT_JOB_STATE_QUEUED 
DT_JOB_STATE_RUNNING 
DT_JOB_STATE_FINISHED 
DT_JOB_STATE_CANCELLED 
DT_JOB_STATE_DISCARDED 
DT_JOB_STATE_DISPOSED 

Definition at line 40 of file jobs.h.

Function Documentation

◆ dt_control_add_job()

int dt_control_add_job ( struct dt_control_t control,
dt_job_queue_t  queue_id,
dt_job_t job 
)

Definition at line 405 of file jobs.c.

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(), IS_NULL_PTR, dt_control_t::job, k, 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 _act_prerender(), _create_background_layer_from_input(), _enqueue_surface_fetch(), _load_for_image(), _preload_image_cache_with_max_size(), _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_save_xmps(), dt_control_set_local_copy_images(), dt_dev_write_history(), dt_film_import(), dt_init(), dt_printers_discovery(), and dt_thumbnail_get_image_buffer().

◆ dt_control_add_job_res()

◆ dt_control_flush_jobs_queue()

void dt_control_flush_jobs_queue ( struct dt_control_t control,
dt_job_queue_t  queue_id 
)

◆ dt_control_get_threadid()

int32_t dt_control_get_threadid ( )

◆ dt_control_job_add_progress()

◆ dt_control_job_cancel()

void dt_control_job_cancel ( dt_job_t job)

◆ dt_control_job_create()

dt_job_t * dt_control_job_create ( dt_job_execute_callback  execute,
const char *  msg,
  ... 
)

create a new initialized job

◆ dt_control_job_dispose()

◆ dt_control_job_get_params()

◆ dt_control_job_get_progress()

double dt_control_job_get_progress ( dt_job_t job)

Definition at line 632 of file jobs.c.

References dt_control_progress_get_progress(), IS_NULL_PTR, and _dt_job_t::progress.

◆ dt_control_job_get_state()

◆ dt_control_job_set_params()

◆ dt_control_job_set_params_with_size()

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()

Definition at line 120 of file jobs.c.

References dt_control_job_get_state(), DT_JOB_STATE_INITIALIZED, IS_NULL_PTR, _dt_job_t::params, _dt_job_t::params_destroy, _dt_job_t::params_size, and params_size().

Referenced by _enqueue_surface_fetch().

◆ dt_control_job_set_progress()

◆ dt_control_job_set_progress_message()

◆ dt_control_job_set_state_callback()

void dt_control_job_set_state_callback ( dt_job_t job,
dt_job_state_change_callback  cb 
)

setup a state callback for job.

Definition at line 165 of file jobs.c.

References dt_control_job_get_state(), DT_JOB_STATE_INITIALIZED, and _dt_job_t::state_changed_cb.

Referenced by _load_for_image().

◆ dt_control_job_wait()

void dt_control_job_wait ( dt_job_t job)

◆ dt_control_jobs_cleanup()

◆ dt_control_jobs_init()