\hypertarget{group__driver__api}{}\section{User-\/space driver A\+PI}
\label{group__driver__api}\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}}


User-\/space driver A\+PI.  


\subsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \hyperlink{driver_8h}{driver.\+h}
\begin{DoxyCompactList}\small\item\em Interface to the userspace drivers. \end{DoxyCompactList}\item 
file \hyperlink{ir__remote_8h}{ir\+\_\+remote.\+h}
\begin{DoxyCompactList}\small\item\em Describes and decodes the signals from IR remotes. \end{DoxyCompactList}\item 
file \hyperlink{lirc__config_8h}{lirc\+\_\+config.\+h}
\begin{DoxyCompactList}\small\item\em Local configuration constants not managed by autotools. \end{DoxyCompactList}\item 
file \hyperlink{lirc__log_8h}{lirc\+\_\+log.\+h}
\begin{DoxyCompactList}\small\item\em Logging functionality. \end{DoxyCompactList}\item 
file \hyperlink{receive_8h}{receive.\+h}
\begin{DoxyCompactList}\small\item\em Functions that decode IR codes. \end{DoxyCompactList}\item 
file \hyperlink{serial_8h}{serial.\+h}
\begin{DoxyCompactList}\small\item\em Common routines for hw that uses the standard serial port driver. \end{DoxyCompactList}\item 
file \hyperlink{transmit_8h}{transmit.\+h}
\begin{DoxyCompactList}\small\item\em Functions that prepare IR codes for transmitting. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structoption__t}{option\+\_\+t}
\item 
struct \hyperlink{structdriver}{driver}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9}{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED}~1
\item 
\#define \hyperlink{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9}{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED}~1
\item 
\#define \hyperlink{group__driver__api_ga3637dcda1fb5508e6f51a39b0cc048a7}{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+TE}~1
\item 
\#define \hyperlink{group__driver__api_ga2d4b7ac43bc60cf3d930431f79b2fb89}{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+CE}~2
\item 
\#define \hyperlink{group__driver__api_ga1033feec74cbc16e939d713be2c5b8e0}{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+ON}~3
\item 
\#define \hyperlink{group__driver__api_gae1c0549ac24798610a08a38f98337dd2}{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+R\+A\+W\+\_\+\+C\+O\+D\+E\+L\+E\+N\+G\+TH}~4
\item 
\#define \hyperlink{group__driver__api_ga83be4d39fe52e903ae43627ecd4425c9}{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+D\+E\+V\+I\+C\+ES}~5
\item 
\#define \hyperlink{group__driver__api_gaabe20231530e93fa8280bc7055bc49e0}{D\+R\+V\+C\+T\+L\+\_\+\+F\+R\+E\+E\+\_\+\+D\+E\+V\+I\+C\+ES}~6
\item 
\#define \hyperlink{group__driver__api_gad037f706938a331377bb914f75e1a875}{D\+R\+V\+C\+T\+L\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+D\+E\+C\+O\+DE}~7
\item 
\#define \hyperlink{group__driver__api_ga2628a2556297a773cddc0848db200d1a}{D\+R\+V\+C\+T\+L\+\_\+\+M\+AX}~128
\item 
\#define \hyperlink{group__driver__api_gae323c069918a6b718b3bafd6abbef2a2}{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+TE}~2
\item 
\#define \hyperlink{group__driver__api_gae98bd204d31330f5e862817faadf7f85}{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+ON}~3
\item 
\#define \hyperlink{group__driver__api_ga548694fee71123534ede5e27aa4e7e1f}{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+UE}~4
\item 
\#define \hyperlink{group__driver__api_ga69de338dd3e47a8275e7821c54d3523e}{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+UT}~100000
\item 
\hypertarget{group__driver__api_ga6bbd2d040178aaadc1b66044f2f282b8}{}\label{group__driver__api_ga6bbd2d040178aaadc1b66044f2f282b8} 
\#define {\bfseries W\+B\+U\+F\+\_\+\+S\+I\+ZE}~256
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{group__driver__api_gac0f7baaef9fe524365c16022001804d3}{default\+\_\+open} (const char $\ast$path)
\item 
int \hyperlink{group__driver__api_ga683dd53e7e5d62746c1a645fe133daf0}{default\+\_\+close} (void)
\item 
int \hyperlink{group__driver__api_ga96e3243bc45ff488f6c55dde5e9b377b}{default\+\_\+drvctl} (unsigned int cmd, void $\ast$arg)
\item 
void \hyperlink{group__driver__api_ga6e377ea8a639984e713db080d0909d93}{glob\+\_\+t\+\_\+init} (glob\+\_\+t $\ast$glob)
\item 
void \hyperlink{group__driver__api_ga802fd321399ff103cc2702beec67e29f}{glob\+\_\+t\+\_\+free} (glob\+\_\+t $\ast$glob)
\item 
void \hyperlink{group__driver__api_gab161fca4b5f718227912839380529892}{glob\+\_\+t\+\_\+add\+\_\+path} (glob\+\_\+t $\ast$glob, const char $\ast$path)
\item 
int \hyperlink{group__driver__api_gaae1b223d2bd3a0d0be6e77019c9a976c}{drv\+\_\+handle\+\_\+options} (const char $\ast$options)
\item 
struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$ \hyperlink{group__driver__api_gac288bce2140d2066a3990a1b2e3317c5}{ncode\+\_\+dup} (struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$ncode)
\item 
void \hyperlink{group__driver__api_ga4477860d1f604548e032694de8f69c16}{ncode\+\_\+free} (struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$ncode)
\item 
const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$ \hyperlink{group__driver__api_gaadf09b8ef4b71be00f8e53a39f70d315}{is\+\_\+in\+\_\+remotes} (const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remotes, const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remote)
\item 
struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$ \hyperlink{group__driver__api_ga251129673cd73c5f869bb53c6c38a88f}{get\+\_\+ir\+\_\+remote} (const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remotes, const char $\ast$name)
\item 
void \hyperlink{group__driver__api_ga19bab2135ca2b7f68dc0b2f8cde9863f}{get\+\_\+frequency\+\_\+range} (const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remotes, unsigned int $\ast$min\+\_\+freq, unsigned int $\ast$max\+\_\+freq)
\item 
void \hyperlink{group__driver__api_ga1a1b6c86d0309f25ab5806a5f861692c}{get\+\_\+filter\+\_\+parameters} (const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remotes, lirc\+\_\+t $\ast$max\+\_\+gap\+\_\+lengthp, lirc\+\_\+t $\ast$min\+\_\+pulse\+\_\+lengthp, lirc\+\_\+t $\ast$min\+\_\+space\+\_\+lengthp, lirc\+\_\+t $\ast$max\+\_\+pulse\+\_\+lengthp, lirc\+\_\+t $\ast$max\+\_\+space\+\_\+lengthp)
\item 
int \hyperlink{group__driver__api_gabac8048f405d0a78fcc01fa9ef1132df}{map\+\_\+code} (const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remote, struct \hyperlink{structdecode__ctx__t}{decode\+\_\+ctx\+\_\+t} $\ast$ctx, int pre\+\_\+bits, \hyperlink{ir__remote__types_8h_af5395595bc25a70e974255b83d97db06}{ir\+\_\+code} pre, int bits, \hyperlink{ir__remote__types_8h_af5395595bc25a70e974255b83d97db06}{ir\+\_\+code} code, int post\+\_\+bits, \hyperlink{ir__remote__types_8h_af5395595bc25a70e974255b83d97db06}{ir\+\_\+code} post)
\item 
void \hyperlink{group__driver__api_gac691a06cc99d8c914e2c7451407f245a}{map\+\_\+gap} (const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remote, struct \hyperlink{structdecode__ctx__t}{decode\+\_\+ctx\+\_\+t} $\ast$ctx, const struct timeval $\ast$start, const struct timeval $\ast$last, lirc\+\_\+t signal\+\_\+length)
\item 
struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$ \hyperlink{group__driver__api_gafaa7cb5587a3c58e3e825411b966738a}{get\+\_\+code\+\_\+by\+\_\+name} (const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remote, const char $\ast$name)
\item 
int \hyperlink{group__driver__api_ga04461705747fd8521d369ee96ed762fe}{write\+\_\+message} (char $\ast$buffer, size\+\_\+t size, const char $\ast$remote\+\_\+name, const char $\ast$button\+\_\+name, const char $\ast$button\+\_\+suffix, \hyperlink{ir__remote__types_8h_af5395595bc25a70e974255b83d97db06}{ir\+\_\+code} code, int reps)
\item 
char $\ast$ \hyperlink{group__driver__api_gae334c37e486ce414abf272d4850df6c4}{decode\+\_\+all} (struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remotes)
\item 
int \hyperlink{group__driver__api_ga51d2eb6ccf92c9210c69cd727b712bae}{send\+\_\+ir\+\_\+ncode} (struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remote, struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$code, int delay)
\item 
void \hyperlink{group__driver__api_ga8d5bc121b8582a690000bc8befe13080}{ir\+\_\+remote\+\_\+init} (int use\+\_\+dyncodes)
\item 
const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$ \hyperlink{group__driver__api_gaf2e0b982088d231116dea399afa8597f}{get\+\_\+decoding} (void)
\item 
void \hyperlink{group__driver__api_gaa491fcec2fc35512ff2964dc208edcca}{rec\+\_\+set\+\_\+update\+\_\+mode} (int mode)
\item 
void \hyperlink{group__driver__api_ga0055fe8b9e15df2483fac31e79f8276a}{rec\+\_\+buffer\+\_\+set\+\_\+logfile} (F\+I\+LE $\ast$f)
\item 
int \hyperlink{group__driver__api_gadcb46dccea6a4f82bebda46e51945819}{waitfordata} (\+\_\+\+\_\+u32 maxusec)
\item 
void \hyperlink{group__driver__api_gabc294def4957afc161909b72e1348835}{rec\+\_\+buffer\+\_\+init} (void)
\item 
int \hyperlink{group__driver__api_gae96f4130a6ebac0570094820b39ae11c}{rec\+\_\+buffer\+\_\+clear} (void)
\item 
int \hyperlink{group__driver__api_gad89c025d8cc9f77d9d5597da2e420917}{receive\+\_\+decode} (struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remote, struct \hyperlink{structdecode__ctx__t}{decode\+\_\+ctx\+\_\+t} $\ast$ctx)
\item 
void \hyperlink{group__driver__api_ga3367c6a318967cb750f67d95d43d3102}{rec\+\_\+buffer\+\_\+rewind} (void)
\item 
void \hyperlink{group__driver__api_ga74266da334332e934158389894ddb7c4}{rec\+\_\+buffer\+\_\+reset\+\_\+wptr} (void)
\item 
int \hyperlink{group__driver__api_ga2cad04de039521ac1b0c14c42ba1b43c}{tty\+\_\+reset} (int fd)
\item 
int \hyperlink{group__driver__api_gafcab1b890be0e097640ff31f866ab94c}{tty\+\_\+setrtscts} (int fd, int enable)
\item 
int \hyperlink{group__driver__api_ga7c9acb60305177b4498553782eb4fa3c}{tty\+\_\+setdtr} (int fd, int enable)
\item 
int \hyperlink{group__driver__api_ga44b60aca788c92e31b61298f534d2b2c}{tty\+\_\+setbaud} (int fd, int baud)
\item 
int \hyperlink{group__driver__api_gaffeab51b57e1e8eaca6fc502f99e6c29}{tty\+\_\+setcsize} (int fd, int csize)
\item 
int \hyperlink{group__driver__api_gaa2128e719d5174e1210fcc8c532c82bd}{tty\+\_\+create\+\_\+lock} (const char $\ast$name)
\item 
int \hyperlink{group__driver__api_ga94d6aff1542d08fcf32b5acdc735090e}{tty\+\_\+delete\+\_\+lock} (void)
\item 
int \hyperlink{group__driver__api_ga17fb600e510ec6919659e7fab74c3de6}{tty\+\_\+set} (int fd, int rts, int dtr)
\item 
int \hyperlink{group__driver__api_gaa680ad6c63aaac541fc85d61b73a46d1}{tty\+\_\+clear} (int fd, int rts, int dtr)
\item 
int \hyperlink{group__driver__api_ga03233443b447b2de3a81b77a317663c4}{tty\+\_\+write} (int fd, char byte)
\item 
int \hyperlink{group__driver__api_ga76ea8c360d88f108399c5926b3bff16d}{tty\+\_\+read} (int fd, char $\ast$byte)
\item 
int \hyperlink{group__driver__api_ga855e6cb4247f8359643a184a912d754d}{tty\+\_\+write\+\_\+echo} (int fd, char byte)
\item 
void \hyperlink{group__driver__api_ga85a7e2c6a62aab93aaa6453dea381112}{send\+\_\+buffer\+\_\+init} (void)
\item 
int \hyperlink{group__driver__api_ga0d43b932c9b39d14e675dbd9507f3997}{send\+\_\+buffer\+\_\+put} (struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$remote, struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$code)
\item 
int \hyperlink{group__driver__api_gae40fd0e37871cd30a43b3b2bc3c4336c}{send\+\_\+buffer\+\_\+length} (void)
\item 
const lirc\+\_\+t $\ast$ \hyperlink{group__driver__api_ga4871fa572fb913f068f0e3c75d3fdc41}{send\+\_\+buffer\+\_\+data} (void)
\item 
lirc\+\_\+t \hyperlink{group__driver__api_ga55e0351346ec0cb553a7f1632db99c57}{send\+\_\+buffer\+\_\+sum} (void)
\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$ \hyperlink{group__driver__api_ga474c489cabdaae4546ca0ac26ec9cd87}{last\+\_\+remote}
\item 
struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$ \hyperlink{group__driver__api_ga7bc28a85da7d0ccf4466708918f01dc4}{repeat\+\_\+remote}
\item 
struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$ \hyperlink{group__driver__api_ga2da0e0383db556d0e1ba7261763815c5}{repeat\+\_\+code}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
User-\/space driver A\+PI. 

