Ecore Buffer Provider functions

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files
- Examples

Typedefs | Enumerations | Functions
Ecore Buffer Provider functions
Ecore » Ecore_Buffer - Graphics buffer functions » Ecore Buffer Queue functions

This group of functions is applied to an Ecore_Buffer_Provider object. More...

## Typedefs
typedef struct _Ecore_Buffer_Provider | Ecore_Buffer_Provider
| An object representing a provider of Ecore_Buffer. More...
typedef void(* | Ecore_Buffer_Provider_Consumer_Add_Cb) (Ecore_Buffer_Provider *provider, int queue_size, int w, int h, void *data)
| Called whenever a Ecore_Buffer_Consumer connected. More...
typedef void(* | Ecore_Buffer_Provider_Consumer_Del_Cb) (Ecore_Buffer_Provider *provider, void *data)
| Called whenever a Ecore_Buffer_Consumer disconnected. More...
typedef void(* | Ecore_Buffer_Provider_Enqueue_Cb) (Ecore_Buffer_Provider *provider, void *data)
| Called whenever a Ecore_Buffer is released. More...

## Enumerations
enum | _Ecore_Buffer_Return { ECORE_BUFFER_RETURN_ERROR, ECORE_BUFFER_RETURN_SUCCESS, ECORE_BUFFER_RETURN_EMPTY, ECORE_BUFFER_RETURN_NOT_EMPTY, ECORE_BUFFER_RETURN_NEED_ALLOC }
| types for an buffer queue state on provider side. More...

## Functions
EAPI Ecore_Buffer_Provider * | ecore_buffer_provider_new (const char *name)
| Creates a new Buffer Provider based on name. More...
EAPI void | ecore_buffer_provider_free (Ecore_Buffer_Provider *provider)
| Free an Ecore_Buffer_Provider. More...
EAPI Ecore_Buffer_Return | ecore_buffer_provider_buffer_acquire (Ecore_Buffer_Provider *provider, Ecore_Buffer **ret_buf)
| Return the Ecore_Buffer released by consumer or State of Queue. More...
EAPI Eina_Bool | ecore_buffer_provider_buffer_enqueue (Ecore_Buffer_Provider *provider, Ecore_Buffer *buffer)
| Submit the Ecore_Buffer to Consumer to request compositing. More...
EAPI Ecore_Buffer_Return | ecore_buffer_provider_buffer_acquirable_check (Ecore_Buffer_Provider *provider)
| Check if state of queue. More...
EAPI void | ecore_buffer_provider_consumer_add_cb_set (Ecore_Buffer_Provider *provider, Ecore_Buffer_Provider_Consumer_Add_Cb func, void *data)
| Set a callback for consumer connection events. More...
EAPI void | ecore_buffer_provider_consumer_del_cb_set (Ecore_Buffer_Provider *provider, Ecore_Buffer_Provider_Consumer_Del_Cb func, void *data)
| Set a callback for consumer disconnection events. More...
EAPI void | ecore_buffer_provider_buffer_released_cb_set (Ecore_Buffer_Provider *provider, Ecore_Buffer_Provider_Enqueue_Cb func, void *data)
| Set a callback for released buffer events. More...

## Detailed Description

This group of functions is applied to an Ecore_Buffer_Provider object.

Ecore_Buffer_Provider provides Ecore_Buffer to Ecore_Buffer_Consumer(usually different process or thread from Ecore_Buffer_Provider). Ecore_Buffer_Provider should creates Ecore_Buffer as a provider.

## Typedef Documentation

Ecore_Buffer_Provider

An object representing a provider of Ecore_Buffer.

Since
  1.15

Ecore_Buffer_Provider_Consumer_Add_Cb

Called whenever a Ecore_Buffer_Consumer connected.

Since
  1.15

See also
  ecore_buffer_provider_consumer_add_cb_set()

Ecore_Buffer_Provider_Consumer_Del_Cb

Called whenever a Ecore_Buffer_Consumer disconnected.

Since
  1.15

See also
  ecore_buffer_provider_consumer_del_cb_set()

Ecore_Buffer_Provider_Enqueue_Cb

Called whenever a Ecore_Buffer is released.

Since
  1.15

See also
  ecore_buffer_provider_buffer_released_cb_set()

## Enumeration Type Documentation

enum _Ecore_Buffer_Return

types for an buffer queue state on provider side.

See also
  ecore_buffer_provider_buffer_acquire()
  ecore_buffer_provider_buffer_acquirable_check()

## Function Documentation

EAPI Ecore_Buffer_Provider* ecore_buffer_provider_new | ( | const char * | name | ) |

Creates a new Buffer Provider based on name.

Since
  1.15

Parameters

  [in] | name | the name of Buffer_Queue.

Returns
  Ecore_Buffer_Provider instance or `NULL` if creation failed.

References DBG, and ERR.

EAPI void ecore_buffer_provider_free | ( | Ecore_Buffer_Provider * | provider | ) |

Free an Ecore_Buffer_Provider.

Since
  1.15

Parameters

  [in] | provider | The Ecore_Buffer_Provider to free

This frees up any memory used by the Ecore_Buffer_Provider.

References DBG, and EINA_LIST_FOREACH.

