\hypertarget{group__Ecore__Buffer__Provider__Group}{}\doxysection{Ecore Buffer Provider functions}
\label{group__Ecore__Buffer__Provider__Group}\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}


This group of functions is applied to an Ecore\+\_\+\+Buffer\+\_\+\+Provider object.  


\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Provider \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}}
\begin{DoxyCompactList}\small\item\em An object representing a provider of Ecore\+\_\+\+Buffer. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}}) (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, int queue\+\_\+size, int w, int h, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Consumer connected. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}}) (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Consumer disconnected. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}}) (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer is released. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}} \{ \newline
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05a5168fc2907ec72ac4ecba69f8fda2cb6}{ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+ERROR}}
, \newline
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05a5d6301d08faf48b52f1a4cbe65b3fca3}{ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+SUCCESS}}
, \newline
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05a1f27aa90da544b154478e114084af295}{ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+EMPTY}}
, \newline
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05af6dff59efbca335da2174ed4d501b318}{ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+NOT\+\_\+\+EMPTY}}
, \newline
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05aeb8deae191aff3aade9a8931160bc72b}{ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+NEED\+\_\+\+ALLOC}}
 \}
\begin{DoxyCompactList}\small\item\em Types for an buffer queue state on provider side. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
EAPI \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c1f6f379333aec3a75acbc1ee72c84b}{ecore\+\_\+buffer\+\_\+provider\+\_\+new}} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Creates a new Buffer Provider based on name. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gade2273c3009a631b03d2f2359f2e61e8}{ecore\+\_\+buffer\+\_\+provider\+\_\+free}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider)
\begin{DoxyCompactList}\small\item\em Frees an Ecore\+\_\+\+Buffer\+\_\+\+Provider. \end{DoxyCompactList}\item 
EAPI Ecore\+\_\+\+Buffer\+\_\+\+Return \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$$\ast$ret\+\_\+buf)
\begin{DoxyCompactList}\small\item\em Returns the Ecore\+\_\+\+Buffer released by consumer or State of Queue. \end{DoxyCompactList}\item 
EAPI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em Submits the Ecore\+\_\+\+Buffer to Consumer to request compositing. \end{DoxyCompactList}\item 
EAPI Ecore\+\_\+\+Buffer\+\_\+\+Return \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider)
\begin{DoxyCompactList}\small\item\em Checks if state of queue. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for consumer connection events. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for consumer disconnection events. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for released buffer events. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This group of functions is applied to an Ecore\+\_\+\+Buffer\+\_\+\+Provider object. 

Ecore\+\_\+\+Buffer\+\_\+\+Provider provides Ecore\+\_\+\+Buffer to \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer(usually different process or thread from Ecore\+\_\+\+Buffer\+\_\+\+Provider)}}. Ecore\+\_\+\+Buffer\+\_\+\+Provider should creates Ecore\+\_\+\+Buffer as a provider. 

\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}\label{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!Ecore\_Buffer\_Provider@{Ecore\_Buffer\_Provider}}
\index{Ecore\_Buffer\_Provider@{Ecore\_Buffer\_Provider}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{Ecore\_Buffer\_Provider}{Ecore\_Buffer\_Provider}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}}}



An object representing a provider of Ecore\+\_\+\+Buffer. 

\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}\label{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!Ecore\_Buffer\_Provider\_Consumer\_Add\_Cb@{Ecore\_Buffer\_Provider\_Consumer\_Add\_Cb}}
\index{Ecore\_Buffer\_Provider\_Consumer\_Add\_Cb@{Ecore\_Buffer\_Provider\_Consumer\_Add\_Cb}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{Ecore\_Buffer\_Provider\_Consumer\_Add\_Cb}{Ecore\_Buffer\_Provider\_Consumer\_Add\_Cb}}
{\footnotesize\ttfamily Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}



Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Consumer connected. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}\label{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!Ecore\_Buffer\_Provider\_Consumer\_Del\_Cb@{Ecore\_Buffer\_Provider\_Consumer\_Del\_Cb}}
\index{Ecore\_Buffer\_Provider\_Consumer\_Del\_Cb@{Ecore\_Buffer\_Provider\_Consumer\_Del\_Cb}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{Ecore\_Buffer\_Provider\_Consumer\_Del\_Cb}{Ecore\_Buffer\_Provider\_Consumer\_Del\_Cb}}
{\footnotesize\ttfamily Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}



Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Consumer disconnected. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}\label{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!Ecore\_Buffer\_Provider\_Enqueue\_Cb@{Ecore\_Buffer\_Provider\_Enqueue\_Cb}}
\index{Ecore\_Buffer\_Provider\_Enqueue\_Cb@{Ecore\_Buffer\_Provider\_Enqueue\_Cb}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{Ecore\_Buffer\_Provider\_Enqueue\_Cb}{Ecore\_Buffer\_Provider\_Enqueue\_Cb}}
{\footnotesize\ttfamily Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}