Basic interface for user-\/space drivers, aimed to be included in each driver. It provides basic functionality for sending, receiving and logging. 

\subsection{Macro Definition Documentation}
\hypertarget{group__driver__api_gae98bd204d31330f5e862817faadf7f85}{}\label{group__driver__api_gae98bd204d31330f5e862817faadf7f85} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+ON@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+ON}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+ON@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+ON}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+ON}{DRV\_ERR\_BAD\_OPTION}}
{\footnotesize\ttfamily \#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+ON~3}

drvctl error\+: 

Definition at line 118 of file driver.\+h.

\hypertarget{group__driver__api_gae323c069918a6b718b3bafd6abbef2a2}{}\label{group__driver__api_gae323c069918a6b718b3bafd6abbef2a2} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+TE@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+TE}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+TE@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+TE}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+TE}{DRV\_ERR\_BAD\_STATE}}
{\footnotesize\ttfamily \#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+TE~2}

drvctl error\+: 

Definition at line 115 of file driver.\+h.

\hypertarget{group__driver__api_ga548694fee71123534ede5e27aa4e7e1f}{}\label{group__driver__api_ga548694fee71123534ede5e27aa4e7e1f} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+UE@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+UE}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+UE@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+UE}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+UE}{DRV\_ERR\_BAD\_VALUE}}
{\footnotesize\ttfamily \#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+UE~4}

drvctl error\+: 

Definition at line 121 of file driver.\+h.

\hypertarget{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9}{}\label{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED}{DRV\_ERR\_NOT\_IMPLEMENTED}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED~1}

drvctl definitions

drvctl error. 

Definition at line 112 of file driver.\+h.

\hypertarget{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9}{}\label{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED}{DRV\_ERR\_NOT\_IMPLEMENTED}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED~1}

drvctl definitions

drvctl error. 

Definition at line 112 of file driver.\+h.

