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


User-\/space driver A\+P\+I.  


\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 I\+R 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 I\+R 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 I\+R 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\+E\+D}~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\+E\+D}~1
\item 
\#define \hyperlink{group__driver__api_ga3637dcda1fb5508e6f51a39b0cc048a7}{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+T\+E}~1
\item 
\#define \hyperlink{group__driver__api_ga2d4b7ac43bc60cf3d930431f79b2fb89}{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+C\+E}~2
\item 
\#define \hyperlink{group__driver__api_ga1033feec74cbc16e939d713be2c5b8e0}{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+O\+N}~3
\item 
\#define \hyperlink{group__driver__api_ga2628a2556297a773cddc0848db200d1a}{D\+R\+V\+C\+T\+L\+\_\+\+M\+A\+X}~128
\item 
\#define \hyperlink{group__driver__api_gae323c069918a6b718b3bafd6abbef2a2}{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+T\+E}~2
\item 
\#define \hyperlink{group__driver__api_gae98bd204d31330f5e862817faadf7f85}{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+O\+N}~3
\item 
\#define \hyperlink{group__driver__api_ga548694fee71123534ede5e27aa4e7e1f}{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+U\+E}~4
\item 
\#define \hyperlink{group__driver__api_ga69de338dd3e47a8275e7821c54d3523e}{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+U\+T}~100000
\item 
\hypertarget{group__driver__api_ga6bbd2d040178aaadc1b66044f2f282b8}{}\#define {\bfseries W\+B\+U\+F\+\_\+\+S\+I\+Z\+E}~256\label{group__driver__api_ga6bbd2d040178aaadc1b66044f2f282b8}

\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 
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\+L\+E $\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\+P\+I. 

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}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+O\+N@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+O\+N}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+O\+N@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+O\+N}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+O\+N}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+O\+P\+T\+I\+O\+N~3}\label{group__driver__api_gae98bd204d31330f5e862817faadf7f85}
drvctl error\+: 

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

\hypertarget{group__driver__api_gae323c069918a6b718b3bafd6abbef2a2}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+T\+E@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+T\+E}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+T\+E@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+T\+E}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+T\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+S\+T\+A\+T\+E~2}\label{group__driver__api_gae323c069918a6b718b3bafd6abbef2a2}
drvctl error\+: 

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

\hypertarget{group__driver__api_ga548694fee71123534ede5e27aa4e7e1f}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+U\+E@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+U\+E}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+U\+E@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+U\+E}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+U\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+V\+A\+L\+U\+E~4}\label{group__driver__api_ga548694fee71123534ede5e27aa4e7e1f}
drvctl error\+: 

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

\hypertarget{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D~1}\label{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9}
drvctl definitions

drvctl error. 

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

\hypertarget{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D}}
\index{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D@{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D~1}\label{group__driver__api_gab58e0aa64a0fc3769c30e60aaf7061e9}
drvctl definitions

drvctl error. 

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

\hypertarget{group__driver__api_ga3637dcda1fb5508e6f51a39b0cc048a7}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+T\+E@{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+T\+E}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+T\+E@{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+T\+E}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+T\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+C\+T\+L\+\_\+\+G\+E\+T\+\_\+\+S\+T\+A\+T\+E~1}\label{group__driver__api_ga3637dcda1fb5508e6f51a39b0cc048a7}
Drvctl cmd\+: return current state as an int in $\ast$arg. 

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

\hypertarget{group__driver__api_ga2628a2556297a773cddc0848db200d1a}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+C\+T\+L\+\_\+\+M\+A\+X@{D\+R\+V\+C\+T\+L\+\_\+\+M\+A\+X}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+M\+A\+X@{D\+R\+V\+C\+T\+L\+\_\+\+M\+A\+X}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+C\+T\+L\+\_\+\+M\+A\+X}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+C\+T\+L\+\_\+\+M\+A\+X~128}\label{group__driver__api_ga2628a2556297a773cddc0848db200d1a}
Last well-\/known command. Remaining is used in driver-\/specific controls. 

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

