|
Packit Service |
48484a |
/*
|
|
Packit Service |
48484a |
A simple example of library usage from plain C
|
|
Packit Service |
48484a |
*/
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
#include "lensfun.h"
|
|
Packit Service |
48484a |
#include <stdio.h>
|
|
Packit Service |
48484a |
#include <locale.h>
|
|
Packit Service |
48484a |
#include <glib.h>
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
int main ()
|
|
Packit Service |
48484a |
{
|
|
Packit Service |
48484a |
int i, j;
|
|
Packit Service |
48484a |
const struct lfMount *const *mounts;
|
|
Packit Service |
48484a |
const struct lfCamera *const *cameras;
|
|
Packit Service |
48484a |
const struct lfLens *const *lenses;
|
|
Packit Service |
48484a |
struct lfDatabase *ldb;
|
|
Packit Service |
48484a |
lfError e;
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
/* Initialize locale in order to get translated names */
|
|
Packit Service |
48484a |
setlocale (LC_ALL, "");
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
ldb = lf_db_new ();
|
|
Packit Service |
48484a |
if (!ldb)
|
|
Packit Service |
48484a |
{
|
|
Packit Service |
48484a |
fprintf (stderr, "Failed to create database\n");
|
|
Packit Service |
48484a |
return -1;
|
|
Packit Service |
48484a |
}
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
g_print ("HomeDataDir: %s\n", ldb->HomeDataDir);
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
lf_db_load (ldb);
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
g_print ("< --------------- < Mounts > --------------- >\n");
|
|
Packit Service |
48484a |
mounts = lf_db_get_mounts (ldb);
|
|
Packit Service |
48484a |
for (i = 0; mounts [i]; i++)
|
|
Packit Service |
48484a |
{
|
|
Packit Service |
48484a |
g_print ("Mount: %s\n", lf_mlstr_get (mounts [i]->Name));
|
|
Packit Service |
48484a |
if (mounts [i]->Compat)
|
|
Packit Service |
48484a |
for (j = 0; mounts [i]->Compat [j]; j++)
|
|
Packit Service |
48484a |
g_print ("\tCompat: %s\n", mounts [i]->Compat [j]);
|
|
Packit Service |
48484a |
}
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
g_print ("< --------------- < Cameras > --------------- >\n");
|
|
Packit Service |
48484a |
cameras = lf_db_get_cameras (ldb);
|
|
Packit Service |
48484a |
for (i = 0; cameras [i]; i++)
|
|
Packit Service |
48484a |
{
|
|
Packit Service |
48484a |
g_print ("Camera: %s / %s %s%s%s\n",
|
|
Packit Service |
48484a |
lf_mlstr_get (cameras [i]->Maker),
|
|
Packit Service |
48484a |
lf_mlstr_get (cameras [i]->Model),
|
|
Packit Service |
48484a |
cameras [i]->Variant ? "(" : "",
|
|
Packit Service |
48484a |
cameras [i]->Variant ? lf_mlstr_get (cameras [i]->Variant) : "",
|
|
Packit Service |
48484a |
cameras [i]->Variant ? ")" : "");
|
|
Packit Service |
48484a |
g_print ("\tMount: %s\n", lf_db_mount_name (ldb, cameras [i]->Mount));
|
|
Packit Service |
48484a |
g_print ("\tCrop factor: %g\n", cameras [i]->CropFactor);
|
|
Packit Service |
48484a |
}
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
g_print ("< --------------- < Lenses > --------------- >\n");
|
|
Packit Service |
48484a |
lenses = lf_db_get_lenses (ldb);
|
|
Packit Service |
48484a |
for (i = 0; lenses [i]; i++)
|
|
Packit Service |
48484a |
{
|
|
Packit Service |
48484a |
g_print ("Lens: %s / %s\n",
|
|
Packit Service |
48484a |
lf_mlstr_get (lenses [i]->Maker),
|
|
Packit Service |
48484a |
lf_mlstr_get (lenses [i]->Model));
|
|
Packit Service |
48484a |
g_print ("\tCrop factor: %g\n", lenses [i]->CropFactor);
|
|
Packit Service |
48484a |
g_print ("\tAspect ratio: %g\n", lenses [i]->AspectRatio);
|
|
Packit Service |
48484a |
g_print ("\tFocal: %g-%g\n", lenses [i]->MinFocal, lenses [i]->MaxFocal);
|
|
Packit Service |
48484a |
g_print ("\tAperture: %g-%g\n", lenses [i]->MinAperture, lenses [i]->MaxAperture);
|
|
Packit Service |
48484a |
g_print ("\tCenter: %g,%g\n", lenses [i]->CenterX, lenses [i]->CenterY);
|
|
Packit Service |
48484a |
if (lenses [i]->Mounts)
|
|
Packit Service |
48484a |
for (j = 0; lenses [i]->Mounts [j]; j++)
|
|
Packit Service |
48484a |
g_print ("\tMount: %s\n", lf_db_mount_name (ldb, lenses [i]->Mounts [j]));
|
|
Packit Service |
48484a |
}
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
g_print ("< ---< Saving database into one big file >--- >\n");
|
|
Packit Service |
48484a |
e = lf_db_save_file (ldb, "example-big.xml", mounts, cameras, lenses);
|
|
Packit Service |
48484a |
if (e != LF_NO_ERROR)
|
|
Packit Service |
48484a |
fprintf (stderr, "Failed writing to file, error code %d\n", e);
|
|
Packit Service |
48484a |
|
|
Packit Service |
48484a |
lf_db_destroy (ldb);
|
|
Packit Service |
48484a |
return 0;
|
|
Packit Service |
48484a |
}
|