\hypertarget{group__driver__api_gaabe20231530e93fa8280bc7055bc49e0}{}\label{group__driver__api_gaabe20231530e93fa8280bc7055bc49e0} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+C\+T\+L\+\_\+\+F\+R\+E\+E\+\_\+\+D\+E\+V\+I\+C\+ES@{D\+R\+V\+C\+T\+L\+\_\+\+F\+R\+E\+E\+\_\+\+D\+E\+V\+I\+C\+ES}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+F\+R\+E\+E\+\_\+\+D\+E\+V\+I\+C\+ES@{D\+R\+V\+C\+T\+L\+\_\+\+F\+R\+E\+E\+\_\+\+D\+E\+V\+I\+C\+ES}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+C\+T\+L\+\_\+\+F\+R\+E\+E\+\_\+\+D\+E\+V\+I\+C\+ES}{DRVCTL\_FREE\_DEVICES}}
{\footnotesize\ttfamily \#define D\+R\+V\+C\+T\+L\+\_\+\+F\+R\+E\+E\+\_\+\+D\+E\+V\+I\+C\+ES~6}

drvctl cmd\+: Free memory in argument obtained using D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+D\+E\+V\+I\+C\+ES. 

Definition at line 99 of file driver.\+h.

\hypertarget{group__driver__api_ga83be4d39fe52e903ae43627ecd4425c9}{}\label{group__driver__api_ga83be4d39fe52e903ae43627ecd4425c9} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+D\+E\+V\+I\+C\+ES@{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+D\+E\+V\+I\+C\+ES}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+D\+E\+V\+I\+C\+ES@{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+D\+E\+V\+I\+C\+ES}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+D\+E\+V\+I\+C\+ES}{DRVCTL\_GET\_DEVICES}}
{\footnotesize\ttfamily \#define D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+D\+E\+V\+I\+C\+ES~5}

Drvctl cmd\+: get list of possible devices. Argument is a $\ast$glob\+\_\+t as defined in $<$glob.\+h$>$. The returned memory is owned by driver and should be free()\textquotesingle{}d using D\+R\+V\+C\+T\+L\+\_\+\+F\+R\+E\+E\+\_\+\+D\+E\+V\+I\+C\+ES.

Each string in glob is a space-\/separated list of words. The first word is the mandatory device path, the optional reminder is information about the device suitable in user interfaces. 

Definition at line 96 of file driver.\+h.

\hypertarget{group__driver__api_gae1c0549ac24798610a08a38f98337dd2}{}\label{group__driver__api_gae1c0549ac24798610a08a38f98337dd2} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+R\+A\+W\+\_\+\+C\+O\+D\+E\+L\+E\+N\+G\+TH@{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+R\+A\+W\+\_\+\+C\+O\+D\+E\+L\+E\+N\+G\+TH}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+R\+A\+W\+\_\+\+C\+O\+D\+E\+L\+E\+N\+G\+TH@{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+R\+A\+W\+\_\+\+C\+O\+D\+E\+L\+E\+N\+G\+TH}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+R\+A\+W\+\_\+\+C\+O\+D\+E\+L\+E\+N\+G\+TH}{DRVCTL\_GET\_RAW\_CODELENGTH}}
{\footnotesize\ttfamily \#define D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+R\+A\+W\+\_\+\+C\+O\+D\+E\+L\+E\+N\+G\+TH~4}

Drvctl cmd\+: get raw length to read, if different than codelength. Arg is an unsigned int$\ast$ which is updated on successfull return. 

Definition at line 85 of file driver.\+h.

\hypertarget{group__driver__api_ga3637dcda1fb5508e6f51a39b0cc048a7}{}\label{group__driver__api_ga3637dcda1fb5508e6f51a39b0cc048a7} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+TE@{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+TE}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+TE@{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+TE}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+TE}{DRVCTL\_GET\_STATE}}
{\footnotesize\ttfamily \#define D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+TE~1}

Drvctl cmd\+: return current state as an int in $\ast$arg. 

Definition at line 73 of file driver.\+h.

\hypertarget{group__driver__api_ga2628a2556297a773cddc0848db200d1a}{}\label{group__driver__api_ga2628a2556297a773cddc0848db200d1a} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+C\+T\+L\+\_\+\+M\+AX@{D\+R\+V\+C\+T\+L\+\_\+\+M\+AX}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+M\+AX@{D\+R\+V\+C\+T\+L\+\_\+\+M\+AX}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+C\+T\+L\+\_\+\+M\+AX}{DRVCTL\_MAX}}
{\footnotesize\ttfamily \#define D\+R\+V\+C\+T\+L\+\_\+\+M\+AX~128}

Last well-\/known command. Remaining is used in driver-\/specific controls. 

Definition at line 109 of file driver.\+h.

\hypertarget{group__driver__api_gad037f706938a331377bb914f75e1a875}{}\label{group__driver__api_gad037f706938a331377bb914f75e1a875} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+C\+T\+L\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+D\+E\+C\+O\+DE@{D\+R\+V\+C\+T\+L\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+D\+E\+C\+O\+DE}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+D\+E\+C\+O\+DE@{D\+R\+V\+C\+T\+L\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+D\+E\+C\+O\+DE}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+C\+T\+L\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+D\+E\+C\+O\+DE}{DRVCTL\_NOTIFY\_DECODE}}
{\footnotesize\ttfamily \#define D\+R\+V\+C\+T\+L\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+D\+E\+C\+O\+DE~7}

The former L\+I\+R\+C\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+D\+E\+C\+O\+DE, informs drier that signal is successfully decoded e. g., to initiate some visual feedback through a L\+ED. 

Definition at line 106 of file driver.\+h.

\hypertarget{group__driver__api_ga2d4b7ac43bc60cf3d930431f79b2fb89}{}\label{group__driver__api_ga2d4b7ac43bc60cf3d930431f79b2fb89} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+CE@{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+CE}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+CE@{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+CE}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+CE}{DRVCTL\_SEND\_SPACE}}
{\footnotesize\ttfamily \#define D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+CE~2}

Drvctl cmd\+: Send long space. Arg is pulselength (us, an int). 

Definition at line 76 of file driver.\+h.

\hypertarget{group__driver__api_ga1033feec74cbc16e939d713be2c5b8e0}{}\label{group__driver__api_ga1033feec74cbc16e939d713be2c5b8e0} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+ON@{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+ON}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+ON@{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+ON}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+ON}{DRVCTL\_SET\_OPTION}}
{\footnotesize\ttfamily \#define D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+ON~3}

Drvctl cmd\+: Set driver options. Arg is $\ast$struct \hyperlink{structoption__t}{option\+\_\+t}. 

Definition at line 79 of file driver.\+h.

\hypertarget{group__driver__api_ga69de338dd3e47a8275e7821c54d3523e}{}\label{group__driver__api_ga69de338dd3e47a8275e7821c54d3523e} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+UT@{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+UT}}
\index{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+UT@{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+UT}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+UT}{MIN\_RECEIVE\_TIMEOUT}}
{\footnotesize\ttfamily \#define M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+UT~100000}

Min value returned by receive\+\_\+timeout. 

Definition at line 34 of file receive.\+h.



\subsection{Function Documentation}
\hypertarget{group__driver__api_gae334c37e486ce414abf272d4850df6c4}{}\label{group__driver__api_gae334c37e486ce414abf272d4850df6c4} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!decode\+\_\+all@{decode\+\_\+all}}
\index{decode\+\_\+all@{decode\+\_\+all}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{decode\+\_\+all()}{decode\_all()}}
{\footnotesize\ttfamily char$\ast$ decode\+\_\+all (\begin{DoxyParamCaption}\item[{struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remotes }\end{DoxyParamCaption})}

Tries to decode current signal trying all known remotes. This is non-\/blocking, failures could be retried later when more data is available.


\begin{DoxyParams}{Parameters}
{\em remotes} & Parsed lircd.\+conf file as returned by \hyperlink{group__private__api_gaae645b840ccf7816a6dd37d53bc4325a}{read\+\_\+config()} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
N\+U\+LL on errors or no data available. Else a dynamically allocated string like \char`\"{}000000000000fad3 00 K\+E\+Y\+\_\+\+P\+O\+W\+E\+R apple\char`\"{}. Caller owns string and eventually de-\/allocates it. 
\end{DoxyReturn}


Definition at line 731 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga683dd53e7e5d62746c1a645fe133daf0}{}\label{group__driver__api_ga683dd53e7e5d62746c1a645fe133daf0} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!default\+\_\+close@{default\+\_\+close}}
\index{default\+\_\+close@{default\+\_\+close}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{default\+\_\+close()}{default\_close()}}
{\footnotesize\ttfamily int default\+\_\+close (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

For now, a placeholder. 

Definition at line 79 of file driver.\+c.

\hypertarget{group__driver__api_ga96e3243bc45ff488f6c55dde5e9b377b}{}\label{group__driver__api_ga96e3243bc45ff488f6c55dde5e9b377b} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!default\+\_\+drvctl@{default\+\_\+drvctl}}
\index{default\+\_\+drvctl@{default\+\_\+drvctl}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{default\+\_\+drvctl()}{default\_drvctl()}}
{\footnotesize\ttfamily int default\+\_\+drvctl (\begin{DoxyParamCaption}\item[{unsigned int}]{cmd,  }\item[{void $\ast$}]{arg }\end{DoxyParamCaption})}

Return D\+R\+V\+C\+T\+L\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+I\+M\+P\+L\+E\+M\+E\+N\+T\+ED. 

Definition at line 84 of file driver.\+c.

\hypertarget{group__driver__api_gac0f7baaef9fe524365c16022001804d3}{}\label{group__driver__api_gac0f7baaef9fe524365c16022001804d3} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!default\+\_\+open@{default\+\_\+open}}
\index{default\+\_\+open@{default\+\_\+open}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{default\+\_\+open()}{default\_open()}}
{\footnotesize\ttfamily int default\+\_\+open (\begin{DoxyParamCaption}\item[{const char $\ast$}]{path }\end{DoxyParamCaption})}

