summaryrefslogtreecommitdiffstats
path: root/src/lensfun-test.c
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2013-03-23 19:33:47 (GMT)
committerTony Theodore <tonyt@logyst.com>2013-03-23 19:33:47 (GMT)
commitd4f2dcf3f00152b044c814585945ffabaf3ec65e (patch)
tree96c4d604dda2cc49370191eea6b29e3f6db5b7a5 /src/lensfun-test.c
parentb2dbb6d384072c92d7b5e8f3ebfffbab35b7f050 (diff)
downloadmxe-d4f2dcf3f00152b044c814585945ffabaf3ec65e.zip
mxe-d4f2dcf3f00152b044c814585945ffabaf3ec65e.tar.gz
mxe-d4f2dcf3f00152b044c814585945ffabaf3ec65e.tar.bz2
package lensfun: add pkg-config file and test program
Diffstat (limited to 'src/lensfun-test.c')
-rw-r--r--src/lensfun-test.c87
1 files changed, 87 insertions, 0 deletions
diff --git a/src/lensfun-test.c b/src/lensfun-test.c
new file mode 100644
index 0000000..e4b6e4b
--- /dev/null
+++ b/src/lensfun-test.c
@@ -0,0 +1,87 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+/*
+ http://lensfun.berlios.de/manual/example_8c-example.html
+ A simple example of library usage from plain C
+*/
+
+#include "lensfun.h"
+#include <stdio.h>
+#include <locale.h>
+#include <glib.h>
+
+int main ()
+{
+ int i, j;
+ const struct lfMount *const *mounts;
+ const struct lfCamera *const *cameras;
+ const struct lfLens *const *lenses;
+ struct lfDatabase *ldb;
+ lfError e;
+
+ /* Initialize locale in order to get translated names */
+ setlocale (LC_ALL, "");
+
+ ldb = lf_db_new ();
+ if (!ldb)
+ {
+ fprintf (stderr, "Failed to create database\n");
+ return -1;
+ }
+
+ g_print ("HomeDataDir: %s\n", ldb->HomeDataDir);
+
+ lf_db_load (ldb);
+
+ g_print ("< --------------- < Mounts > --------------- >\n");
+ mounts = lf_db_get_mounts (ldb);
+ for (i = 0; mounts [i]; i++)
+ {
+ g_print ("Mount: %s\n", lf_mlstr_get (mounts [i]->Name));
+ if (mounts [i]->Compat)
+ for (j = 0; mounts [i]->Compat [j]; j++)
+ g_print ("\tCompat: %s\n", mounts [i]->Compat [j]);
+ }
+
+ g_print ("< --------------- < Cameras > --------------- >\n");
+ cameras = lf_db_get_cameras (ldb);
+ for (i = 0; cameras [i]; i++)
+ {
+ g_print ("Camera: %s / %s %s%s%s\n",
+ lf_mlstr_get (cameras [i]->Maker),
+ lf_mlstr_get (cameras [i]->Model),
+ cameras [i]->Variant ? "(" : "",
+ cameras [i]->Variant ? lf_mlstr_get (cameras [i]->Variant) : "",
+ cameras [i]->Variant ? ")" : "");
+ g_print ("\tMount: %s\n", lf_db_mount_name (ldb, cameras [i]->Mount));
+ g_print ("\tCrop factor: %g\n", cameras [i]->CropFactor);
+ }
+
+ g_print ("< --------------- < Lenses > --------------- >\n");
+ lenses = lf_db_get_lenses (ldb);
+ for (i = 0; lenses [i]; i++)
+ {
+ g_print ("Lens: %s / %s\n",
+ lf_mlstr_get (lenses [i]->Maker),
+ lf_mlstr_get (lenses [i]->Model));
+ g_print ("\tCrop factor: %g\n", lenses [i]->CropFactor);
+ g_print ("\tFocal: %g-%g\n", lenses [i]->MinFocal, lenses [i]->MaxFocal);
+ g_print ("\tAperture: %g-%g\n", lenses [i]->MinAperture, lenses [i]->MaxAperture);
+ g_print ("\tCenter: %g,%g\n", lenses [i]->CenterX, lenses [i]->CenterY);
+ g_print ("\tCCI: %g/%g/%g\n", lenses [i]->RedCCI, lenses [i]->GreenCCI, lenses [i]->BlueCCI);
+ if (lenses [i]->Mounts)
+ for (j = 0; lenses [i]->Mounts [j]; j++)
+ g_print ("\tMount: %s\n", lf_db_mount_name (ldb, lenses [i]->Mounts [j]));
+ }
+
+ g_print ("< ---< Saving database into one big file >--- >\n");
+ e = lf_db_save_file (ldb, "example-big.xml", mounts, cameras, lenses);
+ if (e != LF_NO_ERROR)
+ fprintf (stderr, "Failed writing to file, error code %d\n", e);
+
+ lf_db_destroy (ldb);
+ return 0;
+}