Called whenever a Ecore\+\_\+\+Buffer is released. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set()}} 
\end{DoxySeeAlso}


\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}\label{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!\_Ecore\_Buffer\_Return@{\_Ecore\_Buffer\_Return}}
\index{\_Ecore\_Buffer\_Return@{\_Ecore\_Buffer\_Return}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{\_Ecore\_Buffer\_Return}{\_Ecore\_Buffer\_Return}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}}}



Types for an buffer queue state on provider side. 

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire()}} 

\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check()}} 
\end{DoxySeeAlso}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga5c1f6f379333aec3a75acbc1ee72c84b}\label{group__Ecore__Buffer__Provider__Group_ga5c1f6f379333aec3a75acbc1ee72c84b}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\_buffer\_provider\_new@{ecore\_buffer\_provider\_new}}
\index{ecore\_buffer\_provider\_new@{ecore\_buffer\_provider\_new}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_provider\_new()}{ecore\_buffer\_provider\_new()}}
{\footnotesize\ttfamily EAPI \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$ ecore\+\_\+buffer\+\_\+provider\+\_\+new (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Creates a new Buffer Provider based on name. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em name} & The name of Buffer\+\_\+\+Queue.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Ecore\+\_\+\+Buffer\+\_\+\+Provider instance or {\ttfamily NULL} if creation failed. 
\end{DoxyReturn}


References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gade2273c3009a631b03d2f2359f2e61e8}\label{group__Ecore__Buffer__Provider__Group_gade2273c3009a631b03d2f2359f2e61e8}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\_buffer\_provider\_free@{ecore\_buffer\_provider\_free}}
\index{ecore\_buffer\_provider\_free@{ecore\_buffer\_provider\_free}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_provider\_free()}{ecore\_buffer\_provider\_free()}}
{\footnotesize\ttfamily EAPI void ecore\+\_\+buffer\+\_\+provider\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider }\end{DoxyParamCaption})}



Frees an Ecore\+\_\+\+Buffer\+\_\+\+Provider. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to free\\
\hline
\end{DoxyParams}
This frees up any memory used by the Ecore\+\_\+\+Buffer\+\_\+\+Provider. 

References \mbox{\hyperlink{group__Eina__List__Group_gac6efafc19f526d916cdb9757240a8773}{EINA\+\_\+\+LIST\+\_\+\+FOREACH}}, and \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}\label{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\_buffer\_provider\_buffer\_acquire@{ecore\_buffer\_provider\_buffer\_acquire}}
\index{ecore\_buffer\_provider\_buffer\_acquire@{ecore\_buffer\_provider\_buffer\_acquire}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_provider\_buffer\_acquire()}{ecore\_buffer\_provider\_buffer\_acquire()}}
{\footnotesize\ttfamily EAPI Ecore\+\_\+\+Buffer\+\_\+\+Return ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$$\ast$}]{ret\+\_\+buf }\end{DoxyParamCaption})}



Returns the Ecore\+\_\+\+Buffer released by consumer or State of Queue. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to request for buffer \\
\hline
\mbox{\texttt{ out}}  & {\em ret\+\_\+buf} & A Pointer to the Ecore\+\_\+\+Buffer\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The enumeration of Ecore\+\_\+\+Buffer\+\_\+\+Return to indicate result of Dequeuing.
\end{DoxyReturn}
This function gives you drawable buffer and inform you the state of Queue. Each return value of enumeration has meaning as below. \begin{DoxyItemize}
\item ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+ERROR, means error occurred. \item ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+SUCCESS, means success to dequeue, therefore ret\+\_\+buf is valid. \item ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+EMPTY, means queue is empty, not available slot in Queue. in other words, there is no free drawable buffer in Queue. \item 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.\end{DoxyItemize}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_ga852df48a747b050826bf6f93185c4381}{ecore\+\_\+buffer\+\_\+new()}}, \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue()}} 
\end{DoxySeeAlso}


References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}\label{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\_buffer\_provider\_buffer\_enqueue@{ecore\_buffer\_provider\_buffer\_enqueue}}
\index{ecore\_buffer\_provider\_buffer\_enqueue@{ecore\_buffer\_provider\_buffer\_enqueue}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_provider\_buffer\_enqueue()}{ecore\_buffer\_provider\_buffer\_enqueue()}}
{\footnotesize\ttfamily EAPI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$}]{buffer }\end{DoxyParamCaption})}