Stores path in drv.\+device if non-\/null. 

Definition at line 64 of file driver.\+c.

\hypertarget{group__driver__api_gaae1b223d2bd3a0d0be6e77019c9a976c}{}\label{group__driver__api_gaae1b223d2bd3a0d0be6e77019c9a976c} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!drv\+\_\+handle\+\_\+options@{drv\+\_\+handle\+\_\+options}}
\index{drv\+\_\+handle\+\_\+options@{drv\+\_\+handle\+\_\+options}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{drv\+\_\+handle\+\_\+options()}{drv\_handle\_options()}}
{\footnotesize\ttfamily int drv\+\_\+handle\+\_\+options (\begin{DoxyParamCaption}\item[{const char $\ast$}]{options }\end{DoxyParamCaption})}

Parse an option string \char`\"{}key\+:value;key\+:value...\char`\"{} and invoke drvctl D\+R\+V\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+ON as appropriate. 

Definition at line 90 of file driver.\+c.

\hypertarget{group__driver__api_gafaa7cb5587a3c58e3e825411b966738a}{}\label{group__driver__api_gafaa7cb5587a3c58e3e825411b966738a} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!get\+\_\+code\+\_\+by\+\_\+name@{get\+\_\+code\+\_\+by\+\_\+name}}
\index{get\+\_\+code\+\_\+by\+\_\+name@{get\+\_\+code\+\_\+by\+\_\+name}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{get\+\_\+code\+\_\+by\+\_\+name()}{get\_code\_by\_name()}}
{\footnotesize\ttfamily struct \hyperlink{structir__ncode}{ir\+\_\+ncode}$\ast$ get\+\_\+code\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remote,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}

Return code with given name in remote\textquotesingle{}s list of codes or N\+U\+LL. 

Definition at line 396 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gaf2e0b982088d231116dea399afa8597f}{}\label{group__driver__api_gaf2e0b982088d231116dea399afa8597f} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!get\+\_\+decoding@{get\+\_\+decoding}}
\index{get\+\_\+decoding@{get\+\_\+decoding}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{get\+\_\+decoding()}{get\_decoding()}}
{\footnotesize\ttfamily const struct \hyperlink{structir__remote}{ir\+\_\+remote}$\ast$ get\+\_\+decoding (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Return pointer to currently decoded remote. 

Definition at line 852 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga1a1b6c86d0309f25ab5806a5f861692c}{}\label{group__driver__api_ga1a1b6c86d0309f25ab5806a5f861692c} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!get\+\_\+filter\+\_\+parameters@{get\+\_\+filter\+\_\+parameters}}
\index{get\+\_\+filter\+\_\+parameters@{get\+\_\+filter\+\_\+parameters}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{get\+\_\+filter\+\_\+parameters()}{get\_filter\_parameters()}}
{\footnotesize\ttfamily void get\+\_\+filter\+\_\+parameters (\begin{DoxyParamCaption}\item[{const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remotes,  }\item[{lirc\+\_\+t $\ast$}]{max\+\_\+gap\+\_\+lengthp,  }\item[{lirc\+\_\+t $\ast$}]{min\+\_\+pulse\+\_\+lengthp,  }\item[{lirc\+\_\+t $\ast$}]{min\+\_\+space\+\_\+lengthp,  }\item[{lirc\+\_\+t $\ast$}]{max\+\_\+pulse\+\_\+lengthp,  }\item[{lirc\+\_\+t $\ast$}]{max\+\_\+space\+\_\+lengthp }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em remotes} & \\
\hline
{\em max\+\_\+gap\+\_\+lengthp} & \\
\hline
{\em min\+\_\+pulse\+\_\+lengthp} & \\
\hline
{\em min\+\_\+space\+\_\+lengthp} & \\
\hline
{\em max\+\_\+pulse\+\_\+lengthp} & \\
\hline
{\em max\+\_\+space\+\_\+lengthp} & \\
\hline
\end{DoxyParams}


Definition at line 192 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga19bab2135ca2b7f68dc0b2f8cde9863f}{}\label{group__driver__api_ga19bab2135ca2b7f68dc0b2f8cde9863f} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!get\+\_\+frequency\+\_\+range@{get\+\_\+frequency\+\_\+range}}
\index{get\+\_\+frequency\+\_\+range@{get\+\_\+frequency\+\_\+range}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{get\+\_\+frequency\+\_\+range()}{get\_frequency\_range()}}
{\footnotesize\ttfamily void get\+\_\+frequency\+\_\+range (\begin{DoxyParamCaption}\item[{const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remotes,  }\item[{unsigned int $\ast$}]{min\+\_\+freq,  }\item[{unsigned int $\ast$}]{max\+\_\+freq }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em remotes} & \\
\hline
{\em min\+\_\+freq} & \\
\hline
{\em max\+\_\+freq} & \\
\hline
\end{DoxyParams}


Definition at line 155 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga251129673cd73c5f869bb53c6c38a88f}{}\label{group__driver__api_ga251129673cd73c5f869bb53c6c38a88f} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!get\+\_\+ir\+\_\+remote@{get\+\_\+ir\+\_\+remote}}
\index{get\+\_\+ir\+\_\+remote@{get\+\_\+ir\+\_\+remote}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{get\+\_\+ir\+\_\+remote()}{get\_ir\_remote()}}
{\footnotesize\ttfamily struct \hyperlink{structir__remote}{ir\+\_\+remote}$\ast$ get\+\_\+ir\+\_\+remote (\begin{DoxyParamCaption}\item[{const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remotes,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}

Return \hyperlink{structir__remote}{ir\+\_\+remote} with given name in remotes list, or N\+U\+LL if not found. 

Definition at line 250 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gab161fca4b5f718227912839380529892}{}\label{group__driver__api_gab161fca4b5f718227912839380529892} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!glob\+\_\+t\+\_\+add\+\_\+path@{glob\+\_\+t\+\_\+add\+\_\+path}}
\index{glob\+\_\+t\+\_\+add\+\_\+path@{glob\+\_\+t\+\_\+add\+\_\+path}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{glob\+\_\+t\+\_\+add\+\_\+path()}{glob\_t\_add\_path()}}
{\footnotesize\ttfamily void glob\+\_\+t\+\_\+add\+\_\+path (\begin{DoxyParamCaption}\item[{glob\+\_\+t $\ast$}]{glob,  }\item[{const char $\ast$}]{path }\end{DoxyParamCaption})}

Add a malloc\textquotesingle{}ed copy of path into glob, possibly increasing capacity. 

Definition at line 42 of file driver.\+c.

\hypertarget{group__driver__api_ga802fd321399ff103cc2702beec67e29f}{}\label{group__driver__api_ga802fd321399ff103cc2702beec67e29f} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!glob\+\_\+t\+\_\+free@{glob\+\_\+t\+\_\+free}}
\index{glob\+\_\+t\+\_\+free@{glob\+\_\+t\+\_\+free}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{glob\+\_\+t\+\_\+free()}{glob\_t\_free()}}
{\footnotesize\ttfamily void glob\+\_\+t\+\_\+free (\begin{DoxyParamCaption}\item[{glob\+\_\+t $\ast$}]{glob }\end{DoxyParamCaption})}