\hypertarget{group__driver__api_ga2d4b7ac43bc60cf3d930431f79b2fb89}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+C\+E@{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+C\+E}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+C\+E@{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+C\+E}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+C\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+N\+D\+\_\+\+S\+P\+A\+C\+E~2}\label{group__driver__api_ga2d4b7ac43bc60cf3d930431f79b2fb89}
Drvctl cmd\+: Send long space. Arg is pulselength (us, an int). 

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

\hypertarget{group__driver__api_ga1033feec74cbc16e939d713be2c5b8e0}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+O\+N@{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+O\+N}}
\index{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+O\+N@{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+O\+N}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+O\+N}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+R\+V\+C\+T\+L\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+O\+N~3}\label{group__driver__api_ga1033feec74cbc16e939d713be2c5b8e0}
Drvctl cmd\+: Set driver options. Arg is $\ast$struct \hyperlink{structoption__t}{option\+\_\+t}. 

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

\hypertarget{group__driver__api_ga69de338dd3e47a8275e7821c54d3523e}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+U\+T@{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+U\+T}}
\index{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+U\+T@{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+U\+T}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+U\+T}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\+I\+N\+\_\+\+R\+E\+C\+E\+I\+V\+E\+\_\+\+T\+I\+M\+E\+O\+U\+T~100000}\label{group__driver__api_ga69de338dd3e47a8275e7821c54d3523e}
Min value returned by receive\+\_\+timeout. 

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



\subsection{Function Documentation}
\hypertarget{group__driver__api_gae334c37e486ce414abf272d4850df6c4}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!decode\+\_\+all@{decode\+\_\+all}}
\index{decode\+\_\+all@{decode\+\_\+all}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{decode\+\_\+all}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ decode\+\_\+all (
\begin{DoxyParamCaption}
\item[{struct {\bf ir\+\_\+remote} $\ast$}]{remotes}
\end{DoxyParamCaption}
)}\label{group__driver__api_gae334c37e486ce414abf272d4850df6c4}
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\+L\+L 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 724 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga683dd53e7e5d62746c1a645fe133daf0}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!default\+\_\+close@{default\+\_\+close}}
\index{default\+\_\+close@{default\+\_\+close}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{default\+\_\+close}]{\setlength{\rightskip}{0pt plus 5cm}int default\+\_\+close (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga683dd53e7e5d62746c1a645fe133daf0}
For now, a placeholder. 

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

\hypertarget{group__driver__api_ga96e3243bc45ff488f6c55dde5e9b377b}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!default\+\_\+drvctl@{default\+\_\+drvctl}}
\index{default\+\_\+drvctl@{default\+\_\+drvctl}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{default\+\_\+drvctl}]{\setlength{\rightskip}{0pt plus 5cm}int default\+\_\+drvctl (
\begin{DoxyParamCaption}
\item[{unsigned int}]{cmd, }
\item[{void $\ast$}]{arg}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga96e3243bc45ff488f6c55dde5e9b377b}
Return D\+R\+V\+C\+T\+L\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+I\+M\+P\+L\+E\+M\+E\+N\+T\+E\+D. 

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

\hypertarget{group__driver__api_gac0f7baaef9fe524365c16022001804d3}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!default\+\_\+open@{default\+\_\+open}}
\index{default\+\_\+open@{default\+\_\+open}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{default\+\_\+open}]{\setlength{\rightskip}{0pt plus 5cm}int default\+\_\+open (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path}
\end{DoxyParamCaption}
)}\label{group__driver__api_gac0f7baaef9fe524365c16022001804d3}
Stores path in drv.\+device if non-\/null. 

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

\hypertarget{group__driver__api_gaae1b223d2bd3a0d0be6e77019c9a976c}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!drv\+\_\+handle\+\_\+options@{drv\+\_\+handle\+\_\+options}}
\index{drv\+\_\+handle\+\_\+options@{drv\+\_\+handle\+\_\+options}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{drv\+\_\+handle\+\_\+options}]{\setlength{\rightskip}{0pt plus 5cm}int drv\+\_\+handle\+\_\+options (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{options}
\end{DoxyParamCaption}
)}\label{group__driver__api_gaae1b223d2bd3a0d0be6e77019c9a976c}
Parse an option string \char`\"{}key\+:value;key\+:value...\char`\"{} and invoke drvctl D\+R\+V\+\_\+\+S\+E\+T\+\_\+\+O\+P\+T\+I\+O\+N as appropriate. 

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

