\hypertarget{group__Emotion__API}{}\section{A\+PI available for manipulating Emotion object.}
\label{group__Emotion__API}\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}


How to create, initialize, manipulate and connect to signals of an Emotion object.  


\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Emotion__Init}{Creation and initialization functions}
\item 
\hyperlink{group__Emotion__Audio}{Audio control functions}
\item 
\hyperlink{group__Emotion__Video}{Video control functions}
\item 
\hyperlink{group__Emotion__Visualization}{Visualization control functions}
\item 
\hyperlink{group__Emotion__Info}{Miscellaneous information retrieval functions}
\item 
\hyperlink{group__Emotion__Ressource}{Video ressource management}
\item 
\hyperlink{group__Emotion__Play}{Play control functions}
\item 
\hyperlink{group__Emotion__Webcam}{A\+P\+I available for accessing webcam}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Emotion__API_gaab2660883f5966ba24784ddd3e78138a}\label{group__Emotion__API_gaab2660883f5966ba24784ddd3e78138a}} 
typedef struct \+\_\+\+Emotion\+\_\+\+Webcam \hyperlink{group__Emotion__API_gaab2660883f5966ba24784ddd3e78138a}{Emotion\+\_\+\+Webcam}
\begin{DoxyCompactList}\small\item\em Webcam description. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Emotion__API_gae8eedbe4d47fca6a35541809459089d2}{emotion\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initialise Emotion library. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Emotion__API_ga0f88b66a386a0f2a01abca93b7684b59}{emotion\+\_\+shutdown} (void)
\begin{DoxyCompactList}\small\item\em Shutdown Emotion library. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Emotion__API_ga93e2544b31553286858384ffad3d1f0f}\label{group__Emotion__API_ga93e2544b31553286858384ffad3d1f0f}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries emotion\+\_\+object\+\_\+video\+\_\+handled\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga81d9ef647d15dbbd076fc7897b1b92d4}\label{group__Emotion__API_ga81d9ef647d15dbbd076fc7897b1b92d4}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries emotion\+\_\+object\+\_\+audio\+\_\+handled\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Emotion__API_gad85b8fe5097699858378775f37c34ee0}{emotion\+\_\+object\+\_\+event\+\_\+simple\+\_\+send} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, Emotion\+\_\+\+Event ev)
\begin{DoxyCompactList}\small\item\em Send an Emotion Event to an Evas object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Emotion__API_gaeb22f18c8762a924a7840f8a9af381f9}\label{group__Emotion__API_gaeb22f18c8762a924a7840f8a9af381f9}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+audio\+\_\+channel\+\_\+count} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_gaaea729acf6feb9dfe2b0e920c936e95b}\label{group__Emotion__API_gaaea729acf6feb9dfe2b0e920c936e95b}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} const char $\ast$ {\bfseries emotion\+\_\+object\+\_\+audio\+\_\+channel\+\_\+name\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, int channel)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga40d4ccf82271f12c4fc678283ba428e4}\label{group__Emotion__API_ga40d4ccf82271f12c4fc678283ba428e4}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void {\bfseries emotion\+\_\+object\+\_\+audio\+\_\+channel\+\_\+set} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, int channel)
\item 
\mbox{\Hypertarget{group__Emotion__API_gae1d7be0402efa5982afb9125fe828584}\label{group__Emotion__API_gae1d7be0402efa5982afb9125fe828584}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+audio\+\_\+channel\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga3998ea7f64763b31d0819de45d85996e}\label{group__Emotion__API_ga3998ea7f64763b31d0819de45d85996e}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void {\bfseries emotion\+\_\+object\+\_\+spu\+\_\+mute\+\_\+set} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} mute)
\item 
\mbox{\Hypertarget{group__Emotion__API_gaacc9b2065b5537ed0e97475fd6f0c8b2}\label{group__Emotion__API_gaacc9b2065b5537ed0e97475fd6f0c8b2}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries emotion\+\_\+object\+\_\+spu\+\_\+mute\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_gacf4d1cf364dfab7c3b76a1f5282c841f}\label{group__Emotion__API_gacf4d1cf364dfab7c3b76a1f5282c841f}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+spu\+\_\+channel\+\_\+count} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga5cee39f035d678b79545c41c6bfeea24}\label{group__Emotion__API_ga5cee39f035d678b79545c41c6bfeea24}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} const char $\ast$ {\bfseries emotion\+\_\+object\+\_\+spu\+\_\+channel\+\_\+name\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, int channel)
\item 
\mbox{\Hypertarget{group__Emotion__API_gaa81ac81896895a0857349aaeaf108c49}\label{group__Emotion__API_gaa81ac81896895a0857349aaeaf108c49}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void {\bfseries emotion\+\_\+object\+\_\+spu\+\_\+channel\+\_\+set} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, int channel)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga2508bf542c0067b86276aea4a242aadf}\label{group__Emotion__API_ga2508bf542c0067b86276aea4a242aadf}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+spu\+\_\+channel\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga6cab5573343cab4c0b566dd64cf10436}\label{group__Emotion__API_ga6cab5573343cab4c0b566dd64cf10436}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+chapter\+\_\+count} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga72fa0266839d386125779efbb9b7d5be}\label{group__Emotion__API_ga72fa0266839d386125779efbb9b7d5be}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void {\bfseries emotion\+\_\+object\+\_\+chapter\+\_\+set} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, int chapter)
\item 
\mbox{\Hypertarget{group__Emotion__API_gad4e32b2f99613d8d79cb4d7fd9452396}\label{group__Emotion__API_gad4e32b2f99613d8d79cb4d7fd9452396}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+chapter\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga666456ed700f228403fc9b27c5510b3c}\label{group__Emotion__API_ga666456ed700f228403fc9b27c5510b3c}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} const char $\ast$ {\bfseries emotion\+\_\+object\+\_\+chapter\+\_\+name\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, int chapter)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga19aad4a4ae4f18d28039fa9172bac6a8}\label{group__Emotion__API_ga19aad4a4ae4f18d28039fa9172bac6a8}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void {\bfseries emotion\+\_\+object\+\_\+eject} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga335c7939f9bc4d3ff81cc88be0620ebb}\label{group__Emotion__API_ga335c7939f9bc4d3ff81cc88be0620ebb}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} const char $\ast$ {\bfseries emotion\+\_\+object\+\_\+ref\+\_\+file\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga913845825f624ca3c7f475bdaba939f9}\label{group__Emotion__API_ga913845825f624ca3c7f475bdaba939f9}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+ref\+\_\+num\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga26cabff0dd2440877ebd053dfc107dc9}\label{group__Emotion__API_ga26cabff0dd2440877ebd053dfc107dc9}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+spu\+\_\+button\+\_\+count\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\mbox{\Hypertarget{group__Emotion__API_ga0492a89e92e603db4e2a9b73fd9f92f3}\label{group__Emotion__API_ga0492a89e92e603db4e2a9b73fd9f92f3}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int {\bfseries emotion\+\_\+object\+\_\+spu\+\_\+button\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Emotion__API_gab937433c1b08443af347a4fc473ff0a7}{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+fast\+\_\+get} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Do we have a chance to play that file. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Emotion__API_gaed42a313945cffb6866976c455f2cabf}{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+get} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Do we have a chance to play that file. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$ \hyperlink{group__Emotion__API_gafc6b0bfe6e0bf2352074ac0f5ed36f1f}{emotion\+\_\+object\+\_\+image\+\_\+get} (const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the actual image object that contains the pixels of the video stream. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Emotion__API_ga6eb58b506e3e5f14fc6cbe61d24d7f94}\label{group__Emotion__API_ga6eb58b506e3e5f14fc6cbe61d24d7f94}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int \hyperlink{group__Emotion__API_ga6eb58b506e3e5f14fc6cbe61d24d7f94}{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+U\+P\+D\+A\+TE}
\begin{DoxyCompactList}\small\item\em Ecore\+\_\+\+Event triggered when a new webcam is plugged or unplugged. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int \hyperlink{group__Emotion__API_ga4b7f5fa5df8dfe5eaeab4f5417d3f381}{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+A\+DD}
\begin{DoxyCompactList}\small\item\em Ecore\+\_\+\+Event triggered when a new webcam is plugged in. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int \hyperlink{group__Emotion__API_gae2aabbe13e56932b957d0d89e37a6164}{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+D\+EL}
\begin{DoxyCompactList}\small\item\em Ecore\+\_\+\+Event triggered when a webcam is unplugged. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
How to create, initialize, manipulate and connect to signals of an Emotion object. 

