summaryrefslogtreecommitdiffstats
path: root/demo#3/common/agl-service-homescreen/doc/api-ref/latex
diff options
context:
space:
mode:
Diffstat (limited to 'demo#3/common/agl-service-homescreen/doc/api-ref/latex')
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/annotated.tex5
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/d0/d1e/homescreen_8c.tex599
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex157
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/d3/d3d/hs-helper_8h.tex345
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/dd/d1d/hs-helper_8c.tex238
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/de/dd0/class_lib_home_screen.tex732
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex16
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d76/hmi-debug_8h.tex202
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d7d/structevent.tex44
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/dac/test_8cpp.tex275
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_0f70dc74e67ded1ed6ea12b5a24cac83.tex7
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex9
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex11
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_a01af9eb3c502936dfd53c3f8e45721d.tex11
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex9
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/doxygen.sty503
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/files.tex10
-rw-r--r--demo#3/common/agl-service-homescreen/doc/api-ref/latex/refman.tex166
18 files changed, 3339 insertions, 0 deletions
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/annotated.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/annotated.tex
new file mode 100644
index 0000000..a2fba4c
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/annotated.tex
@@ -0,0 +1,5 @@
+\section{Class List}
+Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{\hyperlink{structevent}{event} }{\pageref{structevent}}{}
+\item\contentsline{section}{\hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} }{\pageref{class_lib_home_screen}}{}
+\end{DoxyCompactList}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d0/d1e/homescreen_8c.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d0/d1e/homescreen_8c.tex
new file mode 100644
index 0000000..150bacb
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d0/d1e/homescreen_8c.tex
@@ -0,0 +1,599 @@
+\hypertarget{homescreen_8c}{}\section{src/homescreen.c File Reference}
+\label{homescreen_8c}\index{src/homescreen.\+c@{src/homescreen.\+c}}
+{\ttfamily \#include $<$afb/afb-\/binding.\+h$>$}\newline
+{\ttfamily \#include $<$stdio.\+h$>$}\newline
+{\ttfamily \#include $<$string.\+h$>$}\newline
+{\ttfamily \#include $<$stdlib.\+h$>$}\newline
+{\ttfamily \#include $<$stdint.\+h$>$}\newline
+{\ttfamily \#include $<$unistd.\+h$>$}\newline
+{\ttfamily \#include $<$json-\/c/json.\+h$>$}\newline
+{\ttfamily \#include $<$glib.\+h$>$}\newline
+{\ttfamily \#include $<$pthread.\+h$>$}\newline
+{\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\newline
+\subsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+struct \hyperlink{structevent}{event}
+\end{DoxyCompactItemize}
+\subsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\#define \hyperlink{homescreen_8c_a369266c24eacffb87046522897a570d5}{\+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE}
+\item
+\#define \hyperlink{homescreen_8c_ad2c1fbc92ba364fcf83f15e6d0af66f0}{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}~2
+\item
+\#define \hyperlink{homescreen_8c_a09f43d9e7e1c5d2198c0d66024b4500e}{C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM}~4
+\item
+\#define \hyperlink{homescreen_8c_a9a68ed04201d9390bb85b2c6ab1d7250}{E\+V\+E\+N\+T\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+C\+O\+DE}~100
+\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+static void \hyperlink{homescreen_8c_af48cab759d4ae0ddbfcdd60f4051ba05}{ping\+Sample} (struct afb\+\_\+req request)
+\item
+static void \hyperlink{homescreen_8c_a096eae5c8f297f9df142a406eea56227}{tap\+\_\+shortcut} (struct afb\+\_\+req request)
+\item
+static void \hyperlink{homescreen_8c_a640cf8ed97d804c5ed1c09a349056338}{on\+\_\+screen\+\_\+message} (struct afb\+\_\+req request)
+\item
+static void \hyperlink{homescreen_8c_a2f380055d7d69828115d2a8951634933}{on\+\_\+screen\+\_\+reply} (struct afb\+\_\+req request)
+\item
+static void \hyperlink{homescreen_8c_a4ff0c8b506669e5622a6ee168134d8f1}{subscribe} (struct afb\+\_\+req request)
+\item
+static void \hyperlink{homescreen_8c_ab92621255d7370c6dd8a0f1a8e376ad3}{unsubscribe} (struct afb\+\_\+req request)
+\item
+static int \hyperlink{homescreen_8c_a83d646edf54a6a082f69121bc89a08de}{preinit} ()
+\item
+static int \hyperlink{homescreen_8c_a00cbbc0f3f4452db078ae511684a6adc}{init} ()
+\item
+static void \hyperlink{homescreen_8c_a1279893c0fe937311a81e0a98fb4cf1c}{onevent} (const char $\ast$\hyperlink{structevent}{event}, struct json\+\_\+object $\ast$object)
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+static struct \hyperlink{structevent}{event} \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\+\_\+list} \mbox{[}\hyperlink{homescreen_8c_a09f43d9e7e1c5d2198c0d66024b4500e}{C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM}\mbox{]}
+\item
+static struct afb\+\_\+event \hyperlink{homescreen_8c_a2af1ff5a4cbf03125e61e903832035f5}{ev\+\_\+tap\+\_\+shortcut}
+\item
+static struct afb\+\_\+event \hyperlink{homescreen_8c_af7cfc4f688bb898c09291252c4cb832c}{ev\+\_\+on\+\_\+screen\+\_\+message}
+\item
+static struct afb\+\_\+event \hyperlink{homescreen_8c_a5c225341e0ecbae0585302ef754a55ec}{ev\+\_\+on\+\_\+screen\+\_\+reply}
+\item
+static struct afb\+\_\+event \hyperlink{homescreen_8c_a25fbdcc4e5787e3f41d99f4a71e86611}{ev\+\_\+reserved}
+\item
+static const char \hyperlink{homescreen_8c_aed1c5296a2e6d34945507a0fca17a376}{\+\_\+error} \mbox{[}$\,$\mbox{]} = \char`\"{}error\char`\"{}
+\item
+static const char \hyperlink{homescreen_8c_a1f2c79fa6801b63751e270d67994fe81}{\+\_\+application\+\_\+name} \mbox{[}$\,$\mbox{]} = \char`\"{}application\+\_\+name\char`\"{}
+\item
+static const char \hyperlink{homescreen_8c_abfd6c1d6f316fa952b11553f8f275e92}{\+\_\+display\+\_\+message} \mbox{[}$\,$\mbox{]} = \char`\"{}display\+\_\+message\char`\"{}
+\item
+static const char \hyperlink{homescreen_8c_a79b0f0b481161527ccb80e83da143219}{\+\_\+reply\+\_\+message} \mbox{[}$\,$\mbox{]} = \char`\"{}reply\+\_\+message\char`\"{}
+\item
+static const struct afb\+\_\+verb\+\_\+v2 \hyperlink{homescreen_8c_acad6dadf60fac3d701e488e4fcd11c89}{verbs} \mbox{[}$\,$\mbox{]}
+\item
+const struct afb\+\_\+binding\+\_\+v2 \hyperlink{homescreen_8c_ae2a62ab481a2922cbfc788193857a12e}{afb\+Binding\+V2}
+\end{DoxyCompactItemize}
+
+
+\subsection{Macro Definition Documentation}
+\mbox{\Hypertarget{homescreen_8c_a369266c24eacffb87046522897a570d5}\label{homescreen_8c_a369266c24eacffb87046522897a570d5}}
+\index{homescreen.\+c@{homescreen.\+c}!\+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE@{\+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE}}
+\index{\+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE@{\+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{\+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE}{\_GNU\_SOURCE}}
+{\footnotesize\ttfamily \#define \+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE}
+
+
+
+Definition at line 17 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_ad2c1fbc92ba364fcf83f15e6d0af66f0}\label{homescreen_8c_ad2c1fbc92ba364fcf83f15e6d0af66f0}}
+\index{homescreen.\+c@{homescreen.\+c}!A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON@{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}}
+\index{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON@{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}{AFB\_BINDING\_VERSION}}
+{\footnotesize\ttfamily \#define A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON~2}
+
+
+
+Definition at line 18 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_a09f43d9e7e1c5d2198c0d66024b4500e}\label{homescreen_8c_a09f43d9e7e1c5d2198c0d66024b4500e}}
+\index{homescreen.\+c@{homescreen.\+c}!C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM@{C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM}}
+\index{C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM@{C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM}{COMMAND\_EVENT\_NUM}}
+{\footnotesize\ttfamily \#define C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM~4}
+
+
+
+Definition at line 31 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_a9a68ed04201d9390bb85b2c6ab1d7250}\label{homescreen_8c_a9a68ed04201d9390bb85b2c6ab1d7250}}
+\index{homescreen.\+c@{homescreen.\+c}!E\+V\+E\+N\+T\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+C\+O\+DE@{E\+V\+E\+N\+T\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+C\+O\+DE}}
+\index{E\+V\+E\+N\+T\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+C\+O\+DE@{E\+V\+E\+N\+T\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+C\+O\+DE}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{E\+V\+E\+N\+T\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+C\+O\+DE}{EVENT\_SUBSCRIBE\_ERROR\_CODE}}
+{\footnotesize\ttfamily \#define E\+V\+E\+N\+T\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+C\+O\+DE~100}
+
+
+
+Definition at line 32 of file homescreen.\+c.
+
+
+
+\subsection{Function Documentation}
+\mbox{\Hypertarget{homescreen_8c_a00cbbc0f3f4452db078ae511684a6adc}\label{homescreen_8c_a00cbbc0f3f4452db078ae511684a6adc}}
+\index{homescreen.\+c@{homescreen.\+c}!init@{init}}
+\index{init@{init}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{init()}{init()}}
+{\footnotesize\ttfamily static int init (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 277 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+278 \{
+279 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"binding init"});
+280
+281 \hyperlink{homescreen_8c_a2af1ff5a4cbf03125e61e903832035f5}{ev\_tap\_shortcut} = afb\_daemon\_make\_event(\hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[0]);
+282 \hyperlink{homescreen_8c_af7cfc4f688bb898c09291252c4cb832c}{ev\_on\_screen\_message} = afb\_daemon\_make\_event(\hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[1]);
+283 \hyperlink{homescreen_8c_a5c225341e0ecbae0585302ef754a55ec}{ev\_on\_screen\_reply} = afb\_daemon\_make\_event(\hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[2]);
+284 \hyperlink{homescreen_8c_a25fbdcc4e5787e3f41d99f4a71e86611}{ev\_reserved} = afb\_daemon\_make\_event(\hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[3]);
+285
+286 \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[0].\hyperlink{structevent_a45c6cfb7961a21a3366db067e4cc59ab}{name} = \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[0];
+287 \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[0].\hyperlink{structevent_a58726ebc551d36562ac3f9e1fe293214}{event} = &\hyperlink{homescreen_8c_a2af1ff5a4cbf03125e61e903832035f5}{ev\_tap\_shortcut};
+288
+289 \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[1].\hyperlink{structevent_a45c6cfb7961a21a3366db067e4cc59ab}{name} = \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[1];
+290 \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[1].\hyperlink{structevent_a58726ebc551d36562ac3f9e1fe293214}{event} = &\hyperlink{homescreen_8c_af7cfc4f688bb898c09291252c4cb832c}{ev\_on\_screen\_message};
+291
+292 \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[2].\hyperlink{structevent_a45c6cfb7961a21a3366db067e4cc59ab}{name} = \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[2];
+293 \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[2].\hyperlink{structevent_a58726ebc551d36562ac3f9e1fe293214}{event} = &\hyperlink{homescreen_8c_a5c225341e0ecbae0585302ef754a55ec}{ev\_on\_screen\_reply};
+294
+295 \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[3].\hyperlink{structevent_a45c6cfb7961a21a3366db067e4cc59ab}{name} = \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[3];
+296 \hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[3].\hyperlink{structevent_a58726ebc551d36562ac3f9e1fe293214}{event} = &\hyperlink{homescreen_8c_a25fbdcc4e5787e3f41d99f4a71e86611}{ev\_reserved};
+297
+298 \textcolor{keywordflow}{return} 0;
+299 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{homescreen_8c_a640cf8ed97d804c5ed1c09a349056338}\label{homescreen_8c_a640cf8ed97d804c5ed1c09a349056338}}
+\index{homescreen.\+c@{homescreen.\+c}!on\+\_\+screen\+\_\+message@{on\+\_\+screen\+\_\+message}}
+\index{on\+\_\+screen\+\_\+message@{on\+\_\+screen\+\_\+message}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{on\+\_\+screen\+\_\+message()}{on\_screen\_message()}}
+{\footnotesize\ttfamily static void on\+\_\+screen\+\_\+message (\begin{DoxyParamCaption}\item[{struct afb\+\_\+req}]{request }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+Home\+Screen On\+Screen message
+
+\subparagraph*{Parameters}
+
+Request key
+\begin{DoxyItemize}
+\item display\+\_\+message \+: message for display
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+Nothing
+
+Definition at line 114 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+115 \{
+116 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"is called."});
+117
+118 \textcolor{keywordtype}{int} ret = 0;
+119 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8c_abfd6c1d6f316fa952b11553f8f275e92}{\_display\_message});
+120 \textcolor{keywordflow}{if} (value) \{
+121
+122 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+123
+124 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+125 \hyperlink{hs-helper_8c_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 2,
+126 \hyperlink{homescreen_8c_abfd6c1d6f316fa952b11553f8f275e92}{\_display\_message}, value);
+127 afb\_event\_push(\hyperlink{homescreen_8c_af7cfc4f688bb898c09291252c4cb832c}{ev\_on\_screen\_message}, push\_obj);
+128 \} \textcolor{keywordflow}{else} \{
+129 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown palameter"}, \_\_FUNCTION\_\_);
+130 \textcolor{keywordflow}{return};
+131 \}
+132
+133 \textcolor{comment}{// response to HomeScreen}
+134 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+135 \hyperlink{hs-helper_8c_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+136 \hyperlink{homescreen_8c_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+137 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [on\_screen\_message]"});
+138 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{homescreen_8c_a2f380055d7d69828115d2a8951634933}\label{homescreen_8c_a2f380055d7d69828115d2a8951634933}}
+\index{homescreen.\+c@{homescreen.\+c}!on\+\_\+screen\+\_\+reply@{on\+\_\+screen\+\_\+reply}}
+\index{on\+\_\+screen\+\_\+reply@{on\+\_\+screen\+\_\+reply}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{on\+\_\+screen\+\_\+reply()}{on\_screen\_reply()}}
+{\footnotesize\ttfamily static void on\+\_\+screen\+\_\+reply (\begin{DoxyParamCaption}\item[{struct afb\+\_\+req}]{request }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+Home\+Screen On\+Screen Reply
+
+\subparagraph*{Parameters}
+
+Request key
+\begin{DoxyItemize}
+\item reply\+\_\+message \+: message for reply
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+Nothing
+
+Definition at line 151 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+152 \{
+153 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"is called."});
+154
+155 \textcolor{keywordtype}{int} ret = 0;
+156 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8c_a79b0f0b481161527ccb80e83da143219}{\_reply\_message});
+157 \textcolor{keywordflow}{if} (value) \{
+158
+159 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+160
+161 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+162 \hyperlink{hs-helper_8c_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 2,
+163 \hyperlink{homescreen_8c_a79b0f0b481161527ccb80e83da143219}{\_reply\_message}, value);
+164 afb\_event\_push(\hyperlink{homescreen_8c_a5c225341e0ecbae0585302ef754a55ec}{ev\_on\_screen\_reply}, push\_obj);
+165 \} \textcolor{keywordflow}{else} \{
+166 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown palameter"}, \_\_FUNCTION\_\_);
+167 \textcolor{keywordflow}{return};
+168 \}
+169
+170 \textcolor{comment}{// response to HomeScreen}
+171 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+172 \hyperlink{hs-helper_8c_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+173 \hyperlink{homescreen_8c_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+174 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [on\_screen\_reply]"});
+175 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{homescreen_8c_a1279893c0fe937311a81e0a98fb4cf1c}\label{homescreen_8c_a1279893c0fe937311a81e0a98fb4cf1c}}
+\index{homescreen.\+c@{homescreen.\+c}!onevent@{onevent}}
+\index{onevent@{onevent}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{onevent()}{onevent()}}
+{\footnotesize\ttfamily static void onevent (\begin{DoxyParamCaption}\item[{const char $\ast$}]{event, }\item[{struct json\+\_\+object $\ast$}]{object }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 301 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+302 \{
+303 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"on\_event %s"}, \hyperlink{structevent}{event});
+304 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{homescreen_8c_af48cab759d4ae0ddbfcdd60f4051ba05}\label{homescreen_8c_af48cab759d4ae0ddbfcdd60f4051ba05}}
+\index{homescreen.\+c@{homescreen.\+c}!ping\+Sample@{ping\+Sample}}
+\index{ping\+Sample@{ping\+Sample}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{ping\+Sample()}{pingSample()}}
+{\footnotesize\ttfamily static void ping\+Sample (\begin{DoxyParamCaption}\item[{struct afb\+\_\+req}]{request }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 57 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+58 \{
+59 \textcolor{keyword}{static} \textcolor{keywordtype}{int} pingcount = 0;
+60 afb\_req\_success\_f(request, json\_object\_new\_int(pingcount), \textcolor{stringliteral}{"Ping count = %d"}, pingcount);
+61 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Verbosity macro at level notice invoked at ping invocation
+ count = %d"}, pingcount);
+62 pingcount++;
+63 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{homescreen_8c_a83d646edf54a6a082f69121bc89a08de}\label{homescreen_8c_a83d646edf54a6a082f69121bc89a08de}}
+\index{homescreen.\+c@{homescreen.\+c}!preinit@{preinit}}
+\index{preinit@{preinit}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{preinit()}{preinit()}}
+{\footnotesize\ttfamily static int preinit (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 271 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+272 \{
+273 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"binding preinit (was register)"});
+274 \textcolor{keywordflow}{return} 0;
+275 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{homescreen_8c_a4ff0c8b506669e5622a6ee168134d8f1}\label{homescreen_8c_a4ff0c8b506669e5622a6ee168134d8f1}}
+\index{homescreen.\+c@{homescreen.\+c}!subscribe@{subscribe}}
+\index{subscribe@{subscribe}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{subscribe()}{subscribe()}}
+{\footnotesize\ttfamily static void subscribe (\begin{DoxyParamCaption}\item[{struct afb\+\_\+req}]{request }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+Subscribe event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event \+: Event name. Event list is written in \hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp}
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+Nothing
+
+\subparagraph*{Note}
+
+Definition at line 189 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+190 \{
+191 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *value = afb\_req\_value(request, \textcolor{stringliteral}{"event"});
+192 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"value is %s"}, value);
+193 \textcolor{keywordtype}{int} ret = 0;
+194 \textcolor{keywordflow}{if}(value) \{
+195 \textcolor{keywordtype}{int} index = \hyperlink{hs-helper_8c_a2ff1b894941c3b461ca8119079c4146a}{hs\_search\_event\_name\_index}(value);
+196 \textcolor{keywordflow}{if}(index < 0)
+197 \{
+198 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"dedicated event doesn't exist"});
+199 ret = \hyperlink{homescreen_8c_a9a68ed04201d9390bb85b2c6ab1d7250}{EVENT\_SUBSCRIBE\_ERROR\_CODE};
+200 \}
+201 \textcolor{keywordflow}{else}
+202 \{
+203 afb\_req\_subscribe(request, *\hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[index].\hyperlink{structevent}{event});
+204 \}
+205 \}
+206 \textcolor{keywordflow}{else}\{
+207 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input event name"});
+208 ret = \hyperlink{homescreen_8c_a9a68ed04201d9390bb85b2c6ab1d7250}{EVENT\_SUBSCRIBE\_ERROR\_CODE};
+209 \}
+210 \textcolor{comment}{/*create response json object*/}
+211 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+212 \hyperlink{hs-helper_8c_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+213 \hyperlink{homescreen_8c_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+214 afb\_req\_success\_f(request, res, \textcolor{stringliteral}{"homescreen binder subscribe event name [%s]"}, value);
+215 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{homescreen_8c_a096eae5c8f297f9df142a406eea56227}\label{homescreen_8c_a096eae5c8f297f9df142a406eea56227}}
+\index{homescreen.\+c@{homescreen.\+c}!tap\+\_\+shortcut@{tap\+\_\+shortcut}}
+\index{tap\+\_\+shortcut@{tap\+\_\+shortcut}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{tap\+\_\+shortcut()}{tap\_shortcut()}}
+{\footnotesize\ttfamily static void tap\+\_\+shortcut (\begin{DoxyParamCaption}\item[{struct afb\+\_\+req}]{request }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+tap\+\_\+shortcut notify for homescreen When Shortcut area is tapped, notify these applciations
+
+\subparagraph*{Parameters}
+
+Request key
+\begin{DoxyItemize}
+\item application\+\_\+name \+: application name
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+Nothing
+
+Definition at line 77 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+78 \{
+79 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"is called."});
+80
+81 \textcolor{keywordtype}{int} ret = 0;
+82 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8c_a1f2c79fa6801b63751e270d67994fe81}{\_application\_name});
+83 \textcolor{keywordflow}{if} (value) \{
+84
+85 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+86
+87 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+88 \hyperlink{hs-helper_8c_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 2,
+89 \hyperlink{homescreen_8c_a1f2c79fa6801b63751e270d67994fe81}{\_application\_name}, value);
+90 afb\_event\_push(\hyperlink{homescreen_8c_a2af1ff5a4cbf03125e61e903832035f5}{ev\_tap\_shortcut}, push\_obj);
+91 \} \textcolor{keywordflow}{else} \{
+92 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown palameter"}, \_\_FUNCTION\_\_);
+93 \textcolor{keywordflow}{return};
+94 \}
+95
+96 \textcolor{comment}{// response to HomeScreen}
+97 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+98 \hyperlink{hs-helper_8c_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+99 \hyperlink{homescreen_8c_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+100 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [tap\_shortcut]"});
+101 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{homescreen_8c_ab92621255d7370c6dd8a0f1a8e376ad3}\label{homescreen_8c_ab92621255d7370c6dd8a0f1a8e376ad3}}
+\index{homescreen.\+c@{homescreen.\+c}!unsubscribe@{unsubscribe}}
+\index{unsubscribe@{unsubscribe}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{unsubscribe()}{unsubscribe()}}
+{\footnotesize\ttfamily static void unsubscribe (\begin{DoxyParamCaption}\item[{struct afb\+\_\+req}]{request }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+Unsubscribe event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event \+: Event name. Event list is written in \hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp}
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+Nothing
+
+\subparagraph*{Note}
+
+Definition at line 229 of file homescreen.\+c.
+
+
+\begin{DoxyCode}
+230 \{
+231 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *value = afb\_req\_value(request, \textcolor{stringliteral}{"event"});
+232 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"value is %s"}, value);
+233 \textcolor{keywordtype}{int} ret = 0;
+234 \textcolor{keywordflow}{if}(value) \{
+235 \textcolor{keywordtype}{int} index = \hyperlink{hs-helper_8c_a2ff1b894941c3b461ca8119079c4146a}{hs\_search\_event\_name\_index}(value);
+236 \textcolor{keywordflow}{if}(index < 0)
+237 \{
+238 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"dedicated event doesn't exist"});
+239 ret = \hyperlink{homescreen_8c_a9a68ed04201d9390bb85b2c6ab1d7250}{EVENT\_SUBSCRIBE\_ERROR\_CODE};
+240 \}
+241 \textcolor{keywordflow}{else}
+242 \{
+243 afb\_req\_unsubscribe(request, *\hyperlink{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}{event\_list}[index].\hyperlink{structevent}{event});
+244 \}
+245 \}
+246 \textcolor{keywordflow}{else}\{
+247 \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input event name"});
+248 ret = \hyperlink{homescreen_8c_a9a68ed04201d9390bb85b2c6ab1d7250}{EVENT\_SUBSCRIBE\_ERROR\_CODE};
+249 \}
+250 \textcolor{comment}{/*create response json object*/}
+251 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+252 \hyperlink{hs-helper_8c_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+253 \hyperlink{homescreen_8c_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+254 afb\_req\_success\_f(request, res, \textcolor{stringliteral}{"homescreen binder unsubscribe event name [%s]"}, value);
+255 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\mbox{\Hypertarget{homescreen_8c_a1f2c79fa6801b63751e270d67994fe81}\label{homescreen_8c_a1f2c79fa6801b63751e270d67994fe81}}
+\index{homescreen.\+c@{homescreen.\+c}!\+\_\+application\+\_\+name@{\+\_\+application\+\_\+name}}
+\index{\+\_\+application\+\_\+name@{\+\_\+application\+\_\+name}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{\+\_\+application\+\_\+name}{\_application\_name}}
+{\footnotesize\ttfamily const char \+\_\+application\+\_\+name\mbox{[}$\,$\mbox{]} = \char`\"{}application\+\_\+name\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 49 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_abfd6c1d6f316fa952b11553f8f275e92}\label{homescreen_8c_abfd6c1d6f316fa952b11553f8f275e92}}
+\index{homescreen.\+c@{homescreen.\+c}!\+\_\+display\+\_\+message@{\+\_\+display\+\_\+message}}
+\index{\+\_\+display\+\_\+message@{\+\_\+display\+\_\+message}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{\+\_\+display\+\_\+message}{\_display\_message}}
+{\footnotesize\ttfamily const char \+\_\+display\+\_\+message\mbox{[}$\,$\mbox{]} = \char`\"{}display\+\_\+message\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 50 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_aed1c5296a2e6d34945507a0fca17a376}\label{homescreen_8c_aed1c5296a2e6d34945507a0fca17a376}}
+\index{homescreen.\+c@{homescreen.\+c}!\+\_\+error@{\+\_\+error}}
+\index{\+\_\+error@{\+\_\+error}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{\+\_\+error}{\_error}}
+{\footnotesize\ttfamily const char \+\_\+error\mbox{[}$\,$\mbox{]} = \char`\"{}error\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 47 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_a79b0f0b481161527ccb80e83da143219}\label{homescreen_8c_a79b0f0b481161527ccb80e83da143219}}
+\index{homescreen.\+c@{homescreen.\+c}!\+\_\+reply\+\_\+message@{\+\_\+reply\+\_\+message}}
+\index{\+\_\+reply\+\_\+message@{\+\_\+reply\+\_\+message}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{\+\_\+reply\+\_\+message}{\_reply\_message}}
+{\footnotesize\ttfamily const char \+\_\+reply\+\_\+message\mbox{[}$\,$\mbox{]} = \char`\"{}reply\+\_\+message\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 51 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_ae2a62ab481a2922cbfc788193857a12e}\label{homescreen_8c_ae2a62ab481a2922cbfc788193857a12e}}
+\index{homescreen.\+c@{homescreen.\+c}!afb\+Binding\+V2@{afb\+Binding\+V2}}
+\index{afb\+Binding\+V2@{afb\+Binding\+V2}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{afb\+Binding\+V2}{afbBindingV2}}
+{\footnotesize\ttfamily const struct afb\+\_\+binding\+\_\+v2 afb\+Binding\+V2}
+
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ .api = \textcolor{stringliteral}{"homescreen"},
+ .specification = NULL,
+ .verbs = \hyperlink{homescreen_8c_acad6dadf60fac3d701e488e4fcd11c89}{verbs},
+ .preinit = \hyperlink{homescreen_8c_a83d646edf54a6a082f69121bc89a08de}{preinit},
+ .init = \hyperlink{homescreen_8c_a00cbbc0f3f4452db078ae511684a6adc}{init},
+ .onevent = \hyperlink{homescreen_8c_a1279893c0fe937311a81e0a98fb4cf1c}{onevent}
+\}
+\end{DoxyCode}
+
+
+Definition at line 306 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_af7cfc4f688bb898c09291252c4cb832c}\label{homescreen_8c_af7cfc4f688bb898c09291252c4cb832c}}
+\index{homescreen.\+c@{homescreen.\+c}!ev\+\_\+on\+\_\+screen\+\_\+message@{ev\+\_\+on\+\_\+screen\+\_\+message}}
+\index{ev\+\_\+on\+\_\+screen\+\_\+message@{ev\+\_\+on\+\_\+screen\+\_\+message}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{ev\+\_\+on\+\_\+screen\+\_\+message}{ev\_on\_screen\_message}}
+{\footnotesize\ttfamily struct afb\+\_\+event ev\+\_\+on\+\_\+screen\+\_\+message\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 43 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_a5c225341e0ecbae0585302ef754a55ec}\label{homescreen_8c_a5c225341e0ecbae0585302ef754a55ec}}
+\index{homescreen.\+c@{homescreen.\+c}!ev\+\_\+on\+\_\+screen\+\_\+reply@{ev\+\_\+on\+\_\+screen\+\_\+reply}}
+\index{ev\+\_\+on\+\_\+screen\+\_\+reply@{ev\+\_\+on\+\_\+screen\+\_\+reply}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{ev\+\_\+on\+\_\+screen\+\_\+reply}{ev\_on\_screen\_reply}}
+{\footnotesize\ttfamily struct afb\+\_\+event ev\+\_\+on\+\_\+screen\+\_\+reply\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 44 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_a25fbdcc4e5787e3f41d99f4a71e86611}\label{homescreen_8c_a25fbdcc4e5787e3f41d99f4a71e86611}}
+\index{homescreen.\+c@{homescreen.\+c}!ev\+\_\+reserved@{ev\+\_\+reserved}}
+\index{ev\+\_\+reserved@{ev\+\_\+reserved}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{ev\+\_\+reserved}{ev\_reserved}}
+{\footnotesize\ttfamily struct afb\+\_\+event ev\+\_\+reserved\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 45 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_a2af1ff5a4cbf03125e61e903832035f5}\label{homescreen_8c_a2af1ff5a4cbf03125e61e903832035f5}}
+\index{homescreen.\+c@{homescreen.\+c}!ev\+\_\+tap\+\_\+shortcut@{ev\+\_\+tap\+\_\+shortcut}}
+\index{ev\+\_\+tap\+\_\+shortcut@{ev\+\_\+tap\+\_\+shortcut}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{ev\+\_\+tap\+\_\+shortcut}{ev\_tap\_shortcut}}
+{\footnotesize\ttfamily struct afb\+\_\+event ev\+\_\+tap\+\_\+shortcut\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 42 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}\label{homescreen_8c_a1c3c5bfa861dcb58d9e9d216d893864c}}
+\index{homescreen.\+c@{homescreen.\+c}!event\+\_\+list@{event\+\_\+list}}
+\index{event\+\_\+list@{event\+\_\+list}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{event\+\_\+list}{event\_list}}
+{\footnotesize\ttfamily struct \hyperlink{structevent}{event} event\+\_\+list\mbox{[}\hyperlink{homescreen_8c_a09f43d9e7e1c5d2198c0d66024b4500e}{C\+O\+M\+M\+A\+N\+D\+\_\+\+E\+V\+E\+N\+T\+\_\+\+N\+UM}\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 40 of file homescreen.\+c.
+
+\mbox{\Hypertarget{homescreen_8c_acad6dadf60fac3d701e488e4fcd11c89}\label{homescreen_8c_acad6dadf60fac3d701e488e4fcd11c89}}
+\index{homescreen.\+c@{homescreen.\+c}!verbs@{verbs}}
+\index{verbs@{verbs}!homescreen.\+c@{homescreen.\+c}}
+\subsubsection{\texorpdfstring{verbs}{verbs}}
+{\footnotesize\ttfamily const struct afb\+\_\+verb\+\_\+v2 verbs\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}
+
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+
+ \{ .verb = \textcolor{stringliteral}{"ping"}, .session = AFB\_SESSION\_NONE, .callback =
+ \hyperlink{homescreen_8c_af48cab759d4ae0ddbfcdd60f4051ba05}{pingSample}, .auth = NULL \},
+ \{ .verb = \textcolor{stringliteral}{"tap\_shortcut"}, .session = AFB\_SESSION\_NONE, .callback =
+ \hyperlink{homescreen_8c_a096eae5c8f297f9df142a406eea56227}{tap\_shortcut}, .auth = NULL \},
+ \{ .verb = \textcolor{stringliteral}{"on\_screen\_message"}, .session = AFB\_SESSION\_NONE, .callback =
+ \hyperlink{homescreen_8c_a640cf8ed97d804c5ed1c09a349056338}{on\_screen\_message}, .auth = NULL \},
+ \{ .verb = \textcolor{stringliteral}{"on\_screen\_reply"}, .session = AFB\_SESSION\_NONE, .callback =
+ \hyperlink{homescreen_8c_a2f380055d7d69828115d2a8951634933}{on\_screen\_reply}, .auth = NULL \},
+ \{ .verb = \textcolor{stringliteral}{"subscribe"}, .session = AFB\_SESSION\_NONE, .callback =
+ \hyperlink{homescreen_8c_a4ff0c8b506669e5622a6ee168134d8f1}{subscribe}, .auth = NULL \},
+ \{ .verb = \textcolor{stringliteral}{"unsubscribe"}, .session = AFB\_SESSION\_NONE, .callback =
+ \hyperlink{homescreen_8c_ab92621255d7370c6dd8a0f1a8e376ad3}{unsubscribe}, .auth = NULL \},
+ \{NULL \}
+\}
+\end{DoxyCode}
+
+
+Definition at line 260 of file homescreen.\+c.
+
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex
new file mode 100644
index 0000000..3a824b9
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex
@@ -0,0 +1,157 @@
+\hypertarget{libhomescreen_8cpp}{}\section{libhomescreen/libhomescreen.cpp File Reference}
+\label{libhomescreen_8cpp}\index{libhomescreen/libhomescreen.\+cpp@{libhomescreen/libhomescreen.\+cpp}}
+{\ttfamily \#include $<$stdarg.\+h$>$}\newline
+{\ttfamily \#include $<$sys/socket.\+h$>$}\newline
+{\ttfamily \#include $<$iostream$>$}\newline
+{\ttfamily \#include $<$algorithm$>$}\newline
+{\ttfamily \#include $<$thread$>$}\newline
+{\ttfamily \#include $<$errno.\+h$>$}\newline
+{\ttfamily \#include $<$cassert$>$}\newline
+{\ttfamily \#include $<$cctype$>$}\newline
+{\ttfamily \#include $<$cerrno$>$}\newline
+{\ttfamily \#include $<$cstdio$>$}\newline
+{\ttfamily \#include $<$cstdlib$>$}\newline
+{\ttfamily \#include $<$cstring$>$}\newline
+{\ttfamily \#include $<$libhomescreen.\+hpp$>$}\newline
+{\ttfamily \#include \char`\"{}hmi-\/debug.\+h\char`\"{}}\newline
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+static bool \hyperlink{libhomescreen_8cpp_a7a2176c3d71fec0f09dcb2aa0866b17e}{has\+\_\+verb} (const string \&verb)
+\item
+static void \hyperlink{libhomescreen_8cpp_a73c05b96c151e5e46c28585ccb143c1c}{\+\_\+on\+\_\+hangup\+\_\+static} (void $\ast$closure, struct afb\+\_\+wsj1 $\ast$wsj)
+\item
+static void \hyperlink{libhomescreen_8cpp_a782a05fde0f1c17e0c4c8f972a3f53c8}{\+\_\+on\+\_\+call\+\_\+static} (void $\ast$closure, const char $\ast$api, const char $\ast$verb, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)
+\item
+static void \hyperlink{libhomescreen_8cpp_a3df86185aa9453726556da201d95a6f9}{\+\_\+on\+\_\+event\+\_\+static} (void $\ast$closure, const char $\ast$\hyperlink{structevent}{event}, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)
+\item
+static void \hyperlink{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{\+\_\+on\+\_\+reply\+\_\+static} (void $\ast$closure, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)
+\item
+static void $\ast$ \hyperlink{libhomescreen_8cpp_aa73353e1bf62c68b6b0aba7a1e4e275e}{event\+\_\+loop\+\_\+run} (void $\ast$args)
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+static const char \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{A\+PI} \mbox{[}$\,$\mbox{]} = \char`\"{}homescreen\char`\"{}
+\end{DoxyCompactItemize}
+
+
+\subsection{Function Documentation}
+\mbox{\Hypertarget{libhomescreen_8cpp_a782a05fde0f1c17e0c4c8f972a3f53c8}\label{libhomescreen_8cpp_a782a05fde0f1c17e0c4c8f972a3f53c8}}
+\index{libhomescreen.\+cpp@{libhomescreen.\+cpp}!\+\_\+on\+\_\+call\+\_\+static@{\+\_\+on\+\_\+call\+\_\+static}}
+\index{\+\_\+on\+\_\+call\+\_\+static@{\+\_\+on\+\_\+call\+\_\+static}!libhomescreen.\+cpp@{libhomescreen.\+cpp}}
+\subsubsection{\texorpdfstring{\+\_\+on\+\_\+call\+\_\+static()}{\_on\_call\_static()}}
+{\footnotesize\ttfamily static void \+\_\+on\+\_\+call\+\_\+static (\begin{DoxyParamCaption}\item[{void $\ast$}]{closure, }\item[{const char $\ast$}]{api, }\item[{const char $\ast$}]{verb, }\item[{struct afb\+\_\+wsj1\+\_\+msg $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 64 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+65 \{
+66 \textcolor{comment}{/* LibHomeScreen is not called from other process */}
+67 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{libhomescreen_8cpp_a3df86185aa9453726556da201d95a6f9}\label{libhomescreen_8cpp_a3df86185aa9453726556da201d95a6f9}}
+\index{libhomescreen.\+cpp@{libhomescreen.\+cpp}!\+\_\+on\+\_\+event\+\_\+static@{\+\_\+on\+\_\+event\+\_\+static}}
+\index{\+\_\+on\+\_\+event\+\_\+static@{\+\_\+on\+\_\+event\+\_\+static}!libhomescreen.\+cpp@{libhomescreen.\+cpp}}
+\subsubsection{\texorpdfstring{\+\_\+on\+\_\+event\+\_\+static()}{\_on\_event\_static()}}
+{\footnotesize\ttfamily static void \+\_\+on\+\_\+event\+\_\+static (\begin{DoxyParamCaption}\item[{void $\ast$}]{closure, }\item[{const char $\ast$}]{event, }\item[{struct afb\+\_\+wsj1\+\_\+msg $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 69 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+70 \{
+71 \textcolor{keyword}{static\_cast<}\hyperlink{class_lib_home_screen}{LibHomeScreen}*\textcolor{keyword}{>}(closure)->on\_event(NULL,\hyperlink{structevent}{event},msg);
+72 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{libhomescreen_8cpp_a73c05b96c151e5e46c28585ccb143c1c}\label{libhomescreen_8cpp_a73c05b96c151e5e46c28585ccb143c1c}}
+\index{libhomescreen.\+cpp@{libhomescreen.\+cpp}!\+\_\+on\+\_\+hangup\+\_\+static@{\+\_\+on\+\_\+hangup\+\_\+static}}
+\index{\+\_\+on\+\_\+hangup\+\_\+static@{\+\_\+on\+\_\+hangup\+\_\+static}!libhomescreen.\+cpp@{libhomescreen.\+cpp}}
+\subsubsection{\texorpdfstring{\+\_\+on\+\_\+hangup\+\_\+static()}{\_on\_hangup\_static()}}
+{\footnotesize\ttfamily static void \+\_\+on\+\_\+hangup\+\_\+static (\begin{DoxyParamCaption}\item[{void $\ast$}]{closure, }\item[{struct afb\+\_\+wsj1 $\ast$}]{wsj }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+websocket
+
+Definition at line 59 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+60 \{
+61 \textcolor{keyword}{static\_cast<}\hyperlink{class_lib_home_screen}{LibHomeScreen}*\textcolor{keyword}{>}(closure)->on\_hangup(NULL,wsj);
+62 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}\label{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}}
+\index{libhomescreen.\+cpp@{libhomescreen.\+cpp}!\+\_\+on\+\_\+reply\+\_\+static@{\+\_\+on\+\_\+reply\+\_\+static}}
+\index{\+\_\+on\+\_\+reply\+\_\+static@{\+\_\+on\+\_\+reply\+\_\+static}!libhomescreen.\+cpp@{libhomescreen.\+cpp}}
+\subsubsection{\texorpdfstring{\+\_\+on\+\_\+reply\+\_\+static()}{\_on\_reply\_static()}}
+{\footnotesize\ttfamily static void \+\_\+on\+\_\+reply\+\_\+static (\begin{DoxyParamCaption}\item[{void $\ast$}]{closure, }\item[{struct afb\+\_\+wsj1\+\_\+msg $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 74 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+75 \{
+76 \textcolor{keyword}{static\_cast<}\hyperlink{class_lib_home_screen}{LibHomeScreen}*\textcolor{keyword}{>}(closure)->on\_reply(NULL,msg);
+77 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{libhomescreen_8cpp_aa73353e1bf62c68b6b0aba7a1e4e275e}\label{libhomescreen_8cpp_aa73353e1bf62c68b6b0aba7a1e4e275e}}
+\index{libhomescreen.\+cpp@{libhomescreen.\+cpp}!event\+\_\+loop\+\_\+run@{event\+\_\+loop\+\_\+run}}
+\index{event\+\_\+loop\+\_\+run@{event\+\_\+loop\+\_\+run}!libhomescreen.\+cpp@{libhomescreen.\+cpp}}
+\subsubsection{\texorpdfstring{event\+\_\+loop\+\_\+run()}{event\_loop\_run()}}
+{\footnotesize\ttfamily static void$\ast$ event\+\_\+loop\+\_\+run (\begin{DoxyParamCaption}\item[{void $\ast$}]{args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 201 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+202 \{
+203 \textcolor{keyword}{struct }sd\_event* loop = (\textcolor{keyword}{struct }sd\_event*)(args);
+204 \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"start eventloop"});
+205 \textcolor{keywordflow}{for}(;;)
+206 sd\_event\_run(loop, 30000000);
+207 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{libhomescreen_8cpp_a7a2176c3d71fec0f09dcb2aa0866b17e}\label{libhomescreen_8cpp_a7a2176c3d71fec0f09dcb2aa0866b17e}}
+\index{libhomescreen.\+cpp@{libhomescreen.\+cpp}!has\+\_\+verb@{has\+\_\+verb}}
+\index{has\+\_\+verb@{has\+\_\+verb}!libhomescreen.\+cpp@{libhomescreen.\+cpp}}
+\subsubsection{\texorpdfstring{has\+\_\+verb()}{has\_verb()}}
+{\footnotesize\ttfamily static bool has\+\_\+verb (\begin{DoxyParamCaption}\item[{const string \&}]{verb }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 518 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+519 \{
+520 \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"verb is %s"}, verb.c\_str());
+521 \textcolor{keywordflow}{if}(find(\hyperlink{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{LibHomeScreen::api\_list}.begin(),
+ \hyperlink{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{LibHomeScreen::api\_list}.end(), verb) !=
+ \hyperlink{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{LibHomeScreen::api\_list}.end())
+522 \textcolor{keywordflow}{return} \textcolor{keyword}{true};
+523 \textcolor{keywordflow}{else}
+524 \textcolor{keywordflow}{return} \textcolor{keyword}{false};
+525 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\mbox{\Hypertarget{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}\label{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}}
+\index{libhomescreen.\+cpp@{libhomescreen.\+cpp}!A\+PI@{A\+PI}}
+\index{A\+PI@{A\+PI}!libhomescreen.\+cpp@{libhomescreen.\+cpp}}
+\subsubsection{\texorpdfstring{A\+PI}{API}}
+{\footnotesize\ttfamily const char A\+PI\mbox{[}$\,$\mbox{]} = \char`\"{}homescreen\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 36 of file libhomescreen.\+cpp.
+
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d3/d3d/hs-helper_8h.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d3/d3d/hs-helper_8h.tex
new file mode 100644
index 0000000..d6e9808
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/d3/d3d/hs-helper_8h.tex
@@ -0,0 +1,345 @@
+\hypertarget{hs-helper_8h}{}\section{src/hs-\/helper.h File Reference}
+\label{hs-helper_8h}\index{src/hs-\/helper.\+h@{src/hs-\/helper.\+h}}
+{\ttfamily \#include $<$afb/afb-\/binding.\+h$>$}\newline
+{\ttfamily \#include $<$stdint.\+h$>$}\newline
+{\ttfamily \#include $<$glib.\+h$>$}\newline
+{\ttfamily \#include $<$errno.\+h$>$}\newline
+{\ttfamily \#include \char`\"{}hmi-\/debug.\+h\char`\"{}}\newline
+\subsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\#define \hyperlink{hs-helper_8h_ad2c1fbc92ba364fcf83f15e6d0af66f0}{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}~2
+\end{DoxyCompactItemize}
+\subsection*{Typedefs}
+\begin{DoxyCompactItemize}
+\item
+typedef enum \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8h_ab0d62ccfa9c3ab87f090f67c3d50adce}{R\+E\+Q\+\_\+\+E\+R\+R\+OR}
+\end{DoxyCompactItemize}
+\subsection*{Enumerations}
+\begin{DoxyCompactItemize}
+\item
+enum \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \{ \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{R\+E\+Q\+\_\+\+F\+A\+IL} = -\/1,
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{R\+E\+Q\+\_\+\+OK} =0,
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{N\+O\+T\+\_\+\+N\+U\+M\+B\+ER},
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{O\+U\+T\+\_\+\+R\+A\+N\+GE}
+ \}
+\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8h_a649900645417f2df3a70b9ad67529f53}{get\+\_\+value\+\_\+uint16} (const struct afb\+\_\+req 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_8h_a2e62366684e39ea94436bf017e416827}{get\+\_\+value\+\_\+int16} (const struct afb\+\_\+req 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_8h_ac5b0370643c520377afd3fd4891918d2}{get\+\_\+value\+\_\+int32} (const struct afb\+\_\+req request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)
+\item
+void \hyperlink{hs-helper_8h_a1ba31a6a94515ff1730ba0043a67d59e}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
+\item
+void \hyperlink{hs-helper_8h_a8777c53f1d4d5412f19b134ad85ffedf}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
+\item
+void \hyperlink{hs-helper_8h_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_8h_a2ff1b894941c3b461ca8119079c4146a}{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index} (const char $\ast$value)
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+static const char $\ast$ \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} \mbox{[}$\,$\mbox{]}
+\end{DoxyCompactItemize}
+
+
+\subsection{Macro Definition Documentation}
+\mbox{\Hypertarget{hs-helper_8h_ad2c1fbc92ba364fcf83f15e6d0af66f0}\label{hs-helper_8h_ad2c1fbc92ba364fcf83f15e6d0af66f0}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON@{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}}
+\index{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON@{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}{AFB\_BINDING\_VERSION}}
+{\footnotesize\ttfamily \#define A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON~2}
+
+
+
+Definition at line 19 of file hs-\/helper.\+h.
+
+
+
+\subsection{Typedef Documentation}
+\mbox{\Hypertarget{hs-helper_8h_ab0d62ccfa9c3ab87f090f67c3d50adce}\label{hs-helper_8h_ab0d62ccfa9c3ab87f090f67c3d50adce}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!R\+E\+Q\+\_\+\+E\+R\+R\+OR@{R\+E\+Q\+\_\+\+E\+R\+R\+OR}}
+\index{R\+E\+Q\+\_\+\+E\+R\+R\+OR@{R\+E\+Q\+\_\+\+E\+R\+R\+OR}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{R\+E\+Q\+\_\+\+E\+R\+R\+OR}{REQ\_ERROR}}
+{\footnotesize\ttfamily typedef enum \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR}}
+
+
+
+\subsection{Enumeration Type Documentation}
+\mbox{\Hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!R\+E\+Q\+\_\+\+E\+R\+R\+OR@{R\+E\+Q\+\_\+\+E\+R\+R\+OR}}
+\index{R\+E\+Q\+\_\+\+E\+R\+R\+OR@{R\+E\+Q\+\_\+\+E\+R\+R\+OR}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{R\+E\+Q\+\_\+\+E\+R\+R\+OR}{REQ\_ERROR}}
+{\footnotesize\ttfamily enum \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR}}
+
+\begin{DoxyEnumFields}{Enumerator}
+\raisebox{\heightof{T}}[0pt][0pt]{\index{R\+E\+Q\+\_\+\+F\+A\+IL@{R\+E\+Q\+\_\+\+F\+A\+IL}!hs-\/helper.\+h@{hs-\/helper.\+h}}\index{hs-\/helper.\+h@{hs-\/helper.\+h}!R\+E\+Q\+\_\+\+F\+A\+IL@{R\+E\+Q\+\_\+\+F\+A\+IL}}}\mbox{\Hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}}
+R\+E\+Q\+\_\+\+F\+A\+IL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{R\+E\+Q\+\_\+\+OK@{R\+E\+Q\+\_\+\+OK}!hs-\/helper.\+h@{hs-\/helper.\+h}}\index{hs-\/helper.\+h@{hs-\/helper.\+h}!R\+E\+Q\+\_\+\+OK@{R\+E\+Q\+\_\+\+OK}}}\mbox{\Hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}}
+R\+E\+Q\+\_\+\+OK&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{N\+O\+T\+\_\+\+N\+U\+M\+B\+ER@{N\+O\+T\+\_\+\+N\+U\+M\+B\+ER}!hs-\/helper.\+h@{hs-\/helper.\+h}}\index{hs-\/helper.\+h@{hs-\/helper.\+h}!N\+O\+T\+\_\+\+N\+U\+M\+B\+ER@{N\+O\+T\+\_\+\+N\+U\+M\+B\+ER}}}\mbox{\Hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}}
+N\+O\+T\+\_\+\+N\+U\+M\+B\+ER&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{O\+U\+T\+\_\+\+R\+A\+N\+GE@{O\+U\+T\+\_\+\+R\+A\+N\+GE}!hs-\/helper.\+h@{hs-\/helper.\+h}}\index{hs-\/helper.\+h@{hs-\/helper.\+h}!O\+U\+T\+\_\+\+R\+A\+N\+GE@{O\+U\+T\+\_\+\+R\+A\+N\+GE}}}\mbox{\Hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}}
+O\+U\+T\+\_\+\+R\+A\+N\+GE&\\
+\hline
+
+\end{DoxyEnumFields}
+
+
+Definition at line 26 of file hs-\/helper.\+h.
+
+
+\begin{DoxyCode}
+27 \{
+28 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL} = -1,
+29 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK}=0,
+30 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER},
+31 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE}
+32 \}\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{REQ\_ERROR};
+\end{DoxyCode}
+
+
+\subsection{Function Documentation}
+\mbox{\Hypertarget{hs-helper_8h_a2e62366684e39ea94436bf017e416827}\label{hs-helper_8h_a2e62366684e39ea94436bf017e416827}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}}
+\index{get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{get\+\_\+value\+\_\+int16()}{get\_value\_int16()}}
+{\footnotesize\ttfamily \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int16 (\begin{DoxyParamCaption}\item[{const struct afb\+\_\+req}]{request, }\item[{const char $\ast$}]{source, }\item[{int16\+\_\+t $\ast$}]{out\+\_\+id }\end{DoxyParamCaption})}
+
+
+
+Definition at line 48 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+49 \{
+50 \textcolor{keywordtype}{char}* endptr;
+51 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+52 \textcolor{keywordflow}{if}(!tmp)
+53 \{
+54 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+55 \}
+56 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+57
+58 \textcolor{comment}{/* error check of range */}
+59 \textcolor{keywordflow}{if}( (tmp\_id > INT16\_MAX) || (tmp\_id < INT16\_MIN) )
+60 \{
+61 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+62 \}
+63 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+64 \{
+65 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+66 \}
+67
+68 *out\_id = (int16\_t)tmp\_id;
+69 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+70 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8h_ac5b0370643c520377afd3fd4891918d2}\label{hs-helper_8h_ac5b0370643c520377afd3fd4891918d2}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}}
+\index{get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{get\+\_\+value\+\_\+int32()}{get\_value\_int32()}}
+{\footnotesize\ttfamily \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int32 (\begin{DoxyParamCaption}\item[{const struct afb\+\_\+req}]{request, }\item[{const char $\ast$}]{source, }\item[{int32\+\_\+t $\ast$}]{out\+\_\+id }\end{DoxyParamCaption})}
+
+
+
+Definition at line 72 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+73 \{
+74 \textcolor{keywordtype}{char}* endptr;
+75 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+76 \textcolor{keywordflow}{if}(!tmp)
+77 \{
+78 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+79 \}
+80 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+81
+82 \textcolor{comment}{/* error check of range */}
+83 \textcolor{keywordflow}{if}( (tmp\_id > INT32\_MAX) || (tmp\_id < INT32\_MIN) )
+84 \{
+85 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+86 \}
+87 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+88 \{
+89 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+90 \}
+91
+92 *out\_id = (int32\_t)tmp\_id;
+93 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+94 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8h_a649900645417f2df3a70b9ad67529f53}\label{hs-helper_8h_a649900645417f2df3a70b9ad67529f53}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}}
+\index{get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{get\+\_\+value\+\_\+uint16()}{get\_value\_uint16()}}
+{\footnotesize\ttfamily \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+uint16 (\begin{DoxyParamCaption}\item[{const struct afb\+\_\+req}]{request, }\item[{const char $\ast$}]{source, }\item[{uint16\+\_\+t $\ast$}]{out\+\_\+id }\end{DoxyParamCaption})}
+
+
+
+Definition at line 24 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+25 \{
+26 \textcolor{keywordtype}{char}* endptr;
+27 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+28 \textcolor{keywordflow}{if}(!tmp)
+29 \{
+30 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+31 \}
+32 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+33
+34 \textcolor{comment}{/* error check of range */}
+35 \textcolor{keywordflow}{if}( (tmp\_id > UINT16\_MAX) || (tmp\_id < 0) )
+36 \{
+37 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+38 \}
+39 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+40 \{
+41 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+42 \}
+43
+44 *out\_id = (uint16\_t)tmp\_id;
+45 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+46 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8h_a1ba31a6a94515ff1730ba0043a67d59e}\label{hs-helper_8h_a1ba31a6a94515ff1730ba0043a67d59e}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!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.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object()}{hs\_add\_object\_to\_json\_object()}}
+{\footnotesize\ttfamily void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object (\begin{DoxyParamCaption}\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }\item[{int}]{count, }\item[{}]{... }\end{DoxyParamCaption})}
+
+
+
+Definition at line 96 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+97 \{
+98 va\_list args;
+99 va\_start(args, count);
+100 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+101 \{
+102 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+103 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+104 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+105 ++i;
+106 \}
+107 va\_end(args);
+108 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8h_ae83604a37134e7bdee3ce4f10bb0b47a}\label{hs-helper_8h_ae83604a37134e7bdee3ce4f10bb0b47a}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!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.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func()}{hs\_add\_object\_to\_json\_object\_func()}}
+{\footnotesize\ttfamily 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})}
+
+
+
+Definition at line 125 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+126 \{
+127 va\_list args;
+128 va\_start(args, count);
+129
+130 json\_object\_object\_add(j\_obj,\textcolor{stringliteral}{"verb"}, json\_object\_new\_string(verb\_name));
+131
+132 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+133 \{
+134 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+135 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+136 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+137 ++i;
+138 \}
+139 va\_end(args);
+140 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8h_a8777c53f1d4d5412f19b134ad85ffedf}\label{hs-helper_8h_a8777c53f1d4d5412f19b134ad85ffedf}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!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.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str()}{hs\_add\_object\_to\_json\_object\_str()}}
+{\footnotesize\ttfamily void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str (\begin{DoxyParamCaption}\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }\item[{int}]{count, }\item[{}]{... }\end{DoxyParamCaption})}
+
+
+
+Definition at line 110 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+111 \{
+112 va\_list args;
+113 va\_start(args, count);
+114 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+115 \{
+116 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+117 \textcolor{keywordtype}{char} *value = va\_arg(args, \textcolor{keywordtype}{char}*);
+118 json\_object\_object\_add(j\_obj, key, json\_object\_new\_string(value));
+119 ++i;
+120 \}
+121 va\_end(args);
+122 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8h_a2ff1b894941c3b461ca8119079c4146a}\label{hs-helper_8h_a2ff1b894941c3b461ca8119079c4146a}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}}
+\index{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index()}{hs\_search\_event\_name\_index()}}
+{\footnotesize\ttfamily int hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index (\begin{DoxyParamCaption}\item[{const char $\ast$}]{value }\end{DoxyParamCaption})}
+
+
+
+Definition at line 142 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+143 \{
+144 \textcolor{keywordtype}{size\_t} buf\_size = 50;
+145 \textcolor{keywordtype}{size\_t} size = \textcolor{keyword}{sizeof} \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} / \textcolor{keyword}{sizeof} *\hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist};
+146 \textcolor{keywordtype}{int} ret = -1;
+147 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{size\_t} i = 0 ; i < size ; ++i)
+148 \{
+149 \textcolor{keywordflow}{if}(!strncmp(value, \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[i], buf\_size))
+150 \{
+151 ret = i;
+152 \textcolor{keywordflow}{break};
+153 \}
+154 \}
+155 \textcolor{keywordflow}{return} ret;
+156 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\mbox{\Hypertarget{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}\label{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!evlist@{evlist}}
+\index{evlist@{evlist}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection{\texorpdfstring{evlist}{evlist}}
+{\footnotesize\ttfamily const char$\ast$ evlist\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}
+
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \textcolor{stringliteral}{"tap\_shortcut"},
+ \textcolor{stringliteral}{"on\_screen\_message"},
+ \textcolor{stringliteral}{"on\_screen\_reply"},
+ \textcolor{stringliteral}{"reserved"}
+ \}
+\end{DoxyCode}
+
+
+Definition at line 34 of file hs-\/helper.\+h.
+
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dd/d1d/hs-helper_8c.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dd/d1d/hs-helper_8c.tex
new file mode 100644
index 0000000..407da09
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dd/d1d/hs-helper_8c.tex
@@ -0,0 +1,238 @@
+\hypertarget{hs-helper_8c}{}\section{src/hs-\/helper.c File Reference}
+\label{hs-helper_8c}\index{src/hs-\/helper.\+c@{src/hs-\/helper.\+c}}
+{\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$stdlib.\+h$>$}\newline
+{\ttfamily \#include $<$string.\+h$>$}\newline
+{\ttfamily \#include $<$limits.\+h$>$}\newline
+{\ttfamily \#include $<$json-\/c/json.\+h$>$}\newline
+{\ttfamily \#include $<$stdarg.\+h$>$}\newline
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8c_a649900645417f2df3a70b9ad67529f53}{get\+\_\+value\+\_\+uint16} (const struct afb\+\_\+req 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_8c_a2e62366684e39ea94436bf017e416827}{get\+\_\+value\+\_\+int16} (const struct afb\+\_\+req 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_8c_ac5b0370643c520377afd3fd4891918d2}{get\+\_\+value\+\_\+int32} (const struct afb\+\_\+req request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)
+\item
+void \hyperlink{hs-helper_8c_a1ba31a6a94515ff1730ba0043a67d59e}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
+\item
+void \hyperlink{hs-helper_8c_a8777c53f1d4d5412f19b134ad85ffedf}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
+\item
+void \hyperlink{hs-helper_8c_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_8c_a2ff1b894941c3b461ca8119079c4146a}{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index} (const char $\ast$value)
+\end{DoxyCompactItemize}
+
+
+\subsection{Function Documentation}
+\mbox{\Hypertarget{hs-helper_8c_a2e62366684e39ea94436bf017e416827}\label{hs-helper_8c_a2e62366684e39ea94436bf017e416827}}
+\index{hs-\/helper.\+c@{hs-\/helper.\+c}!get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}}
+\index{get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}!hs-\/helper.\+c@{hs-\/helper.\+c}}
+\subsubsection{\texorpdfstring{get\+\_\+value\+\_\+int16()}{get\_value\_int16()}}
+{\footnotesize\ttfamily \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int16 (\begin{DoxyParamCaption}\item[{const struct afb\+\_\+req}]{request, }\item[{const char $\ast$}]{source, }\item[{int16\+\_\+t $\ast$}]{out\+\_\+id }\end{DoxyParamCaption})}
+
+
+
+Definition at line 48 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+49 \{
+50 \textcolor{keywordtype}{char}* endptr;
+51 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+52 \textcolor{keywordflow}{if}(!tmp)
+53 \{
+54 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+55 \}
+56 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+57
+58 \textcolor{comment}{/* error check of range */}
+59 \textcolor{keywordflow}{if}( (tmp\_id > INT16\_MAX) || (tmp\_id < INT16\_MIN) )
+60 \{
+61 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+62 \}
+63 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+64 \{
+65 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+66 \}
+67
+68 *out\_id = (int16\_t)tmp\_id;
+69 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+70 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8c_ac5b0370643c520377afd3fd4891918d2}\label{hs-helper_8c_ac5b0370643c520377afd3fd4891918d2}}
+\index{hs-\/helper.\+c@{hs-\/helper.\+c}!get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}}
+\index{get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}!hs-\/helper.\+c@{hs-\/helper.\+c}}
+\subsubsection{\texorpdfstring{get\+\_\+value\+\_\+int32()}{get\_value\_int32()}}
+{\footnotesize\ttfamily \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int32 (\begin{DoxyParamCaption}\item[{const struct afb\+\_\+req}]{request, }\item[{const char $\ast$}]{source, }\item[{int32\+\_\+t $\ast$}]{out\+\_\+id }\end{DoxyParamCaption})}
+
+
+
+Definition at line 72 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+73 \{
+74 \textcolor{keywordtype}{char}* endptr;
+75 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+76 \textcolor{keywordflow}{if}(!tmp)
+77 \{
+78 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+79 \}
+80 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+81
+82 \textcolor{comment}{/* error check of range */}
+83 \textcolor{keywordflow}{if}( (tmp\_id > INT32\_MAX) || (tmp\_id < INT32\_MIN) )
+84 \{
+85 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+86 \}
+87 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+88 \{
+89 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+90 \}
+91
+92 *out\_id = (int32\_t)tmp\_id;
+93 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+94 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8c_a649900645417f2df3a70b9ad67529f53}\label{hs-helper_8c_a649900645417f2df3a70b9ad67529f53}}
+\index{hs-\/helper.\+c@{hs-\/helper.\+c}!get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}}
+\index{get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}!hs-\/helper.\+c@{hs-\/helper.\+c}}
+\subsubsection{\texorpdfstring{get\+\_\+value\+\_\+uint16()}{get\_value\_uint16()}}
+{\footnotesize\ttfamily \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+uint16 (\begin{DoxyParamCaption}\item[{const struct afb\+\_\+req}]{request, }\item[{const char $\ast$}]{source, }\item[{uint16\+\_\+t $\ast$}]{out\+\_\+id }\end{DoxyParamCaption})}
+
+
+
+Definition at line 24 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+25 \{
+26 \textcolor{keywordtype}{char}* endptr;
+27 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+28 \textcolor{keywordflow}{if}(!tmp)
+29 \{
+30 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+31 \}
+32 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+33
+34 \textcolor{comment}{/* error check of range */}
+35 \textcolor{keywordflow}{if}( (tmp\_id > UINT16\_MAX) || (tmp\_id < 0) )
+36 \{
+37 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+38 \}
+39 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+40 \{
+41 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+42 \}
+43
+44 *out\_id = (uint16\_t)tmp\_id;
+45 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+46 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8c_a1ba31a6a94515ff1730ba0043a67d59e}\label{hs-helper_8c_a1ba31a6a94515ff1730ba0043a67d59e}}
+\index{hs-\/helper.\+c@{hs-\/helper.\+c}!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.\+c@{hs-\/helper.\+c}}
+\subsubsection{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object()}{hs\_add\_object\_to\_json\_object()}}
+{\footnotesize\ttfamily void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object (\begin{DoxyParamCaption}\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }\item[{int}]{count, }\item[{}]{... }\end{DoxyParamCaption})}
+
+
+
+Definition at line 96 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+97 \{
+98 va\_list args;
+99 va\_start(args, count);
+100 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+101 \{
+102 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+103 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+104 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+105 ++i;
+106 \}
+107 va\_end(args);
+108 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8c_ae83604a37134e7bdee3ce4f10bb0b47a}\label{hs-helper_8c_ae83604a37134e7bdee3ce4f10bb0b47a}}
+\index{hs-\/helper.\+c@{hs-\/helper.\+c}!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.\+c@{hs-\/helper.\+c}}
+\subsubsection{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func()}{hs\_add\_object\_to\_json\_object\_func()}}
+{\footnotesize\ttfamily 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})}
+
+
+
+Definition at line 125 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+126 \{
+127 va\_list args;
+128 va\_start(args, count);
+129
+130 json\_object\_object\_add(j\_obj,\textcolor{stringliteral}{"verb"}, json\_object\_new\_string(verb\_name));
+131
+132 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+133 \{
+134 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+135 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+136 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+137 ++i;
+138 \}
+139 va\_end(args);
+140 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8c_a8777c53f1d4d5412f19b134ad85ffedf}\label{hs-helper_8c_a8777c53f1d4d5412f19b134ad85ffedf}}
+\index{hs-\/helper.\+c@{hs-\/helper.\+c}!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.\+c@{hs-\/helper.\+c}}
+\subsubsection{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str()}{hs\_add\_object\_to\_json\_object\_str()}}
+{\footnotesize\ttfamily void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str (\begin{DoxyParamCaption}\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }\item[{int}]{count, }\item[{}]{... }\end{DoxyParamCaption})}
+
+
+
+Definition at line 110 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+111 \{
+112 va\_list args;
+113 va\_start(args, count);
+114 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+115 \{
+116 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+117 \textcolor{keywordtype}{char} *value = va\_arg(args, \textcolor{keywordtype}{char}*);
+118 json\_object\_object\_add(j\_obj, key, json\_object\_new\_string(value));
+119 ++i;
+120 \}
+121 va\_end(args);
+122 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{hs-helper_8c_a2ff1b894941c3b461ca8119079c4146a}\label{hs-helper_8c_a2ff1b894941c3b461ca8119079c4146a}}
+\index{hs-\/helper.\+c@{hs-\/helper.\+c}!hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}}
+\index{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}!hs-\/helper.\+c@{hs-\/helper.\+c}}
+\subsubsection{\texorpdfstring{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index()}{hs\_search\_event\_name\_index()}}
+{\footnotesize\ttfamily int hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index (\begin{DoxyParamCaption}\item[{const char $\ast$}]{value }\end{DoxyParamCaption})}
+
+
+
+Definition at line 142 of file hs-\/helper.\+c.
+
+
+\begin{DoxyCode}
+143 \{
+144 \textcolor{keywordtype}{size\_t} buf\_size = 50;
+145 \textcolor{keywordtype}{size\_t} size = \textcolor{keyword}{sizeof} \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} / \textcolor{keyword}{sizeof} *\hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist};
+146 \textcolor{keywordtype}{int} ret = -1;
+147 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{size\_t} i = 0 ; i < size ; ++i)
+148 \{
+149 \textcolor{keywordflow}{if}(!strncmp(value, \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[i], buf\_size))
+150 \{
+151 ret = i;
+152 \textcolor{keywordflow}{break};
+153 \}
+154 \}
+155 \textcolor{keywordflow}{return} ret;
+156 \}
+\end{DoxyCode}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/de/dd0/class_lib_home_screen.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/de/dd0/class_lib_home_screen.tex
new file mode 100644
index 0000000..ce14de7
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/de/dd0/class_lib_home_screen.tex
@@ -0,0 +1,732 @@
+\hypertarget{class_lib_home_screen}{}\section{Lib\+Home\+Screen Class Reference}
+\label{class_lib_home_screen}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+
+
+{\ttfamily \#include $<$libhomescreen.\+hpp$>$}
+
+\subsection*{Public Types}
+\begin{DoxyCompactItemize}
+\item
+enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Event\+Type} \{ \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\+\_\+\+Tap\+Shortcut} = 1,
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\+\_\+\+On\+Screen\+Message},
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\+\_\+\+On\+Screen\+Reply}
+ \}
+\item
+using \hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{handler\+\_\+func} = std\+::function$<$ void(json\+\_\+object $\ast$)$>$
+\end{DoxyCompactItemize}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{class_lib_home_screen_a724bd949c4154fad041f96a15ef0f5dc}{Lib\+Home\+Screen} ()
+\item
+\hyperlink{class_lib_home_screen_a249902aebf71a5383ca8ec6ae558d095}{$\sim$\+Lib\+Home\+Screen} ()
+\item
+\hyperlink{class_lib_home_screen_a0fff2f703c8ce184eb9edd133e0f4137}{Lib\+Home\+Screen} (const \hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} \&)=delete
+\item
+\hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} \& \hyperlink{class_lib_home_screen_a23bc17798453cfca50904562736f6b25}{operator=} (const \hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} \&)=delete
+\item
+int \hyperlink{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}{init} (const int port, const std\+::string \&token)
+\item
+int \hyperlink{class_lib_home_screen_afb571c9577087b47065eb23e7fdbc903}{tap\+Shortcut} (const char $\ast$application\+\_\+name)
+\item
+int \hyperlink{class_lib_home_screen_ac336482036a72b51a822725f1929523c}{on\+Screen\+Message} (const char $\ast$display\+\_\+message)
+\item
+int \hyperlink{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}{on\+Screen\+Reply} (const char $\ast$reply\+\_\+message)
+\item
+void \hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\+\_\+event\+\_\+handler} (enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Event\+Type} et, \hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{handler\+\_\+func} f)
+\item
+void \hyperlink{class_lib_home_screen_a2789e8a5372202cc36f48e71dbb9b7cf}{register\+Callback} (void($\ast$event\+\_\+cb)(const std\+::string \&\hyperlink{structevent}{event}, struct json\+\_\+object $\ast$event\+\_\+contents), void($\ast$reply\+\_\+cb)(struct json\+\_\+object $\ast$reply\+\_\+contents), void($\ast$hangup\+\_\+cb)(void)=nullptr)
+\item
+int \hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call} (const std\+::string \&verb, struct json\+\_\+object $\ast$arg)
+\item
+int \hyperlink{class_lib_home_screen_ab5e8e8ab7d53e0f114e9e907fcbb7643}{call} (const char $\ast$verb, struct json\+\_\+object $\ast$arg)
+\item
+int \hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe} (const std\+::string \&event\+\_\+name)
+\item
+int \hyperlink{class_lib_home_screen_aac03a45cbd453ba69ddb00c1016930a6}{unsubscribe} (const std\+::string \&event\+\_\+name)
+\item
+void \hyperlink{class_lib_home_screen_ab1c1fa69f24b981e824dd9fb810c4b74}{on\+\_\+hangup} (void $\ast$closure, struct afb\+\_\+wsj1 $\ast$wsj)
+\item
+void \hyperlink{class_lib_home_screen_a608638eb87b2772a3dcc92d8ca8f3596}{on\+\_\+call} (void $\ast$closure, const char $\ast$api, const char $\ast$verb, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)
+\item
+void \hyperlink{class_lib_home_screen_a9c4885b51b43ab24a548d49fb3ab2de3}{on\+\_\+event} (void $\ast$closure, const char $\ast$\hyperlink{structevent}{event}, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)
+\item
+void \hyperlink{class_lib_home_screen_a248d9648c6186287a7632ec1c75fc9c5}{on\+\_\+reply} (void $\ast$closure, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)
+\end{DoxyCompactItemize}
+\subsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+static const std\+::vector$<$ std\+::string $>$ \hyperlink{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{api\+\_\+list}
+\item
+static const std\+::vector$<$ std\+::string $>$ \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{event\+\_\+list}
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 32 of file libhomescreen.\+hpp.
+
+
+
+\subsection{Member Typedef Documentation}
+\mbox{\Hypertarget{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}\label{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!handler\+\_\+func@{handler\+\_\+func}}
+\index{handler\+\_\+func@{handler\+\_\+func}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{handler\+\_\+func}{handler\_func}}
+{\footnotesize\ttfamily using \hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{Lib\+Home\+Screen\+::handler\+\_\+func} = std\+::function$<$void(json\+\_\+object$\ast$)$>$}
+
+
+
+Definition at line 42 of file libhomescreen.\+hpp.
+
+
+
+\subsection{Member Enumeration Documentation}
+\mbox{\Hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+Type@{Event\+Type}}
+\index{Event\+Type@{Event\+Type}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{Event\+Type}{EventType}}
+{\footnotesize\ttfamily enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Lib\+Home\+Screen\+::\+Event\+Type}}
+
+\begin{DoxyEnumFields}{Enumerator}
+\raisebox{\heightof{T}}[0pt][0pt]{\index{Event\+\_\+\+Tap\+Shortcut@{Event\+\_\+\+Tap\+Shortcut}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+\_\+\+Tap\+Shortcut@{Event\+\_\+\+Tap\+Shortcut}}}\mbox{\Hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}}
+Event\+\_\+\+Tap\+Shortcut&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{Event\+\_\+\+On\+Screen\+Message@{Event\+\_\+\+On\+Screen\+Message}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+\_\+\+On\+Screen\+Message@{Event\+\_\+\+On\+Screen\+Message}}}\mbox{\Hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}}
+Event\+\_\+\+On\+Screen\+Message&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{Event\+\_\+\+On\+Screen\+Reply@{Event\+\_\+\+On\+Screen\+Reply}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+\_\+\+On\+Screen\+Reply@{Event\+\_\+\+On\+Screen\+Reply}}}\mbox{\Hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}}
+Event\+\_\+\+On\+Screen\+Reply&\\
+\hline
+
+\end{DoxyEnumFields}
+
+
+Definition at line 44 of file libhomescreen.\+hpp.
+
+
+\begin{DoxyCode}
+44 \{
+45 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut} = 1,
+46 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage},
+47 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply}
+48 \};
+\end{DoxyCode}
+
+
+\subsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{class_lib_home_screen_a724bd949c4154fad041f96a15ef0f5dc}\label{class_lib_home_screen_a724bd949c4154fad041f96a15ef0f5dc}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{Lib\+Home\+Screen()}{LibHomeScreen()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily Lib\+Home\+Screen\+::\+Lib\+Home\+Screen (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+constructor
+
+Definition at line 83 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+84 \{
+85 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a249902aebf71a5383ca8ec6ae558d095}\label{class_lib_home_screen_a249902aebf71a5383ca8ec6ae558d095}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!````~Lib\+Home\+Screen@{$\sim$\+Lib\+Home\+Screen}}
+\index{````~Lib\+Home\+Screen@{$\sim$\+Lib\+Home\+Screen}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{$\sim$\+Lib\+Home\+Screen()}{~LibHomeScreen()}}
+{\footnotesize\ttfamily Lib\+Home\+Screen\+::$\sim$\+Lib\+Home\+Screen (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+destructor
+
+Definition at line 90 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+91 \{
+92 \textcolor{keywordflow}{if}(mploop)
+93 \{
+94 sd\_event\_unref(mploop);
+95 \}
+96 \textcolor{keywordflow}{if}(sp\_websock != NULL)
+97 \{
+98 afb\_wsj1\_unref(sp\_websock);
+99 \}
+100 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a0fff2f703c8ce184eb9edd133e0f4137}\label{class_lib_home_screen_a0fff2f703c8ce184eb9edd133e0f4137}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{Lib\+Home\+Screen()}{LibHomeScreen()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily Lib\+Home\+Screen\+::\+Lib\+Home\+Screen (\begin{DoxyParamCaption}\item[{const \hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
+
+
+
+\subsection{Member Function Documentation}
+\mbox{\Hypertarget{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}\label{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!call@{call}}
+\index{call@{call}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{call()}{call()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::call (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{verb, }\item[{struct json\+\_\+object $\ast$}]{arg }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{class_lib_home_screen_ab5e8e8ab7d53e0f114e9e907fcbb7643}\label{class_lib_home_screen_ab5e8e8ab7d53e0f114e9e907fcbb7643}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!call@{call}}
+\index{call@{call}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{call()}{call()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::call (\begin{DoxyParamCaption}\item[{const char $\ast$}]{verb, }\item[{struct json\+\_\+object $\ast$}]{arg }\end{DoxyParamCaption})}
+
+This function calls the A\+PI of Home\+Screen via Web\+Socket This function is overload function of \char`\"{}call\char`\"{}
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item verb \mbox{[}in\mbox{]} \+: This argument should be specified to the A\+PI name (e.\+g. \char`\"{}tap\+\_\+shortcut\char`\"{})
+\item arg \mbox{[}in\mbox{]} \+: This argument should be specified to the argument of A\+PI. And this argument expects J\+S\+ON object
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+\subparagraph*{Note}
+
+To call Home\+Screen\textquotesingle{}s A\+P\+Is, the application should set its function name, arguments to J\+S\+ON format.
+
+Definition at line 360 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+361 \{
+362 \textcolor{keywordtype}{int} ret;
+363 \textcolor{keywordflow}{if}(!sp\_websock)
+364 \{
+365 \textcolor{keywordflow}{return} -1;
+366 \}
+367 \textcolor{keywordflow}{if} (!\hyperlink{libhomescreen_8cpp_a7a2176c3d71fec0f09dcb2aa0866b17e}{has\_verb}(\textcolor{keywordtype}{string}(verb)))
+368 \{
+369 \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"verb doesn't exit"});
+370 \textcolor{keywordflow}{return} -1;
+371 \}
+372 ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, verb, arg, \hyperlink{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{\_on\_reply\_static}, \textcolor{keyword}{this});
+373 \textcolor{keywordflow}{if} (ret < 0) \{
+374 \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to call verb:%s"},verb);
+375 \}
+376 \textcolor{keywordflow}{return} ret;
+377 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}\label{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!init@{init}}
+\index{init@{init}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{init()}{init()}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::init (\begin{DoxyParamCaption}\item[{const int}]{port, }\item[{const std\+::string \&}]{token }\end{DoxyParamCaption})}
+
+This function is initializer
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item port \mbox{[}in\mbox{]} \+: This argument should be specified to the port number to be used for websocket
+\item token \mbox{[}in\mbox{]} \+: This argument should be specified to the token to be used for websocket
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+Nothing
+
+\subparagraph*{Note}
+
+Use this constructor
+
+Definition at line 116 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+117 \{
+118 \textcolor{keywordtype}{int} ret = 0;
+119 \textcolor{keywordflow}{if}(port > 0 && token.size() > 0)
+120 \{
+121 mport = port;
+122 mtoken = token;
+123 \}
+124 \textcolor{keywordflow}{else}
+125 \{
+126 \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"port and token should be > 0, Initial port and token uses."});
+127 \}
+128
+129 ret = initialize\_websocket();
+130 \textcolor{keywordflow}{if}(ret != 0 )
+131 \{
+132 \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to initialize websocket"});
+133 \}
+134 \textcolor{keywordflow}{else}\{
+135 \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Initialized"});
+136 \}
+137
+138 \textcolor{keywordflow}{return} ret;
+139 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a608638eb87b2772a3dcc92d8ca8f3596}\label{class_lib_home_screen_a608638eb87b2772a3dcc92d8ca8f3596}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+\_\+call@{on\+\_\+call}}
+\index{on\+\_\+call@{on\+\_\+call}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{on\+\_\+call()}{on\_call()}}
+{\footnotesize\ttfamily void Lib\+Home\+Screen\+::on\+\_\+call (\begin{DoxyParamCaption}\item[{void $\ast$}]{closure, }\item[{const char $\ast$}]{api, }\item[{const char $\ast$}]{verb, }\item[{struct afb\+\_\+wsj1\+\_\+msg $\ast$}]{msg }\end{DoxyParamCaption})}
+
+
+
+Definition at line 448 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+449 \{
+450 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a9c4885b51b43ab24a548d49fb3ab2de3}\label{class_lib_home_screen_a9c4885b51b43ab24a548d49fb3ab2de3}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+\_\+event@{on\+\_\+event}}
+\index{on\+\_\+event@{on\+\_\+event}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{on\+\_\+event()}{on\_event()}}
+{\footnotesize\ttfamily void Lib\+Home\+Screen\+::on\+\_\+event (\begin{DoxyParamCaption}\item[{void $\ast$}]{closure, }\item[{const char $\ast$}]{event, }\item[{struct afb\+\_\+wsj1\+\_\+msg $\ast$}]{msg }\end{DoxyParamCaption})}
+
+
+
+Definition at line 458 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+459 \{
+460 \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"event: (%s) msg: (%s)."}, \hyperlink{structevent}{event}, afb\_wsj1\_msg\_object\_s(msg));
+461
+462 \textcolor{keywordflow}{if} (strstr(\hyperlink{structevent}{event}, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}) == NULL) \{
+463 \textcolor{keywordflow}{return};
+464 \}
+465
+466 \textcolor{keyword}{struct }json\_object* ev\_contents = afb\_wsj1\_msg\_object\_j(msg);
+467 \textcolor{keyword}{struct }json\_object *json\_data = json\_object\_object\_get(ev\_contents, \textcolor{stringliteral}{"data"});
+468
+469 \textcolor{keywordflow}{if}(onEvent != \textcolor{keyword}{nullptr})
+470 \{
+471 \textcolor{keyword}{const} \textcolor{keywordtype}{string} ev(\hyperlink{structevent}{event});
+472 onEvent(ev, ev\_contents);
+473 \}
+474
+475 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* event\_only = strchr(\hyperlink{structevent}{event}, \textcolor{charliteral}{'/'});
+476 \textcolor{keywordflow}{if} (event\_only != \textcolor{keyword}{nullptr}) \{
+477 event\_only = event\_only + 1;
+478 \}
+479
+480 \textcolor{keywordflow}{if} (strcasecmp(event\_only, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[0].c\_str()) == 0) \{
+481 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut});
+482 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+483 i->second(json\_data);
+484 \}
+485 \}
+486 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_only, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[1].c\_str()) == 0) \{
+487 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage});
+488 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+489 i->second(json\_data);
+490 \}
+491 \}
+492 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_only, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[2].c\_str()) == 0) \{
+493 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply});
+494 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+495 i->second(json\_data);
+496 \}
+497 \}
+498
+499 json\_object\_put(ev\_contents);
+500 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_ab1c1fa69f24b981e824dd9fb810c4b74}\label{class_lib_home_screen_ab1c1fa69f24b981e824dd9fb810c4b74}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+\_\+hangup@{on\+\_\+hangup}}
+\index{on\+\_\+hangup@{on\+\_\+hangup}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{on\+\_\+hangup()}{on\_hangup()}}
+{\footnotesize\ttfamily void Lib\+Home\+Screen\+::on\+\_\+hangup (\begin{DoxyParamCaption}\item[{void $\ast$}]{closure, }\item[{struct afb\+\_\+wsj1 $\ast$}]{wsj }\end{DoxyParamCaption})}
+
+
+
+Definition at line 439 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+440 \{
+441 \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"%s called"}, \_\_FUNCTION\_\_);
+442 \textcolor{keywordflow}{if}(onHangup != \textcolor{keyword}{nullptr})
+443 \{
+444 onHangup();
+445 \}
+446 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a248d9648c6186287a7632ec1c75fc9c5}\label{class_lib_home_screen_a248d9648c6186287a7632ec1c75fc9c5}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+\_\+reply@{on\+\_\+reply}}
+\index{on\+\_\+reply@{on\+\_\+reply}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{on\+\_\+reply()}{on\_reply()}}
+{\footnotesize\ttfamily void Lib\+Home\+Screen\+::on\+\_\+reply (\begin{DoxyParamCaption}\item[{void $\ast$}]{closure, }\item[{struct afb\+\_\+wsj1\+\_\+msg $\ast$}]{msg }\end{DoxyParamCaption})}
+
+msg is like (\{\char`\"{}response\char`\"{}\+:\{\char`\"{}verb\char`\"{}\+:\char`\"{}subscribe\char`\"{},\char`\"{}error\char`\"{}\+:0\},\char`\"{}jtype\char`\"{}\+:\char`\"{}afb-\/reply\char`\"{},\char`\"{}request\char`\"{}\+:\{\char`\"{}status\char`\"{}\+:\char`\"{}success\char`\"{},\char`\"{}info\char`\"{}\+:\char`\"{}homescreen binder subscribe event name \mbox{[}on\+\_\+screen\+\_\+message\mbox{]}\char`\"{}\}\}) msg is like (\{\char`\"{}response\char`\"{}\+:\{\char`\"{}verb\char`\"{}\+:\char`\"{}tap\+\_\+shortcut\char`\"{},\char`\"{}error\char`\"{}\+:0\},\char`\"{}jtype\char`\"{}\+:\char`\"{}afb-\/reply\char`\"{},\char`\"{}request\char`\"{}\+:\{\char`\"{}status\char`\"{}\+:\char`\"{}success\char`\"{},\char`\"{}info\char`\"{}\+:\char`\"{}afb\+\_\+event\+\_\+push event \mbox{[}tap\+\_\+shortcut\mbox{]}\char`\"{}\}\})
+
+Definition at line 506 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+507 \{
+508 \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"msg: (%s)"}, afb\_wsj1\_msg\_object\_s(msg));
+509 \textcolor{keywordflow}{if}(onReply != \textcolor{keyword}{nullptr})
+510 \{
+511 \textcolor{keyword}{struct }json\_object* reply = afb\_wsj1\_msg\_object\_j(msg);
+512 onReply(reply);
+513
+514 json\_object\_put(reply);
+515 \}
+516 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_ac336482036a72b51a822725f1929523c}\label{class_lib_home_screen_ac336482036a72b51a822725f1929523c}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+Screen\+Message@{on\+Screen\+Message}}
+\index{on\+Screen\+Message@{on\+Screen\+Message}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{on\+Screen\+Message()}{onScreenMessage()}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::on\+Screen\+Message (\begin{DoxyParamCaption}\item[{const char $\ast$}]{display\+\_\+message }\end{DoxyParamCaption})}
+
+Sending on\+Screen message event
+
+Sending On\+Screen message event to Home\+Screen from applications
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item display\+\_\+message \mbox{[}in\mbox{]} \+: message for display
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+Definition at line 244 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+245 \{
+246 \textcolor{keywordflow}{if}(!sp\_websock)
+247 \{
+248 \textcolor{keywordflow}{return} -1;
+249 \}
+250
+251 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+252 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(display\_message);
+253 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"display\_message"}, val);
+254 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"on\_screen\_message"}, j\_obj);
+255 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}\label{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+Screen\+Reply@{on\+Screen\+Reply}}
+\index{on\+Screen\+Reply@{on\+Screen\+Reply}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{on\+Screen\+Reply()}{onScreenReply()}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::on\+Screen\+Reply (\begin{DoxyParamCaption}\item[{const char $\ast$}]{reply\+\_\+message }\end{DoxyParamCaption})}
+
+Sending on\+Screen reply event
+
+Sending On\+Screen reply event to applications from Home\+Screen
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item reply\+\_\+message \mbox{[}in\mbox{]} \+: message for reply
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+Definition at line 268 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+269 \{
+270 \textcolor{keywordflow}{if}(!sp\_websock)
+271 \{
+272 \textcolor{keywordflow}{return} -1;
+273 \}
+274
+275 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+276 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(reply\_message);
+277 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"reply\_message"}, val);
+278 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"on\_screen\_reply"}, j\_obj);
+279 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a23bc17798453cfca50904562736f6b25}\label{class_lib_home_screen_a23bc17798453cfca50904562736f6b25}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!operator=@{operator=}}
+\index{operator=@{operator=}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{operator=()}{operator=()}}
+{\footnotesize\ttfamily \hyperlink{class_lib_home_screen}{Lib\+Home\+Screen}\& Lib\+Home\+Screen\+::operator= (\begin{DoxyParamCaption}\item[{const \hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
+
+\mbox{\Hypertarget{class_lib_home_screen_a2789e8a5372202cc36f48e71dbb9b7cf}\label{class_lib_home_screen_a2789e8a5372202cc36f48e71dbb9b7cf}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!register\+Callback@{register\+Callback}}
+\index{register\+Callback@{register\+Callback}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{register\+Callback()}{registerCallback()}}
+{\footnotesize\ttfamily void Lib\+Home\+Screen\+::register\+Callback (\begin{DoxyParamCaption}\item[{void($\ast$)(const std\+::string \&\hyperlink{structevent}{event}, struct json\+\_\+object $\ast$event\+\_\+contents)}]{event\+\_\+cb, }\item[{void($\ast$)(struct json\+\_\+object $\ast$reply\+\_\+contents)}]{reply\+\_\+cb, }\item[{void($\ast$)(void)}]{hangup\+\_\+cb = {\ttfamily nullptr} }\end{DoxyParamCaption})}
+
+This function register callback function for reply/event message from home screen
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event\+\_\+cb \mbox{[}in\mbox{]} \+: This argument should be specified to the callback for subscribed event
+\item reply\+\_\+cb \mbox{[}in\mbox{]} \+: This argument should be specified to the reply callback for call function
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+Nothing
+
+\subparagraph*{Note}
+
+Event callback is invoked by home screen for event you subscribed. If you would like to get event, please call subscribe function before/after this function
+
+Definition at line 155 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+159 \{
+160 onEvent = event\_cb;
+161 onReply = reply\_cb;
+162 onHangup = hangup\_cb;
+163 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}\label{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!set\+\_\+event\+\_\+handler@{set\+\_\+event\+\_\+handler}}
+\index{set\+\_\+event\+\_\+handler@{set\+\_\+event\+\_\+handler}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{set\+\_\+event\+\_\+handler()}{set\_event\_handler()}}
+{\footnotesize\ttfamily void Lib\+Home\+Screen\+::set\+\_\+event\+\_\+handler (\begin{DoxyParamCaption}\item[{enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Event\+Type}}]{et, }\item[{\hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{handler\+\_\+func}}]{f }\end{DoxyParamCaption})}
+
+Setting Event Handler
+
+Setting event handler for Homescreen
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item et \mbox{[}in\mbox{]} \+: event name
+\item f \mbox{[}in\mbox{]} \+: event handler
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+Nothing
+
+Definition at line 293 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+294 \{
+295 \textcolor{keywordflow}{if} (et >= 1 && et <= 3) \{
+296 \textcolor{keywordflow}{switch} (et) \{
+297 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut}:
+298 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[0]);
+299 \textcolor{keywordflow}{break};
+300 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage}:
+301 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[1]);
+302 \textcolor{keywordflow}{break};
+303 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply}:
+304 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[2]);
+305 \textcolor{keywordflow}{break};
+306 \}
+307
+308 this->handlers[et] = std::move(f);
+309 \}
+310 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}\label{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!subscribe@{subscribe}}
+\index{subscribe@{subscribe}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{subscribe()}{subscribe()}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::subscribe (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{event\+\_\+name }\end{DoxyParamCaption})}
+
+Register callback function for each event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event\+\_\+name \mbox{[}in\mbox{]} \+: This argument should be specified to the event name
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+\subparagraph*{Note}
+
+This function enables to get an event to your callback function.
+
+Definition at line 392 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+393 \{
+394 \textcolor{keywordflow}{if}(!sp\_websock)
+395 \{
+396 \textcolor{keywordflow}{return} -1;
+397 \}
+398 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+399 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"event"}, json\_object\_new\_string(event\_name.c\_str()));
+400
+401 \textcolor{keywordtype}{int} ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, \textcolor{stringliteral}{"subscribe"}, j\_obj,
+ \hyperlink{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{\_on\_reply\_static}, \textcolor{keyword}{this});
+402 \textcolor{keywordflow}{if} (ret < 0) \{
+403 \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to call verb:%s"},\_\_FUNCTION\_\_);
+404 \}
+405 \textcolor{keywordflow}{return} ret;
+406 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_afb571c9577087b47065eb23e7fdbc903}\label{class_lib_home_screen_afb571c9577087b47065eb23e7fdbc903}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!tap\+Shortcut@{tap\+Shortcut}}
+\index{tap\+Shortcut@{tap\+Shortcut}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{tap\+Shortcut()}{tapShortcut()}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::tap\+Shortcut (\begin{DoxyParamCaption}\item[{const char $\ast$}]{application\+\_\+name }\end{DoxyParamCaption})}
+
+Sending Short\+Cut Icon tapped event
+
+When Home\+Screen shortcut area is tapped, sending a event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item application\+\_\+name \mbox{[}in\mbox{]} \+: Tapped application name (label)
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+Definition at line 220 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+221 \{
+222 \textcolor{keywordflow}{if}(!sp\_websock)
+223 \{
+224 \textcolor{keywordflow}{return} -1;
+225 \}
+226
+227 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+228 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(application\_name);
+229 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"application\_name"}, val);
+230 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"tap\_shortcut"}, j\_obj);
+231 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_aac03a45cbd453ba69ddb00c1016930a6}\label{class_lib_home_screen_aac03a45cbd453ba69ddb00c1016930a6}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!unsubscribe@{unsubscribe}}
+\index{unsubscribe@{unsubscribe}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{unsubscribe()}{unsubscribe()}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::unsubscribe (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{event\+\_\+name }\end{DoxyParamCaption})}
+
+Unregister callback function for each event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event\+\_\+name \mbox{[}in\mbox{]} \+: This argument should be specified to the event name
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+\subparagraph*{Note}
+
+This function disables to get an event to your callback function.
+
+Definition at line 421 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+422 \{
+423 \textcolor{keywordflow}{if}(!sp\_websock)
+424 \{
+425 \textcolor{keywordflow}{return} -1;
+426 \}
+427 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+428 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"event"}, json\_object\_new\_string(event\_name.c\_str()));
+429
+430 \textcolor{keywordtype}{int} ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, \textcolor{stringliteral}{"unsubscribe"}, j\_obj,
+ \hyperlink{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{\_on\_reply\_static}, \textcolor{keyword}{this});
+431 \textcolor{keywordflow}{if} (ret < 0) \{
+432 \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to call verb:%s"},\_\_FUNCTION\_\_);
+433 \}
+434 \textcolor{keywordflow}{return} ret;
+435 \}
+\end{DoxyCode}
+
+
+\subsection{Member Data Documentation}
+\mbox{\Hypertarget{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}\label{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!api\+\_\+list@{api\+\_\+list}}
+\index{api\+\_\+list@{api\+\_\+list}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{api\+\_\+list}{api\_list}}
+{\footnotesize\ttfamily const std\+::vector$<$ std\+::string $>$ Lib\+Home\+Screen\+::api\+\_\+list\hspace{0.3cm}{\ttfamily [static]}}
+
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+\{
+ std::string(\textcolor{stringliteral}{"ping"}),
+ std::string(\textcolor{stringliteral}{"tap\_shortcut"}),
+ std::string(\textcolor{stringliteral}{"on\_screen\_message"}),
+ std::string(\textcolor{stringliteral}{"on\_screen\_reply"}),
+ std::string(\textcolor{stringliteral}{"subscribe"}),
+ std::string(\textcolor{stringliteral}{"unsubscribe"})
+\}
+\end{DoxyCode}
+
+
+Definition at line 50 of file libhomescreen.\+hpp.
+
+\mbox{\Hypertarget{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}\label{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!event\+\_\+list@{event\+\_\+list}}
+\index{event\+\_\+list@{event\+\_\+list}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{event\+\_\+list}{event\_list}}
+{\footnotesize\ttfamily const std\+::vector$<$ std\+::string $>$ Lib\+Home\+Screen\+::event\+\_\+list\hspace{0.3cm}{\ttfamily [static]}}
+
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+\{
+ std::string(\textcolor{stringliteral}{"tap\_shortcut"}),
+ std::string(\textcolor{stringliteral}{"on\_screen\_message"}),
+ std::string(\textcolor{stringliteral}{"on\_screen\_reply"}),
+ std::string(\textcolor{stringliteral}{"none"})
+\}
+\end{DoxyCode}
+
+
+Definition at line 51 of file libhomescreen.\+hpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/\hyperlink{libhomescreen_8hpp}{libhomescreen.\+hpp}\item
+libhomescreen/\hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp}\end{DoxyCompactItemize}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex
new file mode 100644
index 0000000..a88a588
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex
@@ -0,0 +1,16 @@
+\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
+\subsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \hyperlink{class_lib_home_screen}{Lib\+Home\+Screen}
+\end{DoxyCompactItemize}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d76/hmi-debug_8h.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d76/hmi-debug_8h.tex
new file mode 100644
index 0000000..4f5a64c
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d76/hmi-debug_8h.tex
@@ -0,0 +1,202 @@
+\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/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d7d/structevent.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d7d/structevent.tex
new file mode 100644
index 0000000..d33a2da
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/d7d/structevent.tex
@@ -0,0 +1,44 @@
+\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/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/dac/test_8cpp.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/dac/test_8cpp.tex
new file mode 100644
index 0000000..92ef1df
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/df/dac/test_8cpp.tex
@@ -0,0 +1,275 @@
+\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.
+
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_0f70dc74e67ded1ed6ea12b5a24cac83.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_0f70dc74e67ded1ed6ea12b5a24cac83.tex
new file mode 100644
index 0000000..ddf11f0
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_0f70dc74e67ded1ed6ea12b5a24cac83.tex
@@ -0,0 +1,7 @@
+\hypertarget{dir_0f70dc74e67ded1ed6ea12b5a24cac83}{}\section{include/libhomescreen Directory Reference}
+\label{dir_0f70dc74e67ded1ed6ea12b5a24cac83}\index{include/libhomescreen Directory Reference@{include/libhomescreen Directory Reference}}
+\subsection*{Files}
+\begin{DoxyCompactItemize}
+\item
+file \hyperlink{libhomescreen_8hpp}{libhomescreen.\+hpp}
+\end{DoxyCompactItemize}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex
new file mode 100644
index 0000000..ae40678
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex
@@ -0,0 +1,9 @@
+\hypertarget{dir_65f76d62445e9e84c0450b12bf77c3bc}{}\section{libhomescreen Directory Reference}
+\label{dir_65f76d62445e9e84c0450b12bf77c3bc}\index{libhomescreen Directory Reference@{libhomescreen Directory Reference}}
+\subsection*{Files}
+\begin{DoxyCompactItemize}
+\item
+file \hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp}
+\item
+file \hyperlink{test_8cpp}{test.\+cpp}
+\end{DoxyCompactItemize}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
new file mode 100644
index 0000000..4a60c25
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
@@ -0,0 +1,11 @@
+\hypertarget{dir_68267d1309a1af8e8297ef4c3efbcdba}{}\section{src Directory Reference}
+\label{dir_68267d1309a1af8e8297ef4c3efbcdba}\index{src Directory Reference@{src Directory Reference}}
+\subsection*{Files}
+\begin{DoxyCompactItemize}
+\item
+file \hyperlink{homescreen_8c}{homescreen.\+c}
+\item
+file \hyperlink{hs-helper_8c}{hs-\/helper.\+c}
+\item
+file \hyperlink{hs-helper_8h}{hs-\/helper.\+h}
+\end{DoxyCompactItemize}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_a01af9eb3c502936dfd53c3f8e45721d.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_a01af9eb3c502936dfd53c3f8e45721d.tex
new file mode 100644
index 0000000..d46199f
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_a01af9eb3c502936dfd53c3f8e45721d.tex
@@ -0,0 +1,11 @@
+\hypertarget{dir_a01af9eb3c502936dfd53c3f8e45721d}{}\section{homescreen\+\_\+service Directory Reference}
+\label{dir_a01af9eb3c502936dfd53c3f8e45721d}\index{homescreen\+\_\+service Directory Reference@{homescreen\+\_\+service Directory Reference}}
+\subsection*{Files}
+\begin{DoxyCompactItemize}
+\item
+file \hyperlink{homescreen_8c}{homescreen.\+c}
+\item
+file \hyperlink{hs-helper_8c}{hs-\/helper.\+c}
+\item
+file \hyperlink{hs-helper_8h}{hs-\/helper.\+h}
+\end{DoxyCompactItemize}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex
new file mode 100644
index 0000000..c00f852
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex
@@ -0,0 +1,9 @@
+\hypertarget{dir_d44c64559bbebec7f509842c48db8b23}{}\section{include Directory Reference}
+\label{dir_d44c64559bbebec7f509842c48db8b23}\index{include Directory Reference@{include Directory Reference}}
+\subsection*{Files}
+\begin{DoxyCompactItemize}
+\item
+file \hyperlink{hmi-debug_8h}{hmi-\/debug.\+h}
+\item
+file \hyperlink{libhomescreen_8hpp}{libhomescreen.\+hpp}
+\end{DoxyCompactItemize}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/doxygen.sty b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/doxygen.sty
new file mode 100644
index 0000000..e457acc
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/doxygen.sty
@@ -0,0 +1,503 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+
+% Packages used by this style file
+\RequirePackage{alltt}
+\RequirePackage{array}
+\RequirePackage{calc}
+\RequirePackage{float}
+\RequirePackage{ifthen}
+\RequirePackage{verbatim}
+\RequirePackage[table]{xcolor}
+\RequirePackage{longtable}
+\RequirePackage{tabu}
+\RequirePackage{tabularx}
+\RequirePackage{multirow}
+
+%---------- Internal commands used in this style file ----------------
+
+\newcommand{\ensurespace}[1]{%
+ \begingroup%
+ \setlength{\dimen@}{#1}%
+ \vskip\z@\@plus\dimen@%
+ \penalty -100\vskip\z@\@plus -\dimen@%
+ \vskip\dimen@%
+ \penalty 9999%
+ \vskip -\dimen@%
+ \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
+ \endgroup%
+}
+
+\newcommand{\DoxyLabelFont}{}
+\newcommand{\entrylabel}[1]{%
+ {%
+ \parbox[b]{\labelwidth-4pt}{%
+ \makebox[0pt][l]{\DoxyLabelFont#1}%
+ \vspace{1.5\baselineskip}%
+ }%
+ }%
+}
+
+\newenvironment{DoxyDesc}[1]{%
+ \ensurespace{4\baselineskip}%
+ \begin{list}{}{%
+ \settowidth{\labelwidth}{20pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \renewcommand{\makelabel}{\entrylabel}%
+ }%
+ \item[#1]%
+}{%
+ \end{list}%
+}
+
+\newsavebox{\xrefbox}
+\newlength{\xreflength}
+\newcommand{\xreflabel}[1]{%
+ \sbox{\xrefbox}{#1}%
+ \setlength{\xreflength}{\wd\xrefbox}%
+ \ifthenelse{\xreflength>\labelwidth}{%
+ \begin{minipage}{\textwidth}%
+ \setlength{\parindent}{0pt}%
+ \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
+ \end{minipage}%
+ }{%
+ \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
+ }%
+}
+
+%---------- Commands used by doxygen LaTeX output generator ----------
+
+% Used by <pre> ... </pre>
+\newenvironment{DoxyPre}{%
+ \small%
+ \begin{alltt}%
+}{%
+ \end{alltt}%
+ \normalsize%
+}
+
+% Used by @code ... @endcode
+\newenvironment{DoxyCode}{%
+ \par%
+ \scriptsize%
+ \begin{alltt}%
+}{%
+ \end{alltt}%
+ \normalsize%
+}
+
+% Used by @example, @include, @includelineno and @dontinclude
+\newenvironment{DoxyCodeInclude}{%
+ \DoxyCode%
+}{%
+ \endDoxyCode%
+}
+
+% Used by @verbatim ... @endverbatim
+\newenvironment{DoxyVerb}{%
+ \footnotesize%
+ \verbatim%
+}{%
+ \endverbatim%
+ \normalsize%
+}
+
+% Used by @verbinclude
+\newenvironment{DoxyVerbInclude}{%
+ \DoxyVerb%
+}{%
+ \endDoxyVerb%
+}
+
+% Used by numbered lists (using '-#' or <ol> ... </ol>)
+\newenvironment{DoxyEnumerate}{%
+ \enumerate%
+}{%
+ \endenumerate%
+}
+
+% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
+\newenvironment{DoxyItemize}{%
+ \itemize%
+}{%
+ \enditemize%
+}
+
+% Used by description lists (using <dl> ... </dl>)
+\newenvironment{DoxyDescription}{%
+ \description%
+}{%
+ \enddescription%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if caption is specified)
+\newenvironment{DoxyImage}{%
+ \begin{figure}[H]%
+ \begin{center}%
+}{%
+ \end{center}%
+ \end{figure}%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if no caption is specified)
+\newenvironment{DoxyImageNoCaption}{%
+ \begin{center}%
+}{%
+ \end{center}%
+}
+
+% Used by @attention
+\newenvironment{DoxyAttention}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @author and @authors
+\newenvironment{DoxyAuthor}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @date
+\newenvironment{DoxyDate}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @invariant
+\newenvironment{DoxyInvariant}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @note
+\newenvironment{DoxyNote}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @post
+\newenvironment{DoxyPostcond}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @pre
+\newenvironment{DoxyPrecond}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @copyright
+\newenvironment{DoxyCopyright}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @remark
+\newenvironment{DoxyRemark}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @return and @returns
+\newenvironment{DoxyReturn}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @since
+\newenvironment{DoxySince}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @see
+\newenvironment{DoxySeeAlso}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @version
+\newenvironment{DoxyVersion}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @warning
+\newenvironment{DoxyWarning}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @internal
+\newenvironment{DoxyInternal}[1]{%
+ \paragraph*{#1}%
+}{%
+}
+
+% Used by @par and @paragraph
+\newenvironment{DoxyParagraph}[1]{%
+ \begin{list}{}{%
+ \settowidth{\labelwidth}{40pt}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{-4pt}%
+ \renewcommand{\makelabel}{\entrylabel}%
+ }%
+ \item[#1]%
+}{%
+ \end{list}%
+}
+
+% Used by parameter lists
+\newenvironment{DoxyParams}[2][]{%
+ \tabulinesep=1mm%
+ \par%
+ \ifthenelse{\equal{#1}{}}%
+ {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
+ {\ifthenelse{\equal{#1}{1}}%
+ {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
+ {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
+ }
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu}%
+ \vspace{6pt}%
+}
+
+% Used for fields of simple structs
+\newenvironment{DoxyFields}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
+ \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu}%
+ \vspace{6pt}%
+}
+
+% Used for fields simple class style enums
+\newenvironment{DoxyEnumFields}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu}%
+ \vspace{6pt}%
+}
+
+% Used for parameters within a detailed function description
+\newenvironment{DoxyParamCaption}{%
+ \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
+}{%
+}
+
+% Used by return value lists
+\newenvironment{DoxyRetVals}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu}%
+ \vspace{6pt}%
+}
+
+% Used by exception lists
+\newenvironment{DoxyExceptions}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu}%
+ \vspace{6pt}%
+}
+
+% Used by template parameter lists
+\newenvironment{DoxyTemplParams}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu}%
+ \vspace{6pt}%
+}
+
+% Used for member lists
+\newenvironment{DoxyCompactItemize}{%
+ \begin{itemize}%
+ \setlength{\itemsep}{-3pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\topsep}{0pt}%
+ \setlength{\partopsep}{0pt}%
+}{%
+ \end{itemize}%
+}
+
+% Used for member descriptions
+\newenvironment{DoxyCompactList}{%
+ \begin{list}{}{%
+ \setlength{\leftmargin}{0.5cm}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\topsep}{0pt}%
+ \renewcommand{\makelabel}{\hfill}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used for reference lists (@bug, @deprecated, @todo, etc.)
+\newenvironment{DoxyRefList}{%
+ \begin{list}{}{%
+ \setlength{\labelwidth}{10pt}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \renewcommand{\makelabel}{\xreflabel}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used by @bug, @deprecated, @todo, etc.
+\newenvironment{DoxyRefDesc}[1]{%
+ \begin{list}{}{%
+ \renewcommand\makelabel[1]{\textbf{##1}}%
+ \settowidth\labelwidth{\makelabel{#1}}%
+ \setlength\leftmargin{\labelwidth+\labelsep}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used by parameter lists and simple sections
+\newenvironment{Desc}
+{\begin{list}{}{%
+ \settowidth{\labelwidth}{20pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \renewcommand{\makelabel}{\entrylabel}%
+ }
+}{%
+ \end{list}%
+}
+
+% Used by tables
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
+\newenvironment{TabularC}[1]%
+{\tabulinesep=1mm
+\begin{longtabu} spread 0pt [c]{*#1{|X[-1]}|}}%
+{\end{longtabu}\par}%
+
+\newenvironment{TabularNC}[1]%
+{\begin{tabu} spread 0pt [l]{*#1{|X[-1]}|}}%
+{\end{tabu}\par}%
+
+% Used for member group headers
+\newenvironment{Indent}{%
+ \begin{list}{}{%
+ \setlength{\leftmargin}{0.5cm}%
+ }%
+ \item[]\ignorespaces%
+}{%
+ \unskip%
+ \end{list}%
+}
+
+% Used when hyperlinks are turned off
+\newcommand{\doxyref}[3]{%
+ \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
+}
+
+% Used to link to a table when hyperlinks are turned on
+\newcommand{\doxytablelink}[2]{%
+ \ref{#1}%
+}
+
+% Used to link to a table when hyperlinks are turned off
+\newcommand{\doxytableref}[3]{%
+ \ref{#3}%
+}
+
+% Used by @addindex
+\newcommand{\lcurly}{\{}
+\newcommand{\rcurly}{\}}
+
+% Colors used for syntax highlighting
+\definecolor{comment}{rgb}{0.5,0.0,0.0}
+\definecolor{keyword}{rgb}{0.0,0.5,0.0}
+\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
+\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
+\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
+\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
+\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
+\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
+\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
+\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
+\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
+
+% Color used for table heading
+\newcommand{\tableheadbgcolor}{lightgray}%
+
+% Version of hypertarget with correct landing location
+\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
+
+% Define caption that is also suitable in a table
+\makeatletter
+\def\doxyfigcaption{%
+\refstepcounter{figure}%
+\@dblarg{\@caption{figure}}}
+\makeatother
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/files.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/files.tex
new file mode 100644
index 0000000..d348dbe
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/files.tex
@@ -0,0 +1,10 @@
+\section{File List}
+Here is a list of all files with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{include/\hyperlink{hmi-debug_8h}{hmi-\/debug.\+h} }{\pageref{hmi-debug_8h}}{}
+\item\contentsline{section}{include/\hyperlink{libhomescreen_8hpp}{libhomescreen.\+hpp} }{\pageref{libhomescreen_8hpp}}{}
+\item\contentsline{section}{libhomescreen/\hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp} }{\pageref{libhomescreen_8cpp}}{}
+\item\contentsline{section}{libhomescreen/\hyperlink{test_8cpp}{test.\+cpp} }{\pageref{test_8cpp}}{}
+\item\contentsline{section}{src/\hyperlink{homescreen_8c}{homescreen.\+c} }{\pageref{homescreen_8c}}{}
+\item\contentsline{section}{src/\hyperlink{hs-helper_8c}{hs-\/helper.\+c} }{\pageref{hs-helper_8c}}{}
+\item\contentsline{section}{src/\hyperlink{hs-helper_8h}{hs-\/helper.\+h} }{\pageref{hs-helper_8h}}{}
+\end{DoxyCompactList}
diff --git a/demo#3/common/agl-service-homescreen/doc/api-ref/latex/refman.tex b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/refman.tex
new file mode 100644
index 0000000..1559bf7
--- /dev/null
+++ b/demo#3/common/agl-service-homescreen/doc/api-ref/latex/refman.tex
@@ -0,0 +1,166 @@
+\documentclass[twoside]{book}
+
+% Packages required by doxygen
+\usepackage{fixltx2e}
+\usepackage{calc}
+\usepackage{doxygen}
+\usepackage[export]{adjustbox} % also loads graphicx
+\usepackage{graphicx}
+\usepackage[utf8]{inputenc}
+\usepackage{makeidx}
+\usepackage{multicol}
+\usepackage{multirow}
+\PassOptionsToPackage{warn}{textcomp}
+\usepackage{textcomp}
+\usepackage[nointegrals]{wasysym}
+\usepackage[table]{xcolor}
+
+% Font selection
+\usepackage[T1]{fontenc}
+\usepackage[scaled=.90]{helvet}
+\usepackage{courier}
+\usepackage{amssymb}
+\usepackage{sectsty}
+\renewcommand{\familydefault}{\sfdefault}
+\allsectionsfont{%
+ \fontseries{bc}\selectfont%
+ \color{darkgray}%
+}
+\renewcommand{\DoxyLabelFont}{%
+ \fontseries{bc}\selectfont%
+ \color{darkgray}%
+}
+\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
+
+% Page & text layout
+\usepackage{geometry}
+\geometry{%
+ a4paper,%
+ top=2.5cm,%
+ bottom=2.5cm,%
+ left=2.5cm,%
+ right=2.5cm%
+}
+\tolerance=750
+\hfuzz=15pt
+\hbadness=750
+\setlength{\emergencystretch}{15pt}
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{3ex plus 2ex minus 2ex}
+\makeatletter
+\renewcommand{\paragraph}{%
+ \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
+ \normalfont\normalsize\bfseries\SS@parafont%
+ }%
+}
+\renewcommand{\subparagraph}{%
+ \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
+ \normalfont\normalsize\bfseries\SS@subparafont%
+ }%
+}
+\makeatother
+
+% Headers & footers
+\usepackage{fancyhdr}
+\pagestyle{fancyplain}
+\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
+\fancyhead[CE]{\fancyplain{}{}}
+\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
+\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
+\fancyhead[CO]{\fancyplain{}{}}
+\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
+\fancyfoot[LE]{\fancyplain{}{}}
+\fancyfoot[CE]{\fancyplain{}{}}
+\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
+\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
+\fancyfoot[CO]{\fancyplain{}{}}
+\fancyfoot[RO]{\fancyplain{}{}}
+\renewcommand{\footrulewidth}{0.4pt}
+\renewcommand{\chaptermark}[1]{%
+ \markboth{#1}{}%
+}
+\renewcommand{\sectionmark}[1]{%
+ \markright{\thesection\ #1}%
+}
+
+% Indices & bibliography
+\usepackage{natbib}
+\usepackage[titles]{tocloft}
+\setcounter{tocdepth}{3}
+\setcounter{secnumdepth}{5}
+\makeindex
+
+% Hyperlinks (required, but should be loaded last)
+\usepackage{ifpdf}
+\ifpdf
+ \usepackage[pdftex,pagebackref=true]{hyperref}
+\else
+ \usepackage[ps2pdf,pagebackref=true]{hyperref}
+\fi
+\hypersetup{%
+ colorlinks=true,%
+ linkcolor=blue,%
+ citecolor=blue,%
+ unicode%
+}
+
+% Custom commands
+\newcommand{\clearemptydoublepage}{%
+ \newpage{\pagestyle{empty}\cleardoublepage}%
+}
+
+\usepackage{caption}
+\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
+
+%===== C O N T E N T S =====
+
+\begin{document}
+
+% Titlepage & ToC
+\hypersetup{pageanchor=false,
+ bookmarksnumbered=true,
+ pdfencoding=unicode
+ }
+\pagenumbering{alph}
+\begin{titlepage}
+\vspace*{7cm}
+\begin{center}%
+{\Large Home\+Screen\+Binding }\\
+\vspace*{1cm}
+{\large Generated by Doxygen 1.8.13}\\
+\end{center}
+\end{titlepage}
+\clearemptydoublepage
+\pagenumbering{roman}
+\tableofcontents
+\clearemptydoublepage
+\pagenumbering{arabic}
+\hypersetup{pageanchor=true}
+
+%--- Begin generated contents ---
+\chapter{Class Index}
+\input{annotated}
+\chapter{File Index}
+\input{files}
+\chapter{Class Documentation}
+\input{df/d7d/structevent}
+\input{de/dd0/class_lib_home_screen}
+\chapter{File Documentation}
+\input{df/d76/hmi-debug_8h}
+\input{df/d43/libhomescreen_8hpp}
+\input{d0/d8a/libhomescreen_8cpp}
+\input{df/dac/test_8cpp}
+\input{d0/d1e/homescreen_8c}
+\input{dd/d1d/hs-helper_8c}
+\input{d3/d3d/hs-helper_8h}
+%--- End generated contents ---
+
+% Index
+\backmatter
+\newpage
+\phantomsection
+\clearemptydoublepage
+\addcontentsline{toc}{chapter}{Index}
+\printindex
+
+\end{document}