\hypertarget{group__driver__api_gafaa7cb5587a3c58e3e825411b966738a}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!get\+\_\+code\+\_\+by\+\_\+name@{get\+\_\+code\+\_\+by\+\_\+name}}
\index{get\+\_\+code\+\_\+by\+\_\+name@{get\+\_\+code\+\_\+by\+\_\+name}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{get\+\_\+code\+\_\+by\+\_\+name}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf ir\+\_\+ncode}$\ast$ get\+\_\+code\+\_\+by\+\_\+name (
\begin{DoxyParamCaption}
\item[{const struct {\bf ir\+\_\+remote} $\ast$}]{remote, }
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}\label{group__driver__api_gafaa7cb5587a3c58e3e825411b966738a}
Return code with given name in remote\textquotesingle{}s list of codes or N\+U\+L\+L. 

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

\hypertarget{group__driver__api_gaf2e0b982088d231116dea399afa8597f}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!get\+\_\+decoding@{get\+\_\+decoding}}
\index{get\+\_\+decoding@{get\+\_\+decoding}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{get\+\_\+decoding}]{\setlength{\rightskip}{0pt plus 5cm}const struct {\bf ir\+\_\+remote}$\ast$ get\+\_\+decoding (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_gaf2e0b982088d231116dea399afa8597f}
Return pointer to currently decoded remote. 

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

\hypertarget{group__driver__api_ga1a1b6c86d0309f25ab5806a5f861692c}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!get\+\_\+filter\+\_\+parameters@{get\+\_\+filter\+\_\+parameters}}
\index{get\+\_\+filter\+\_\+parameters@{get\+\_\+filter\+\_\+parameters}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{get\+\_\+filter\+\_\+parameters}]{\setlength{\rightskip}{0pt plus 5cm}void get\+\_\+filter\+\_\+parameters (
\begin{DoxyParamCaption}
\item[{const struct {\bf 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}
)}\label{group__driver__api_ga1a1b6c86d0309f25ab5806a5f861692c}

\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 185 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga19bab2135ca2b7f68dc0b2f8cde9863f}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!get\+\_\+frequency\+\_\+range@{get\+\_\+frequency\+\_\+range}}
\index{get\+\_\+frequency\+\_\+range@{get\+\_\+frequency\+\_\+range}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{get\+\_\+frequency\+\_\+range}]{\setlength{\rightskip}{0pt plus 5cm}void get\+\_\+frequency\+\_\+range (
\begin{DoxyParamCaption}
\item[{const struct {\bf ir\+\_\+remote} $\ast$}]{remotes, }
\item[{unsigned int $\ast$}]{min\+\_\+freq, }
\item[{unsigned int $\ast$}]{max\+\_\+freq}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga19bab2135ca2b7f68dc0b2f8cde9863f}

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


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

\hypertarget{group__driver__api_ga251129673cd73c5f869bb53c6c38a88f}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!get\+\_\+ir\+\_\+remote@{get\+\_\+ir\+\_\+remote}}
\index{get\+\_\+ir\+\_\+remote@{get\+\_\+ir\+\_\+remote}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{get\+\_\+ir\+\_\+remote}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf ir\+\_\+remote}$\ast$ get\+\_\+ir\+\_\+remote (
\begin{DoxyParamCaption}
\item[{const struct {\bf ir\+\_\+remote} $\ast$}]{remotes, }
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga251129673cd73c5f869bb53c6c38a88f}
Return \hyperlink{structir__remote}{ir\+\_\+remote} with given name in remotes list, or N\+U\+L\+L if not found. 

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

