\hypertarget{group__Ecore__FB__Group}{\section{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}
\label{group__Ecore__FB__Group}\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
}


Functions used to set up and shut down the Ecore\-\_\-\-Framebuffer functions.  


\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Ecore__FB__Calibrate__Group}{Framebuffer Calibration Functions}
\begin{DoxyCompactList}\small\item\em Functions that calibrate the screen. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Ecore__FB__Group_ga891e523f10745c1999352a0c73a786f8}{\#define {\bfseries E\-V\-\_\-\-C\-N\-T}~(E\-V\-\_\-\-M\-A\-X+1)}\label{group__Ecore__FB__Group_ga891e523f10745c1999352a0c73a786f8}

\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{typedef struct \\*
\-\_\-\-Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device \hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device}}\label{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}

\begin{DoxyCompactList}\small\item\em Input device handler. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__FB__Group_ga0c94b4f178809f8c4ff237759e41c8da}{typedef enum \\*
\hyperlink{group__Ecore__FB__Group_ga226d05e7ffc07e7fb86aa76a95e1d0e8}{\-\_\-\-Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device\-\_\-\-Cap} \hyperlink{group__Ecore__FB__Group_ga0c94b4f178809f8c4ff237759e41c8da}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device\-\_\-\-Cap}}\label{group__Ecore__FB__Group_ga0c94b4f178809f8c4ff237759e41c8da}

\begin{DoxyCompactList}\small\item\em Device capabilities. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group__Ecore__FB__Group_ga226d05e7ffc07e7fb86aa76a95e1d0e8}{\-\_\-\-Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device\-\_\-\-Cap} \{ \\*
{\bfseries E\-C\-O\-R\-E\-\_\-\-F\-B\-\_\-\-I\-N\-P\-U\-T\-\_\-\-D\-E\-V\-I\-C\-E\-\_\-\-C\-A\-P\-\_\-\-N\-O\-N\-E} = 0x00000000, 
\\*
{\bfseries E\-C\-O\-R\-E\-\_\-\-F\-B\-\_\-\-I\-N\-P\-U\-T\-\_\-\-D\-E\-V\-I\-C\-E\-\_\-\-C\-A\-P\-\_\-\-R\-E\-L\-A\-T\-I\-V\-E} = 0x00000001, 
\\*
{\bfseries E\-C\-O\-R\-E\-\_\-\-F\-B\-\_\-\-I\-N\-P\-U\-T\-\_\-\-D\-E\-V\-I\-C\-E\-\_\-\-C\-A\-P\-\_\-\-A\-B\-S\-O\-L\-U\-T\-E} = 0x00000002, 
\\*
{\bfseries E\-C\-O\-R\-E\-\_\-\-F\-B\-\_\-\-I\-N\-P\-U\-T\-\_\-\-D\-E\-V\-I\-C\-E\-\_\-\-C\-A\-P\-\_\-\-K\-E\-Y\-S\-\_\-\-O\-R\-\_\-\-B\-U\-T\-T\-O\-N\-S} = 0x00000004
 \}
\begin{DoxyCompactList}\small\item\em Device capabilities. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Ecore__FB__Group_ga7a2e6367072975dbd32d5c88102b5272}{static void {\bfseries nosigint} (int val)}\label{group__Ecore__FB__Group_ga7a2e6367072975dbd32d5c88102b5272}

\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} int \hyperlink{group__Ecore__FB__Group_gab74cf87e3b0ed43c056add2147244fed}{ecore\-\_\-fb\-\_\-init} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Initialize the Ecore\-\_\-\-Fb library. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} int \hyperlink{group__Ecore__FB__Group_gaefa9ae93cf6163379747349bb8cc82f7}{ecore\-\_\-fb\-\_\-shutdown} (void)
\begin{DoxyCompactList}\small\item\em Shut down the Ecore\-\_\-\-Fb library. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_gad169f77434891ebc69d7d5749bed5af8}{ecore\-\_\-fb\-\_\-size\-\_\-get} (int $\ast$w, int $\ast$h)
\begin{DoxyCompactList}\small\item\em Retrieve the width and height of the current frame buffer in pixels. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__FB__Group_ga7f602e3956f319b97986afe7e05d0bc0}{static void {\bfseries \-\_\-ecore\-\_\-fb\-\_\-size\-\_\-get} (int $\ast$w, int $\ast$h)}\label{group__Ecore__FB__Group_ga7f602e3956f319b97986afe7e05d0bc0}

