lensfun  0.3.99.0
Macros | Typedefs | Enumerations | Functions
Auxiliary definitions and functions

These functions will help handling basic structures of the library. More...

Macros

#define LF_VERSION_MAJOR   0
 Major library version number.
 
#define LF_VERSION_MINOR   3
 Minor library version number.
 
#define LF_VERSION_MICRO   99
 Library micro version number.
 
#define LF_VERSION_BUGFIX   0
 Library bugfix number.
 
#define LF_VERSION   ((LF_VERSION_MAJOR << 24) | (LF_VERSION_MINOR << 16) | (LF_VERSION_MICRO << 8) | LF_VERSION_BUGFIX)
 Full library version.
 
#define LF_MIN_DATABASE_VERSION   0
 Oldest database version supported by this release.
 
#define LF_MAX_DATABASE_VERSION   2
 Latest database version supported by this release.
 
#define LF_EXPORT
 This macro expands to an appropriate symbol visibility declaration.
 
#define DEPRECATED
 For marking deprecated functions, see http://stackoverflow.com/a/21265197.
 
#define cbool   int
 C-compatible bool type; don't bother to define Yet Another Boolean Type.
 

Typedefs

typedef char * lfMLstr
 
typedef unsigned char lf_u8
 
typedef unsigned short lf_u16
 
typedef unsigned int lf_u32
 
typedef float lf_f32
 
typedef double lf_f64
 

Enumerations

enum  lfError { LF_NO_ERROR = 0 , LF_WRONG_FORMAT , LF_NO_DATABASE }
 

Functions

void lf_free (void *data)
 
const char * lf_mlstr_get (const lfMLstr str)
 Get a string corresponding to current locale from a multi-language string. More...
 
lfMLstr lf_mlstr_add (lfMLstr str, const char *lang, const char *trstr)
 Add a new translated string to a multi-language string. More...
 
lfMLstr lf_mlstr_dup (const lfMLstr str)
 Create a complete copy of a multi-language string. More...
 

Detailed Description

These functions will help handling basic structures of the library.

Typedef Documentation

◆ lf_f32

typedef float lf_f32

The type of a 32-bit floating-point pixel

◆ lf_f64

typedef double lf_f64

The type of a 64-bit floating-point pixel

◆ lf_u16

typedef unsigned short lf_u16

The type of a 16-bit pixel

◆ lf_u32

typedef unsigned int lf_u32

The type of a 32-bit pixel

◆ lf_u8

typedef unsigned char lf_u8

The type of a 8-bit pixel

◆ lfMLstr

typedef char* lfMLstr

The storage of "multi-language" strings is simple yet flexible, handy and effective. The first (default) string comes first, terminated by \0 as usual, after that a language code follows, then \0 again, then the translated value and so on. The list terminates as soon as a \0 is encountered instead of next string, e.g. last string in list is terminated with two null characters.

Enumeration Type Documentation

◆ lfError

enum lfError

liblensfun error codes: negative codes are -errno, positive are here

Enumerator
LF_NO_ERROR 

No error occurred

LF_WRONG_FORMAT 

Wrong XML data format

LF_NO_DATABASE 

No database could be loaded

Function Documentation

◆ lf_free()

void lf_free ( void *  data)

The basics of memory allocation: never free objects allocated by the library yourselves, instead use this function. It is a direct equivalent of standard C free(), however you should not use free() in the event that the library uses a separate heap.

Parameters
dataA pointer to memory to be freed.
Examples
lenstool.cpp, and tfun.cpp.

◆ lf_mlstr_add()

lfMLstr lf_mlstr_add ( lfMLstr  str,
const char *  lang,
const char *  trstr 
)

Add a new translated string to a multi-language string.

This uses realloc() so returned value may differ from input.

Parameters
strThe string to append to. Can be NULL.
langThe language for the new added string. If NULL, the default string is replaced (the first one in list, without a language designator).
trstrThe translated string
Returns
The reallocated multi-language string. To free a multi-language string, use lf_free().

◆ lf_mlstr_dup()

lfMLstr lf_mlstr_dup ( const lfMLstr  str)

Create a complete copy of a multi-language string.

Parameters
strThe string to create a copy of
Returns
A new allocated multi-language string

◆ lf_mlstr_get()

const char* lf_mlstr_get ( const lfMLstr  str)

Get a string corresponding to current locale from a multi-language string.

Current locale is determined from LC_MESSAGES category at the time of the call, e.g. if you change LC_MESSAGES at runtime, next calls to lf_mlstr_get() will return the string for the new locale.

Examples
example.c, and tfun.cpp.