\hypertarget{group__driver__api_ga8d5bc121b8582a690000bc8befe13080}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!ir\+\_\+remote\+\_\+init@{ir\+\_\+remote\+\_\+init}}
\index{ir\+\_\+remote\+\_\+init@{ir\+\_\+remote\+\_\+init}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{ir\+\_\+remote\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}void ir\+\_\+remote\+\_\+init (
\begin{DoxyParamCaption}
\item[{int}]{use\+\_\+dyncodes}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga8d5bc121b8582a690000bc8befe13080}
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 116 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gaadf09b8ef4b71be00f8e53a39f70d315}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!is\+\_\+in\+\_\+remotes@{is\+\_\+in\+\_\+remotes}}
\index{is\+\_\+in\+\_\+remotes@{is\+\_\+in\+\_\+remotes}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{is\+\_\+in\+\_\+remotes}]{\setlength{\rightskip}{0pt plus 5cm}const struct {\bf ir\+\_\+remote}$\ast$ is\+\_\+in\+\_\+remotes (
\begin{DoxyParamCaption}
\item[{const struct {\bf ir\+\_\+remote} $\ast$}]{remotes, }
\item[{const struct {\bf ir\+\_\+remote} $\ast$}]{remote}
\end{DoxyParamCaption}
)}\label{group__driver__api_gaadf09b8ef4b71be00f8e53a39f70d315}
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 231 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gabac8048f405d0a78fcc01fa9ef1132df}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!map\+\_\+code@{map\+\_\+code}}
\index{map\+\_\+code@{map\+\_\+code}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{map\+\_\+code}]{\setlength{\rightskip}{0pt plus 5cm}int map\+\_\+code (
\begin{DoxyParamCaption}
\item[{const struct {\bf ir\+\_\+remote} $\ast$}]{remote, }
\item[{struct {\bf decode\+\_\+ctx\+\_\+t} $\ast$}]{ctx, }
\item[{int}]{pre\+\_\+bits, }
\item[{{\bf ir\+\_\+code}}]{pre, }
\item[{int}]{bits, }
\item[{{\bf ir\+\_\+code}}]{code, }
\item[{int}]{post\+\_\+bits, }
\item[{{\bf ir\+\_\+code}}]{post}
\end{DoxyParamCaption}
)}\label{group__driver__api_gabac8048f405d0a78fcc01fa9ef1132df}

\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 275 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gac691a06cc99d8c914e2c7451407f245a}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!map\+\_\+gap@{map\+\_\+gap}}
\index{map\+\_\+gap@{map\+\_\+gap}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{map\+\_\+gap}]{\setlength{\rightskip}{0pt plus 5cm}void map\+\_\+gap (
\begin{DoxyParamCaption}
\item[{const struct {\bf ir\+\_\+remote} $\ast$}]{remote, }
\item[{struct {\bf decode\+\_\+ctx\+\_\+t} $\ast$}]{ctx, }
\item[{const struct timeval $\ast$}]{start, }
\item[{const struct timeval $\ast$}]{last, }
\item[{lirc\+\_\+t}]{signal\+\_\+length}
\end{DoxyParamCaption}
)}\label{group__driver__api_gac691a06cc99d8c914e2c7451407f245a}