Emotion provides an Evas smart object that allows to play, control and display a video or audio file. The A\+PI is synchronous but not everything happens immediately. There are also some signals to report changed states.

Basically, once the object is created and initialized, a file will be set to it, and then it can be resized, moved, and controlled by other Evas object functions.

However, the decoding of the music and video occurs not in the Ecore main loop, but usually in another thread (this depends on the module being used). The synchronization between this other thread and the main loop not visible to the end user of the library. The user can just register callbacks to the available signals to receive information about the changed states, and can call other functions from the A\+PI to request more changes on the current loaded file.

There will be a delay between an A\+PI being called and it being really executed, since this request will be done in the main thread, and it needs to be sent to the decoding thread. For this reason, always call functions like \hyperlink{group__Emotion__Video_ga43910636929c5488347a022b9305b029}{emotion\+\_\+object\+\_\+size\+\_\+get()} or emotion\+\_\+object\+\_\+length\+\_\+get() after some signal being sent, like \char`\"{}playback\+\_\+started\char`\"{} or \char`\"{}open\+\_\+done\char`\"{}. \hyperlink{emotion_signals_example_8c-example}{This example demonstrates this behavior}.\hypertarget{group__Emotion__API_signals}{}\subsection{Available signals}\label{group__Emotion__API_signals}
The Evas\+\_\+\+Object returned by \hyperlink{group__Emotion__Init_ga9b89c712866a0ae77d4cdc6c676e6c01}{emotion\+\_\+object\+\_\+add()} has a number of signals that can be listened to using evas\textquotesingle{} smart callbacks mechanism. All signals have N\+U\+LL as event info. The following is a list of interesting signals\+: \begin{DoxyItemize}
\item \char`\"{}playback\+\_\+started\char`\"{} -\/ Emitted when the playback starts \item \char`\"{}playback\+\_\+finished\char`\"{} -\/ Emitted when the playback finishes \item \char`\"{}frame\+\_\+decode\char`\"{} -\/ Emitted every time a frame is decoded \item \char`\"{}open\+\_\+done\char`\"{} -\/ Emitted when the media file is opened \item \char`\"{}position\+\_\+update\char`\"{} -\/ Emitted when emotion\+\_\+object\+\_\+position\+\_\+set is called \item \char`\"{}decode\+\_\+stop\char`\"{} -\/ Emitted after the last frame is decoded\end{DoxyItemize}
\hypertarget{group__Emotion__API_Examples}{}\subsection{Examples}\label{group__Emotion__API_Examples}
The following examples exemplify the emotion usage. There\textquotesingle{}s also the emotion\+\_\+test binary that is distributed with this library and cover the entire A\+PI, but since it is too long and repetitive to be explained, its code is just displayed as another example.