Free memory obtained using glob\+\_\+t\+\_\+new. 

Definition at line 54 of file driver.\+c.

\hypertarget{group__driver__api_ga6e377ea8a639984e713db080d0909d93}{}\label{group__driver__api_ga6e377ea8a639984e713db080d0909d93} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!glob\+\_\+t\+\_\+init@{glob\+\_\+t\+\_\+init}}
\index{glob\+\_\+t\+\_\+init@{glob\+\_\+t\+\_\+init}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{glob\+\_\+t\+\_\+init()}{glob\_t\_init()}}
{\footnotesize\ttfamily void glob\+\_\+t\+\_\+init (\begin{DoxyParamCaption}\item[{glob\+\_\+t $\ast$}]{glob }\end{DoxyParamCaption})}

Return an malloc\textquotesingle{}ed glob\+\_\+t with default capacity. 

Definition at line 34 of file driver.\+c.

\hypertarget{group__driver__api_ga8d5bc121b8582a690000bc8befe13080}{}\label{group__driver__api_ga8d5bc121b8582a690000bc8befe13080} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!ir\+\_\+remote\+\_\+init@{ir\+\_\+remote\+\_\+init}}
\index{ir\+\_\+remote\+\_\+init@{ir\+\_\+remote\+\_\+init}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{ir\+\_\+remote\+\_\+init()}{ir\_remote\_init()}}
{\footnotesize\ttfamily void ir\+\_\+remote\+\_\+init (\begin{DoxyParamCaption}\item[{int}]{use\+\_\+dyncodes }\end{DoxyParamCaption})}

Initiate\+: define if dynamic codes should be used.


\begin{DoxyParams}{Parameters}
{\em use\+\_\+dyncodes} & Should normally reflect \char`\"{}lircd\+:dynamic-\/codes\char`\"{} option. \\
\hline
\end{DoxyParams}


Definition at line 123 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gaadf09b8ef4b71be00f8e53a39f70d315}{}\label{group__driver__api_gaadf09b8ef4b71be00f8e53a39f70d315} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!is\+\_\+in\+\_\+remotes@{is\+\_\+in\+\_\+remotes}}
\index{is\+\_\+in\+\_\+remotes@{is\+\_\+in\+\_\+remotes}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{is\+\_\+in\+\_\+remotes()}{is\_in\_remotes()}}
{\footnotesize\ttfamily const struct \hyperlink{structir__remote}{ir\+\_\+remote}$\ast$ is\+\_\+in\+\_\+remotes (\begin{DoxyParamCaption}\item[{const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remotes,  }\item[{const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remote }\end{DoxyParamCaption})}

Test if a given remote is in a list of remotes.


\begin{DoxyParams}{Parameters}
{\em remotes} & Head of linked list of remotes (using remote.\+next). \\
\hline
{\em remote} & Pointer to remote to check \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 if remote exists in remotes list, else 0
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em remotes} & \\
\hline
{\em remote} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\end{DoxyReturn}


Definition at line 238 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gabac8048f405d0a78fcc01fa9ef1132df}{}\label{group__driver__api_gabac8048f405d0a78fcc01fa9ef1132df} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!map\+\_\+code@{map\+\_\+code}}
\index{map\+\_\+code@{map\+\_\+code}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{map\+\_\+code()}{map\_code()}}
{\footnotesize\ttfamily int map\+\_\+code (\begin{DoxyParamCaption}\item[{const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remote,  }\item[{struct \hyperlink{structdecode__ctx__t}{decode\+\_\+ctx\+\_\+t} $\ast$}]{ctx,  }\item[{int}]{pre\+\_\+bits,  }\item[{\hyperlink{ir__remote__types_8h_af5395595bc25a70e974255b83d97db06}{ir\+\_\+code}}]{pre,  }\item[{int}]{bits,  }\item[{\hyperlink{ir__remote__types_8h_af5395595bc25a70e974255b83d97db06}{ir\+\_\+code}}]{code,  }\item[{int}]{post\+\_\+bits,  }\item[{\hyperlink{ir__remote__types_8h_af5395595bc25a70e974255b83d97db06}{ir\+\_\+code}}]{post }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em remote} & \\
\hline
{\em prep} & \\
\hline
{\em codep} & \\
\hline
{\em postp} & \\
\hline
{\em pre\+\_\+bits} & \\
\hline
{\em pre} & \\
\hline
{\em bits} & \\
\hline
{\em code} & \\
\hline
{\em post\+\_\+bits} & \\
\hline
{\em post} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\end{DoxyReturn}


Definition at line 282 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gac691a06cc99d8c914e2c7451407f245a}{}\label{group__driver__api_gac691a06cc99d8c914e2c7451407f245a} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!map\+\_\+gap@{map\+\_\+gap}}
\index{map\+\_\+gap@{map\+\_\+gap}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{map\+\_\+gap()}{map\_gap()}}
{\footnotesize\ttfamily void map\+\_\+gap (\begin{DoxyParamCaption}\item[{const struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remote,  }\item[{struct \hyperlink{structdecode__ctx__t}{decode\+\_\+ctx\+\_\+t} $\ast$}]{ctx,  }\item[{const struct timeval $\ast$}]{start,  }\item[{const struct timeval $\ast$}]{last,  }\item[{lirc\+\_\+t}]{signal\+\_\+length }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em remote} & \\
\hline
{\em start} & \\
\hline
{\em last} & \\
\hline
{\em signal\+\_\+length} & \\
\hline
{\em repeat\+\_\+flagp} & \\
\hline
{\em min\+\_\+remaining\+\_\+gapp} & \\
\hline
{\em max\+\_\+remaining\+\_\+gapp} & \\
\hline
\end{DoxyParams}


Definition at line 328 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gac288bce2140d2066a3990a1b2e3317c5}{}\label{group__driver__api_gac288bce2140d2066a3990a1b2e3317c5} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!ncode\+\_\+dup@{ncode\+\_\+dup}}
\index{ncode\+\_\+dup@{ncode\+\_\+dup}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{ncode\+\_\+dup()}{ncode\_dup()}}
{\footnotesize\ttfamily struct \hyperlink{structir__ncode}{ir\+\_\+ncode}$\ast$ ncode\+\_\+dup (\begin{DoxyParamCaption}\item[{struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$}]{ncode }\end{DoxyParamCaption})}

Create a malloc\textquotesingle{}d, deep copy of ncode. Use \hyperlink{group__driver__api_ga4477860d1f604548e032694de8f69c16}{ncode\+\_\+free()} to dispose().

Create a malloc\textquotesingle{}d, deep copy of ncode. Use \hyperlink{group__driver__api_ga4477860d1f604548e032694de8f69c16}{ncode\+\_\+free()} to dispose. 

Definition at line 68 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga4477860d1f604548e032694de8f69c16}{}\label{group__driver__api_ga4477860d1f604548e032694de8f69c16} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!ncode\+\_\+free@{ncode\+\_\+free}}
\index{ncode\+\_\+free@{ncode\+\_\+free}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{ncode\+\_\+free()}{ncode\_free()}}
{\footnotesize\ttfamily void ncode\+\_\+free (\begin{DoxyParamCaption}\item[{struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$}]{ncode }\end{DoxyParamCaption})}

Dispose an \hyperlink{structir__ncode}{ir\+\_\+ncode} instance obtained from \hyperlink{group__driver__api_gac288bce2140d2066a3990a1b2e3317c5}{ncode\+\_\+dup()}. 