\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 321 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gac288bce2140d2066a3990a1b2e3317c5}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!ncode\+\_\+dup@{ncode\+\_\+dup}}
\index{ncode\+\_\+dup@{ncode\+\_\+dup}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{ncode\+\_\+dup}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf ir\+\_\+ncode}$\ast$ ncode\+\_\+dup (
\begin{DoxyParamCaption}
\item[{struct {\bf ir\+\_\+ncode} $\ast$}]{ncode}
\end{DoxyParamCaption}
)}\label{group__driver__api_gac288bce2140d2066a3990a1b2e3317c5}
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 61 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_ga4477860d1f604548e032694de8f69c16}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!ncode\+\_\+free@{ncode\+\_\+free}}
\index{ncode\+\_\+free@{ncode\+\_\+free}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{ncode\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void ncode\+\_\+free (
\begin{DoxyParamCaption}
\item[{struct {\bf ir\+\_\+ncode} $\ast$}]{ncode}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga4477860d1f604548e032694de8f69c16}
Dispose an \hyperlink{structir__ncode}{ir\+\_\+ncode} instance obtained from \hyperlink{group__driver__api_gac288bce2140d2066a3990a1b2e3317c5}{ncode\+\_\+dup()}. 

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

\hypertarget{group__driver__api_gae96f4130a6ebac0570094820b39ae11c}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!rec\+\_\+buffer\+\_\+clear@{rec\+\_\+buffer\+\_\+clear}}
\index{rec\+\_\+buffer\+\_\+clear@{rec\+\_\+buffer\+\_\+clear}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{rec\+\_\+buffer\+\_\+clear}]{\setlength{\rightskip}{0pt plus 5cm}int rec\+\_\+buffer\+\_\+clear (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_gae96f4130a6ebac0570094820b39ae11c}
Flush the internal fifo and store a single code read from the driver in it. 

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

\hypertarget{group__driver__api_gabc294def4957afc161909b72e1348835}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!rec\+\_\+buffer\+\_\+init@{rec\+\_\+buffer\+\_\+init}}
\index{rec\+\_\+buffer\+\_\+init@{rec\+\_\+buffer\+\_\+init}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{rec\+\_\+buffer\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}void rec\+\_\+buffer\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_gabc294def4957afc161909b72e1348835}
Clear internal buffer to pristine state. 

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

\hypertarget{group__driver__api_ga74266da334332e934158389894ddb7c4}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!rec\+\_\+buffer\+\_\+reset\+\_\+wptr@{rec\+\_\+buffer\+\_\+reset\+\_\+wptr}}
\index{rec\+\_\+buffer\+\_\+reset\+\_\+wptr@{rec\+\_\+buffer\+\_\+reset\+\_\+wptr}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{rec\+\_\+buffer\+\_\+reset\+\_\+wptr}]{\setlength{\rightskip}{0pt plus 5cm}void rec\+\_\+buffer\+\_\+reset\+\_\+wptr (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga74266da334332e934158389894ddb7c4}
Reset internal fifo\textquotesingle{}s write pointer. 

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

\hypertarget{group__driver__api_ga3367c6a318967cb750f67d95d43d3102}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!rec\+\_\+buffer\+\_\+rewind@{rec\+\_\+buffer\+\_\+rewind}}
\index{rec\+\_\+buffer\+\_\+rewind@{rec\+\_\+buffer\+\_\+rewind}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{rec\+\_\+buffer\+\_\+rewind}]{\setlength{\rightskip}{0pt plus 5cm}void rec\+\_\+buffer\+\_\+rewind (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga3367c6a318967cb750f67d95d43d3102}
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 202 of file receive.\+c.

\hypertarget{group__driver__api_ga0055fe8b9e15df2483fac31e79f8276a}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!rec\+\_\+buffer\+\_\+set\+\_\+logfile@{rec\+\_\+buffer\+\_\+set\+\_\+logfile}}
\index{rec\+\_\+buffer\+\_\+set\+\_\+logfile@{rec\+\_\+buffer\+\_\+set\+\_\+logfile}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{rec\+\_\+buffer\+\_\+set\+\_\+logfile}]{\setlength{\rightskip}{0pt plus 5cm}void rec\+\_\+buffer\+\_\+set\+\_\+logfile (
\begin{DoxyParamCaption}
\item[{F\+I\+L\+E $\ast$}]{f}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga0055fe8b9e15df2483fac31e79f8276a}
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\+L\+L to disable logging. \\
\hline
\end{DoxyParams}


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

\hypertarget{group__driver__api_gaa491fcec2fc35512ff2964dc208edcca}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!rec\+\_\+set\+\_\+update\+\_\+mode@{rec\+\_\+set\+\_\+update\+\_\+mode}}
\index{rec\+\_\+set\+\_\+update\+\_\+mode@{rec\+\_\+set\+\_\+update\+\_\+mode}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{rec\+\_\+set\+\_\+update\+\_\+mode}]{\setlength{\rightskip}{0pt plus 5cm}void rec\+\_\+set\+\_\+update\+\_\+mode (
\begin{DoxyParamCaption}
\item[{int}]{mode}
\end{DoxyParamCaption}
)}\label{group__driver__api_gaa491fcec2fc35512ff2964dc208edcca}
Set update mode, where recorded pre\+\_\+data is verified to match the template pre\+\_\+data. By defaulöt false. 

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

\hypertarget{group__driver__api_gad89c025d8cc9f77d9d5597da2e420917}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!receive\+\_\+decode@{receive\+\_\+decode}}
\index{receive\+\_\+decode@{receive\+\_\+decode}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{receive\+\_\+decode}]{\setlength{\rightskip}{0pt plus 5cm}int receive\+\_\+decode (
\begin{DoxyParamCaption}
\item[{struct {\bf ir\+\_\+remote} $\ast$}]{remote, }
\item[{struct {\bf decode\+\_\+ctx\+\_\+t} $\ast$}]{ctx}
\end{DoxyParamCaption}
)}\label{group__driver__api_gad89c025d8cc9f77d9d5597da2e420917}
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 1034 of file receive.\+c.

