![]() |
Oyranos Colour Management System API |
the CMM API resources struct to implement and set by a CMM More...
#include <oyranos_alpha.h>

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_s * | api |
| oyIcon_s | icon |
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.
must be casted to a according API, zero terminated list
non translatable, eg "v1.17"
| char oyCMMInfo_s::cmm[8] |
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
| char** oyCMMInfo_s::texts |
zero terminated list for getText
| oyOBJECT_e oyCMMInfo_s::type |
struct type oyOBJECT_CMM_INFO_S