\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_ga80cc9df0a7c985ffa5104f071a7b90b9}{ecore\-\_\-fb\-\_\-callback\-\_\-gain\-\_\-set} (void($\ast$func)(void $\ast$data), void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set a callback called when a virtual terminal is gained. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_gabf8e732055cf4d366d3000c91cf00cdb}{ecore\-\_\-fb\-\_\-callback\-\_\-lose\-\_\-set} (void($\ast$func)(void $\ast$data), void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set a callback called when a virtual terminal is lost. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$ \hyperlink{group__Ecore__FB__Group_gad63427b3b6a5f5edde226673d6e71f65}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-open} (const char $\ast$dev)
\begin{DoxyCompactList}\small\item\em Open an input device. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_ga5bc9b86d21424f4661fcb3cefb4e0c86}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-close} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Close the given device. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_ga3ba1e8070ac6af46ca45c490c007a83b}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-listen} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} listen)
\begin{DoxyCompactList}\small\item\em Set the listen mode for an input device . \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} const char $\ast$ \hyperlink{group__Ecore__FB__Group_gaa729c994487210bf02cdcb9f60760d32}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-name\-\_\-get} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Retrieve the name of the given device. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} \hyperlink{group__Ecore__FB__Group_ga0c94b4f178809f8c4ff237759e41c8da}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device\-\_\-\-Cap} \hyperlink{group__Ecore__FB__Group_gad81d5c08c3e483ccdb2b19761ad77d5e}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-cap\-\_\-get} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Retrieve the capability of the given device. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_ga043499a88b2aa2a20f63f64505991aab}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-axis\-\_\-size\-\_\-set} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev, int w, int h)
\begin{DoxyCompactList}\small\item\em Set the axis size of the given device. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__FB__Group_ga2cfd70115ae7d326ba71b8e85ad1eac7}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void {\bfseries ecore\-\_\-fb\-\_\-input\-\_\-threshold\-\_\-click\-\_\-set} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev, double threshold)}\label{group__Ecore__FB__Group_ga2cfd70115ae7d326ba71b8e85ad1eac7}

\item 
\hypertarget{group__Ecore__FB__Group_gacd0932ab86621fa2df962dc3d046a1e4}{\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} double {\bfseries ecore\-\_\-fb\-\_\-input\-\_\-threshold\-\_\-click\-\_\-get} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev)}\label{group__Ecore__FB__Group_gacd0932ab86621fa2df962dc3d046a1e4}

\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_gae3c3479e2fa0fdf239afd5e3a2eabbf5}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-window\-\_\-set} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev, void $\ast$window)
\begin{DoxyCompactList}\small\item\em Associates an input device with the given \hyperlink{group__Ecore__Evas__Group}{Ecore\-\_\-\-Evas wrapper/helper set of functions}. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_ga9d9fcdece8e69f7e3798a5ddea7f9403}{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-set} (int xscale, int xtrans, int yscale, int ytrans, int xyswap)
\begin{DoxyCompactList}\small\item\em Calibrates the touschreen using the given parameters. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\-A\-P\-I} void \hyperlink{group__Ecore__FB__Group_gae4aa44af19bec4dcc5c7e66c81e31fef}{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-get} (int $\ast$xscale, int $\ast$xtrans, int $\ast$yscale, int $\ast$ytrans, int $\ast$xyswap)
\begin{DoxyCompactList}\small\item\em Retrieves the calibration parameters of the touchscreen. \end{DoxyCompactList}\item 
void \hyperlink{group__Ecore__FB__Group_ga1dfeb0b21122196a47f2c703735c8f0a}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-set} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev, double threshold)
\begin{DoxyCompactList}\small\item\em Set the threshold of mouse clicks of the given device. \end{DoxyCompactList}\item 
double \hyperlink{group__Ecore__FB__Group_ga5933f22a0ed37d6ed8c1d4e18dd57b78}{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-get} (\hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the threshold of mouse clicks of the given device. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Ecore__FB__Group_ga1c989bbddc1074fa272c41247a911e50}{static sighandler\-\_\-t {\bfseries oldhand} = N\-U\-L\-L}\label{group__Ecore__FB__Group_ga1c989bbddc1074fa272c41247a911e50}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Functions used to set up and shut down the Ecore\-\_\-\-Framebuffer functions. 