\begin{DoxyItemize}
\item \hyperlink{emotion_basic_example_c}{Emotion -\/ Basic library usage} \item \hyperlink{emotion_signals_example_8c-example}{Emotion signals} \item \hyperlink{emotion_test_main_8c-example}{emotion\+\_\+test -\/ full A\+PI usage} \end{DoxyItemize}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__Emotion__API_gae8eedbe4d47fca6a35541809459089d2}\label{group__Emotion__API_gae8eedbe4d47fca6a35541809459089d2}} 
\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}!emotion\+\_\+init@{emotion\+\_\+init}}
\index{emotion\+\_\+init@{emotion\+\_\+init}!A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}
\subsubsection{\texorpdfstring{emotion\+\_\+init()}{emotion\_init()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} emotion\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Initialise Emotion library. 

Initialise needed libraries like eina ecore eet Initialise needed modules like webcam \mbox{\Hypertarget{group__Emotion__API_ga0f88b66a386a0f2a01abca93b7684b59}\label{group__Emotion__API_ga0f88b66a386a0f2a01abca93b7684b59}} 
\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}!emotion\+\_\+shutdown@{emotion\+\_\+shutdown}}
\index{emotion\+\_\+shutdown@{emotion\+\_\+shutdown}!A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}
\subsubsection{\texorpdfstring{emotion\+\_\+shutdown()}{emotion\_shutdown()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} emotion\+\_\+shutdown (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Shutdown Emotion library. 

Proper shutdown of all loaded modules and initialised libraries. 

References ecore\+\_\+main\+\_\+loop\+\_\+iterate(), ecore\+\_\+shutdown(), ecore\+\_\+time\+\_\+get(), eet\+\_\+close(), eet\+\_\+shutdown(), E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, eina\+\_\+lock\+\_\+free(), eina\+\_\+lock\+\_\+release(), eina\+\_\+lock\+\_\+take(), eina\+\_\+log\+\_\+domain\+\_\+unregister(), eina\+\_\+prefix\+\_\+free(), eina\+\_\+shutdown(), E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.

\mbox{\Hypertarget{group__Emotion__API_gad85b8fe5097699858378775f37c34ee0}\label{group__Emotion__API_gad85b8fe5097699858378775f37c34ee0}} 
\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}!emotion\+\_\+object\+\_\+event\+\_\+simple\+\_\+send@{emotion\+\_\+object\+\_\+event\+\_\+simple\+\_\+send}}
\index{emotion\+\_\+object\+\_\+event\+\_\+simple\+\_\+send@{emotion\+\_\+object\+\_\+event\+\_\+simple\+\_\+send}!A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}
\subsubsection{\texorpdfstring{emotion\+\_\+object\+\_\+event\+\_\+simple\+\_\+send()}{emotion\_object\_event\_simple\_send()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void emotion\+\_\+object\+\_\+event\+\_\+simple\+\_\+send (\begin{DoxyParamCaption}\item[{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$}]{obj,  }\item[{Emotion\+\_\+\+Event}]{ev }\end{DoxyParamCaption})}



Send an Emotion Event to an Evas object. 


\begin{DoxyParams}{Parameters}
{\em obj} & The object target of the event. \\
\hline
{\em ev} & The emotion event.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
Emotion\+\_\+\+Event 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Emotion__API_gab937433c1b08443af347a4fc473ff0a7}\label{group__Emotion__API_gab937433c1b08443af347a4fc473ff0a7}} 
\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}!emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+fast\+\_\+get@{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+fast\+\_\+get}}
\index{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+fast\+\_\+get@{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+fast\+\_\+get}!A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}
\subsubsection{\texorpdfstring{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+fast\+\_\+get()}{emotion\_object\_extension\_may\_play\_fast\_get()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+fast\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file }\end{DoxyParamCaption})}