Definition at line 103 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gae96f4130a6ebac0570094820b39ae11c}{}\label{group__driver__api_gae96f4130a6ebac0570094820b39ae11c} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!rec\+\_\+buffer\+\_\+clear@{rec\+\_\+buffer\+\_\+clear}}
\index{rec\+\_\+buffer\+\_\+clear@{rec\+\_\+buffer\+\_\+clear}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{rec\+\_\+buffer\+\_\+clear()}{rec\_buffer\_clear()}}
{\footnotesize\ttfamily int rec\+\_\+buffer\+\_\+clear (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Flush the internal fifo and store a single code read from the driver in it. 

Definition at line 224 of file receive.\+c.

\hypertarget{group__driver__api_gabc294def4957afc161909b72e1348835}{}\label{group__driver__api_gabc294def4957afc161909b72e1348835} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!rec\+\_\+buffer\+\_\+init@{rec\+\_\+buffer\+\_\+init}}
\index{rec\+\_\+buffer\+\_\+init@{rec\+\_\+buffer\+\_\+init}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{rec\+\_\+buffer\+\_\+init()}{rec\_buffer\_init()}}
{\footnotesize\ttfamily void rec\+\_\+buffer\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Clear internal buffer to pristine state. 

Definition at line 204 of file receive.\+c.

\hypertarget{group__driver__api_ga74266da334332e934158389894ddb7c4}{}\label{group__driver__api_ga74266da334332e934158389894ddb7c4} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!rec\+\_\+buffer\+\_\+reset\+\_\+wptr@{rec\+\_\+buffer\+\_\+reset\+\_\+wptr}}
\index{rec\+\_\+buffer\+\_\+reset\+\_\+wptr@{rec\+\_\+buffer\+\_\+reset\+\_\+wptr}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{rec\+\_\+buffer\+\_\+reset\+\_\+wptr()}{rec\_buffer\_reset\_wptr()}}
{\footnotesize\ttfamily void rec\+\_\+buffer\+\_\+reset\+\_\+wptr (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Reset internal fifo\textquotesingle{}s write pointer. 

Definition at line 219 of file receive.\+c.

\hypertarget{group__driver__api_ga3367c6a318967cb750f67d95d43d3102}{}\label{group__driver__api_ga3367c6a318967cb750f67d95d43d3102} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!rec\+\_\+buffer\+\_\+rewind@{rec\+\_\+buffer\+\_\+rewind}}
\index{rec\+\_\+buffer\+\_\+rewind@{rec\+\_\+buffer\+\_\+rewind}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{rec\+\_\+buffer\+\_\+rewind()}{rec\_buffer\_rewind()}}
{\footnotesize\ttfamily void rec\+\_\+buffer\+\_\+rewind (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Reset the modules\textquotesingle{}s internal fifo\textquotesingle{}s read state to initial values where the nothing is read. The write pointer is not affected. 

Definition at line 209 of file receive.\+c.

\hypertarget{group__driver__api_ga0055fe8b9e15df2483fac31e79f8276a}{}\label{group__driver__api_ga0055fe8b9e15df2483fac31e79f8276a} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!rec\+\_\+buffer\+\_\+set\+\_\+logfile@{rec\+\_\+buffer\+\_\+set\+\_\+logfile}}
\index{rec\+\_\+buffer\+\_\+set\+\_\+logfile@{rec\+\_\+buffer\+\_\+set\+\_\+logfile}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{rec\+\_\+buffer\+\_\+set\+\_\+logfile()}{rec\_buffer\_set\_logfile()}}
{\footnotesize\ttfamily void rec\+\_\+buffer\+\_\+set\+\_\+logfile (\begin{DoxyParamCaption}\item[{F\+I\+LE $\ast$}]{f }\end{DoxyParamCaption})}

Set a file logging input from driver in same format as mode2(1). 
\begin{DoxyParams}{Parameters}
{\em f} & Open file to write on or N\+U\+LL to disable logging. \\
\hline
\end{DoxyParams}


Definition at line 191 of file receive.\+c.

\hypertarget{group__driver__api_gaa491fcec2fc35512ff2964dc208edcca}{}\label{group__driver__api_gaa491fcec2fc35512ff2964dc208edcca} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!rec\+\_\+set\+\_\+update\+\_\+mode@{rec\+\_\+set\+\_\+update\+\_\+mode}}
\index{rec\+\_\+set\+\_\+update\+\_\+mode@{rec\+\_\+set\+\_\+update\+\_\+mode}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{rec\+\_\+set\+\_\+update\+\_\+mode()}{rec\_set\_update\_mode()}}
{\footnotesize\ttfamily void rec\+\_\+set\+\_\+update\+\_\+mode (\begin{DoxyParamCaption}\item[{int}]{mode }\end{DoxyParamCaption})}

Set update mode, where recorded pre\+\_\+data is verified to match the template pre\+\_\+data. By defaulöt false. 

Definition at line 68 of file receive.\+c.

\hypertarget{group__driver__api_gad89c025d8cc9f77d9d5597da2e420917}{}\label{group__driver__api_gad89c025d8cc9f77d9d5597da2e420917} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!receive\+\_\+decode@{receive\+\_\+decode}}
\index{receive\+\_\+decode@{receive\+\_\+decode}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{receive\+\_\+decode()}{receive\_decode()}}
{\footnotesize\ttfamily int receive\+\_\+decode (\begin{DoxyParamCaption}\item[{struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remote,  }\item[{struct \hyperlink{structdecode__ctx__t}{decode\+\_\+ctx\+\_\+t} $\ast$}]{ctx }\end{DoxyParamCaption})}

Decode data from remote


\begin{DoxyParams}{Parameters}
{\em ctx} & Undefined on enter. On exit, the fields in the structure are defined. \\
\hline
\end{DoxyParams}


Definition at line 1041 of file receive.\+c.

\hypertarget{group__driver__api_ga4871fa572fb913f068f0e3c75d3fdc41}{}\label{group__driver__api_ga4871fa572fb913f068f0e3c75d3fdc41} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!send\+\_\+buffer\+\_\+data@{send\+\_\+buffer\+\_\+data}}
\index{send\+\_\+buffer\+\_\+data@{send\+\_\+buffer\+\_\+data}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{send\+\_\+buffer\+\_\+data()}{send\_buffer\_data()}}
{\footnotesize\ttfamily const lirc\+\_\+t$\ast$ send\+\_\+buffer\+\_\+data (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

\begin{DoxyReturn}{Returns}
Pointer to timing data in microseconds for pulses/spaces. 
\end{DoxyReturn}


Definition at line 379 of file transmit.\+c.

\hypertarget{group__driver__api_ga85a7e2c6a62aab93aaa6453dea381112}{}\label{group__driver__api_ga85a7e2c6a62aab93aaa6453dea381112} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!send\+\_\+buffer\+\_\+init@{send\+\_\+buffer\+\_\+init}}
\index{send\+\_\+buffer\+\_\+init@{send\+\_\+buffer\+\_\+init}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{send\+\_\+buffer\+\_\+init()}{send\_buffer\_init()}}
{\footnotesize\ttfamily void send\+\_\+buffer\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Clear and re-\/initiate the buffer.

Initializes the global sending buffer. (Just fills it with zeros.) 

Definition at line 62 of file transmit.\+c.

\hypertarget{group__driver__api_gae40fd0e37871cd30a43b3b2bc3c4336c}{}\label{group__driver__api_gae40fd0e37871cd30a43b3b2bc3c4336c} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!send\+\_\+buffer\+\_\+length@{send\+\_\+buffer\+\_\+length}}
\index{send\+\_\+buffer\+\_\+length@{send\+\_\+buffer\+\_\+length}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{send\+\_\+buffer\+\_\+length()}{send\_buffer\_length()}}
{\footnotesize\ttfamily int send\+\_\+buffer\+\_\+length (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

\begin{DoxyReturn}{Returns}
Number of items accessible in array \hyperlink{group__driver__api_ga4871fa572fb913f068f0e3c75d3fdc41}{send\+\_\+buffer\+\_\+data()}.
\end{DoxyReturn}
Do not document this function 

Definition at line 373 of file transmit.\+c.

\hypertarget{group__driver__api_ga0d43b932c9b39d14e675dbd9507f3997}{}\label{group__driver__api_ga0d43b932c9b39d14e675dbd9507f3997} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!send\+\_\+buffer\+\_\+put@{send\+\_\+buffer\+\_\+put}}
\index{send\+\_\+buffer\+\_\+put@{send\+\_\+buffer\+\_\+put}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{send\+\_\+buffer\+\_\+put()}{send\_buffer\_put()}}
{\footnotesize\ttfamily int send\+\_\+buffer\+\_\+put (\begin{DoxyParamCaption}\item[{struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remote,  }\item[{struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$}]{code }\end{DoxyParamCaption})}

Initializes the global send buffer for transmitting the code in the second argument, residing in the remote in the first. 
\begin{DoxyParams}{Parameters}
{\em remote} & \hyperlink{structir__remote}{ir\+\_\+remote} containing code to send. \\
\hline
{\em code} & \hyperlink{structir__ncode}{ir\+\_\+ncode} to send. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on failures, else 1. 
\end{DoxyReturn}


Definition at line 355 of file transmit.\+c.

\hypertarget{group__driver__api_ga55e0351346ec0cb553a7f1632db99c57}{}\label{group__driver__api_ga55e0351346ec0cb553a7f1632db99c57} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!send\+\_\+buffer\+\_\+sum@{send\+\_\+buffer\+\_\+sum}}
\index{send\+\_\+buffer\+\_\+sum@{send\+\_\+buffer\+\_\+sum}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{send\+\_\+buffer\+\_\+sum()}{send\_buffer\_sum()}}
{\footnotesize\ttfamily lirc\+\_\+t send\+\_\+buffer\+\_\+sum (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

\begin{DoxyReturn}{Returns}
Total length of send buffer in microseconds. 
\end{DoxyReturn}


Definition at line 384 of file transmit.\+c.

\hypertarget{group__driver__api_ga51d2eb6ccf92c9210c69cd727b712bae}{}\label{group__driver__api_ga51d2eb6ccf92c9210c69cd727b712bae} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!send\+\_\+ir\+\_\+ncode@{send\+\_\+ir\+\_\+ncode}}
\index{send\+\_\+ir\+\_\+ncode@{send\+\_\+ir\+\_\+ncode}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{send\+\_\+ir\+\_\+ncode()}{send\_ir\_ncode()}}
{\footnotesize\ttfamily int send\+\_\+ir\+\_\+ncode (\begin{DoxyParamCaption}\item[{struct \hyperlink{structir__remote}{ir\+\_\+remote} $\ast$}]{remote,  }\item[{struct \hyperlink{structir__ncode}{ir\+\_\+ncode} $\ast$}]{code,  }\item[{int}]{delay }\end{DoxyParamCaption})}

Transmits the actual code in the second argument by calling the current hardware driver. The processing depends on global repeat-\/remote. If this is not-\/\+N\+U\+LL, the codes are sent using repeat formatting if the remote supports it. 
\begin{DoxyParams}{Parameters}
{\em remote} & Currently active remote, used as database for timing, and as keeper of an internal state. \\
\hline
{\em code} & IR code to be transmitted \\
\hline
{\em delay} & If true (normal case), generate a delay corresponding to the time it takes to send the code. If not (test case), don\textquotesingle{}t. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Non-\/zero if success. 
\end{DoxyReturn}


Definition at line 821 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gaa680ad6c63aaac541fc85d61b73a46d1}{}\label{group__driver__api_gaa680ad6c63aaac541fc85d61b73a46d1} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+clear@{tty\+\_\+clear}}
\index{tty\+\_\+clear@{tty\+\_\+clear}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+clear()}{tty\_clear()}}
{\footnotesize\ttfamily int tty\+\_\+clear (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{int}]{rts,  }\item[{int}]{dtr }\end{DoxyParamCaption})}