\subsection{Function Documentation}
\hypertarget{group__Ecore__FB__Group_gab74cf87e3b0ed43c056add2147244fed}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-init@{ecore\-\_\-fb\-\_\-init}}
\index{ecore\-\_\-fb\-\_\-init@{ecore\-\_\-fb\-\_\-init}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-init}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} int ecore\-\_\-fb\-\_\-init (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gab74cf87e3b0ed43c056add2147244fed}


Initialize the Ecore\-\_\-\-Fb library. 


\begin{DoxyParams}{Parameters}
{\em name} & Device target name. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 or greater on success, 0 on error.
\end{DoxyReturn}
This function sets up all the Ecore\-\_\-\-Fb library. It returns 0 on failure, otherwise it returns the number of times it has already been called.

When Ecore\-\_\-\-Fb is not used anymore, call \hyperlink{group__Ecore__FB__Group_gaefa9ae93cf6163379747349bb8cc82f7}{ecore\-\_\-fb\-\_\-shutdown()} to shut down the Ecore\-\_\-\-Fb library. \hypertarget{group__Ecore__FB__Group_gaefa9ae93cf6163379747349bb8cc82f7}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-shutdown@{ecore\-\_\-fb\-\_\-shutdown}}
\index{ecore\-\_\-fb\-\_\-shutdown@{ecore\-\_\-fb\-\_\-shutdown}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} int ecore\-\_\-fb\-\_\-shutdown (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gaefa9ae93cf6163379747349bb8cc82f7}


Shut down the Ecore\-\_\-\-Fb library. 

