summaryrefslogtreecommitdiffstats
path: root/doc/api-ref/latex/df
diff options
context:
space:
mode:
Diffstat (limited to 'doc/api-ref/latex/df')
-rw-r--r--doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex17
-rw-r--r--doc/api-ref/latex/df/d66/hs-helper_8cpp.tex374
-rw-r--r--doc/api-ref/latex/df/d76/hmi-debug_8h.tex202
-rw-r--r--doc/api-ref/latex/df/d7d/structevent.tex44
-rw-r--r--doc/api-ref/latex/df/dac/test_8cpp.tex275
5 files changed, 382 insertions, 530 deletions
diff --git a/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex b/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex
index a88a588..d2fbd81 100644
--- a/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex
+++ b/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex
@@ -1,14 +1,13 @@
\hypertarget{libhomescreen_8hpp}{}\section{include/libhomescreen.hpp File Reference}
\label{libhomescreen_8hpp}\index{include/libhomescreen.\+hpp@{include/libhomescreen.\+hpp}}
-{\ttfamily \#include $<$vector$>$}\newline
-{\ttfamily \#include $<$map$>$}\newline
-{\ttfamily \#include $<$string$>$}\newline
-{\ttfamily \#include $<$functional$>$}\newline
-{\ttfamily \#include $<$json-\/c/json.\+h$>$}\newline
-{\ttfamily \#include $<$systemd/sd-\/event.\+h$>$}\newline
-{\ttfamily \#include $<$afb/afb-\/binding.\+h$>$}\newline
-{\ttfamily \#include $<$afb/afb-\/wsj1.\+h$>$}\newline
-{\ttfamily \#include $<$afb/afb-\/ws-\/client.\+h$>$}\newline
+{\ttfamily \#include $<$vector$>$}\\*
+{\ttfamily \#include $<$map$>$}\\*
+{\ttfamily \#include $<$string$>$}\\*
+{\ttfamily \#include $<$functional$>$}\\*
+{\ttfamily \#include $<$json-\/c/json.\+h$>$}\\*
+{\ttfamily \#include $<$systemd/sd-\/event.\+h$>$}\\*
+{\ttfamily \#include $<$afb/afb-\/wsj1.\+h$>$}\\*
+{\ttfamily \#include $<$afb/afb-\/ws-\/client.\+h$>$}\\*
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item
diff --git a/doc/api-ref/latex/df/d66/hs-helper_8cpp.tex b/doc/api-ref/latex/df/d66/hs-helper_8cpp.tex
new file mode 100644
index 0000000..2e69a28
--- /dev/null
+++ b/doc/api-ref/latex/df/d66/hs-helper_8cpp.tex
@@ -0,0 +1,374 @@
+\hypertarget{hs-helper_8cpp}{}\section{src/hs-\/helper.cpp File Reference}
+\label{hs-helper_8cpp}\index{src/hs-\/helper.\+cpp@{src/hs-\/helper.\+cpp}}
+{\ttfamily \#include $<$string.\+h$>$}\\*
+{\ttfamily \#include $<$cstdarg$>$}\\*
+{\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\\*
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}{get\+\_\+value\+\_\+uint16} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, uint16\+\_\+t $\ast$out\+\_\+id)
+\item
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}{get\+\_\+value\+\_\+int16} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)
+\item
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}{get\+\_\+value\+\_\+int32} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)
+\item
+void \hyperlink{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
+\item
+void \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
+\item
+void \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func} (struct json\+\_\+object $\ast$j\+\_\+obj, const char $\ast$verb\+\_\+name, int count,...)
+\item
+int \hyperlink{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index} (const char $\ast$value)
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+const char $\ast$ \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} \mbox{[}$\,$\mbox{]}
+\end{DoxyCompactItemize}
+
+
+\subsection{Function Documentation}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}}
+\index{get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+int16(const afb\+\_\+req\+\_\+t request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)}{get_value_int16(const afb_req_t request, const char *source, int16_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int16 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{int16\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}{}\label{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}
+get int16 value from source
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output int16 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 82 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+83 \{
+84 \textcolor{keywordtype}{char}* endptr;
+85 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+86 \textcolor{keywordflow}{if}(!tmp)
+87 \{
+88 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+89 \}
+90 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+91
+92 \textcolor{comment}{/* error check of range */}
+93 \textcolor{keywordflow}{if}( (tmp\_id > INT16\_MAX) || (tmp\_id < INT16\_MIN) )
+94 \{
+95 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+96 \}
+97 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+98 \{
+99 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+100 \}
+101
+102 *out\_id = (int16\_t)tmp\_id;
+103 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+104 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}}
+\index{get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+int32(const afb\+\_\+req\+\_\+t request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)}{get_value_int32(const afb_req_t request, const char *source, int32_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int32 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{int32\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}{}\label{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}
+get int32 value from source
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output int32 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 118 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+119 \{
+120 \textcolor{keywordtype}{char}* endptr;
+121 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+122 \textcolor{keywordflow}{if}(!tmp)
+123 \{
+124 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+125 \}
+126 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+127
+128 \textcolor{comment}{/* error check of range */}
+129 \textcolor{keywordflow}{if}( (tmp\_id > INT32\_MAX) || (tmp\_id < INT32\_MIN) )
+130 \{
+131 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+132 \}
+133 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+134 \{
+135 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+136 \}
+137
+138 *out\_id = (int32\_t)tmp\_id;
+139 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+140 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}}
+\index{get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+uint16(const afb\+\_\+req\+\_\+t request, const char $\ast$source, uint16\+\_\+t $\ast$out\+\_\+id)}{get_value_uint16(const afb_req_t request, const char *source, uint16_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+uint16 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{uint16\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}{}\label{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}
+get uint16 value from source
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output uint16 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 46 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+47 \{
+48 \textcolor{keywordtype}{char}* endptr;
+49 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+50 \textcolor{keywordflow}{if}(!tmp)
+51 \{
+52 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+53 \}
+54 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+55
+56 \textcolor{comment}{/* error check of range */}
+57 \textcolor{keywordflow}{if}( (tmp\_id > UINT16\_MAX) || (tmp\_id < 0) )
+58 \{
+59 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+60 \}
+61 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+62 \{
+63 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+64 \}
+65
+66 *out\_id = (uint16\_t)tmp\_id;
+67 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+68 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object}}
+\index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object(struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)}{hs_add_object_to_json_object(struct json_object *j_obj, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}{}\label{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}
+add int object to json object
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in int json object
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 154 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+155 \{
+156 va\_list args;
+157 va\_start(args, count);
+158 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+159 \{
+160 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+161 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+162 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+163 ++i;
+164 \}
+165 va\_end(args);
+166 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func}}
+\index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func(struct json\+\_\+object $\ast$j\+\_\+obj, const char $\ast$verb\+\_\+name, int count,...)}{hs_add_object_to_json_object_func(struct json_object *j_obj, const char *verb_name, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{const char $\ast$}]{verb\+\_\+name, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{}\label{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}
+add new json object to json object
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in new json object
+\item verb\+\_\+name \+: new json object\textquotesingle{}s verb value
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 207 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+208 \{
+209 va\_list args;
+210 va\_start(args, count);
+211
+212 json\_object\_object\_add(j\_obj,\textcolor{stringliteral}{"verb"}, json\_object\_new\_string(verb\_name));
+213
+214 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+215 \{
+216 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+217 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+218 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+219 ++i;
+220 \}
+221 va\_end(args);
+222 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str}}
+\index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str(struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)}{hs_add_object_to_json_object_str(struct json_object *j_obj, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{}\label{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}
+add string object to json object
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in string json object
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 180 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+181 \{
+182 va\_list args;
+183 va\_start(args, count);
+184 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+185 \{
+186 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+187 \textcolor{keywordtype}{char} *value = va\_arg(args, \textcolor{keywordtype}{char}*);
+188 json\_object\_object\_add(j\_obj, key, json\_object\_new\_string(value));
+189 ++i;
+190 \}
+191 va\_end(args);
+192 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}}
+\index{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index(const char $\ast$value)}{hs_search_event_name_index(const char *value)}}]{\setlength{\rightskip}{0pt plus 5cm}int hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{value}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}{}\label{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}
+search event position in event list
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item value \+: searched event name
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+event\textquotesingle{}s index in event list
+
+Definition at line 234 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+235 \{
+236 \textcolor{keywordtype}{size\_t} buf\_size = 50;
+237 \textcolor{keywordtype}{size\_t} size = \textcolor{keyword}{sizeof} \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} / \textcolor{keyword}{sizeof} *\hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist};
+238 \textcolor{keywordtype}{int} ret = -1;
+239 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{size\_t} i = 0 ; i < size ; ++i)
+240 \{
+241 \textcolor{keywordflow}{if}(!strncmp(value, \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[i], buf\_size))
+242 \{
+243 ret = i;
+244 \textcolor{keywordflow}{break};
+245 \}
+246 \}
+247 \textcolor{keywordflow}{return} ret;
+248 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!evlist@{evlist}}
+\index{evlist@{evlist}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{evlist}{evlist}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ evlist\mbox{[}$\,$\mbox{]}}\hypertarget{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{}\label{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \textcolor{stringliteral}{"tap\_shortcut"},
+ \textcolor{stringliteral}{"on\_screen\_message"},
+ \textcolor{stringliteral}{"on\_screen\_reply"},
+ \textcolor{stringliteral}{"showWindow"},
+ \textcolor{stringliteral}{"hideWindow"},
+ \textcolor{stringliteral}{"replyShowWindow"},
+ \textcolor{stringliteral}{"showNotification"},
+ \textcolor{stringliteral}{"showInformation"},
+ \textcolor{stringliteral}{"reserved"}
+ \}
+\end{DoxyCode}
+
+
+Definition at line 22 of file hs-\/helper.\+cpp.
+
diff --git a/doc/api-ref/latex/df/d76/hmi-debug_8h.tex b/doc/api-ref/latex/df/d76/hmi-debug_8h.tex
deleted file mode 100644
index 4f5a64c..0000000
--- a/doc/api-ref/latex/df/d76/hmi-debug_8h.tex
+++ /dev/null
@@ -1,202 +0,0 @@
-\hypertarget{hmi-debug_8h}{}\section{include/hmi-\/debug.h File Reference}
-\label{hmi-debug_8h}\index{include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
-{\ttfamily \#include $<$time.\+h$>$}\newline
-{\ttfamily \#include $<$stdio.\+h$>$}\newline
-{\ttfamily \#include $<$afb/afb-\/binding.\+h$>$}\newline
-\subsection*{Macros}
-\begin{DoxyCompactItemize}
-\item
-\#define \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{H\+M\+I\+\_\+\+E\+R\+R\+OR}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\item
-\#define \hyperlink{hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\item
-\#define \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\item
-\#define \hyperlink{hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}{H\+M\+I\+\_\+\+I\+N\+FO}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\item
-\#define \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{H\+M\+I\+\_\+\+D\+E\+B\+UG}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\end{DoxyCompactItemize}
-\subsection*{Enumerations}
-\begin{DoxyCompactItemize}
-\item
-enum \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL} \{ \newline
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE} = 0,
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR},
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG},
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE},
-\newline
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO},
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG},
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX} = L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR
- \}
-\end{DoxyCompactItemize}
-\subsection*{Functions}
-\begin{DoxyCompactItemize}
-\item
-static void \hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG} (enum \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL} level, const char $\ast$file, const char $\ast$func, const int line, const char $\ast$prefix, const char $\ast$log,...)
-\end{DoxyCompactItemize}
-\subsection*{Variables}
-\begin{DoxyCompactItemize}
-\item
-static char \hyperlink{hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG} \mbox{[}6\mbox{]}\mbox{[}20\mbox{]} = \{\char`\"{}N\+O\+NE\char`\"{}, \char`\"{}E\+R\+R\+OR\char`\"{}, \char`\"{}W\+A\+R\+N\+I\+NG\char`\"{}, \char`\"{}N\+O\+T\+I\+CE\char`\"{}, \char`\"{}I\+N\+FO\char`\"{}, \char`\"{}D\+E\+B\+UG\char`\"{}\}
-\end{DoxyCompactItemize}
-
-
-\subsection{Macro Definition Documentation}
-\mbox{\Hypertarget{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}\label{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+D\+E\+B\+UG@{H\+M\+I\+\_\+\+D\+E\+B\+UG}}
-\index{H\+M\+I\+\_\+\+D\+E\+B\+UG@{H\+M\+I\+\_\+\+D\+E\+B\+UG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+D\+E\+B\+UG}{HMI\_DEBUG}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+D\+E\+B\+UG(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 22 of file hmi-\/debug.\+h.
-
-\mbox{\Hypertarget{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}\label{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+E\+R\+R\+OR@{H\+M\+I\+\_\+\+E\+R\+R\+OR}}
-\index{H\+M\+I\+\_\+\+E\+R\+R\+OR@{H\+M\+I\+\_\+\+E\+R\+R\+OR}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+E\+R\+R\+OR}{HMI\_ERROR}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+E\+R\+R\+OR(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 18 of file hmi-\/debug.\+h.
-
-\mbox{\Hypertarget{hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}\label{hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+I\+N\+FO@{H\+M\+I\+\_\+\+I\+N\+FO}}
-\index{H\+M\+I\+\_\+\+I\+N\+FO@{H\+M\+I\+\_\+\+I\+N\+FO}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+I\+N\+FO}{HMI\_INFO}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+I\+N\+FO(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 21 of file hmi-\/debug.\+h.
-
-\mbox{\Hypertarget{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}\label{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+N\+O\+T\+I\+CE@{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}}
-\index{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE@{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}{HMI\_NOTICE}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+N\+O\+T\+I\+CE(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 20 of file hmi-\/debug.\+h.
-
-\mbox{\Hypertarget{hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}\label{hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG@{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}}
-\index{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG@{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}{HMI\_WARNING}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 19 of file hmi-\/debug.\+h.
-
-
-
-\subsection{Enumeration Type Documentation}
-\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+EL@{L\+O\+G\+\_\+\+L\+E\+V\+EL}}
-\index{L\+O\+G\+\_\+\+L\+E\+V\+EL@{L\+O\+G\+\_\+\+L\+E\+V\+EL}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{L\+O\+G\+\_\+\+L\+E\+V\+EL}{LOG\_LEVEL}}
-{\footnotesize\ttfamily enum \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL}}
-
-\begin{DoxyEnumFields}{Enumerator}
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX&\\
-\hline
-
-\end{DoxyEnumFields}
-
-
-Definition at line 8 of file hmi-\/debug.\+h.
-
-
-\begin{DoxyCode}
-8 \{
-9 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{LOG\_LEVEL\_NONE} = 0,
-10 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{LOG\_LEVEL\_ERROR},
-11 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{LOG\_LEVEL\_WARNING},
-12 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{LOG\_LEVEL\_NOTICE},
-13 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{LOG\_LEVEL\_INFO},
-14 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{LOG\_LEVEL\_DEBUG},
-15 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{LOG\_LEVEL\_MAX} = \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{LOG\_LEVEL\_ERROR}
-16 \};
-\end{DoxyCode}
-
-
-\subsection{Function Documentation}
-\mbox{\Hypertarget{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}\label{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!\+\_\+\+H\+M\+I\+\_\+\+L\+OG@{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}}
-\index{\+\_\+\+H\+M\+I\+\_\+\+L\+OG@{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{\+\_\+\+H\+M\+I\+\_\+\+L\+O\+G()}{\_HMI\_LOG()}}
-{\footnotesize\ttfamily static void \+\_\+\+H\+M\+I\+\_\+\+L\+OG (\begin{DoxyParamCaption}\item[{enum \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL}}]{level, }\item[{const char $\ast$}]{file, }\item[{const char $\ast$}]{func, }\item[{const int}]{line, }\item[{const char $\ast$}]{prefix, }\item[{const char $\ast$}]{log, }\item[{}]{... }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 26 of file hmi-\/debug.\+h.
-
-
-\begin{DoxyCode}
-27 \{
-28 \textcolor{keyword}{const} \textcolor{keywordtype}{int} log\_level = (getenv(\textcolor{stringliteral}{"USE\_HMI\_DEBUG"}) == NULL)?0:atoi(getenv(\textcolor{stringliteral}{"USE\_HMI\_DEBUG"}));
-29 \textcolor{keywordflow}{if}(log\_level < level)
-30 \{
-31 \textcolor{keywordflow}{return};
-32 \}
-33
-34 \textcolor{keywordtype}{char} *message;
-35 \textcolor{keyword}{struct }timespec tp;
-36 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} time;
-37
-38 clock\_gettime(CLOCK\_REALTIME, &tp);
-39 time = (tp.tv\_sec * 1000000L) + (tp.tv\_nsec / 1000);
-40
-41 va\_list args;
-42 va\_start(args, log);
-43 \textcolor{keywordflow}{if} (log == NULL || vasprintf(&message, log, args) < 0)
-44 message = NULL;
-45 fprintf(stderr, \textcolor{stringliteral}{"[%10.3f] [%s %s] [%s:%d] >>> %s \(\backslash\)n"}, time / 1000.0, prefix,
- \hyperlink{hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}{ERROR\_FLAG}[level], func, line, message);
-46 va\_end(args);
-47 free(message);
-48 \}
-\end{DoxyCode}
-
-
-\subsection{Variable Documentation}
-\mbox{\Hypertarget{hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}\label{hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!E\+R\+R\+O\+R\+\_\+\+F\+L\+AG@{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG}}
-\index{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG@{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG}{ERROR\_FLAG}}
-{\footnotesize\ttfamily char E\+R\+R\+O\+R\+\_\+\+F\+L\+AG\mbox{[}6\mbox{]}\mbox{[}20\mbox{]} = \{\char`\"{}N\+O\+NE\char`\"{}, \char`\"{}E\+R\+R\+OR\char`\"{}, \char`\"{}W\+A\+R\+N\+I\+NG\char`\"{}, \char`\"{}N\+O\+T\+I\+CE\char`\"{}, \char`\"{}I\+N\+FO\char`\"{}, \char`\"{}D\+E\+B\+UG\char`\"{}\}\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 24 of file hmi-\/debug.\+h.
-
diff --git a/doc/api-ref/latex/df/d7d/structevent.tex b/doc/api-ref/latex/df/d7d/structevent.tex
deleted file mode 100644
index d33a2da..0000000
--- a/doc/api-ref/latex/df/d7d/structevent.tex
+++ /dev/null
@@ -1,44 +0,0 @@
-\hypertarget{structevent}{}\section{event Struct Reference}
-\label{structevent}\index{event@{event}}
-\subsection*{Public Attributes}
-\begin{DoxyCompactItemize}
-\item
-const char $\ast$ \hyperlink{structevent_a45c6cfb7961a21a3366db067e4cc59ab}{name}
-\item
-struct afb\+\_\+event $\ast$ \hyperlink{structevent_a58726ebc551d36562ac3f9e1fe293214}{event}
-\end{DoxyCompactItemize}
-
-
-\subsection{Detailed Description}
-
-
-Definition at line 35 of file homescreen.\+c.
-
-
-
-\subsection{Member Data Documentation}
-\mbox{\Hypertarget{structevent_a58726ebc551d36562ac3f9e1fe293214}\label{structevent_a58726ebc551d36562ac3f9e1fe293214}}
-\index{event@{event}!event@{event}}
-\index{event@{event}!event@{event}}
-\subsubsection{\texorpdfstring{event}{event}}
-{\footnotesize\ttfamily struct afb\+\_\+event$\ast$ event\+::event}
-
-
-
-Definition at line 37 of file homescreen.\+c.
-
-\mbox{\Hypertarget{structevent_a45c6cfb7961a21a3366db067e4cc59ab}\label{structevent_a45c6cfb7961a21a3366db067e4cc59ab}}
-\index{event@{event}!name@{name}}
-\index{name@{name}!event@{event}}
-\subsubsection{\texorpdfstring{name}{name}}
-{\footnotesize\ttfamily const char$\ast$ event\+::name}
-
-
-
-Definition at line 36 of file homescreen.\+c.
-
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item
-src/\hyperlink{homescreen_8c}{homescreen.\+c}\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/df/dac/test_8cpp.tex b/doc/api-ref/latex/df/dac/test_8cpp.tex
deleted file mode 100644
index 92ef1df..0000000
--- a/doc/api-ref/latex/df/dac/test_8cpp.tex
+++ /dev/null
@@ -1,275 +0,0 @@
-\hypertarget{test_8cpp}{}\section{libhomescreen/test.cpp File Reference}
-\label{test_8cpp}\index{libhomescreen/test.\+cpp@{libhomescreen/test.\+cpp}}
-{\ttfamily \#include $<$libhomescreen.\+hpp$>$}\newline
-{\ttfamily \#include $<$iostream$>$}\newline
-{\ttfamily \#include $<$glib-\/2.\+0/glib.\+h$>$}\newline
-{\ttfamily \#include $<$fcntl.\+h$>$}\newline
-{\ttfamily \#include $<$string$>$}\newline
-{\ttfamily \#include $<$sys/types.\+h$>$}\newline
-{\ttfamily \#include $<$sys/stat.\+h$>$}\newline
-{\ttfamily \#include $<$thread$>$}\newline
-{\ttfamily \#include $<$exception$>$}\newline
-{\ttfamily \#include $<$vector$>$}\newline
-{\ttfamily \#include $<$sstream$>$}\newline
-{\ttfamily \#include $<$functional$>$}\newline
-\subsection*{Functions}
-\begin{DoxyCompactItemize}
-\item
-static vector$<$ string $>$ \hyperlink{test_8cpp_aafb7f182b8bb6ba92354dde1658d86a4}{split} (const string \&str, char sep)
-\item
-static void \hyperlink{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}{usage} ()
-\item
-static void \hyperlink{test_8cpp_aa9b3c43c212b49edee82ac30a11aa255}{call\+\_\+test} ()
-\item
-static void \hyperlink{test_8cpp_a6d3cb4886e7afd45bd56b49800da932d}{on\+Rep} (struct json\+\_\+object $\ast$reply\+\_\+contents)
-\item
-static void \hyperlink{test_8cpp_a6a2874c419fe5936fcccadc7e6cf268e}{on\+Ev} (const string \&\hyperlink{structevent}{event}, struct json\+\_\+object $\ast$event\+\_\+contents)
-\item
-int \hyperlink{test_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}{main} (int argc, char $\ast$$\ast$argv)
-\end{DoxyCompactItemize}
-\subsection*{Variables}
-\begin{DoxyCompactItemize}
-\item
-\hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} $\ast$ \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}
-\end{DoxyCompactItemize}
-
-
-\subsection{Function Documentation}
-\mbox{\Hypertarget{test_8cpp_aa9b3c43c212b49edee82ac30a11aa255}\label{test_8cpp_aa9b3c43c212b49edee82ac30a11aa255}}
-\index{test.\+cpp@{test.\+cpp}!call\+\_\+test@{call\+\_\+test}}
-\index{call\+\_\+test@{call\+\_\+test}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{call\+\_\+test()}{call\_test()}}
-{\footnotesize\ttfamily static void call\+\_\+test (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 51 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-52 \{
-53 \textcolor{keywordtype}{string} command;
-54
-55 cout << \textcolor{stringliteral}{"input verb and argments"} << endl;
-56
-57 \textcolor{comment}{/* read the buffer */}
-58 \textcolor{keywordflow}{for}(;;)\{
-59 \textcolor{keywordtype}{char} line[1023];
-60 cin.getline(line, \textcolor{keyword}{sizeof}(line));
-61 command = line;
-62 \textcolor{keywordflow}{if}(command.empty())\{
-63 \textcolor{keywordflow}{continue};
-64 \}
-65
-66 vector<string> v\_command = \hyperlink{test_8cpp_aafb7f182b8bb6ba92354dde1658d86a4}{split}(command, \textcolor{charliteral}{' '});
-67 \textcolor{comment}{/*for(auto itr = v\_command.begin(); itr != v\_command.end(); ++itr)}
-68 \textcolor{comment}{ \{}
-69 \textcolor{comment}{ cout << *itr <<endl;}
-70 \textcolor{comment}{ \}*/}
-71 \textcolor{keywordtype}{size\_t} num = v\_command.size();
-72 \textcolor{keywordflow}{if}(num % 2 == 0)\{
-73 cout << \textcolor{stringliteral}{"If command contains args, please input <key,value> in argument part"} << endl;
-74 \textcolor{keywordflow}{continue};
-75 \}
-76 \textcolor{comment}{/* create json object */}
-77 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
-78 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 1;i < (v\_command.size()) ;++i)\{
-79 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(v\_command[i+1].c\_str());
-80 json\_object\_object\_add(j\_obj, v\_command[i].c\_str(), val);
-81 ++i;
-82 \}
-83 \textcolor{comment}{/* call verb via LibHomeScreen */}
-84 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(v\_command[0], j\_obj);
-85 \textcolor{comment}{/* free vector */}
-86 vector<string>().swap(v\_command);
-87 string().swap(command);
-88 \}
-89 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}\label{test_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}}
-\index{test.\+cpp@{test.\+cpp}!main@{main}}
-\index{main@{main}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{main()}{main()}}
-{\footnotesize\ttfamily int main (\begin{DoxyParamCaption}\item[{int}]{argc, }\item[{char $\ast$$\ast$}]{argv }\end{DoxyParamCaption})}
-
-
-
-Definition at line 117 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-118 \{
-119 \textcolor{keywordtype}{int} ret;
-120 \textcolor{keywordflow}{if}(argc == 1)
-121 \{
-122 printf(\textcolor{stringliteral}{"Please input port num in first argument, and token in second argument"});
-123 \hyperlink{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}{usage}();
-124 \textcolor{keywordflow}{return} 0;
-125 \}
-126 \textcolor{keywordflow}{if}(argc == 2)
-127 \{
-128 \textcolor{keywordtype}{string} av(argv[1]);
-129 \textcolor{keywordflow}{if}( (av == \textcolor{stringliteral}{"-h"}) || (av == \textcolor{stringliteral}{"--help"}))
-130 \{
-131 \hyperlink{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}{usage}();
-132 \textcolor{keywordflow}{return} 0;
-133 \}
-134 \}
-135
-136 \textcolor{keywordtype}{string} port\_string(argv[1]);
-137 \textcolor{keywordtype}{string} token(argv[2]);
-138 \textcolor{keywordtype}{char}* endptr;
-139 \textcolor{keywordtype}{long} port = strtol(port\_string.c\_str(),&endptr,10);
-140
-141 \textcolor{comment}{/* error check of range */}
-142 \textcolor{keywordflow}{if}( (port > 20000) || (port < 0) )
-143 \{
-144 printf(\textcolor{stringliteral}{"input under 20000(temporary number)"});
-145 \textcolor{keywordflow}{return} 0;
-146 \}
-147 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
-148 \{
-149 printf(\textcolor{stringliteral}{"not number"});
-150 \textcolor{keywordflow}{return} 0;
-151 \}
-152
-153 cout << \textcolor{stringliteral}{"Call test for LibHomeScreen"} << endl;
-154 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs} = \textcolor{keyword}{new} \hyperlink{class_lib_home_screen}{LibHomeScreen}();
-155 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}{init}(port, token);
-156
-157 \textcolor{comment}{// hs->registerCallback(&onEv, &onRep);}
-158 \textcolor{comment}{//}
-159 \textcolor{comment}{// hs->subscribe(event\_list[0]); // tap\_shortcut event subscribe}
-160 \textcolor{comment}{// hs->subscribe(event\_list[1]);}
-161
-162 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\_event\_handler}(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{LibHomeScreen::Event\_TapShortcut}
- , [](json\_object *\textcolor{keywordtype}{object})\{
-163 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *application\_name = json\_object\_get\_string(
-164 json\_object\_object\_get(\textcolor{keywordtype}{object}, \textcolor{stringliteral}{"application\_name"}));
-165 cout << \textcolor{stringliteral}{"set\_event\_handler Event\_TapShortcut application\_name = "} << application\_name << endl;
-166 \});
-167
-168 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\_event\_handler}(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{LibHomeScreen::Event\_OnScreenMessage}
- , [](json\_object *\textcolor{keywordtype}{object})\{
-169 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *display\_message = json\_object\_get\_string(
-170 json\_object\_object\_get(\textcolor{keywordtype}{object}, \textcolor{stringliteral}{"display\_message"}));
-171 cout << \textcolor{stringliteral}{"set\_event\_handler Event\_OnScreenMessage display\_message = "} << display\_message << endl;
-172 \});
-173
-174 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\_event\_handler}(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{LibHomeScreen::Event\_OnScreenReply}
- , [](json\_object *\textcolor{keywordtype}{object})\{
-175 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *reply\_message = json\_object\_get\_string(
-176 json\_object\_object\_get(\textcolor{keywordtype}{object}, \textcolor{stringliteral}{"reply\_message"}));
-177 cout << \textcolor{stringliteral}{"set\_event\_handler Event\_OnScreenReply reply\_message = "} << reply\_message << endl;
-178 \});
-179
-180 \textcolor{keywordflow}{if} (ret < 0) \{
-181 printf(\textcolor{stringliteral}{"failed to create event loop"});
-182 \textcolor{keywordflow}{return} -1;
-183 \}
-184
-185 \hyperlink{test_8cpp_aa9b3c43c212b49edee82ac30a11aa255}{call\_test}();
-186
-187 \textcolor{keywordflow}{return} 0;
-188 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_a6a2874c419fe5936fcccadc7e6cf268e}\label{test_8cpp_a6a2874c419fe5936fcccadc7e6cf268e}}
-\index{test.\+cpp@{test.\+cpp}!on\+Ev@{on\+Ev}}
-\index{on\+Ev@{on\+Ev}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{on\+Ev()}{onEv()}}
-{\footnotesize\ttfamily static void on\+Ev (\begin{DoxyParamCaption}\item[{const string \&}]{event, }\item[{struct json\+\_\+object $\ast$}]{event\+\_\+contents }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 98 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-99 \{
-100 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* str = json\_object\_to\_json\_string(event\_contents);
-101 cout << \textcolor{stringliteral}{"test.cpp [CB onEvent]: event: "} << \textcolor{keyword}{event}.c\_str() << \textcolor{stringliteral}{" contents: "} << str << endl;
-102 \textcolor{comment}{//json\_object\_put(event\_contents); do not release!!!}
-103 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_a6d3cb4886e7afd45bd56b49800da932d}\label{test_8cpp_a6d3cb4886e7afd45bd56b49800da932d}}
-\index{test.\+cpp@{test.\+cpp}!on\+Rep@{on\+Rep}}
-\index{on\+Rep@{on\+Rep}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{on\+Rep()}{onRep()}}
-{\footnotesize\ttfamily static void on\+Rep (\begin{DoxyParamCaption}\item[{struct json\+\_\+object $\ast$}]{reply\+\_\+contents }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 91 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-92 \{
-93 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* str = json\_object\_to\_json\_string(reply\_contents);
-94 cout << \textcolor{stringliteral}{"test.cpp [CB onRep]: "} << str << endl;
-95 \textcolor{comment}{//json\_object\_put(reply\_contents); do not release!!!}
-96 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_aafb7f182b8bb6ba92354dde1658d86a4}\label{test_8cpp_aafb7f182b8bb6ba92354dde1658d86a4}}
-\index{test.\+cpp@{test.\+cpp}!split@{split}}
-\index{split@{split}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{split()}{split()}}
-{\footnotesize\ttfamily static vector$<$ string $>$ split (\begin{DoxyParamCaption}\item[{const string \&}]{str, }\item[{char}]{sep }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 105 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-106 \{
-107 vector<string> v;
-108 stringstream ss(str);
-109 \textcolor{keywordtype}{string} buffer;
-110 \textcolor{keywordflow}{while}( getline(ss, buffer, sep) ) \{
-111 \textcolor{keywordflow}{if}(!buffer.empty())
-112 v.push\_back(buffer);
-113 \}
-114 \textcolor{keywordflow}{return} v;
-115 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}\label{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}}
-\index{test.\+cpp@{test.\+cpp}!usage@{usage}}
-\index{usage@{usage}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{usage()}{usage()}}
-{\footnotesize\ttfamily static void usage (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 35 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-36 \{
-37 cout << \textcolor{stringliteral}{"verb "}<< \textcolor{stringliteral}{"key:arg"} << endl;
-38 cout << \textcolor{stringliteral}{"example:"} << endl;
-39 cout << \textcolor{stringliteral}{"ping"} << endl;
-40 cout << \textcolor{stringliteral}{"------- -------- --- "} << endl;
-41 cout << \textcolor{stringliteral}{" verb key value"} << endl;
-42 cout << \textcolor{stringliteral}{"verb list:"} << endl;
-43 \textcolor{keywordflow}{for}(\textcolor{keyword}{auto} itr = \hyperlink{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{LibHomeScreen::api\_list}.begin(); itr !=
- \hyperlink{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{LibHomeScreen::api\_list}.end(); ++itr)
-44 \{
-45 cout << \textcolor{stringliteral}{" "} << *itr << endl;
-46 \}
-47 \textcolor{comment}{// Todo output api list}
-48 exit(0);
-49 \}
-\end{DoxyCode}
-
-
-\subsection{Variable Documentation}
-\mbox{\Hypertarget{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}\label{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}}
-\index{test.\+cpp@{test.\+cpp}!hs@{hs}}
-\index{hs@{hs}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{hs}{hs}}
-{\footnotesize\ttfamily \hyperlink{class_lib_home_screen}{Lib\+Home\+Screen}$\ast$ hs}
-
-
-
-Definition at line 33 of file test.\+cpp.
-