Clear R\+TS and D\+TR control lines.


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
{\em rts} & If 0 ignored, else clears R\+TS. \\
\hline
{\em cts} & If 0 ignored, else clears C\+TS. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on errors, else 1. 
\end{DoxyReturn}


Definition at line 525 of file serial.\+c.

\hypertarget{group__driver__api_gaa2128e719d5174e1210fcc8c532c82bd}{}\label{group__driver__api_gaa2128e719d5174e1210fcc8c532c82bd} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+create\+\_\+lock@{tty\+\_\+create\+\_\+lock}}
\index{tty\+\_\+create\+\_\+lock@{tty\+\_\+create\+\_\+lock}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+create\+\_\+lock()}{tty\_create\_lock()}}
{\footnotesize\ttfamily int tty\+\_\+create\+\_\+lock (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}

Creates a lock file of the type /var/local/\+L\+CK.. + name 
\begin{DoxyParams}{Parameters}
{\em name} & Name of the device \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
non-\/zero if successful 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\href{http://www.pathname.com/fhs/2.2/fhs-5.9.html}{\tt http\+://www.\+pathname.\+com/fhs/2.\+2/fhs-\/5.\+9.\+html} 
\end{DoxySeeAlso}


Definition at line 302 of file serial.\+c.

\hypertarget{group__driver__api_ga94d6aff1542d08fcf32b5acdc735090e}{}\label{group__driver__api_ga94d6aff1542d08fcf32b5acdc735090e} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+delete\+\_\+lock@{tty\+\_\+delete\+\_\+lock}}
\index{tty\+\_\+delete\+\_\+lock@{tty\+\_\+delete\+\_\+lock}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+delete\+\_\+lock()}{tty\_delete\_lock()}}
{\footnotesize\ttfamily int tty\+\_\+delete\+\_\+lock (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Delete any legacy lock(s) owned by this process. \begin{DoxyReturn}{Returns}
0 on errors, else 1. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\href{http://www.pathname.com/fhs/2.2/fhs-5.9.html}{\tt http\+://www.\+pathname.\+com/fhs/2.\+2/fhs-\/5.\+9.\+html} 
\end{DoxySeeAlso}


Definition at line 445 of file serial.\+c.

\hypertarget{group__driver__api_ga76ea8c360d88f108399c5926b3bff16d}{}\label{group__driver__api_ga76ea8c360d88f108399c5926b3bff16d} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+read@{tty\+\_\+read}}
\index{tty\+\_\+read@{tty\+\_\+read}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+read()}{tty\_read()}}
{\footnotesize\ttfamily int tty\+\_\+read (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{char $\ast$}]{byte }\end{DoxyParamCaption})}

Read a single byte from serial device.


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
{\em byte} & Pointer to byte to be read. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-\/1 on errors, else 1 and data stored in $\ast$byte. 
\end{DoxyReturn}


Definition at line 557 of file serial.\+c.

\hypertarget{group__driver__api_ga2cad04de039521ac1b0c14c42ba1b43c}{}\label{group__driver__api_ga2cad04de039521ac1b0c14c42ba1b43c} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+reset@{tty\+\_\+reset}}
\index{tty\+\_\+reset@{tty\+\_\+reset}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+reset()}{tty\_reset()}}
{\footnotesize\ttfamily int tty\+\_\+reset (\begin{DoxyParamCaption}\item[{int}]{fd }\end{DoxyParamCaption})}

Set the cfmakeraw termio options.


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on errors, else 1. 
\end{DoxyReturn}


Definition at line 54 of file serial.\+c.

\hypertarget{group__driver__api_ga17fb600e510ec6919659e7fab74c3de6}{}\label{group__driver__api_ga17fb600e510ec6919659e7fab74c3de6} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+set@{tty\+\_\+set}}
\index{tty\+\_\+set@{tty\+\_\+set}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+set()}{tty\_set()}}
{\footnotesize\ttfamily int tty\+\_\+set (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{int}]{rts,  }\item[{int}]{dtr }\end{DoxyParamCaption})}

Set R\+TS and D\+TR control lines.


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
{\em rts} & If 0 ignored, else sets R\+TS. \\
\hline
{\em cts} & If 0 ignored, else sets C\+TS. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on errors, else 1. 
\end{DoxyReturn}


Definition at line 511 of file serial.\+c.

\hypertarget{group__driver__api_ga44b60aca788c92e31b61298f534d2b2c}{}\label{group__driver__api_ga44b60aca788c92e31b61298f534d2b2c} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+setbaud@{tty\+\_\+setbaud}}
\index{tty\+\_\+setbaud@{tty\+\_\+setbaud}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+setbaud()}{tty\_setbaud()}}
{\footnotesize\ttfamily int tty\+\_\+setbaud (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{int}]{baud }\end{DoxyParamCaption})}

Set the speed a. k. a. baudrate.


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
{\em baud} & Speed constant as defined for termios cfsetospeed e.\+g., B19200 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on errors, else 1. 
\end{DoxyReturn}


Definition at line 120 of file serial.\+c.

