Update of /cvsroot/ufraw/ufraw
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv13124

Modified Files:
        configure.ac ufraw.h ufraw_conf.c ufraw_lensfun.cc 
        ufraw_preview.c ufraw_ufraw.c ufraw_ui.h 
Log Message:
Fix some 4-colors issues.


Index: ufraw_preview.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_preview.c,v
retrieving revision 1.349
retrieving revision 1.350
diff -u -d -r1.349 -r1.350
--- ufraw_preview.c     30 Mar 2010 02:45:24 -0000      1.349
+++ ufraw_preview.c     30 Mar 2010 04:49:08 -0000      1.350
@@ -580,7 +580,6 @@
        guint8 *p8 = pixies + yy*rowstride;
        memcpy(p8, displayPixies + yy*displayImage->rowstride,
                width*displayImage->depth);
-#ifdef UFRAW_DESPECKLE
        if (data->ChannelSelect >= 0) {
            guint8 *p = p8;
            for (xx = 0; xx < width; xx++, p += 3) {
@@ -588,7 +587,6 @@
                p[0] = p[1] = p[2] = px;
            }
        }
-#endif
        guint8 *p8working = workingPixies + yy*workingImage->rowstride;
        for (xx=x; xx<x+width; xx++, p8+=3, p8working+=workingImage->depth) {
            if ( data->SpotDraw &&
@@ -1473,9 +1471,7 @@
 }
 
 static void update_shrink_ranges(preview_data *data);
-#ifdef UFRAW_DESPECKLE
 static void despeckle_update_sensitive(preview_data *data);
-#endif
 
 /* update the UI entries that could have changed automatically */
 static void update_scales(preview_data *data)
@@ -1544,8 +1540,7 @@
     for (i = 0; i < 3; ++i)
         gtk_adjustment_set_value(data->GrayscaleMixers[i],
                CFG->grayscaleMixer[i]);
-#ifdef UFRAW_DESPECKLE
-    for (i = 0; i < 3; ++i) {
+    for (i = 0; i < data->UF->colors; ++i) {
         gtk_adjustment_set_value(data->DespeckleWindowAdj[i],
                CFG->despeckleWindow[i]);
         gtk_adjustment_set_value(data->DespeckleDecayAdj[i],
@@ -1553,7 +1548,6 @@
         gtk_adjustment_set_value(data->DespecklePassesAdj[i],
                CFG->despecklePasses[i]);
     }
-#endif
     for (i = 0; i < CFG->lightnessAdjustmentCount; ++i) {
        gtk_adjustment_set_value(data->LightnessAdjustment[i],
            CFG->lightnessAdjustment[i].adjustment);
@@ -1566,9 +1560,7 @@
        || (CFG->grayscaleMixer[2] != conf_default.grayscaleMixer[2]));
     gtk_widget_set_sensitive(GTK_WIDGET(data->GrayscaleMixerTable),
            CFG->grayscaleMode == grayscale_mixer);
-#ifdef UFRAW_DESPECKLE
     despeckle_update_sensitive(data);
-#endif
 
     for (max = 1, i = 0; i < 3; ++i)
         max = MAX(max, CFG->grayscaleMixer[i]);
@@ -2678,7 +2670,6 @@
         CFG->grayscaleMixer[1] = conf_default.grayscaleMixer[1];
         CFG->grayscaleMixer[2] = conf_default.grayscaleMixer[2];
     }
-#ifdef UFRAW_DESPECKLE
     if (button==data->ResetDespeckleButton) {
        memcpy(CFG->despeckleWindow, conf_default.despeckleWindow,
                sizeof (CFG->despeckleWindow));
@@ -2688,7 +2679,6 @@
                sizeof (CFG->despecklePasses));
        ufraw_invalidate_despeckle_layer(data->UF);
     }
-#endif
     for (i = 0; i < max_adjustments; ++i) {
        if (button == data->ResetLightnessAdjustmentButton[i]) {
            CFG->lightnessAdjustment[i].adjustment = 1.0;
@@ -2797,7 +2787,6 @@
             ufraw_invalidate_layer(data->UF, ufraw_develop_phase);
            update_scales(data);
        }
-#ifdef UFRAW_DESPECKLE
     } else if (valuep==(void*)data->ChannelSelectButton) {
        if (data->ChannelSelect >= -1) {
            int i, b = 0;
@@ -2817,7 +2806,6 @@
            ufraw_invalidate_layer(data->UF, ufraw_develop_phase);
            render_preview(data);
        }
-#endif
     } else {
        *valuep = gtk_toggle_button_get_active(button);
        if ( valuep==&CFG->overExp || valuep==&CFG->underExp ) {
@@ -2869,7 +2857,6 @@
     }
 }
 
-#ifdef UFRAW_DESPECKLE
 static void despeckle_update_sensitive(preview_data *data)
 {
     conf_data *c = CFG;
@@ -2877,14 +2864,14 @@
     int i;
 
     b = FALSE;
-    for (i = 0; i < 3; ++i) {
+    for (i = 0; i < data->UF->colors; ++i) {
        b |= fabs(c->despeckleWindow[i] - conf_default.despeckleWindow[i]) > 
0.1;
        b |= fabs(c->despeckleDecay[i] - conf_default.despeckleDecay[i]) > 
0.001;
        b |= fabs(c->despecklePasses[i] - conf_default.despecklePasses[i]) > 
0.1;
     }
     gtk_widget_set_sensitive(GTK_WIDGET(data->ResetDespeckleButton), b);
     b = FALSE;
-    for (i = 1; i < 3; ++i) {
+    for (i = 1; i < data->UF->colors; ++i) {
        b |= c->despeckleWindow[0] != c->despeckleWindow[i];
        b |= c->despeckleDecay[0] != c->despeckleDecay[i];
        b |= c->despecklePasses[0] != c->despecklePasses[i];
@@ -2924,7 +2911,7 @@
     GtkAdjustment **adjp = NULL;
 
     match = 0;
-    for (i = 0; i < 3; ++i) {
+    for (i = 0; i < data->UF->colors; ++i) {
        if (p == &c->despeckleWindow[i]) {
            adjp = data->DespeckleWindowAdj;
            match = c->despecklePasses[i] ? 1 : -1;
@@ -2946,7 +2933,7 @@
     if (match) {
        if (gtk_toggle_button_get_active(data->DespeckleLockChannelsButton)) {
            ++data->FreezeDialog;
-           for (j = 0; j < 3; ++j) {
+           for (j = 0; j < data->UF->colors; ++j) {
                p[j - i] = *p;
                gtk_adjustment_set_value(adjp[j], *p);
                despeckle_apply_constraints(data, adjp, j);
@@ -2961,7 +2948,6 @@
     }
     return match ? TRUE : FALSE;
 }
-#endif
 
 static void adjustment_update(GtkAdjustment *adj, double *valuep)
 {
@@ -3005,10 +2991,8 @@
        ufraw_invalidate_denoise_layer(data->UF);
     } else if (valuep==&CFG->hotpixel) {
        ufraw_invalidate_hotpixel_layer(data->UF);
-#ifdef UFRAW_DESPECKLE
     } else if (despeckle_adjustment_update(data, valuep)) {
        return;
-#endif
     } else {
         if (CFG->autoExposure==enabled_state) CFG->autoExposure = apply_state;
         if (CFG->autoBlack==enabled_state) CFG->autoBlack = apply_state;
@@ -4047,11 +4031,9 @@
     preview_data *data = get_preview_data(notebook);
     if (data->FreezeDialog==TRUE) return;
 
-#ifdef UFRAW_DESPECKLE
     if (data->ChannelSelect >= 0)
        gtk_toggle_button_set_active(
                data->ChannelSelectButton[data->ChannelSelect], FALSE);
-#endif
     GtkWidget *event_box =
            gtk_widget_get_ancestor(data->PreviewWidget, GTK_TYPE_EVENT_BOX);
     if ( page_num==data->PageNumSpot ||
@@ -4585,7 +4567,6 @@
     /* End of Grayscale page */
 }
 
-#ifdef UFRAW_DESPECKLE
 static void denoise_fill_interface(preview_data *data, GtkWidget *page)
 {
     GtkWidget *button, *label, *icon;
@@ -4594,8 +4575,9 @@
     int i;
 
     table = GTK_TABLE(table_with_frame(page, NULL, TRUE));
+    int right = 6 + data->UF->colors; // Right column location
     icon = gtk_image_new_from_stock("gtk-help", GTK_ICON_SIZE_BUTTON);
-    gtk_table_attach(table, icon, 9, 10, 0, 1, 0, 0, 0, 0);
+    gtk_table_attach(table, icon, right, right+1, 0, 1, 0, 0, 0, 0);
     uf_widget_set_tooltip(icon, _(
            "Despeckling is mainly useful when combining a high ISO number "
            "with a high channel multiplier: when one channel has a very bad "
@@ -4612,7 +4594,8 @@
            "object-lock", GTK_ICON_SIZE_BUTTON));
     data->DespeckleLockChannelsButton = GTK_TOGGLE_BUTTON(button);
     gtk_box_pack_start(box, button, FALSE, FALSE, 0);
-    gtk_table_attach(table, GTK_WIDGET(box), 9, 10, 1, 4, GTK_FILL, 0, 0, 0);
+    gtk_table_attach(table, GTK_WIDGET(box), right, right+1, 1, 4,
+           GTK_FILL, 0, 0, 0);
     uf_widget_set_tooltip(button, _("Update channel parameters together"));
     data->ResetDespeckleButton = reset_button(_("Reset despeckle parameters"),
            G_CALLBACK(button_update), NULL);
@@ -4625,7 +4608,8 @@
     for (i = 0; i < data->UF->colors; ++i) {
        button = gtk_toggle_button_new();
        gtk_container_add(GTK_CONTAINER(button), gtk_image_new_from_stock(
-               i==0 ? "channel-red" : i==1 ? "channel-green" : "channel-blue",
+               i==0 ? "channel-red" :
+               i==1 || i==3 ? "channel-green" : "channel-blue",
                GTK_ICON_SIZE_BUTTON));
        data->ChannelSelectButton[i] = GTK_TOGGLE_BUTTON(button);
        g_signal_connect(G_OBJECT(button), "toggled",
@@ -4684,7 +4668,6 @@
        gtk_table_attach(table, button, 6 + i, 6 + i + 1, 3, 4, GTK_FILL, 0, 0, 
0);
     }
 }
-#endif
 
 static void basecurve_fill_interface(preview_data *data, GtkWidget *page,
        int curveeditorHeight)
@@ -5575,10 +5558,8 @@
     data->PageNumGray = gtk_notebook_page_num(notebook, page);
     grayscale_fill_interface(data, page);
 
-#ifdef UFRAW_DESPECKLE
     // page = notebook_page_new(notebook, _("Denoising"), "denoise");
     denoise_fill_interface(data, page);
-#endif
 
 #ifdef HAVE_LENSFUN
     /* Lens correction page */

Index: ufraw.h
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw.h,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -d -r1.157 -r1.158
--- ufraw.h     30 Mar 2010 02:45:24 -0000      1.157
+++ ufraw.h     30 Mar 2010 04:49:08 -0000      1.158
@@ -250,11 +250,9 @@
     lightness_adjustment lightnessAdjustment[max_adjustments];
     int grayscaleMode;
     double grayscaleMixer[3];
-#ifdef UFRAW_DESPECKLE
-    double despeckleWindow[3];
-    double despeckleDecay[3];
-    double despecklePasses[3];
-#endif
+    double despeckleWindow[4];
+    double despeckleDecay[4];
+    double despecklePasses[4];
 
     /* SAVE options */
     char inputFilename[max_path], outputFilename[max_path],
@@ -380,9 +378,7 @@
 void ufraw_invalidate_hotpixel_layer(ufraw_data *uf);
 void ufraw_invalidate_denoise_layer(ufraw_data *uf);
 void ufraw_invalidate_darkframe_layer(ufraw_data *uf);
-#ifdef UFRAW_DESPECKLE
 void ufraw_invalidate_despeckle_layer(ufraw_data *uf);
-#endif
 void ufraw_invalidate_whitebalance_layer(ufraw_data *uf);
 void ufraw_invalidate_smoothing_layer(ufraw_data *uf);
 int ufraw_set_wb(ufraw_data *uf);

Index: configure.ac
===================================================================
RCS file: /cvsroot/ufraw/ufraw/configure.ac,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -d -r1.155 -r1.156
--- configure.ac        30 Mar 2010 02:45:24 -0000      1.155
+++ configure.ac        30 Mar 2010 04:49:08 -0000      1.156
@@ -339,13 +339,6 @@
   enable_contrast=no)
 AC_MSG_RESULT($enable_contrast)
 
-AC_MSG_CHECKING(whether to enable despeckle)
-AC_ARG_ENABLE(despeckle,
-  [  --enable-despeckle      enable despeckle],
-  AC_DEFINE(UFRAW_DESPECKLE, 1, Despeckle enabled),
-  enable_despeckle=no)
-AC_MSG_RESULT($enable_despeckle)
-
 AC_MSG_CHECKING(whether to enable 'None' interpolation)
 AC_ARG_ENABLE(interp_none,
   [  --enable-interp-none    enable 'None' interpolation (mostly for 
debugging)],

Index: ufraw_conf.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_conf.c,v
retrieving revision 1.168
retrieving revision 1.169
diff -u -d -r1.168 -r1.169
--- ufraw_conf.c        30 Mar 2010 02:45:24 -0000      1.168
+++ ufraw_conf.c        30 Mar 2010 04:49:08 -0000      1.169
@@ -83,11 +83,9 @@
     }, /* lightness adjustments */
     grayscale_none, /* grayscale mode */
     { 1.0, 1.0, 1.0 }, /* grayscale mixer */
-#ifdef UFRAW_DESPECKLE
-    { 0.0, 0.0, 0.0 }, /* despeckle window */
-    { 0.0, 0.0, 0.0 }, /* despeckle color decay */
-    { 1.0, 1.0, 1.0 }, /* despeckle passes */
-#endif
+    { 0.0, 0.0, 0.0, 0.0 }, /* despeckle window */
+    { 0.0, 0.0, 0.0, 0.0 }, /* despeckle color decay */
+    { 1.0, 1.0, 1.0, 1.0 }, /* despeckle passes */
     /* Save options */
     "", "", "", /* inputFilename, outputFilename, outputPath */
     "", "", /* inputURI, inputModTime */
@@ -688,7 +686,6 @@
         sscanf(temp, "%lf %lf %lf", &c->grayscaleMixer[0],
               &c->grayscaleMixer[1], &c->grayscaleMixer[2]);
     }
-#ifdef UFRAW_DESPECKLE
     if ( strcmp("DespeckleWindow", element)==0 ) {
         sscanf(temp, "%lf %lf %lf", &c->despeckleWindow[0],
               &c->despeckleWindow[1], &c->despeckleWindow[2]);
@@ -701,7 +698,6 @@
         sscanf(temp, "%lf %lf %lf", &c->despecklePasses[0],
               &c->despecklePasses[1], &c->despecklePasses[2]);
     }
-#endif
     /* OutputIntent replaces Intent starting from ufraw-0.12. */
     if ( strcmp("OutputIntent", element)==0 )
        c->intent[out_profile] = conf_find_name(temp, intentNames,
@@ -1032,7 +1028,6 @@
                c->grayscaleMixer[1],
                c->grayscaleMixer[2]);
     }
-#ifdef UFRAW_DESPECKLE
     if (c->despeckleWindow[0] != conf_default.despeckleWindow[0] ||
         c->despeckleWindow[1] != conf_default.despeckleWindow[1] ||
         c->despeckleWindow[2] != conf_default.despeckleWindow[2]) {
@@ -1051,7 +1046,6 @@
        buf = uf_markup_buf(buf, "<DespecklePasses>%f %f 
%f</DespecklePasses>\n",
                c->despecklePasses[0], c->despecklePasses[1], 
c->despecklePasses[2]);
     }
-#endif
     if (c->size!=conf_default.size)
        buf = uf_markup_buf(buf, "<Size>%d</Size>\n", c->size);
     if (c->shrink!=conf_default.shrink)
@@ -1301,11 +1295,9 @@
     dst->grayscaleMode = src->grayscaleMode;
     memcpy(dst->grayscaleMixer, src->grayscaleMixer,
           sizeof dst->grayscaleMixer);
-#ifdef UFRAW_DESPECKLE
     memcpy(dst->despeckleWindow, src->despeckleWindow, sizeof 
(dst->despeckleWindow));
     memcpy(dst->despeckleDecay, src->despeckleDecay, sizeof 
(dst->despeckleDecay));
     memcpy(dst->despecklePasses, src->despecklePasses, sizeof 
(dst->despecklePasses));
-#endif
     g_strlcpy(dst->darkframeFile, src->darkframeFile, max_path);
     /* We only copy the current BaseCurve */
     if (src->BaseCurveIndex<=camera_curve) {

Index: ufraw_ufraw.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_ufraw.c,v
retrieving revision 1.250
retrieving revision 1.251
diff -u -d -r1.250 -r1.251
--- ufraw_ufraw.c       30 Mar 2010 02:45:24 -0000      1.250
+++ ufraw_ufraw.c       30 Mar 2010 04:49:08 -0000      1.251
@@ -859,14 +859,14 @@
            /* Do it in integer arithmetic, it's a bit faster */
            guint64 dx = (gint32)(srcX * 4096.0) - (xx << 12);
            guint64 dy = (gint32)(srcY * 4096.0) - (yy << 12);
-           for (c = 0; c < 3; c++)
+           for (c = 0; c < uf->colors; c++)
                cur[c] = ( (4096-dy)*((4096-dx)*src[0][c] + dx*src[1][c])
                        + dy*((4096-dx)*src[img->width][c]
                                + (dx)*src[img->width+1][c]) ) >> 24;
 #else
            float dx = srcX - xx;
            float dy = srcY - yy;
-           for (c = 0; c < 3; c++)
+           for (c = 0; c < uf->colors; c++)
                cur[c] = (1-dy)*((1-dx)*src[0][c] + dx*src[1][c])
                            + dy*((1-dx)*src[img->width][c]
                                + (dx)*src[img->width+1][c]);
@@ -951,7 +951,6 @@
     uf->hotpixels = count;
 }
 
-#ifdef UFRAW_DESPECKLE
 static void ufraw_despeckle_line(guint16 *base, int step, int size, int window,
        double decay, int colors, int c)
 {
@@ -1064,7 +1063,6 @@
     }
     return active;
 }
-#endif
 
 static int ufraw_calculate_scale(ufraw_data *uf)
 {
@@ -1149,9 +1147,7 @@
     dcraw_wavelet_denoise(raw, uf->conf->threshold * sqrt(uf->raw_multiplier));
     dcraw_finalize_raw(raw, dark, uf->developer->rgbWB);
     raw->raw.image = rawimage;
-#ifdef UFRAW_DESPECKLE
     ufraw_despeckle(uf, phase);
-#endif
 #ifdef HAVE_LENSFUN
     ufraw_prepare_tca(uf);
     if (uf->TCAmodifier != NULL) {
@@ -1829,12 +1825,10 @@
     ufraw_invalidate_layer(uf, ufraw_raw_phase);
 }
 
-#ifdef UFRAW_DESPECKLE
 void ufraw_invalidate_despeckle_layer(ufraw_data *uf)
 {
     ufraw_invalidate_layer(uf, ufraw_raw_phase);
 }
-#endif
 
 /*
  * This one is special. The raw layer applies WB in preparation for optimal
@@ -1848,11 +1842,9 @@
     uf->Images[ufraw_raw_phase].valid = 0;
     uf->Images[ufraw_raw_phase].invalidate_event = TRUE;
 
-#ifdef UFRAW_DESPECKLE
     /* Despeckling is sensitive for WB changes because it is nonlinear. */
     if (ufraw_despeckle_active(uf))
        ufraw_invalidate_despeckle_layer(uf);
-#endif
 }
 
 /*

Index: ufraw_lensfun.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_lensfun.cc,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- ufraw_lensfun.cc    30 Mar 2010 02:15:07 -0000      1.13
+++ ufraw_lensfun.cc    30 Mar 2010 04:49:08 -0000      1.14
@@ -624,8 +624,6 @@
     Distance.Reset();
     UFString &LensfunAuto = Image[ufLensfunAuto];
     if (LensfunAuto.IsEqual("yes")) {
-       // XXX: Remove this test when lensfun is updated to handle 4-color raws.
-       if (uf->colors < 4) {
        if (strlen(uf->conf->lensText) > 0) {
            const lfLens **lenses = LensDB()->FindLenses(&Camera,
                    NULL, uf->conf->lensText, LF_SEARCH_LOOSE);
@@ -645,7 +643,6 @@
            lf_free(lenses);
            return;
        }
-       }
     }
     // LensfunAuto == "no"
     (*this)[ufTCA].Reset();

Index: ufraw_ui.h
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_ui.h,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- ufraw_ui.h  30 Mar 2010 02:45:24 -0000      1.42
+++ ufraw_ui.h  30 Mar 2010 04:49:08 -0000      1.43
@@ -70,9 +70,7 @@
 #endif
     GtkWidget *ResetBlackButton, *ResetBaseCurveButton, *ResetCurveButton;
     GtkWidget *ResetGrayscaleChannelMixerButton;
-#ifdef UFRAW_DESPECKLE
     GtkWidget *ResetDespeckleButton;
-#endif
     GtkWidget *SaveButton;
     GtkWidget *ControlButton[num_buttons];
     guint16 ButtonMnemonic[num_buttons];
@@ -111,14 +109,12 @@
     GtkAdjustment *RotationAdjustment;
     GtkWidget *ResetRotationAdjustment;
     GtkAdjustment *GrayscaleMixers[3];
-#ifdef UFRAW_DESPECKLE
-    GtkAdjustment *DespeckleWindowAdj[3];
-    GtkAdjustment *DespeckleDecayAdj[3];
-    GtkAdjustment *DespecklePassesAdj[3];
+    GtkAdjustment *DespeckleWindowAdj[4];
+    GtkAdjustment *DespeckleDecayAdj[4];
+    GtkAdjustment *DespecklePassesAdj[4];
     GtkToggleButton *DespeckleLockChannelsButton;
-    GtkToggleButton *ChannelSelectButton[3];
+    GtkToggleButton *ChannelSelectButton[4];
     int ChannelSelect;
-#endif
 #ifdef HAVE_LENSFUN
     /* The GtkEntry with camera maker/model name */
     GtkWidget *CameraModel;


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to