Submits the Ecore\+\_\+\+Buffer to Consumer to request compositing. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider connected with consumer. \\
\hline
\mbox{\texttt{ in}}  & {\em buffer} & The Ecore\+\_\+\+Buffer to submit\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} on success, {\ttfamily EINA\+\_\+\+FALSE} otherwise.
\end{DoxyReturn}
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 \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_ga852df48a747b050826bf6f93185c4381}{ecore\+\_\+buffer\+\_\+new()}}, ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+dequeue() 
\end{DoxySeeAlso}


References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.

\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}\label{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\_buffer\_provider\_buffer\_acquirable\_check@{ecore\_buffer\_provider\_buffer\_acquirable\_check}}
\index{ecore\_buffer\_provider\_buffer\_acquirable\_check@{ecore\_buffer\_provider\_buffer\_acquirable\_check}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_provider\_buffer\_acquirable\_check()}{ecore\_buffer\_provider\_buffer\_acquirable\_check()}}
{\footnotesize\ttfamily EAPI Ecore\+\_\+\+Buffer\+\_\+\+Return ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider }\end{DoxyParamCaption})}



Checks if state of queue. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to query\\
\hline
\end{DoxyParams}
\begin{DoxyItemize}
\item ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+NOT\+\_\+\+EMPTY, means there is a dequeueable Ecore\+\_\+\+Buffer at least one. \item ECORE\+\_\+\+BUFFER\+\_\+\+RETURN\+\_\+\+EMPTY, means queue is empty, not available slot in Queue. in other words, there is no free drawable buffer in Queue. \item 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.\end{DoxyItemize}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} means queue is empty, {\ttfamily EINA\+\_\+\+FALSE} otherwise. 
\end{DoxyReturn}


References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, and \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}\label{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\_buffer\_provider\_consumer\_add\_cb\_set@{ecore\_buffer\_provider\_consumer\_add\_cb\_set}}
\index{ecore\_buffer\_provider\_consumer\_add\_cb\_set@{ecore\_buffer\_provider\_consumer\_add\_cb\_set}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_provider\_consumer\_add\_cb\_set()}{ecore\_buffer\_provider\_consumer\_add\_cb\_set()}}
{\footnotesize\ttfamily EAPI void ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for consumer connection events. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to set callbacks on \\
\hline
\mbox{\texttt{ in}}  & {\em func} & The function to call \\
\hline
\mbox{\texttt{ in}}  & {\em data} & A pointer to the user data to store.\\
\hline
\end{DoxyParams}
A call to this function will set a callback on an Ecore\+\_\+\+Buffer\+\_\+\+Provider, causing {\ttfamily func} to be called whenever {\ttfamily provider} is connected with consumer. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}\label{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\_buffer\_provider\_consumer\_del\_cb\_set@{ecore\_buffer\_provider\_consumer\_del\_cb\_set}}
\index{ecore\_buffer\_provider\_consumer\_del\_cb\_set@{ecore\_buffer\_provider\_consumer\_del\_cb\_set}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_provider\_consumer\_del\_cb\_set()}{ecore\_buffer\_provider\_consumer\_del\_cb\_set()}}
{\footnotesize\ttfamily EAPI void ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for consumer disconnection events. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to set callbacks on \\
\hline
\mbox{\texttt{ in}}  & {\em func} & The function to call \\
\hline
\mbox{\texttt{ in}}  & {\em data} & A pointer to the user data to store.\\
\hline
\end{DoxyParams}
A call to this function will set a callback on an Ecore\+\_\+\+Buffer\+\_\+\+Provider, causing {\ttfamily func} to be called whenever {\ttfamily provider} is disconnected with consumer. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}\label{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\_buffer\_provider\_buffer\_released\_cb\_set@{ecore\_buffer\_provider\_buffer\_released\_cb\_set}}
\index{ecore\_buffer\_provider\_buffer\_released\_cb\_set@{ecore\_buffer\_provider\_buffer\_released\_cb\_set}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_provider\_buffer\_released\_cb\_set()}{ecore\_buffer\_provider\_buffer\_released\_cb\_set()}}
{\footnotesize\ttfamily EAPI void ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for released buffer events. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to set callbacks on \\
\hline
\mbox{\texttt{ in}}  & {\em func} & The function to call \\
\hline
\mbox{\texttt{ in}}  & {\em data} & A pointer to the user data to store.\\
\hline
\end{DoxyParams}
A call to this function will set a callback on an Ecore\+\_\+\+Buffer\+\_\+\+Provider, causing {\ttfamily func} to be called whenever {\ttfamily provider} has received Ecore\+\_\+\+Buffer released from provider.

You may success dequeue the Ecore\+\_\+\+Buffer after this callback called. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