\begin{DoxyReturn}{Returns}
0 when the library is completely shut down, 1 or greater otherwise.
\end{DoxyReturn}
This function shuts down the Ecore\-\_\-\-Fb library. It returns 0 when it has been called the same number of times than \hyperlink{group__Ecore__FB__Group_gab74cf87e3b0ed43c056add2147244fed}{ecore\-\_\-fb\-\_\-init()}. \hypertarget{group__Ecore__FB__Group_gad169f77434891ebc69d7d5749bed5af8}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-size\-\_\-get@{ecore\-\_\-fb\-\_\-size\-\_\-get}}
\index{ecore\-\_\-fb\-\_\-size\-\_\-get@{ecore\-\_\-fb\-\_\-size\-\_\-get}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-size\-\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-fb\-\_\-size\-\_\-get (
\begin{DoxyParamCaption}
\item[{int $\ast$}]{w, }
\item[{int $\ast$}]{h}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gad169f77434891ebc69d7d5749bed5af8}


Retrieve the width and height of the current frame buffer in pixels. 


\begin{DoxyParams}{Parameters}
{\em w} & Pointer to an integer in which to store the width. \\
\hline
{\em h} & Pointer to an interge in which to store the height.\\
\hline
\end{DoxyParams}
This function retrieves the size of the current frame buffer in pixels. {\ttfamily w} and {\ttfamily h} can be buffers that will be filled with the corresponding values. If one of them is {\ttfamily N\-U\-L\-L}, nothing will be done for that parameter. \hypertarget{group__Ecore__FB__Group_ga80cc9df0a7c985ffa5104f071a7b90b9}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-callback\-\_\-gain\-\_\-set@{ecore\-\_\-fb\-\_\-callback\-\_\-gain\-\_\-set}}
\index{ecore\-\_\-fb\-\_\-callback\-\_\-gain\-\_\-set@{ecore\-\_\-fb\-\_\-callback\-\_\-gain\-\_\-set}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-callback\-\_\-gain\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-fb\-\_\-callback\-\_\-gain\-\_\-set (
\begin{DoxyParamCaption}
\item[{void($\ast$)(void $\ast$data)}]{func, }
\item[{void $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_ga80cc9df0a7c985ffa5104f071a7b90b9}


Set a callback called when a virtual terminal is gained. 


\begin{DoxyParams}{Parameters}
{\em func} & The callback called when vt is gained. \\
\hline
{\em data} & The data to pass to the callback.\\
\hline
\end{DoxyParams}
This function sets the callback {\ttfamily func} which will be called when a virtual terminal is gained (for example you press Ctrl-\/\-Alt-\/\-F1 to go to vt1 and your app was using vt1). {\ttfamily data} will be pass to {\ttfamily func} if the callback is called. \hypertarget{group__Ecore__FB__Group_gabf8e732055cf4d366d3000c91cf00cdb}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-callback\-\_\-lose\-\_\-set@{ecore\-\_\-fb\-\_\-callback\-\_\-lose\-\_\-set}}
\index{ecore\-\_\-fb\-\_\-callback\-\_\-lose\-\_\-set@{ecore\-\_\-fb\-\_\-callback\-\_\-lose\-\_\-set}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-callback\-\_\-lose\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-fb\-\_\-callback\-\_\-lose\-\_\-set (
\begin{DoxyParamCaption}
\item[{void($\ast$)(void $\ast$data)}]{func, }
\item[{void $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gabf8e732055cf4d366d3000c91cf00cdb}


Set a callback called when a virtual terminal is lost. 


\begin{DoxyParams}{Parameters}
{\em func} & The callback called when vt is lost. \\
\hline
{\em data} & The data to pass to the callback.\\
\hline
\end{DoxyParams}
This function sets the callback {\ttfamily func} which will be called when a virtual terminal is lost (someone wants the vt from you and you want to give up that vt). {\ttfamily data} will be pass to {\ttfamily func} if the callback is called. \hypertarget{group__Ecore__FB__Group_gad63427b3b6a5f5edde226673d6e71f65}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-open@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-open}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-open@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-open}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-open}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$ ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-open (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gad63427b3b6a5f5edde226673d6e71f65}


Open an input device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to open. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The \hyperlink{group__Ecore__FB__Group_ga1d8690825755681ab7b5de3d3403b6e0}{Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} object that has been opened.
\end{DoxyReturn}
This function opens the input device named {\ttfamily dev} and returns the object for it, or returns {\ttfamily N\-U\-L\-L} on failure. 

References eina\-\_\-list\-\_\-append().

\hypertarget{group__Ecore__FB__Group_ga5bc9b86d21424f4661fcb3cefb4e0c86}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-close@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-close}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-close@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-close}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-close}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-close (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_ga5bc9b86d21424f4661fcb3cefb4e0c86}


Close the given device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to close\\
\hline
\end{DoxyParams}
This function closes the device {\ttfamily dev}. If {\ttfamily dev} is {\ttfamily N\-U\-L\-L}, this function does nothing. 

References eina\-\_\-list\-\_\-remove().

\hypertarget{group__Ecore__FB__Group_ga3ba1e8070ac6af46ca45c490c007a83b}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-listen@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-listen}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-listen@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-listen}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-listen}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-listen (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$}]{dev, }
\item[{{\bf Eina\-\_\-\-Bool}}]{listen}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_ga3ba1e8070ac6af46ca45c490c007a83b}


Set the listen mode for an input device . 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to set the mode of. \\
\hline
{\em listen} & {\ttfamily E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E} to disable listening mode, {\ttfamily E\-I\-N\-A\-\_\-\-T\-R\-U\-E} to enable it.\\
\hline
\end{DoxyParams}
This function enables or disables listening on the input device {\ttfamily dev}. If {\ttfamily listen} is {\ttfamily E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E}, listening mode is disabled, if it is {\ttfamily E\-I\-N\-A\-\_\-\-T\-R\-U\-E}, it is enabled. 

References E\-C\-O\-R\-E\-\_\-\-F\-D\-\_\-\-R\-E\-A\-D, and ecore\-\_\-main\-\_\-fd\-\_\-handler\-\_\-add().

\hypertarget{group__Ecore__FB__Group_gaa729c994487210bf02cdcb9f60760d32}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-name\-\_\-get@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-name\-\_\-get}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-name\-\_\-get@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-name\-\_\-get}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-name\-\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}const char $\ast$ ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-name\-\_\-get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gaa729c994487210bf02cdcb9f60760d32}