\hypertarget{group__driver__api_ga4871fa572fb913f068f0e3c75d3fdc41}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!send\+\_\+buffer\+\_\+data@{send\+\_\+buffer\+\_\+data}}
\index{send\+\_\+buffer\+\_\+data@{send\+\_\+buffer\+\_\+data}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{send\+\_\+buffer\+\_\+data}]{\setlength{\rightskip}{0pt plus 5cm}const lirc\+\_\+t$\ast$ send\+\_\+buffer\+\_\+data (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga4871fa572fb913f068f0e3c75d3fdc41}
\begin{DoxyReturn}{Returns}
Pointer to timing data in microseconds for pulses/spaces. 
\end{DoxyReturn}


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

\hypertarget{group__driver__api_ga85a7e2c6a62aab93aaa6453dea381112}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!send\+\_\+buffer\+\_\+init@{send\+\_\+buffer\+\_\+init}}
\index{send\+\_\+buffer\+\_\+init@{send\+\_\+buffer\+\_\+init}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{send\+\_\+buffer\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}void send\+\_\+buffer\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga85a7e2c6a62aab93aaa6453dea381112}
Clear and re-\/initiate the buffer.

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

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

\hypertarget{group__driver__api_gae40fd0e37871cd30a43b3b2bc3c4336c}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!send\+\_\+buffer\+\_\+length@{send\+\_\+buffer\+\_\+length}}
\index{send\+\_\+buffer\+\_\+length@{send\+\_\+buffer\+\_\+length}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{send\+\_\+buffer\+\_\+length}]{\setlength{\rightskip}{0pt plus 5cm}int send\+\_\+buffer\+\_\+length (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_gae40fd0e37871cd30a43b3b2bc3c4336c}
\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 366 of file transmit.\+c.

\hypertarget{group__driver__api_ga0d43b932c9b39d14e675dbd9507f3997}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!send\+\_\+buffer\+\_\+put@{send\+\_\+buffer\+\_\+put}}
\index{send\+\_\+buffer\+\_\+put@{send\+\_\+buffer\+\_\+put}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{send\+\_\+buffer\+\_\+put}]{\setlength{\rightskip}{0pt plus 5cm}int send\+\_\+buffer\+\_\+put (
\begin{DoxyParamCaption}
\item[{struct {\bf ir\+\_\+remote} $\ast$}]{remote, }
\item[{struct {\bf ir\+\_\+ncode} $\ast$}]{code}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga0d43b932c9b39d14e675dbd9507f3997}
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 348 of file transmit.\+c.

\hypertarget{group__driver__api_ga55e0351346ec0cb553a7f1632db99c57}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!send\+\_\+buffer\+\_\+sum@{send\+\_\+buffer\+\_\+sum}}
\index{send\+\_\+buffer\+\_\+sum@{send\+\_\+buffer\+\_\+sum}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{send\+\_\+buffer\+\_\+sum}]{\setlength{\rightskip}{0pt plus 5cm}lirc\+\_\+t send\+\_\+buffer\+\_\+sum (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga55e0351346ec0cb553a7f1632db99c57}
\begin{DoxyReturn}{Returns}
Total length of send buffer in microseconds. 
\end{DoxyReturn}


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

\hypertarget{group__driver__api_ga51d2eb6ccf92c9210c69cd727b712bae}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!send\+\_\+ir\+\_\+ncode@{send\+\_\+ir\+\_\+ncode}}
\index{send\+\_\+ir\+\_\+ncode@{send\+\_\+ir\+\_\+ncode}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{send\+\_\+ir\+\_\+ncode}]{\setlength{\rightskip}{0pt plus 5cm}int send\+\_\+ir\+\_\+ncode (
\begin{DoxyParamCaption}
\item[{struct {\bf ir\+\_\+remote} $\ast$}]{remote, }
\item[{struct {\bf ir\+\_\+ncode} $\ast$}]{code, }
\item[{int}]{delay}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga51d2eb6ccf92c9210c69cd727b712bae}
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\+L\+L, 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} & I\+R 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 816 of file ir\+\_\+remote.\+c.

