Ansel 0.0
A darktable fork - bloat + design vision
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
negadoctor.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/darktable.h"
#include "common/opencl.h"
#include "control/control.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "develop/imageop_math.h"
#include "develop/imageop_gui.h"
#include "develop/openmp_maths.h"
#include "dtgtk/button.h"
#include "dtgtk/resetlabel.h"
#include "gui/gtk.h"
#include "gui/presets.h"
#include "gui/color_picker_proxy.h"
#include "iop/iop_api.h"
#include <glib.h>
#include <math.h>
#include <stdlib.h>
+ Include dependency graph for negadoctor.c:

Data Structures

struct  dt_iop_negadoctor_params_t
 
struct  dt_iop_negadoctor_data_t
 
struct  dt_iop_negadoctor_gui_data_t
 
struct  dt_iop_negadoctor_global_data_t
 

Macros

#define THRESHOLD   2.3283064365386963e-10f
 

Typedefs

typedef enum dt_iop_negadoctor_filmstock_t dt_iop_negadoctor_filmstock_t
 
typedef struct dt_iop_negadoctor_params_t dt_iop_negadoctor_params_t
 
typedef struct dt_iop_negadoctor_data_t dt_iop_negadoctor_data_t
 
typedef struct dt_iop_negadoctor_gui_data_t dt_iop_negadoctor_gui_data_t
 
typedef struct dt_iop_negadoctor_global_data_t dt_iop_negadoctor_global_data_t
 

Enumerations

enum  dt_iop_negadoctor_filmstock_t {
  DT_FILMSTOCK_NB = 0 ,
  DT_FILMSTOCK_COLOR = 1
}
 

Functions

const char * name ()
 
const char * aliases ()
 
const char ** description (struct dt_iop_module_t *self)
 
int flags ()
 
int default_group ()
 
int default_colorspace (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
int legacy_params (dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, const int new_version)
 
void commit_params (dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
void process (struct dt_iop_module_t *const self, dt_dev_pixelpipe_iop_t *const piece, const void *const restrict ivoid, void *const restrict ovoid, const dt_iop_roi_t *const restrict roi_in, const dt_iop_roi_t *const restrict roi_out)
 
void init (dt_iop_module_t *module)
 
void init_presets (dt_iop_module_so_t *self)
 
void init_global (dt_iop_module_so_t *module)
 
void cleanup_global (dt_iop_module_so_t *module)
 
void init_pipe (struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
void cleanup_pipe (struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
static void setup_color_variables (dt_iop_negadoctor_gui_data_t *const g, const gint state)
 
static void toggle_stock_controls (dt_iop_module_t *const self)
 
static void Dmin_picker_update (dt_iop_module_t *self)
 
static void Dmin_picker_callback (GtkColorButton *widget, dt_iop_module_t *self)
 
static void WB_low_picker_update (dt_iop_module_t *self)
 
static void WB_low_picker_callback (GtkColorButton *widget, dt_iop_module_t *self)
 
static void WB_high_picker_update (dt_iop_module_t *self)
 
static void WB_high_picker_callback (GtkColorButton *widget, dt_iop_module_t *self)
 
static void Wb_low_norm_callback (GtkColorButton *widget, dt_iop_module_t *self)
 
static void Wb_high_norm_callback (GtkColorButton *widget, dt_iop_module_t *self)
 
static void apply_auto_Dmin (dt_iop_module_t *self)
 
static void apply_auto_Dmax (dt_iop_module_t *self)
 
static void apply_auto_offset (dt_iop_module_t *self)
 
static void apply_auto_WB_low (dt_iop_module_t *self)
 
static void apply_auto_WB_high (dt_iop_module_t *self)
 
static void apply_auto_black (dt_iop_module_t *self)
 
static void apply_auto_exposure (dt_iop_module_t *self)
 
void color_picker_apply (dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece)
 
void gui_init (dt_iop_module_t *self)
 
void gui_cleanup (struct dt_iop_module_t *self)
 
void gui_changed (dt_iop_module_t *self, GtkWidget *w, void *previous)
 
void gui_update (dt_iop_module_t *const self)
 
void gui_reset (dt_iop_module_t *self)
 

Macro Definition Documentation

◆ THRESHOLD

#define THRESHOLD   2.3283064365386963e-10f

DOCUMENTATION

This module allows to invert scanned negatives and simulate their print on paper, based on Kodak Cineon densitometry algorithm. It is better than the old invert module because it takes into account the Dmax of the film and allows white balance adjustments, as well as paper grade (gamma) simulation. It also allows density correction in log space, to account for the exposure settings of the scanner. Finally, it is applied after input colour profiling, which means the inversion happens after the scanner or the camera got color-corrected, while the old invert module invert the RAW, non-demosaiced, file before any colour correction.

References :

Typedef Documentation

◆ dt_iop_negadoctor_data_t

◆ dt_iop_negadoctor_filmstock_t

◆ dt_iop_negadoctor_global_data_t

◆ dt_iop_negadoctor_gui_data_t

◆ dt_iop_negadoctor_params_t

Enumeration Type Documentation

◆ dt_iop_negadoctor_filmstock_t

Enumerator
DT_FILMSTOCK_NB 
DT_FILMSTOCK_COLOR 

Function Documentation

◆ aliases()

const char * aliases ( )

◆ apply_auto_black()

◆ apply_auto_Dmax()

◆ apply_auto_Dmin()

◆ apply_auto_exposure()

◆ apply_auto_offset()

◆ apply_auto_WB_high()

◆ apply_auto_WB_low()

◆ cleanup_global()

◆ cleanup_pipe()

void cleanup_pipe ( struct dt_iop_module_t self,
dt_dev_pixelpipe_t pipe,
dt_dev_pixelpipe_iop_t piece 
)

◆ color_picker_apply()

◆ commit_params()

◆ default_colorspace()

int default_colorspace ( dt_iop_module_t self,
dt_dev_pixelpipe_t pipe,
dt_dev_pixelpipe_iop_t piece 
)

References IOP_CS_RGB.

◆ default_group()

int default_group ( )

References IOP_GROUP_FILM.

◆ description()

const char ** description ( struct dt_iop_module_t self)

◆ Dmin_picker_callback()

◆ Dmin_picker_update()

◆ flags()

◆ gui_changed()

◆ gui_cleanup()

void gui_cleanup ( struct dt_iop_module_t self)

◆ gui_init()

◆ gui_reset()

void gui_reset ( dt_iop_module_t self)

◆ gui_update()

◆ init()

◆ init_global()

◆ init_pipe()

◆ init_presets()

◆ legacy_params()

◆ name()

const char * name ( )

◆ process()

◆ setup_color_variables()

static void setup_color_variables ( dt_iop_negadoctor_gui_data_t *const  g,
const gint  state 
)
static

Referenced by toggle_stock_controls().

◆ toggle_stock_controls()

◆ Wb_high_norm_callback()

◆ WB_high_picker_callback()

◆ WB_high_picker_update()

static void WB_high_picker_update ( dt_iop_module_t self)
static

◆ Wb_low_norm_callback()

◆ WB_low_picker_callback()

◆ WB_low_picker_update()