Retrieve the name of the given device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to get the name from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The name of the device.
\end{DoxyReturn}
This function returns the name of the device {\ttfamily dev}. If {\ttfamily dev} is {\ttfamily N\-U\-L\-L}, this function returns {\ttfamily N\-U\-L\-L}. \hypertarget{group__Ecore__FB__Group_gad81d5c08c3e483ccdb2b19761ad77d5e}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-cap\-\_\-get@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-cap\-\_\-get}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-cap\-\_\-get@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-cap\-\_\-get}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-cap\-\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device\-\_\-\-Cap} ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-cap\-\_\-get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gad81d5c08c3e483ccdb2b19761ad77d5e}


Retrieve the capability of the given device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to get the name from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The capability of the device.
\end{DoxyReturn}
This function returns the capability of the device {\ttfamily dev}. If {\ttfamily dev} is {\ttfamily N\-U\-L\-L}, this function returns E\-C\-O\-R\-E\-\_\-\-F\-B\-\_\-\-I\-N\-P\-U\-T\-\_\-\-D\-E\-V\-I\-C\-E\-\_\-\-C\-A\-P\-\_\-\-N\-O\-N\-E. \hypertarget{group__Ecore__FB__Group_ga043499a88b2aa2a20f63f64505991aab}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-axis\-\_\-size\-\_\-set@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-axis\-\_\-size\-\_\-set}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-axis\-\_\-size\-\_\-set@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-axis\-\_\-size\-\_\-set}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-axis\-\_\-size\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-axis\-\_\-size\-\_\-set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$}]{dev, }
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_ga043499a88b2aa2a20f63f64505991aab}


Set the axis size of the given device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to set the axis size to. \\
\hline
{\em w} & The width of the axis. \\
\hline
{\em h} & The height of the axis.\\
\hline
\end{DoxyParams}
This function sets set the width {\ttfamily w} and height {\ttfamily h} of the axis of device {\ttfamily dev}. If {\ttfamily dev} is a relative input device, a width and height must set for it. If its absolute set the ioctl correctly, if not, unsupported device. \hypertarget{group__Ecore__FB__Group_gae3c3479e2fa0fdf239afd5e3a2eabbf5}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-window\-\_\-set@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-window\-\_\-set}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-window\-\_\-set@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-window\-\_\-set}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-window\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-window\-\_\-set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$}]{dev, }
\item[{void $\ast$}]{window}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gae3c3479e2fa0fdf239afd5e3a2eabbf5}


Associates an input device with the given \hyperlink{group__Ecore__Evas__Group}{Ecore\-\_\-\-Evas wrapper/helper set of functions}. 


\begin{DoxyParams}{Parameters}
{\em dev} & The input being associated with an \hyperlink{group__Ecore__Evas__Group}{Ecore\-\_\-\-Evas wrapper/helper set of functions} (not {\ttfamily N\-U\-L\-L}). \\
\hline
{\em window} & The window which this input is being associated to. {\ttfamily N\-U\-L\-L} will remove any previous association.\\
\hline
\end{DoxyParams}
Events generated by this device will have a pointer to {\ttfamily window}. If this {\ttfamily window} is registered with ecore\-\_\-event\-\_\-window\-\_\-register() or \hyperlink{group__Ecore__Evas__Group_ga9cb57f86b8581f45ce589e64261d0ef4}{ecore\-\_\-evas\-\_\-input\-\_\-event\-\_\-register()}, respective evas events will be delivered by the ecore\-\_\-input\-\_\-evas system. An example can be seen in the following code\-:


\begin{DoxyCode}
Ecore\_Evas *ee = \hyperlink{group__Ecore__Evas__Group_gac7f2cdbcb79635c34317c1183dd04cb0}{ecore\_evas\_new}(NULL, 0, 0, 800, 600, NULL);

\hyperlink{group__Ecore__Evas__Group_ga9cb57f86b8581f45ce589e64261d0ef4}{ecore\_evas\_input\_event\_register}(ee);

