Oyranos Colour Management System API
Data Fields
oyCMMInfo_s Struct Reference

the CMM API resources struct to implement and set by a CMM More...

#include <oyranos_alpha.h>

Collaboration diagram for oyCMMInfo_s:
Collaboration graph
[legend]

Data Fields

oyOBJECT_e type
oyStruct_Copy_f copy_
oyStruct_Release_f release_
char cmm [8]
char * backend_version
oyCMMGetText_f getText
char ** texts
int oy_compatibility
oyCMMapi_sapi
oyIcon_s icon

Detailed Description

the CMM API resources struct to implement and set by a CMM

Given an example CMM with name "little cms", which wants to use the four-char ID 'lcms', the CMM can register itself to Oyranos as follows: The CMM module file must be named something_lcms_cmm_module_something.something . On Linux this could be "liboyranos_lcms_cmm_module.so.0.1.8". The four-chars 'lcms' must be prepended with OY_MODULE_NAME alias "_cmm_module".

Oyranos will scan the /color/cmms/ path, opens the available CMM's from this directory and extracts the four-chars before OY_MODULE_NAME from the library file names. Module paths can be added through the OY_MODULE_PATHS environment variable. Oyranos looks for a symbol to a oyCMMInfo_s struct of the four-byte ID plus OY_MODULE_NAME which results in our example in the name "lcms_cmm_module". On Posix system this should be loadable by dlsym. The lcms_cmm_module should be of type oyCMMInfo_s with the type field and all other fields set appropriately.

The api field is a placeholder to get a real api struct assigned. If the CMM wants to provide more than one API, they can be chained.

Version:
Oyranos: 0.1.10
Since:
2007/12/05 (Oyranos: 0.1.8)
Date:
2008/12/23

Field Documentation

must be casted to a according API, zero terminated list

non translatable, eg "v1.17"

ICC signature, eg 'lcms'

oyStruct_Copy_f oyCMMInfo_s::copy_

copy function; zero for static data

translated, e.g. "name": "lcms" "little cms" "A CMM with 100k ..." supported should be "name", "copyright" and "manufacturer". Optional is "help".

zero terminated list of a icon pyramid

last supported Oyranos CMM API : OYRANOS_VERSION

oyStruct_Release_f oyCMMInfo_s::release_

release function; zero for static data

zero terminated list for getText

oyOBJECT_e oyCMMInfo_s::type

struct type oyOBJECT_CMM_INFO_S