Do we have a chance to play that file. 


\begin{DoxyParams}{Parameters}
{\em file} & A stringshared filename that we want to know if Emotion can play.\\
\hline
\end{DoxyParams}
This just actually look at the extension of the file, it doesn\textquotesingle{}t check the mime-\/type nor if the file is actually sane. So this is just an hint for your application.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Emotion__API_gaed42a313945cffb6866976c455f2cabf}{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+get()} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Emotion__API_gaed42a313945cffb6866976c455f2cabf}\label{group__Emotion__API_gaed42a313945cffb6866976c455f2cabf}} 
\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}!emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+get@{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+get}}
\index{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+get@{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+get}!A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}
\subsubsection{\texorpdfstring{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+get()}{emotion\_object\_extension\_may\_play\_get()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file }\end{DoxyParamCaption})}



Do we have a chance to play that file. 


\begin{DoxyParams}{Parameters}
{\em file} & A filename that we want to know if Emotion can play.\\
\hline
\end{DoxyParams}
This just actually look at the extension of the file, it doesn\textquotesingle{}t check the mime-\/type nor if the file is actually sane. So this is just an hint for your application.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Emotion__API_gab937433c1b08443af347a4fc473ff0a7}{emotion\+\_\+object\+\_\+extension\+\_\+may\+\_\+play\+\_\+fast\+\_\+get()} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Emotion__API_gafc6b0bfe6e0bf2352074ac0f5ed36f1f}\label{group__Emotion__API_gafc6b0bfe6e0bf2352074ac0f5ed36f1f}} 
\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}!emotion\+\_\+object\+\_\+image\+\_\+get@{emotion\+\_\+object\+\_\+image\+\_\+get}}
\index{emotion\+\_\+object\+\_\+image\+\_\+get@{emotion\+\_\+object\+\_\+image\+\_\+get}!A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}
\subsubsection{\texorpdfstring{emotion\+\_\+object\+\_\+image\+\_\+get()}{emotion\_object\_image\_get()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}$\ast$ emotion\+\_\+object\+\_\+image\+\_\+get (\begin{DoxyParamCaption}\item[{const \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$}]{obj }\end{DoxyParamCaption})}



Get the actual image object that contains the pixels of the video stream. 


\begin{DoxyParams}{Parameters}
{\em obj} & The object which the query is being ran on.\\
\hline
\end{DoxyParams}
This function is useful when you want to get a direct access to the pixels.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Emotion__API_gafc6b0bfe6e0bf2352074ac0f5ed36f1f}{emotion\+\_\+object\+\_\+image\+\_\+get()} 
\end{DoxySeeAlso}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.



\subsection{Variable Documentation}
\mbox{\Hypertarget{group__Emotion__API_ga4b7f5fa5df8dfe5eaeab4f5417d3f381}\label{group__Emotion__API_ga4b7f5fa5df8dfe5eaeab4f5417d3f381}} 
\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}!E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+A\+DD@{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+A\+DD}}
\index{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+A\+DD@{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+A\+DD}!A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}
\subsubsection{\texorpdfstring{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+A\+DD}{EMOTION\_WEBCAM\_ADD}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+A\+DD}



Ecore\+\_\+\+Event triggered when a new webcam is plugged in. 

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\mbox{\Hypertarget{group__Emotion__API_gae2aabbe13e56932b957d0d89e37a6164}\label{group__Emotion__API_gae2aabbe13e56932b957d0d89e37a6164}} 
\index{A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}!E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+D\+EL@{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+D\+EL}}
\index{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+D\+EL@{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+D\+EL}!A\+P\+I available for manipulating Emotion object.@{A\+P\+I available for manipulating Emotion object.}}
\subsubsection{\texorpdfstring{E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+D\+EL}{EMOTION\_WEBCAM\_DEL}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int E\+M\+O\+T\+I\+O\+N\+\_\+\+W\+E\+B\+C\+A\+M\+\_\+\+D\+EL}



Ecore\+\_\+\+Event triggered when a webcam is unplugged. 

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