Oyranos Colour Management System API
Public Member Functions | 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

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_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

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().