Oyranos Color Management System API - Version 0.9.6
Modules | Data Structures | Enumerations
Conversion

Directed Acyclic Graph handling, caching and data processing. More...

Collaboration diagram for Conversion:

Modules

 Image Containers
 Pixel buffer abstraction.
 

Data Structures

struct  oyConnector_s
 A filter connection description structure. More...
 
struct  oyConnectorImaging_s
 Node connection descriptor. More...
 
struct  oyConversion_s
 A filter chain or graph to manipulate a image. More...
 
struct  oyFilterCore_s
 A basic filter to manipulate data. More...
 
struct  oyFilterGraph_s
 A FilterGraph object. More...
 
struct  oyFilterNode_s
 A FilterNode object. More...
 
struct  oyFilterNodes_s
 A FilterNode list. More...
 
struct  oyFilterPlug_s
 A filter connection structure. More...
 
struct  oyFilterPlugs_s
 A FilterPlugs list. More...
 
struct  oyFilterSocket_s
 A filter connection structure. More...
 
struct  oyPixelAccess_s
 Control pixel access order. More...
 

Enumerations

enum  oyFILTER_REG_e { ,
  oyFILTER_REG_TOP = 0x01, oyFILTER_REG_DOMAIN = 0x02, oyFILTER_REG_TYPE = 0x04, oyFILTER_REG_APPLICATION = 0x08,
  oyFILTER_REG_OPTION = 0x10, oyFILTER_REG_MAX = 0x20
}
 
enum  oyCONNECTOR_EVENT_e {
  oyCONNECTOR_EVENT_OK, oyCONNECTOR_EVENT_CONNECTED, oyCONNECTOR_EVENT_RELEASED, oyCONNECTOR_EVENT_DATA_CHANGED,
  oyCONNECTOR_EVENT_STORAGE_CHANGED, oyCONNECTOR_EVENT_INCOMPATIBLE_DATA, oyCONNECTOR_EVENT_INCOMPATIBLE_OPTION, oyCONNECTOR_EVENT_INCOMPATIBLE_CONTEXT,
  oyCONNECTOR_EVENT_INCOMPLETE_GRAPH
}
 Connector events types. More...
 
enum  oyFILTER_REG_MODE_e { , oyFILTER_REG_MODE_STRIP_IMPLEMENTATION_ATTR = 0x0100 }
 

Detailed Description

Directed Acyclic Graph handling, caching and data processing.

Conversion front end API's. Data processing is organised by structures called acyclic graphs. A graph combines several processing elements and their according stages into one process model. A very simple graph will link elements just one by one to form a chain. More complex graphs are possible by branching and rejoining of data processing arms. Datas are requested always from the end. This makes it simple to create views at data. A observer tells the to be viewed plugin that it wants to connect and can request the data stream. In the other direction plug-ins can send events along the pipe through callbacks, e.g. for reporting errors or requesting updating of parameters. The Backend Modules explains how to create modules to plug into Oyranos.

About Graphs:
The top object a user will handle is of type oyConversion_s. This contains oyFilterNode_s objects, which describe the connections of each processing element, such as images with attached data and profile, and the filters. The Oyranos node connection concept is splitted into various structures.

dot_inline_dotgraph_1.png

Connectors have tree missions:

Routing:
The connector output, called socket, side is primarily passive. The data stream is requested or viewed by the input side, called plug. Changes are propagated by events. This turns the acyclic graph into a dual one. The events use the same graph just in the other direction. Events and data requests are distinct. A plug local to the filter or filter node can be connected to a remote socket connector and vice versa.

dot_inline_dotgraph_2.png

Status information can be passed from the input side to the output side by callbacks.

dot_inline_dotgraph_3.png

The data flows from the socket to the plug.

dot_inline_dotgraph_4.png

A oyFilterNode_s can have various oyFilterPlug_s ' to obtain data from different sources. The required number is described in the oyCMMapi4_s structure, which is part of oyFilterCore_s. But each plug can only connect to one socket.

dot_inline_dotgraph_5.png

oyFilterSocket_s is designed to accept arbitrary numbers of connections to allow for viewing on a filters data output or observe its state changes.

dot_inline_dotgraph_6.png

Enumeration Type Documentation

Connector events types.

Version
Oyranos: 0.1.8
Since
2008/00/00 (Oyranos: 0.1.8)
Date
2008/00/00
Enumerator
oyCONNECTOR_EVENT_OK 

kind of ping

oyCONNECTOR_EVENT_CONNECTED 

connection established

oyCONNECTOR_EVENT_RELEASED 

released the connection

oyCONNECTOR_EVENT_DATA_CHANGED 

call to update image views

oyCONNECTOR_EVENT_STORAGE_CHANGED 

new data accessors

oyCONNECTOR_EVENT_INCOMPATIBLE_DATA 

can not process image

oyCONNECTOR_EVENT_INCOMPATIBLE_OPTION 

can not handle option

oyCONNECTOR_EVENT_INCOMPATIBLE_CONTEXT 

can not handle profile

oyCONNECTOR_EVENT_INCOMPLETE_GRAPH 

can not completely process

see:http://lists.freedesktop.org/archives/openicc/2008q4/001724.html

See Also
Registration
Enumerator
oyFILTER_REG_TOP 

e.g. "shared" for filters

oyFILTER_REG_DOMAIN 

e.g. "oyranos.org"

oyFILTER_REG_TYPE 

e.g. "imaging" filter group

oyFILTER_REG_APPLICATION 

e.g. "scale" filter name

oyFILTER_REG_OPTION 

e.g. "x" filter option

oyFILTER_REG_MAX 

always the key name

Version
Oyranos: 0.1.11
Since
2010/08/12 (Oyranos: 0.1.11)
Date
2010/08/12
Enumerator
oyFILTER_REG_MODE_STRIP_IMPLEMENTATION_ATTR 

segments starting with underbar are implementation attributes