![]() |
Oyranos
git-devel
Oyranos is a full featured Color Management System
|
Directed Acyclic Graph handling, caching and data processing. More...
![]() |
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 |
Image Manipulation by a Graph (DAG) 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 } |
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.
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.
Status information can be passed from the input side to the output side by callbacks.
The data flows from the socket to the plug.
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.
oyFilterSocket_s is designed to accept arbitrary numbers of connections to allow for viewing on a filters data output or observe its state changes.
enum oyCONNECTOR_EVENT_e |
Connector events types.
enum oyFILTER_REG_e |
see:http://lists.freedesktop.org/archives/openicc/2008q4/001724.html
enum oyFILTER_REG_MODE_e |