Sample program demonstrating basic usage of C API.
#include <stdio.h>
#include <locale.h>
#include <glib.h>
int main ()
{
int i, j;
const struct lfMount *
const *mounts;
const struct lfLens *
const *lenses;
setlocale (LC_ALL, "");
if (!ldb)
{
fprintf (stderr, "Failed to create database\n");
return -1;
}
g_print ("< --------------- < Mounts > --------------- >\n");
for (i = 0; mounts [i]; i++)
{
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");
for (i = 0; cameras [i]; i++)
{
g_print ("Camera: %s / %s %s%s%s\n",
cameras [i]->Variant ? "(" : "",
cameras [i]->Variant ?
lf_mlstr_get (cameras [i]->Variant) :
"",
cameras [i]->Variant ? ")" : "");
g_print ("\tCrop factor: %g\n", cameras [i]->CropFactor);
}
g_print ("< --------------- < Lenses > --------------- >\n");
for (i = 0; lenses [i]; i++)
{
g_print ("Lens: %s / %s\n",
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 ("< ---< Saving database into one big file >--- >\n");
fprintf (stderr, "Failed writing to file, error code %d\n", e);
return 0;
}
const char * lf_mlstr_get(const lfMLstr str)
Get a string corresponding to current locale from a multi-language string.
lfError
liblensdb error codes: negative codes are -errno, positive are here
Definition: lensfun.h:94
@ LF_NO_ERROR
No error occured.
Definition: lensfun.h:96
const lfLens *const * lf_db_get_lenses(const lfDatabase *db)
lfError lf_db_load(lfDatabase *db)
const lfMount *const * lf_db_get_mounts(const lfDatabase *db)
lfError lf_db_save_file(const lfDatabase *db, const char *filename, const lfMount *const *mounts, const lfCamera *const *cameras, const lfLens *const *lenses)
const lfCamera *const * lf_db_get_cameras(const lfDatabase *db)
const char * lf_db_mount_name(const lfDatabase *db, const char *mount)
void lf_db_destroy(lfDatabase *db)
Destroy the database object.
lfDatabase * lf_db_new(void)
Create a new empty database object.
This file defines the interface to the lensfun library.
Camera data.
Definition: lensfun.h:273
A lens database object.
Definition: lensfun.h:1155
char * HomeDataDir
Home lens database directory (something like "~/.local/share/lensfun")
Definition: lensfun.h:1157
Lens data.
Definition: lensfun.h:670
char ** Mounts
Available mounts (NULL-terminated list) (ex: { "QBM", NULL })
Definition: lensfun.h:684
This structure contains everything specific to a camera mount.
Definition: lensfun.h:167
char ** Compat
A list of compatible mounts.
Definition: lensfun.h:171