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

Modified Files:
        ufraw_settings.cc ufraw_ufraw.c 
Log Message:
Use channel multipliers from configuration when make and model match.
Fix bug where make and model in uf->conf were not from current raw file.


Index: ufraw_settings.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_settings.cc,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- ufraw_settings.cc   27 Jan 2010 21:23:22 -0000      1.1
+++ ufraw_settings.cc   11 Feb 2010 20:51:26 -0000      1.2
@@ -228,7 +228,8 @@
     if (uf == NULL)
        return;
     if (uf->rgbMax == 0) { // Raw file was not loaded yet.
-       uf->WBDirty = true;
+       if (!wb.IsEqual(uf_manual_wb) && !wb.IsEqual(uf_manual_wb))
+           uf->WBDirty = true; // ChannelMultipliers should be calculated later
        return;
     }
     if (mode != NULL)

Index: ufraw_ufraw.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_ufraw.c,v
retrieving revision 1.236
retrieving revision 1.237
diff -u -d -r1.236 -r1.237
--- ufraw_ufraw.c       10 Feb 2010 23:37:02 -0000      1.236
+++ ufraw_ufraw.c       11 Feb 2010 20:51:26 -0000      1.237
@@ -403,15 +403,6 @@
        ufobject_copy(uf->conf->ufobject,
                ufgroup_element(rc->ufobject, ufRawImage));
     }
-
-    if (ufobject_name(uf->conf->ufobject) != ufRawImage)
-       g_warning("uf->conf->ufobject is not a ufRawImage");
-    dcraw_data *raw = uf->raw;
-    // make, model are used in ufraw_image_set_data()
-    g_strlcpy(uf->conf->make, raw->make, max_name);
-    g_strlcpy(uf->conf->model, raw->model, max_name);
-    ufraw_image_set_data(uf->conf->ufobject, uf);
-
     if (conf!=NULL && conf->version!=0) {
        conf_copy_image(uf->conf, conf);
        conf_copy_save(uf->conf, conf);
@@ -424,6 +415,16 @@
        status = conf_set_cmd(uf->conf, cmd);
        if (status!=UFRAW_SUCCESS) return status;
     }
+    if (ufobject_name(uf->conf->ufobject) != ufRawImage)
+       g_warning("uf->conf->ufobject is not a ufRawImage");
+    dcraw_data *raw = uf->raw;
+    if (strcmp(uf->conf->make, raw->make) != 0 ||
+       strcmp(uf->conf->model, raw->model) != 0)
+       uf->WBDirty =TRUE; // Re-calculate channel multipliers.
+    // make, model are used in ufraw_image_set_data()
+    g_strlcpy(uf->conf->make, raw->make, max_name);
+    g_strlcpy(uf->conf->model, raw->model, max_name);
+    ufraw_image_set_data(uf->conf->ufobject, uf);
 
     char *absname = uf_file_set_absolute(uf->filename);
     g_strlcpy(uf->conf->inputFilename, absname, max_path);
@@ -660,8 +661,8 @@
     if (uf->conf->CropY2 > uf->rotatedHeight)
        uf->conf->CropY2 = uf->rotatedHeight;
 
-    // If we are LoadingID, we want to keep the ChannelMultipliers from it.
-    if (!uf->LoadingID || uf->WBDirty) {
+    // Now we can finally calculate the channel multipliers.
+    if (uf->WBDirty) {
        UFObject *wb = ufgroup_element(uf->conf->ufobject, ufWB);
        char *oldWB = g_strdup(ufobject_string_value(wb));
        UFObject *wbTuning = ufgroup_element(uf->conf->ufobject,


------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to