EAPI Ecore_Buffer_Return ecore_buffer_provider_buffer_acquire | ( | Ecore_Buffer_Provider * | provider,
|  | Ecore_Buffer ** | ret_buf
| ) |  |

Return the Ecore_Buffer released by consumer or State of Queue.

Since
  1.15

Parameters

  [in] | provider | The Ecore_Buffer_Provider to request for buffer
  [out] | ret_buf | A Pointer to the Ecore_Buffer

Returns
  The enumeration of Ecore_Buffer_Return to indicate result of Dequeueing.

This function gives you drawable buffer and inform you the state of Queue. Each return value of enumeration has meaning as below.

- ECORE_BUFFER_RETURN_ERROR, means error occurred.
- ECORE_BUFFER_RETURN_SUCCESS, means success to dequeue, therefore ret_buf is valid.
- ECORE_BUFFER_RETURN_EMPTY, means queue is empty, not available slot in Queue. in other words, there is no free drawable buffer in Queue.
- ECORE_BUFFER_RETURN_NEED_ALLOC, means that there is available slot, but not allocated. so, You may create new Ecore_Buffer, and then just enqueue the Ecore_Buffer.

See also
  ecore_buffer_new(), ecore_buffer_provider_buffer_enqueue()

References DBG, and ERR.

EAPI Eina_Bool ecore_buffer_provider_buffer_enqueue | ( | Ecore_Buffer_Provider * | provider,
|  | Ecore_Buffer * | buffer
| ) |  |

Submit the Ecore_Buffer to Consumer to request compositing.

Since
  1.15

Parameters

  [in] | provider | The Ecore_Buffer_Provider connected with consumer.
  [in] | buffer | The Ecore_Buffer to submit

Returns
  `EINA_TRUE` on success, `EINA_FALSE` otherwise.

This function allow you to submit the Ecore_Buffer to consumer to request compositing. And this will be success, in case only you submit dequeued Ecore_Buffer, and new Ecore_Buffer after received return value of ECORE_BUFFER_RETURN_NEED_ALLOC by ecore_buffer_provider_buffer_acquire().

See also
  ecore_buffer_new(), ecore_buffer_provider_buffer_dequeue()

References DBG, EINA_FALSE, EINA_TRUE, and ERR.

EAPI Ecore_Buffer_Return ecore_buffer_provider_buffer_acquirable_check | ( | Ecore_Buffer_Provider * | provider | ) |

Check if state of queue.

Since
  1.15

Parameters

  [in] | provider | The Ecore_Buffer_Provider to query

- ECORE_BUFFER_RETURN_NOT_EMPTY, means there is a dequeueable Ecore_Buffer at least one.
- ECORE_BUFFER_RETURN_EMPTY, means queue is empty, not available slot in Queue. in other words, there is no free drawable buffer in Queue.
- ECORE_BUFFER_RETURN_NEED_ALLOC, means that there is available slot, but not allocated. so, You may create new Ecore_Buffer, and then just enqueue the Ecore_Buffer.

Returns
  `EINA_TRUE` means queue is empty, `EINA_FALSE` otherwise.

References EINA_FALSE.

EAPI void ecore_buffer_provider_consumer_add_cb_set | ( | Ecore_Buffer_Provider * | provider,
|  | Ecore_Buffer_Provider_Consumer_Add_Cb | func,
|  | void * | data
| ) |  |

Set a callback for consumer connection events.

Since
  1.15

Parameters

  [in] | provider | The Ecore_Buffer_Provider to set callbacks on
  [in] | func | The function to call
  [in] | data | A pointer to the user data to store.

A call to this function will set a callback on an Ecore_Buffer_Provider, causing `func` to be called whenever `provider` is connected with consumer.

EAPI void ecore_buffer_provider_consumer_del_cb_set | ( | Ecore_Buffer_Provider * | provider,
|  | Ecore_Buffer_Provider_Consumer_Del_Cb | func,
|  | void * | data
| ) |  |

Set a callback for consumer disconnection events.

Since
  1.15

Parameters

  [in] | provider | The Ecore_Buffer_Provider to set callbacks on
  [in] | func | The function to call
  [in] | data | A pointer to the user data to store.

A call to this function will set a callback on an Ecore_Buffer_Provider, causing `func` to be called whenever `provider` is disconnected with consumer.

EAPI void ecore_buffer_provider_buffer_released_cb_set | ( | Ecore_Buffer_Provider * | provider,
|  | Ecore_Buffer_Provider_Enqueue_Cb | func,
|  | void * | data
| ) |  |

Set a callback for released buffer events.

Since
  1.15

Parameters

  [in] | provider | The Ecore_Buffer_Provider to set callbacks on
  [in] | func | The function to call
  [in] | data | A pointer to the user data to store.

A call to this function will set a callback on an Ecore_Buffer_Provider, causing `func` to be called whenever `provider` has received Ecore_Buffer released from provider.

You may success dequeue the Ecore_Buffer after this callback called.

References DBG, ecore_buffer_flags_get(), ecore_buffer_format_get(), ecore_buffer_free_callback_add(), ecore_buffer_size_get(), EINA_FALSE, EINA_TRUE, EINA_UNUSED, and ERR.