Conversion
Description: C source code API documentation for the Oyranos project.
Keywords: Oyranos,Color Management,Color Management,ICC,CMS,C,doxygen,API,documentation

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

Connectors have tree missions:

- The first is to tell others to about the filters intention to provide a connection endity. This is done by the pure existence of the oyConnector_s inside the module filter structure (oyCMMapi4_s) and the oyFilterNode_s::sockets and oyFilterNode_s::plugs members.
- The second is to tell about the connectors capabilities, to allow for automatic checking for fittness to other connectors.
- The thierd task of this struct is to differenciate between input or plug and output or socket. This is delegated to the oyFilterSocket_s and oyFilterPlug_s structures.

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.

## Enumeration Type Documentation

## ◆ oyCONNECTOR_EVENT_e

enum oyCONNECTOR_EVENT_e

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

## ◆ oyFILTER_REG_e

enum oyFILTER_REG_e

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

## ◆ oyFILTER_REG_MODE_e

enum oyFILTER_REG_MODE_e

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