void init_presets(dt_iop_module_so_t *self) { // transform presets above to db entries. // sql begin DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "begin", NULL, NULL, NULL); for(int k = 0; k < basecurve_presets_cnt; k++) { // add the preset. dt_gui_presets_add_generic(_(basecurve_presets[k].name), self->op, self->version(), &basecurve_presets[k].params, sizeof(dt_iop_basecurve_params_t), 1); // and restrict it to model, maker, iso, and raw images dt_gui_presets_update_mml(_(basecurve_presets[k].name), self->op, self->version(), basecurve_presets[k].maker, basecurve_presets[k].model, ""); dt_gui_presets_update_iso(_(basecurve_presets[k].name), self->op, self->version(), basecurve_presets[k].iso_min, basecurve_presets[k].iso_max); dt_gui_presets_update_ldr(_(basecurve_presets[k].name), self->op, self->version(), FOR_RAW); // make it auto-apply for matching images: dt_gui_presets_update_autoapply(_(basecurve_presets[k].name), self->op, self->version(), basecurve_presets[k].autoapply); // hide all non-matching presets in case the model string is set. dt_gui_presets_update_filter(_(basecurve_presets[k].name), self->op, self->version(), basecurve_presets[k].filter); } // sql commit DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "commit", NULL, NULL, NULL); }
void init_presets (dt_iop_module_t *self) { // transform presets above to db entries. // sql begin sqlite3_exec(darktable.db, "begin", NULL, NULL, NULL); for(int k=0;k<basecurve_presets_cnt;k++) { // add the preset. dt_gui_presets_add_generic(_(basecurve_presets[k].name), self->op, &basecurve_presets[k].params, sizeof(dt_iop_basecurve_params_t), 1); // and restrict it to model, maker, iso, and raw images dt_gui_presets_update_mml(_(basecurve_presets[k].name), self->op, basecurve_presets[k].maker, basecurve_presets[k].model, ""); dt_gui_presets_update_iso(_(basecurve_presets[k].name), self->op, basecurve_presets[k].iso_min, basecurve_presets[k].iso_max); dt_gui_presets_update_ldr(_(basecurve_presets[k].name), self->op, 2); // make it auto-apply for matching images: dt_gui_presets_update_autoapply(_(basecurve_presets[k].name), self->op, basecurve_presets[k].autoapply); } // sql commit sqlite3_exec(darktable.db, "commit", NULL, NULL, NULL); }
static void set_presets(dt_iop_module_so_t *self, const basecurve_preset_t *presets, int count, int *force_autoapply) { // transform presets above to db entries. for(int k = 0; k < count; k++) { // add the preset. dt_gui_presets_add_generic(_(presets[k].name), self->op, self->version(), &presets[k].params, sizeof(dt_iop_basecurve_params_t), 1); // and restrict it to model, maker, iso, and raw images dt_gui_presets_update_mml(_(presets[k].name), self->op, self->version(), presets[k].maker, presets[k].model, ""); dt_gui_presets_update_iso(_(presets[k].name), self->op, self->version(), presets[k].iso_min, presets[k].iso_max); dt_gui_presets_update_ldr(_(presets[k].name), self->op, self->version(), FOR_RAW); // make it auto-apply for matching images: dt_gui_presets_update_autoapply(_(presets[k].name), self->op, self->version(), force_autoapply ? *force_autoapply : presets[k].autoapply); // hide all non-matching presets in case the model string is set. // When force_autoapply was given always filter (as these are per-camera presets) dt_gui_presets_update_filter(_(presets[k].name), self->op, self->version(), force_autoapply || presets[k].filter); } }
void init_presets(dt_iop_module_so_t *self) { dt_iop_tonecurve_params_t p; memset(&p, 0, sizeof(p)); p.tonecurve_nodes[ch_L] = 6; p.tonecurve_nodes[ch_a] = 7; p.tonecurve_nodes[ch_b] = 7; p.tonecurve_type[ch_L] = CUBIC_SPLINE; p.tonecurve_type[ch_a] = CUBIC_SPLINE; p.tonecurve_type[ch_b] = CUBIC_SPLINE; p.tonecurve_preset = 0; p.tonecurve_autoscale_ab = 1; p.tonecurve_unbound_ab = 1; float linear_L[6] = { 0.0, 0.08, 0.4, 0.6, 0.92, 1.0 }; float linear_ab[7] = { 0.0, 0.08, 0.3, 0.5, 0.7, 0.92, 1.0 }; // linear a, b curves for presets for(int k = 0; k < 7; k++) p.tonecurve[ch_a][k].x = linear_ab[k]; for(int k = 0; k < 7; k++) p.tonecurve[ch_a][k].y = linear_ab[k]; for(int k = 0; k < 7; k++) p.tonecurve[ch_b][k].x = linear_ab[k]; for(int k = 0; k < 7; k++) p.tonecurve[ch_b][k].y = linear_ab[k]; // More useful low contrast curve (based on Samsung NX -2 Contrast) p.tonecurve[ch_L][0].x = 0.000000; p.tonecurve[ch_L][1].x = 0.003862; p.tonecurve[ch_L][2].x = 0.076613; p.tonecurve[ch_L][3].x = 0.169355; p.tonecurve[ch_L][4].x = 0.774194; p.tonecurve[ch_L][5].x = 1.000000; p.tonecurve[ch_L][0].y = 0.000000; p.tonecurve[ch_L][1].y = 0.007782; p.tonecurve[ch_L][2].y = 0.156182; p.tonecurve[ch_L][3].y = 0.290352; p.tonecurve[ch_L][4].y = 0.773852; p.tonecurve[ch_L][5].y = 1.000000; dt_gui_presets_add_generic(_("low contrast"), self->op, self->version(), &p, sizeof(p), 1); for(int k = 0; k < 6; k++) p.tonecurve[ch_L][k].x = linear_L[k]; for(int k = 0; k < 6; k++) p.tonecurve[ch_L][k].y = linear_L[k]; dt_gui_presets_add_generic(_("linear"), self->op, self->version(), &p, sizeof(p), 1); for(int k = 0; k < 6; k++) p.tonecurve[ch_L][k].x = linear_L[k]; for(int k = 0; k < 6; k++) p.tonecurve[ch_L][k].y = linear_L[k]; p.tonecurve[ch_L][1].y -= 0.03; p.tonecurve[ch_L][4].y += 0.03; p.tonecurve[ch_L][2].y -= 0.03; p.tonecurve[ch_L][3].y += 0.03; for(int k = 1; k < 5; k++) p.tonecurve[ch_L][k].x = powf(p.tonecurve[ch_L][k].x, 2.2f); for(int k = 1; k < 5; k++) p.tonecurve[ch_L][k].y = powf(p.tonecurve[ch_L][k].y, 2.2f); dt_gui_presets_add_generic(_("med contrast"), self->op, self->version(), &p, sizeof(p), 1); for(int k = 0; k < 6; k++) p.tonecurve[ch_L][k].x = linear_L[k]; for(int k = 0; k < 6; k++) p.tonecurve[ch_L][k].y = linear_L[k]; p.tonecurve[ch_L][1].y -= 0.06; p.tonecurve[ch_L][4].y += 0.06; p.tonecurve[ch_L][2].y -= 0.10; p.tonecurve[ch_L][3].y += 0.10; for(int k = 1; k < 5; k++) p.tonecurve[ch_L][k].x = powf(p.tonecurve[ch_L][k].x, 2.2f); for(int k = 1; k < 5; k++) p.tonecurve[ch_L][k].y = powf(p.tonecurve[ch_L][k].y, 2.2f); dt_gui_presets_add_generic(_("high contrast"), self->op, self->version(), &p, sizeof(p), 1); for (int k=0; k<sizeof(preset_camera_curves)/sizeof(preset_camera_curves[0]); k++) { // insert the preset dt_gui_presets_add_generic(preset_camera_curves[k].name, self->op, self->version(), &preset_camera_curves[k].preset, sizeof(p), 1); // restrict it to model, maker dt_gui_presets_update_mml(preset_camera_curves[k].name, self->op, self->version(), preset_camera_curves[k].maker, preset_camera_curves[k].model, ""); // restrict it to iso dt_gui_presets_update_iso(preset_camera_curves[k].name, self->op, self->version(), preset_camera_curves[k].iso_min, preset_camera_curves[k].iso_max); // restrict it to raw images dt_gui_presets_update_ldr(preset_camera_curves[k].name, self->op, self->version(), FOR_RAW); // hide all non-matching presets in case the model string is set. dt_gui_presets_update_filter(preset_camera_curves[k].name, self->op, self->version(), 1); } }