\hypertarget{group__driver__api_gaa680ad6c63aaac541fc85d61b73a46d1}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+clear@{tty\+\_\+clear}}
\index{tty\+\_\+clear@{tty\+\_\+clear}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+clear}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+clear (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{int}]{rts, }
\item[{int}]{dtr}
\end{DoxyParamCaption}
)}\label{group__driver__api_gaa680ad6c63aaac541fc85d61b73a46d1}
Clear R\+T\+S and D\+T\+R control lines.


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


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

\hypertarget{group__driver__api_gaa2128e719d5174e1210fcc8c532c82bd}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+create\+\_\+lock@{tty\+\_\+create\+\_\+lock}}
\index{tty\+\_\+create\+\_\+lock@{tty\+\_\+create\+\_\+lock}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+create\+\_\+lock}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+create\+\_\+lock (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}\label{group__driver__api_gaa2128e719d5174e1210fcc8c532c82bd}
Creates a lock file of the type /var/local/\+L\+C\+K.. + 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 297 of file serial.\+c.

\hypertarget{group__driver__api_ga94d6aff1542d08fcf32b5acdc735090e}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+delete\+\_\+lock@{tty\+\_\+delete\+\_\+lock}}
\index{tty\+\_\+delete\+\_\+lock@{tty\+\_\+delete\+\_\+lock}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+delete\+\_\+lock}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+delete\+\_\+lock (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga94d6aff1542d08fcf32b5acdc735090e}
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 440 of file serial.\+c.

\hypertarget{group__driver__api_ga76ea8c360d88f108399c5926b3bff16d}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+read@{tty\+\_\+read}}
\index{tty\+\_\+read@{tty\+\_\+read}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+read}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+read (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{char $\ast$}]{byte}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga76ea8c360d88f108399c5926b3bff16d}
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 554 of file serial.\+c.

\hypertarget{group__driver__api_ga2cad04de039521ac1b0c14c42ba1b43c}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+reset@{tty\+\_\+reset}}
\index{tty\+\_\+reset@{tty\+\_\+reset}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+reset}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+reset (
\begin{DoxyParamCaption}
\item[{int}]{fd}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga2cad04de039521ac1b0c14c42ba1b43c}
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 49 of file serial.\+c.

\hypertarget{group__driver__api_ga17fb600e510ec6919659e7fab74c3de6}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+set@{tty\+\_\+set}}
\index{tty\+\_\+set@{tty\+\_\+set}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+set (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{int}]{rts, }
\item[{int}]{dtr}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga17fb600e510ec6919659e7fab74c3de6}
Set R\+T\+S and D\+T\+R control lines.


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


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

\hypertarget{group__driver__api_ga44b60aca788c92e31b61298f534d2b2c}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+setbaud@{tty\+\_\+setbaud}}
\index{tty\+\_\+setbaud@{tty\+\_\+setbaud}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+setbaud}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+setbaud (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{int}]{baud}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga44b60aca788c92e31b61298f534d2b2c}
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 115 of file serial.\+c.

\hypertarget{group__driver__api_gaffeab51b57e1e8eaca6fc502f99e6c29}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+setcsize@{tty\+\_\+setcsize}}
\index{tty\+\_\+setcsize@{tty\+\_\+setcsize}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+setcsize}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+setcsize (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{int}]{csize}
\end{DoxyParamCaption}
)}\label{group__driver__api_gaffeab51b57e1e8eaca6fc502f99e6c29}
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 260 of file serial.\+c.

\hypertarget{group__driver__api_ga7c9acb60305177b4498553782eb4fa3c}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+setdtr@{tty\+\_\+setdtr}}
\index{tty\+\_\+setdtr@{tty\+\_\+setdtr}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+setdtr}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+setdtr (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{int}]{enable}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga7c9acb60305177b4498553782eb4fa3c}
Set/clear D\+T\+R control line.


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


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

