Author: akv
Date: 2009-12-29 17:37:45 +0100 (Tue, 29 Dec 2009)
New Revision: 2878

Modified:
   branches/rawstudio-ng-color/librawstudio/rs-lens-db.c
   branches/rawstudio-ng-color/librawstudio/rs-lens.c
Log:
Adding camera make and model to RSLens and RSLensDB.

Modified: branches/rawstudio-ng-color/librawstudio/rs-lens-db.c
===================================================================
--- branches/rawstudio-ng-color/librawstudio/rs-lens-db.c       2009-12-29 
15:50:20 UTC (rev 2877)
+++ branches/rawstudio-ng-color/librawstudio/rs-lens-db.c       2009-12-29 
16:37:45 UTC (rev 2878)
@@ -129,6 +129,8 @@
                gchar *lensfun_make;
                gchar *lensfun_model;
                gdouble min_focal, max_focal, min_aperture, max_aperture;
+               gchar *camera_make;
+               gchar *camera_model;
 
                RSLens *lens = list->data;
 
@@ -141,6 +143,8 @@
                        "max-focal", &max_focal,
                        "min-aperture", &min_aperture,
                        "max-aperture", &max_aperture,
+                       "camera-make", &camera_make,
+                       "camera-model", &camera_model,
                        NULL);
 
                xmlTextWriterStartElement(writer, BAD_CAST "lens");
@@ -158,6 +162,10 @@
                                xmlTextWriterWriteFormatElement(writer, 
BAD_CAST "min-aperture", "%f", min_aperture);
                        if (max_aperture > 0.0)
                                xmlTextWriterWriteFormatElement(writer, 
BAD_CAST "max-aperture", "%f", max_aperture);
+                       if (camera_make)
+                               xmlTextWriterWriteFormatElement(writer, 
BAD_CAST "camera-make", "%s", camera_make);
+                       if (camera_model)
+                               xmlTextWriterWriteFormatElement(writer, 
BAD_CAST "camera-model", "%s", camera_model);
                xmlTextWriterEndElement(writer);
 
                g_free(identifier);
@@ -218,6 +226,10 @@
                                                g_object_set(lens, 
"min-aperture", rs_atof(val), NULL);
                                        else if ((!xmlStrcmp(entry->name, 
BAD_CAST "max-aperture")))
                                                g_object_set(lens, 
"max-aperture", rs_atof(val), NULL);
+                                       else if ((!xmlStrcmp(entry->name, 
BAD_CAST "camera-make")))
+                                               g_object_set(lens, 
"camera-make", val, NULL);
+                                       else if ((!xmlStrcmp(entry->name, 
BAD_CAST "camera-model")))
+                                               g_object_set(lens, 
"camera-model", val, NULL);
                                        xmlFree(val);
                                        entry = entry->next;
                                }

Modified: branches/rawstudio-ng-color/librawstudio/rs-lens.c
===================================================================
--- branches/rawstudio-ng-color/librawstudio/rs-lens.c  2009-12-29 15:50:20 UTC 
(rev 2877)
+++ branches/rawstudio-ng-color/librawstudio/rs-lens.c  2009-12-29 16:37:45 UTC 
(rev 2878)
@@ -31,6 +31,8 @@
        gchar *identifier;
        gchar *lensfun_make;
        gchar *lensfun_model;
+       gchar *camera_make;
+       gchar *camera_model;
 };
 
 G_DEFINE_TYPE (RSLens, rs_lens, G_TYPE_OBJECT)
@@ -44,7 +46,9 @@
        PROP_MAX_APERTURE,
        PROP_IDENTIFIER,
        PROP_LENSFUN_MAKE,
-       PROP_LENSFUN_MODEL
+       PROP_LENSFUN_MODEL,
+       PROP_CAMERA_MAKE,
+       PROP_CAMERA_MODEL
 };
 
 static void
@@ -78,6 +82,12 @@
                case PROP_LENSFUN_MODEL:
                        g_value_set_string(value, lens->lensfun_model);
                        break;
+               case PROP_CAMERA_MAKE:
+                       g_value_set_string(value, lens->camera_make);
+                       break;
+               case PROP_CAMERA_MODEL:
+                       g_value_set_string(value, lens->camera_model);
+                       break;
                default:
                        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, 
pspec);
        }
@@ -114,6 +124,14 @@
                        g_free(lens->lensfun_model);
                        lens->lensfun_model = g_value_dup_string(value);
                        break;
+               case PROP_CAMERA_MAKE:
+                       g_free(lens->camera_make);
+                       lens->camera_make = g_value_dup_string(value);
+                       break;
+               case PROP_CAMERA_MODEL:
+                       g_free(lens->camera_model);
+                       lens->camera_model = g_value_dup_string(value);
+                       break;
                default:
                        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, 
pspec);
        }
@@ -182,6 +200,16 @@
                PROP_LENSFUN_MODEL, g_param_spec_string(
                "lensfun-model", "lensfun-model", "String helping Lensfun to 
identify the lens model",
                "", G_PARAM_READWRITE));
+
+       g_object_class_install_property(object_class,
+               PROP_CAMERA_MAKE, g_param_spec_string(
+               "camera-make", "camera-make", "String helping Lensfun to 
identify the camera make",
+               "", G_PARAM_READWRITE));
+
+       g_object_class_install_property(object_class,
+               PROP_CAMERA_MODEL, g_param_spec_string(
+               "camera-model", "camera-model", "String helping Lensfun to 
identify the camera model",
+               "", G_PARAM_READWRITE));
 }
 
 static void
@@ -196,6 +224,8 @@
        lens->max_aperture = -1.0;
        lens->lensfun_make = NULL;
        lens->lensfun_model = NULL;
+       lens->camera_make = NULL;
+       lens->camera_model = NULL;
 }
 
 /**
@@ -224,6 +254,8 @@
                "max-focal", metadata->lens_max_focal,
                "min-aperture", metadata->lens_min_aperture,
                "max-aperture", metadata->lens_max_aperture,
+               "camera-make", metadata->make_ascii,
+               "camera-model", metadata->model_ascii,
                NULL);
 }
 


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to