device = \hyperlink{group__Ecore__FB__Group_gad63427b3b6a5f5edde226673d6e71f65}{ecore\_fb\_input\_device\_open}(device\_path);
\textcolor{keywordflow}{if} (device)
  \hyperlink{group__Ecore__FB__Group_gae3c3479e2fa0fdf239afd5e3a2eabbf5}{ecore\_fb\_input\_device\_window\_set}(device, ee);
\end{DoxyCode}


On the previous code, all input captured on the mentioned device will be delivered to the {\ttfamily Ecore\-\_\-\-Evas} {\ttfamily ee}.

\begin{DoxySince}{Since}
1.\-1 
\end{DoxySince}
\hypertarget{group__Ecore__FB__Group_ga9d9fcdece8e69f7e3798a5ddea7f9403}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-set@{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-set}}
\index{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-set@{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-set}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-set (
\begin{DoxyParamCaption}
\item[{int}]{xscale, }
\item[{int}]{xtrans, }
\item[{int}]{yscale, }
\item[{int}]{ytrans, }
\item[{int}]{xyswap}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_ga9d9fcdece8e69f7e3798a5ddea7f9403}


Calibrates the touschreen using the given parameters. 


\begin{DoxyParams}{Parameters}
{\em xscale} & X scaling, where 256 = 1.\-0 \\
\hline
{\em xtrans} & X translation. \\
\hline
{\em yscale} & Y scaling. \\
\hline
{\em ytrans} & Y translation. \\
\hline
{\em xyswap} & Swap X \& Y flag. \\
\hline
\end{DoxyParams}
\hypertarget{group__Ecore__FB__Group_gae4aa44af19bec4dcc5c7e66c81e31fef}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-get@{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-get}}
\index{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-get@{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-get}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-fb\-\_\-touch\-\_\-screen\-\_\-calibrate\-\_\-get (
\begin{DoxyParamCaption}
\item[{int $\ast$}]{xscale, }
\item[{int $\ast$}]{xtrans, }
\item[{int $\ast$}]{yscale, }
\item[{int $\ast$}]{ytrans, }
\item[{int $\ast$}]{xyswap}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_gae4aa44af19bec4dcc5c7e66c81e31fef}


Retrieves the calibration parameters of the touchscreen. 


\begin{DoxyParams}{Parameters}
{\em xscale} & Pointer to an integer in which to store the X scaling. Note that 256 = 1.\-0. \\
\hline
{\em xtrans} & Pointer to an integer in which to store the X translation. \\
\hline
{\em yscale} & Pointer to an integer in which to store the Y scaling. \\
\hline
{\em ytrans} & Pointer to an integer in which to store the Y translation. \\
\hline
{\em xyswap} & Pointer to an integer in which to store the Swap X \& Y flag. \\
\hline
\end{DoxyParams}
\hypertarget{group__Ecore__FB__Group_ga1dfeb0b21122196a47f2c703735c8f0a}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-set@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-set}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-set@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-set}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$}]{dev, }
\item[{double}]{threshold}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_ga1dfeb0b21122196a47f2c703735c8f0a}


Set the threshold of mouse clicks of the given device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to set the threshodl mouse click to. \\
\hline
{\em threshold} & The threshold value.\\
\hline
\end{DoxyParams}
This function sets the threshold of mouse clicks of the device {\ttfamily dev} to {\ttfamily threshold}. If {\ttfamily dev} is {\ttfamily N\-U\-L\-L}, this function does nothing. \hypertarget{group__Ecore__FB__Group_ga5933f22a0ed37d6ed8c1d4e18dd57b78}{\index{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}!ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-get@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-get}}
\index{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-get@{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-get}!Ecore_FB - Frame buffer convenience functions.@{Ecore\-\_\-\-F\-B -\/ Frame buffer convenience functions.}}
\subsubsection[{ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}double ecore\-\_\-fb\-\_\-input\-\_\-device\-\_\-threshold\-\_\-click\-\_\-get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Fb\-\_\-\-Input\-\_\-\-Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__FB__Group_ga5933f22a0ed37d6ed8c1d4e18dd57b78}


Get the threshold of mouse clicks of the given device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to set the threshodl mouse click from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The threshold value.
\end{DoxyReturn}
This function returns the threshold of mouse clicks of the device {\ttfamily dev}. If {\ttfamily dev} is {\ttfamily N\-U\-L\-L}, this function returns 0.\-0. 