\hypertarget{group__driver__api_gafcab1b890be0e097640ff31f866ab94c}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+setrtscts@{tty\+\_\+setrtscts}}
\index{tty\+\_\+setrtscts@{tty\+\_\+setrtscts}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+setrtscts}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+setrtscts (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{int}]{enable}
\end{DoxyParamCaption}
)}\label{group__driver__api_gafcab1b890be0e097640ff31f866ab94c}
Set/clear C\+T\+S control line.


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


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

\hypertarget{group__driver__api_ga03233443b447b2de3a81b77a317663c4}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+write@{tty\+\_\+write}}
\index{tty\+\_\+write@{tty\+\_\+write}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+write}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+write (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{char}]{byte}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga03233443b447b2de3a81b77a317663c4}
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 536 of file serial.\+c.

\hypertarget{group__driver__api_ga855e6cb4247f8359643a184a912d754d}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!tty\+\_\+write\+\_\+echo@{tty\+\_\+write\+\_\+echo}}
\index{tty\+\_\+write\+\_\+echo@{tty\+\_\+write\+\_\+echo}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{tty\+\_\+write\+\_\+echo}]{\setlength{\rightskip}{0pt plus 5cm}int tty\+\_\+write\+\_\+echo (
\begin{DoxyParamCaption}
\item[{int}]{fd, }
\item[{char}]{byte}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga855e6cb4247f8359643a184a912d754d}
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 574 of file serial.\+c.

\hypertarget{group__driver__api_gadcb46dccea6a4f82bebda46e51945819}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!waitfordata@{waitfordata}}
\index{waitfordata@{waitfordata}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{waitfordata}]{\setlength{\rightskip}{0pt plus 5cm}int waitfordata (
\begin{DoxyParamCaption}
\item[{\+\_\+\+\_\+u32}]{maxusec}
\end{DoxyParamCaption}
)}\label{group__driver__api_gadcb46dccea6a4f82bebda46e51945819}
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 158 of file receive.\+c.

\hypertarget{group__driver__api_ga04461705747fd8521d369ee96ed762fe}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!write\+\_\+message@{write\+\_\+message}}
\index{write\+\_\+message@{write\+\_\+message}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{write\+\_\+message}]{\setlength{\rightskip}{0pt plus 5cm}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[{{\bf ir\+\_\+code}}]{code, }
\item[{int}]{reps}
\end{DoxyParamCaption}
)}\label{group__driver__api_ga04461705747fd8521d369ee96ed762fe}
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 705 of file ir\+\_\+remote.\+c.



\subsection{Variable Documentation}
\hypertarget{group__driver__api_ga474c489cabdaae4546ca0ac26ec9cd87}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!last\+\_\+remote@{last\+\_\+remote}}
\index{last\+\_\+remote@{last\+\_\+remote}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{last\+\_\+remote}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf ir\+\_\+remote}$\ast$ last\+\_\+remote}\label{group__driver__api_ga474c489cabdaae4546ca0ac26ec9cd87}
T\+O\+D\+O 

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

\hypertarget{group__driver__api_ga2da0e0383db556d0e1ba7261763815c5}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!repeat\+\_\+code@{repeat\+\_\+code}}
\index{repeat\+\_\+code@{repeat\+\_\+code}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{repeat\+\_\+code}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf ir\+\_\+ncode}$\ast$ repeat\+\_\+code}\label{group__driver__api_ga2da0e0383db556d0e1ba7261763815c5}
Global pointer to the code currently repeating. Defined in \hyperlink{ir__remote_8c}{ir\+\_\+remote.\+c}. 

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

\hypertarget{group__driver__api_ga7bc28a85da7d0ccf4466708918f01dc4}{}\index{User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}!repeat\+\_\+remote@{repeat\+\_\+remote}}
\index{repeat\+\_\+remote@{repeat\+\_\+remote}!User-\/space driver A\+P\+I@{User-\/space driver A\+P\+I}}
\subsubsection[{repeat\+\_\+remote}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf ir\+\_\+remote}$\ast$ repeat\+\_\+remote}\label{group__driver__api_ga7bc28a85da7d0ccf4466708918f01dc4}
Global pointer to the remote that contains the code currently repeating. Defined in \hyperlink{ir__remote_8c}{ir\+\_\+remote.\+c}. 

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

