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

Public Member Functions | |
| OYAPI oyCMMInfo_s *OYEXPORT | oyCMMInfo_New (oyObject_s object) |
| allocate a new CMMInfo object | |
| OYAPI oyCMMInfo_s *OYEXPORT | oyCMMInfo_Copy (oyCMMInfo_s *obj, oyObject_s object) |
| copy or reference a CMMInfo object | |
| OYAPI int OYEXPORT | oyCMMInfo_Release (oyCMMInfo_s **obj) |
| release and possibly deallocate a CMMInfo object | |
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.
| oyCMMapi_s* oyCMMInfo_s::api |
must be casted to a according API, zero terminated list
| char* oyCMMInfo_s::backend_version |
non translatable, eg "v1.17"
Referenced by oyCMMInfo_Release().
| char oyCMMInfo_s::cmm[8] |
ICC signature, eg 'lcms'
| oyStruct_Copy_f oyCMMInfo_s::copy_ |
copy function; zero for static data
| oyCMMGetText_f oyCMMInfo_s::getText |
translated, e.g. "name": "lcms" "little cms" "A CMM with 100k ..." supported should be "name", "copyright" and "manufacturer". Optional is "help".
| oyIcon_s oyCMMInfo_s::icon |
zero terminated list of a icon pyramid
| int oyCMMInfo_s::oy_compatibility |
last supported Oyranos CMM API : OYRANOS_VERSION
| oyStruct_Release_f oyCMMInfo_s::release_ |
release function; zero for static data
Referenced by oyCMMInfo_New(), and oyCMMInfo_Release().
| char** oyCMMInfo_s::texts |
zero terminated list for getText
| oyOBJECT_e oyCMMInfo_s::type |
struct type oyOBJECT_CMM_INFO_S
Referenced by oyCMMInfo_Copy(), and oyCMMInfo_Release().