![]() |
Oyranos Color Management System API |
Data processing node. More...
#include <oyCMMapi7_s.h>
Public Types | |
typedef int(* | oyCMMFilterPlug_Run_f) (oyFilterPlug_s *plug, oyPixelAccess_s *pixel_access) |
get a pixel or channel from the previous filter More... | |
![]() | |
typedef int(* | oyCMMInit_f) (oyStruct_s *filter) |
optional CMM init function More... | |
typedef int(* | oyCMMMessageFuncSet_f) (oyMessage_f message_func) |
optionaly sets a CMM message function More... | |
typedef int(* | oyCMMCanHandle_f) (oyCMMQUERY_e type, uint32_t value) |
CMM feature declaration function. More... | |
typedef const char *(* | oyCMMGetText_f) (const char *select, oyNAME_e type, oyStruct_s *context) |
get strings from a CMM More... | |
Public Member Functions | |
OYAPI oyCMMapi7_s *OYEXPORT | oyCMMapi7_New (oyObject_s object) |
allocate a new CMMapi7 object More... | |
OYAPI oyCMMapi7_s *OYEXPORT | oyCMMapi7_Copy (oyCMMapi7_s *cmmapi7, oyObject_s object) |
copy or reference a CMMapi7 object More... | |
OYAPI int OYEXPORT | oyCMMapi7_Release (oyCMMapi7_s **cmmapi7) |
release and possibly deallocate a oyCMMapi7_s object More... | |
OYAPI int OYEXPORT | oyCMMapi7_SetBackendContext (oyCMMapi7_s *api, oyPointer_s *ptr) |
set filter type specific runtime data More... | |
OYAPI oyPointer_s *OYEXPORT | oyCMMapi7_GetBackendContext (oyCMMapi7_s *api) |
get filter type specific runtime data More... | |
OYAPI oyCMMapi7_s *OYEXPORT | oyCMMapi7_Create (oyCMMInit_f init, oyCMMMessageFuncSet_f msg_set, const char *registration, int32_t version[3], int32_t module_api[3], const char *context_type, oyCMMFilterPlug_Run_f run, oyConnector_s **plugs, uint32_t plugs_n, uint32_t plugs_last_add, oyConnector_s **sockets, uint32_t sockets_n, uint32_t sockets_last_add, const char **properties, oyObject_s object) |
Create a oyCMMapi7_s filter object. More... | |
![]() | |
OYAPI oyCMMapiFilter_s *OYEXPORT | oyCMMapiFilter_New (oyObject_s object) |
allocate a new CMMapiFilter object More... | |
OYAPI oyCMMapiFilter_s *OYEXPORT | oyCMMapiFilter_Copy (oyCMMapiFilter_s *cmmapifilter, oyObject_s object) |
copy or reference a CMMapiFilter object More... | |
OYAPI int OYEXPORT | oyCMMapiFilter_Release (oyCMMapiFilter_s **cmmapifilter) |
release and possibly deallocate a oyCMMapiFilter_s object More... | |
OYAPI int OYEXPORT | oyCMMapiFilter_SetBackendContext (oyCMMapiFilter_s *api, oyPointer_s *ptr) |
set filter type specific runtime data More... | |
OYAPI oyPointer_s *OYEXPORT | oyCMMapiFilter_GetBackendContext (oyCMMapiFilter_s *api) |
get filter type specific runtime data More... | |
![]() | |
OYAPI oyCMMapi_s *OYEXPORT | oyCMMapi_New (oyObject_s object) |
allocate a new CMMapi object More... | |
OYAPI oyCMMapi_s *OYEXPORT | oyCMMapi_Copy (oyCMMapi_s *cmmapi, oyObject_s object) |
copy or reference a CMMapi object More... | |
OYAPI int OYEXPORT | oyCMMapi_Release (oyCMMapi_s **cmmapi) |
release and possibly deallocate a oyCMMapi_s object More... | |
void | oyCMMapi_Set (oyCMMapi_s *api, oyCMMInit_f init, oyCMMMessageFuncSet_f msg_set, const char *registration, int32_t version[3], int32_t module_api[3]) |
CMMapi member setter. More... | |
void | oyCMMapi_SetNext (oyCMMapi_s *api, oyCMMapi_s *next) |
chain CMMapi's More... | |
oyCMMapi_s * | oyCMMapi_GetNext (oyCMMapi_s *api) |
get next CMMapi More... | |
![]() | |
const char * | oyStruct_GetTextFromModule (oyStruct_s *obj, oyNAME_e name_type, uint32_t flags) |
get object infos from a module More... | |
const char * | oyStruct_GetText (oyStruct_s *obj, oyNAME_e name_type, uint32_t flags) |
get a text dump More... | |
Data Fields | |
const oyOBJECT_e | type_ |
Type of object. More... | |
oyStruct_Copy_f | copy |
Copy function. More... | |
oyStruct_Release_f | release |
Release function. More... | |
oyObject_s | oy_ |
Oyranos internal object. More... | |
![]() | |
const oyOBJECT_e | type_ |
Type of object. More... | |
oyStruct_Copy_f | copy |
Copy function. More... | |
oyStruct_Release_f | release |
Release function. More... | |
oyObject_s | oy_ |
Oyranos internal object. More... | |
![]() | |
const oyOBJECT_e | type_ |
Type of object. More... | |
oyStruct_Copy_f | copy |
Copy function. More... | |
oyStruct_Release_f | release |
Release function. More... | |
oyObject_s | oy_ |
Oyranos internal object. More... | |
![]() | |
const oyOBJECT_e | type_ |
Type of object. More... | |
oyStruct_Copy_f | copy |
Copy function. More... | |
oyStruct_Release_f | release |
Release function. More... | |
oyObject_s | oy_ |
Oyranos internal object. More... | |
Data processing node.
The structure forms a node element in a directed acyclic graph. It's connectors allow to communicate cababilities and semantics. This node type acts mostly on data processing.
It is possible to delegate parameter or context creation to other specialised filter types. The filter context can be stored in oyFilterNode_s::backend_data if the oyCMMapi7_s::context_type is filled with a understood format hint. The registration should provide keywords to select the processing function.
(in CM jargon - interpolator)
typedef int(* oyCMMFilterPlug_Run_f) (oyFilterPlug_s *plug, oyPixelAccess_s *pixel_access) |
get a pixel or channel from the previous filter
typedef oyCMMFilterPlug_Run_f
You have to call oyCMMFilter_CreateContext_t or oyCMMFilter_ContextFromMem_t first. The API provides flexible pixel access and cache configuration by the passed oyPixelAccess_s object. The filters internal precalculated data are passed by the filter object.
while ( error = oyCMMFilterSocket_GetNext( filter_plug, pixel_access ) == 0 ) {};
[in] | plug | including the CMM's private data, connector is the requesting plug to obtain a handle for calling back |
[in] | pixel_access | processing order instructions |
A requested context will be stored in oyFilterNode_s::backend_data.
OYAPI oyCMMapi7_s *OYEXPORT oyCMMapi7_Copy | ( | oyCMMapi7_s * | cmmapi7, |
oyObject_s | object | ||
) |
copy or reference a CMMapi7 object
Function oyCMMapi7_Copy
The function is for copying and for referencing. The reference is the most often used way, which saves resourcs and time.
[in] | cmmapi7 | CMMapi7 struct object |
object | NULL - means reference, the optional object triggers a real copy |
References oyOBJECT_CMM_API7_S.
OYAPI oyCMMapi7_s *OYEXPORT oyCMMapi7_Create | ( | oyCMMInit_f | init, |
oyCMMMessageFuncSet_f | msg_set, | ||
const char * | registration, | ||
int32_t | version[3], | ||
int32_t | module_api[3], | ||
const char * | context_type, | ||
oyCMMFilterPlug_Run_f | run, | ||
oyConnector_s ** | plugs, | ||
uint32_t | plugs_n, | ||
uint32_t | plugs_last_add, | ||
oyConnector_s ** | sockets, | ||
uint32_t | sockets_n, | ||
uint32_t | sockets_last_add, | ||
const char ** | properties, | ||
oyObject_s | object | ||
) |
Create a oyCMMapi7_s filter object.
Function oyCMMapi7_Create
init | custom initialisation |
msg_set | message function setter |
registration | the modules registration string, |
version | module version
|
module_api | tell compatibility with Oyranos API
|
context_type | four byte identifier if a context is needed A additional oyCMMapi6_s module can, then be provided to convert between context formats, registred by this identifier. |
run | the filter function |
plugs | a zero terminated list of connectors |
plugs_n | the number of plugs in 'plugs' |
plugs_last_add | the number of accepted repeats of the last plug |
sockets | a zero terminated list of connectors |
sockets_n | the number of sockets in 'sockets' |
sockets_last_add | the number of accepted repeats of the last socket |
properties | A zero terminated list of strings. The semantics are plugin defined. e.g.: {"key1=value1","key2=value2",0} |
object | Oyranos object (optional) |
References oyCMMapi7_New(), oyCMMapi_s::oyCMMapi_Set(), oyObject_GetAlloc(), and oyObject_GetDeAlloc().
OYAPI oyPointer_s *OYEXPORT oyCMMapi7_GetBackendContext | ( | oyCMMapi7_s * | api | ) |
get filter type specific runtime data
Runtime data can be used as context by a backend during execution.
That data is apart from a filter object, which can have lifetime data associated through a oyFilterNode_GetContext(). A filter connector can have its processing data associated through oyFilterNode_SetData().
[in] | api | api object |
References oyOBJECT_CMM_API7_S, oyOBJECT_CMM_API_MAX, and oyPointer_s::oyPointer_Copy().
Referenced by oyFilterNode_s::oyFilterNode_GetBackendContext().
OYAPI oyCMMapi7_s *OYEXPORT oyCMMapi7_New | ( | oyObject_s | object | ) |
allocate a new CMMapi7 object
Function oyCMMapi7_New
References oyOBJECT_OBJECT_S.
Referenced by oyCMMapi7_Create().
OYAPI int OYEXPORT oyCMMapi7_Release | ( | oyCMMapi7_s ** | cmmapi7 | ) |
release and possibly deallocate a oyCMMapi7_s object
Function oyCMMapi7_Release
[in,out] | cmmapi7 | CMMapi7 struct object |
References oyOBJECT_CMM_API7_S.
OYAPI int OYEXPORT oyCMMapi7_SetBackendContext | ( | oyCMMapi7_s * | api, |
oyPointer_s * | ptr | ||
) |
set filter type specific runtime data
Runtime data can be used as context by a backend during execution. The data is typical set during backend load.
That data is apart from a filter object, which can have lifetime data associated through a oyFilterNode_GetContext(). A filter connector can have its processing data associated through oyFilterNode_SetData().
[in,out] | api | api object |
[in] | ptr | the data needed to run the filter type |
References oyOBJECT_CMM_API7_S, oyOBJECT_CMM_API_MAX, oyPointer_s::oyPointer_Copy(), and oyPointer_s::oyPointer_Release().
Referenced by oyFilterNode_s::oyFilterNode_SetBackendContext().
oyStruct_Copy_f oyCMMapi7_s::copy |
Copy function.
oyObject_s oyCMMapi7_s::oy_ |
Oyranos internal object.
Features name and hash. Do not change during object life time.
oyStruct_Release_f oyCMMapi7_s::release |
Release function.
const oyOBJECT_e oyCMMapi7_s::type_ |
Type of object.
The struct type tells Oyranos how to interprete hidden fields.