\hypertarget{group__driver__api_gaffeab51b57e1e8eaca6fc502f99e6c29}{}\label{group__driver__api_gaffeab51b57e1e8eaca6fc502f99e6c29} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+setcsize@{tty\+\_\+setcsize}}
\index{tty\+\_\+setcsize@{tty\+\_\+setcsize}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+setcsize()}{tty\_setcsize()}}
{\footnotesize\ttfamily int tty\+\_\+setcsize (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{int}]{csize }\end{DoxyParamCaption})}

Set the character size


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
{\em Number} & of data bits\+: C\+S5, C\+S6, C\+S7, or C\+S8. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on errors, else 1. 
\end{DoxyReturn}


Definition at line 265 of file serial.\+c.

\hypertarget{group__driver__api_ga7c9acb60305177b4498553782eb4fa3c}{}\label{group__driver__api_ga7c9acb60305177b4498553782eb4fa3c} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+setdtr@{tty\+\_\+setdtr}}
\index{tty\+\_\+setdtr@{tty\+\_\+setdtr}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+setdtr()}{tty\_setdtr()}}
{\footnotesize\ttfamily int tty\+\_\+setdtr (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{int}]{enable }\end{DoxyParamCaption})}

Set/clear D\+TR control line.


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
{\em enable} & If true sets D\+TR, else clears it. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on errors, else 1. 
\end{DoxyReturn}


Definition at line 93 of file serial.\+c.

\hypertarget{group__driver__api_gafcab1b890be0e097640ff31f866ab94c}{}\label{group__driver__api_gafcab1b890be0e097640ff31f866ab94c} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+setrtscts@{tty\+\_\+setrtscts}}
\index{tty\+\_\+setrtscts@{tty\+\_\+setrtscts}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+setrtscts()}{tty\_setrtscts()}}
{\footnotesize\ttfamily int tty\+\_\+setrtscts (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{int}]{enable }\end{DoxyParamCaption})}

Set/clear C\+TS control line.


\begin{DoxyParams}{Parameters}
{\em enable} & If true sets C\+TS, else clears it. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on errors, else 1. 
\end{DoxyReturn}


Definition at line 72 of file serial.\+c.

\hypertarget{group__driver__api_ga03233443b447b2de3a81b77a317663c4}{}\label{group__driver__api_ga03233443b447b2de3a81b77a317663c4} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+write@{tty\+\_\+write}}
\index{tty\+\_\+write@{tty\+\_\+write}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+write()}{tty\_write()}}
{\footnotesize\ttfamily int tty\+\_\+write (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{char}]{byte }\end{DoxyParamCaption})}

Write a single byte to serial device.


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
{\em byte} & Item to write. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-\/1 on errors, else 1. 
\end{DoxyReturn}


Definition at line 539 of file serial.\+c.

\hypertarget{group__driver__api_ga855e6cb4247f8359643a184a912d754d}{}\label{group__driver__api_ga855e6cb4247f8359643a184a912d754d} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!tty\+\_\+write\+\_\+echo@{tty\+\_\+write\+\_\+echo}}
\index{tty\+\_\+write\+\_\+echo@{tty\+\_\+write\+\_\+echo}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{tty\+\_\+write\+\_\+echo()}{tty\_write\_echo()}}
{\footnotesize\ttfamily int tty\+\_\+write\+\_\+echo (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{char}]{byte }\end{DoxyParamCaption})}

Write a single byte and check the echo from remote party. Makes a log printout if these don\textquotesingle{}t match.


\begin{DoxyParams}{Parameters}
{\em fd} & File opened on a serial device. \\
\hline
{\em byte} & Byte to be written. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 if a byte is successfully written and read, else 0. It\textquotesingle{}s thus 1 even if the echo doesn\textquotesingle{}t match. 
\end{DoxyReturn}


Definition at line 577 of file serial.\+c.

\hypertarget{group__driver__api_gadcb46dccea6a4f82bebda46e51945819}{}\label{group__driver__api_gadcb46dccea6a4f82bebda46e51945819} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!waitfordata@{waitfordata}}
\index{waitfordata@{waitfordata}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{waitfordata()}{waitfordata()}}
{\footnotesize\ttfamily int waitfordata (\begin{DoxyParamCaption}\item[{\+\_\+\+\_\+u32}]{maxusec }\end{DoxyParamCaption})}

Wait until data is available in drv.\+fd, timeout or a signal is raised.


\begin{DoxyParams}{Parameters}
{\em maxusec} & timeout in micro seconds, given to poll(2). If $<$= 0, the function will block indefinitely until data is available or a signal is processed. If positive, a timeout value in microseconds. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True (1) if there is data available in drv.\+fd, else 0 indicating timeout. 
\end{DoxyReturn}


Definition at line 165 of file receive.\+c.

\hypertarget{group__driver__api_ga04461705747fd8521d369ee96ed762fe}{}\label{group__driver__api_ga04461705747fd8521d369ee96ed762fe} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!write\+\_\+message@{write\+\_\+message}}
\index{write\+\_\+message@{write\+\_\+message}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{write\+\_\+message()}{write\_message()}}
{\footnotesize\ttfamily int write\+\_\+message (\begin{DoxyParamCaption}\item[{char $\ast$}]{buffer,  }\item[{size\+\_\+t}]{size,  }\item[{const char $\ast$}]{remote\+\_\+name,  }\item[{const char $\ast$}]{button\+\_\+name,  }\item[{const char $\ast$}]{button\+\_\+suffix,  }\item[{\hyperlink{ir__remote__types_8h_af5395595bc25a70e974255b83d97db06}{ir\+\_\+code}}]{code,  }\item[{int}]{reps }\end{DoxyParamCaption})}

Formats the arguments into a readable string. 
\begin{DoxyParams}{Parameters}
{\em buffer} & Formatted string on exit. \\
\hline
{\em size} & Size of buffer. \\
\hline
{\em remote\+\_\+name} & \\
\hline
{\em button\+\_\+name} & \\
\hline
{\em button\+\_\+suffix} & \\
\hline
{\em code} & \\
\hline
{\em reps} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
snprintf(3) result code i. e., number of formatted bytes in buffer. 
\end{DoxyReturn}


Definition at line 712 of file ir\+\_\+remote.\+c.



\subsection{Variable Documentation}
\hypertarget{group__driver__api_ga474c489cabdaae4546ca0ac26ec9cd87}{}\label{group__driver__api_ga474c489cabdaae4546ca0ac26ec9cd87} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!last\+\_\+remote@{last\+\_\+remote}}
\index{last\+\_\+remote@{last\+\_\+remote}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{last\+\_\+remote}{last\_remote}}
{\footnotesize\ttfamily struct \hyperlink{structir__remote}{ir\+\_\+remote}$\ast$ last\+\_\+remote}

T\+O\+DO 

Definition at line 58 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga2da0e0383db556d0e1ba7261763815c5}{}\label{group__driver__api_ga2da0e0383db556d0e1ba7261763815c5} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!repeat\+\_\+code@{repeat\+\_\+code}}
\index{repeat\+\_\+code@{repeat\+\_\+code}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{repeat\+\_\+code}{repeat\_code}}
{\footnotesize\ttfamily struct \hyperlink{structir__ncode}{ir\+\_\+ncode}$\ast$ repeat\+\_\+code}

Global pointer to the code currently repeating. Defined in \hyperlink{ir__remote_8c}{ir\+\_\+remote.\+c}. 

Definition at line 62 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga7bc28a85da7d0ccf4466708918f01dc4}{}\label{group__driver__api_ga7bc28a85da7d0ccf4466708918f01dc4} 
\index{User-\/space driver A\+PI@{User-\/space driver A\+PI}!repeat\+\_\+remote@{repeat\+\_\+remote}}
\index{repeat\+\_\+remote@{repeat\+\_\+remote}!User-\/space driver A\+PI@{User-\/space driver A\+PI}}
\subsubsection{\texorpdfstring{repeat\+\_\+remote}{repeat\_remote}}
{\footnotesize\ttfamily struct \hyperlink{structir__remote}{ir\+\_\+remote}$\ast$ repeat\+\_\+remote}

Global pointer to the remote that contains the code currently repeating. Defined in \hyperlink{ir__remote_8c}{ir\+\_\+remote.\+c}. 

Definition at line 60 of file ir\+\_\+remote.\+c.

