aboutsummaryrefslogtreecommitdiffstats
path: root/doc/api-ref/latex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/api-ref/latex')
-rw-r--r--doc/api-ref/latex/Makefile21
-rw-r--r--doc/api-ref/latex/annotated.tex9
-rw-r--r--doc/api-ref/latex/d0/d1e/homescreen_8c.tex599
-rw-r--r--doc/api-ref/latex/d0/d53/struct_h_s___client_ctxt.tex58
-rw-r--r--doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex162
-rw-r--r--doc/api-ref/latex/d2/d66/include_2hmi-debug_8h.tex242
-rw-r--r--doc/api-ref/latex/d2/d8e/class_h_s___client_manager.tex657
-rw-r--r--doc/api-ref/latex/d3/d3d/hs-helper_8h.tex578
-rw-r--r--doc/api-ref/latex/d5/d20/class_h_s___client.tex579
-rw-r--r--doc/api-ref/latex/d6/dda/homescreen_8cpp.tex672
-rw-r--r--doc/api-ref/latex/d6/de3/structwindow.tex170
-rw-r--r--doc/api-ref/latex/d6/df5/structdisplay.tex116
-rw-r--r--doc/api-ref/latex/d6/dff/src_2hmi-debug_8h.tex242
-rw-r--r--doc/api-ref/latex/d8/d55/hs-client_8cpp.tex65
-rw-r--r--doc/api-ref/latex/da/dd3/hs-client_8h.tex10
-rw-r--r--doc/api-ref/latex/dd/d1d/hs-helper_8c.tex238
-rw-r--r--doc/api-ref/latex/dd/d30/hs-clientmanager_8cpp.tex45
-rw-r--r--doc/api-ref/latex/dd/ddc/structgeometry.tex38
-rw-r--r--doc/api-ref/latex/de/da4/simple-egl_8cpp.tex1068
-rw-r--r--doc/api-ref/latex/de/dca/hs-clientmanager_8h.tex26
-rw-r--r--doc/api-ref/latex/de/dd0/class_lib_home_screen.tex1045
-rw-r--r--doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex17
-rw-r--r--doc/api-ref/latex/df/d66/hs-helper_8cpp.tex374
-rw-r--r--doc/api-ref/latex/df/d76/hmi-debug_8h.tex202
-rw-r--r--doc/api-ref/latex/df/d7d/structevent.tex44
-rw-r--r--doc/api-ref/latex/df/dac/test_8cpp.tex275
-rw-r--r--doc/api-ref/latex/dir_0f70dc74e67ded1ed6ea12b5a24cac83.tex7
-rw-r--r--doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex2
-rw-r--r--doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex14
-rw-r--r--doc/api-ref/latex/dir_a01af9eb3c502936dfd53c3f8e45721d.tex11
-rw-r--r--doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex2
-rw-r--r--doc/api-ref/latex/doxygen.sty28
-rw-r--r--doc/api-ref/latex/files.tex19
-rw-r--r--doc/api-ref/latex/refman.tex25
34 files changed, 5604 insertions, 2056 deletions
diff --git a/doc/api-ref/latex/Makefile b/doc/api-ref/latex/Makefile
new file mode 100644
index 0000000..8cc3866
--- /dev/null
+++ b/doc/api-ref/latex/Makefile
@@ -0,0 +1,21 @@
+all: refman.pdf
+
+pdf: refman.pdf
+
+refman.pdf: clean refman.tex
+ pdflatex refman
+ makeindex refman.idx
+ pdflatex refman
+ latex_count=8 ; \
+ while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+ do \
+ echo "Rerunning latex...." ;\
+ pdflatex refman ;\
+ latex_count=`expr $$latex_count - 1` ;\
+ done
+ makeindex refman.idx
+ pdflatex refman
+
+
+clean:
+ rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
diff --git a/doc/api-ref/latex/annotated.tex b/doc/api-ref/latex/annotated.tex
index a2fba4c..6ea872e 100644
--- a/doc/api-ref/latex/annotated.tex
+++ b/doc/api-ref/latex/annotated.tex
@@ -1,5 +1,10 @@
\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}}{}
+\item\contentsline{section}{\hyperlink{structdisplay}{display} }{\pageref{d6/df5/structdisplay}}{}
+\item\contentsline{section}{\hyperlink{structgeometry}{geometry} }{\pageref{dd/ddc/structgeometry}}{}
+\item\contentsline{section}{\hyperlink{class_h_s___client}{H\+S\+\_\+\+Client} }{\pageref{d5/d20/class_h_s___client}}{}
+\item\contentsline{section}{\hyperlink{struct_h_s___client_ctxt}{H\+S\+\_\+\+Client\+Ctxt} }{\pageref{d0/d53/struct_h_s___client_ctxt}}{}
+\item\contentsline{section}{\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} }{\pageref{d2/d8e/class_h_s___client_manager}}{}
+\item\contentsline{section}{\hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} }{\pageref{de/dd0/class_lib_home_screen}}{}
+\item\contentsline{section}{\hyperlink{structwindow}{window} }{\pageref{d6/de3/structwindow}}{}
\end{DoxyCompactList}
diff --git a/doc/api-ref/latex/d0/d1e/homescreen_8c.tex b/doc/api-ref/latex/d0/d1e/homescreen_8c.tex
deleted file mode 100644
index 150bacb..0000000
--- a/doc/api-ref/latex/d0/d1e/homescreen_8c.tex
+++ /dev/null
@@ -1,599 +0,0 @@
-\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/doc/api-ref/latex/d0/d53/struct_h_s___client_ctxt.tex b/doc/api-ref/latex/d0/d53/struct_h_s___client_ctxt.tex
new file mode 100644
index 0000000..7da15c3
--- /dev/null
+++ b/doc/api-ref/latex/d0/d53/struct_h_s___client_ctxt.tex
@@ -0,0 +1,58 @@
+\hypertarget{struct_h_s___client_ctxt}{}\section{H\+S\+\_\+\+Client\+Ctxt Struct Reference}
+\label{struct_h_s___client_ctxt}\index{H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}}
+
+
+{\ttfamily \#include $<$hs-\/clientmanager.\+h$>$}
+
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{struct_h_s___client_ctxt_a9ff4dcc7b8c6061940a0ee79b5d15459}{H\+S\+\_\+\+Client\+Ctxt} (const char $\ast$appid)
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+std\+::string \hyperlink{struct_h_s___client_ctxt_a04929d7d5f583a821d3d594815f77d1c}{id}
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 27 of file hs-\/clientmanager.\+h.
+
+
+
+\subsection{Constructor \& Destructor Documentation}
+\index{H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}!H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}}
+\index{H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}!H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}}
+\subsubsection[{\texorpdfstring{H\+S\+\_\+\+Client\+Ctxt(const char $\ast$appid)}{HS_ClientCtxt(const char *appid)}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+Ctxt\+::\+H\+S\+\_\+\+Client\+Ctxt (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{appid}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [inline]}}\hypertarget{struct_h_s___client_ctxt_a9ff4dcc7b8c6061940a0ee79b5d15459}{}\label{struct_h_s___client_ctxt_a9ff4dcc7b8c6061940a0ee79b5d15459}
+
+
+Definition at line 30 of file hs-\/clientmanager.\+h.
+
+
+\begin{DoxyCode}
+31 \{
+32 \textcolor{keywordtype}{id} = appid;
+33 \}
+\end{DoxyCode}
+
+
+\subsection{Member Data Documentation}
+\index{H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}!id@{id}}
+\index{id@{id}!H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}}
+\subsubsection[{\texorpdfstring{id}{id}}]{\setlength{\rightskip}{0pt plus 5cm}std\+::string H\+S\+\_\+\+Client\+Ctxt\+::id}\hypertarget{struct_h_s___client_ctxt_a04929d7d5f583a821d3d594815f77d1c}{}\label{struct_h_s___client_ctxt_a04929d7d5f583a821d3d594815f77d1c}
+
+
+Definition at line 29 of file hs-\/clientmanager.\+h.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+src/\hyperlink{hs-clientmanager_8h}{hs-\/clientmanager.\+h}\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex b/doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex
index 3a824b9..794e5ee 100644
--- a/doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex
+++ b/doc/api-ref/latex/d0/d8a/libhomescreen_8cpp.tex
@@ -1,19 +1,18 @@
\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
+{\ttfamily \#include $<$stdarg.\+h$>$}\\*
+{\ttfamily \#include $<$sys/socket.\+h$>$}\\*
+{\ttfamily \#include $<$iostream$>$}\\*
+{\ttfamily \#include $<$algorithm$>$}\\*
+{\ttfamily \#include $<$errno.\+h$>$}\\*
+{\ttfamily \#include $<$cassert$>$}\\*
+{\ttfamily \#include $<$cctype$>$}\\*
+{\ttfamily \#include $<$cerrno$>$}\\*
+{\ttfamily \#include $<$cstdio$>$}\\*
+{\ttfamily \#include $<$cstdlib$>$}\\*
+{\ttfamily \#include $<$cstring$>$}\\*
+{\ttfamily \#include $<$libhomescreen.\+hpp$>$}\\*
+{\ttfamily \#include \char`\"{}hmi-\/debug.\+h\char`\"{}}\\*
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
@@ -23,134 +22,131 @@ static void \hyperlink{libhomescreen_8cpp_a73c05b96c151e5e46c28585ccb143c1c}{\+\
\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)
+static void \hyperlink{libhomescreen_8cpp_a3df86185aa9453726556da201d95a6f9}{\+\_\+on\+\_\+event\+\_\+static} (void $\ast$closure, const char $\ast$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`\"{}
+\item
+static const char \hyperlink{libhomescreen_8cpp_a5a89bcb5a83f6b2e5c664a041bd8fd00}{Application\+Id} \mbox{[}$\,$\mbox{]} = \char`\"{}application\+\_\+id\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]}}
+\subsubsection[{\texorpdfstring{\+\_\+on\+\_\+call\+\_\+static(void $\ast$closure, const char $\ast$api, const char $\ast$verb, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)}{_on_call_static(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg)}}]{\setlength{\rightskip}{0pt plus 5cm}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]}}\hypertarget{libhomescreen_8cpp_a782a05fde0f1c17e0c4c8f972a3f53c8}{}\label{libhomescreen_8cpp_a782a05fde0f1c17e0c4c8f972a3f53c8}
-
-Definition at line 64 of file libhomescreen.\+cpp.
+Definition at line 74 of file libhomescreen.\+cpp.
\begin{DoxyCode}
-65 \{
-66 \textcolor{comment}{/* LibHomeScreen is not called from other process */}
-67 \}
+75 \{
+76 \textcolor{comment}{/* LibHomeScreen is not called from other process */}
+77 \}
\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]}}
-
+\subsubsection[{\texorpdfstring{\+\_\+on\+\_\+event\+\_\+static(void $\ast$closure, const char $\ast$event, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)}{_on_event_static(void *closure, const char *event, struct afb_wsj1_msg *msg)}}]{\setlength{\rightskip}{0pt plus 5cm}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]}}\hypertarget{libhomescreen_8cpp_a3df86185aa9453726556da201d95a6f9}{}\label{libhomescreen_8cpp_a3df86185aa9453726556da201d95a6f9}
-Definition at line 69 of file libhomescreen.\+cpp.
+Definition at line 79 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 \}
+80 \{
+81 \textcolor{keyword}{static\_cast<}\hyperlink{class_lib_home_screen}{LibHomeScreen}*\textcolor{keyword}{>}(closure)->on\_event(NULL,event,msg);
+82 \}
\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]}}
-
+\subsubsection[{\texorpdfstring{\+\_\+on\+\_\+hangup\+\_\+static(void $\ast$closure, struct afb\+\_\+wsj1 $\ast$wsj)}{_on_hangup_static(void *closure, struct afb_wsj1 *wsj)}}]{\setlength{\rightskip}{0pt plus 5cm}static void \+\_\+on\+\_\+hangup\+\_\+static (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{closure, }
+\item[{struct afb\+\_\+wsj1 $\ast$}]{wsj}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{libhomescreen_8cpp_a73c05b96c151e5e46c28585ccb143c1c}{}\label{libhomescreen_8cpp_a73c05b96c151e5e46c28585ccb143c1c}
websocket
-Definition at line 59 of file libhomescreen.\+cpp.
+Definition at line 69 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 \}
+70 \{
+71 \textcolor{keyword}{static\_cast<}\hyperlink{class_lib_home_screen}{LibHomeScreen}*\textcolor{keyword}{>}(closure)->on\_hangup(NULL,wsj);
+72 \}
\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]}}
+\subsubsection[{\texorpdfstring{\+\_\+on\+\_\+reply\+\_\+static(void $\ast$closure, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)}{_on_reply_static(void *closure, struct afb_wsj1_msg *msg)}}]{\setlength{\rightskip}{0pt plus 5cm}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]}}\hypertarget{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{}\label{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}
-
-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.
+Definition at line 84 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 \}
+85 \{
+86 \textcolor{keyword}{static\_cast<}\hyperlink{class_lib_home_screen}{LibHomeScreen}*\textcolor{keyword}{>}(closure)->on\_reply(NULL,msg);
+87 \}
\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]}}
+\subsubsection[{\texorpdfstring{has\+\_\+verb(const string \&verb)}{has_verb(const string &verb)}}]{\setlength{\rightskip}{0pt plus 5cm}static bool has\+\_\+verb (
+\begin{DoxyParamCaption}
+\item[{const string \&}]{verb}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{libhomescreen_8cpp_a7a2176c3d71fec0f09dcb2aa0866b17e}{}\label{libhomescreen_8cpp_a7a2176c3d71fec0f09dcb2aa0866b17e}
-
-Definition at line 518 of file libhomescreen.\+cpp.
+Definition at line 705 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(),
+706 \{
+707 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"verb is %s"}, verb.c\_str());
+708 \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 \}
+709 \textcolor{keywordflow}{return} \textcolor{keyword}{true};
+710 \textcolor{keywordflow}{else}
+711 \textcolor{keywordflow}{return} \textcolor{keyword}{false};
+712 \}
\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]}}
+\subsubsection[{\texorpdfstring{A\+PI}{API}}]{\setlength{\rightskip}{0pt plus 5cm}const char A\+PI\mbox{[}$\,$\mbox{]} = \char`\"{}homescreen\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{}\label{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}
+
+
+Definition at line 35 of file libhomescreen.\+cpp.
+\index{libhomescreen.\+cpp@{libhomescreen.\+cpp}!Application\+Id@{Application\+Id}}
+\index{Application\+Id@{Application\+Id}!libhomescreen.\+cpp@{libhomescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{Application\+Id}{ApplicationId}}]{\setlength{\rightskip}{0pt plus 5cm}const char Application\+Id\mbox{[}$\,$\mbox{]} = \char`\"{}application\+\_\+id\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{libhomescreen_8cpp_a5a89bcb5a83f6b2e5c664a041bd8fd00}{}\label{libhomescreen_8cpp_a5a89bcb5a83f6b2e5c664a041bd8fd00}
Definition at line 36 of file libhomescreen.\+cpp.
diff --git a/doc/api-ref/latex/d2/d66/include_2hmi-debug_8h.tex b/doc/api-ref/latex/d2/d66/include_2hmi-debug_8h.tex
new file mode 100644
index 0000000..bfd9980
--- /dev/null
+++ b/doc/api-ref/latex/d2/d66/include_2hmi-debug_8h.tex
@@ -0,0 +1,242 @@
+\hypertarget{include_2hmi-debug_8h}{}\section{include/hmi-\/debug.h File Reference}
+\label{include_2hmi-debug_8h}\index{include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+{\ttfamily \#include $<$time.\+h$>$}\\*
+{\ttfamily \#include $<$stdio.\+h$>$}\\*
+{\ttfamily \#include $<$stdarg.\+h$>$}\\*
+{\ttfamily \#include $<$string.\+h$>$}\\*
+{\ttfamily \#include $<$stdlib.\+h$>$}\\*
+\subsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\#define \hyperlink{include_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}~(strrchr(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \textquotesingle{}/\textquotesingle{}) ? strrchr(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \textquotesingle{}/\textquotesingle{}) + 1 \+: \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+)
+\item
+\#define \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{H\+M\+I\+\_\+\+E\+R\+R\+OR}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
+\item
+\#define \hyperlink{include_2hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
+\item
+\#define \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
+\item
+\#define \hyperlink{include_2hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}{H\+M\+I\+\_\+\+I\+N\+FO}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
+\item
+\#define \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{H\+M\+I\+\_\+\+D\+E\+B\+UG}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+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{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL} \{ \\*
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE} = 0,
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR},
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG},
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE},
+\\*
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO},
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG},
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX} = L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG,
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE} = 0,
+\\*
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR},
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG},
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE},
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO},
+\\*
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG},
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX} = L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG
+ \}
+\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+static void \hyperlink{include_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG} (enum \hyperlink{include_2hmi-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{include_2hmi-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}
+\index{include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}!\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+@{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}}
+\index{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+@{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}{__FILENAME__}}]{\setlength{\rightskip}{0pt plus 5cm}\#define \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+~(strrchr(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \textquotesingle{}/\textquotesingle{}) ? strrchr(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \textquotesingle{}/\textquotesingle{}) + 1 \+: \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+)}\hypertarget{include_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{}\label{include_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}
+
+
+Definition at line 36 of file hmi-\/debug.\+h.
+
+\index{include/hmi-\/debug.\+h@{include/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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+D\+E\+B\+UG}{HMI_DEBUG}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+D\+E\+B\+UG(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{}\label{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}
+
+
+Definition at line 42 of file hmi-\/debug.\+h.
+
+\index{include/hmi-\/debug.\+h@{include/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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+E\+R\+R\+OR}{HMI_ERROR}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+E\+R\+R\+OR(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{}\label{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}
+
+
+Definition at line 38 of file hmi-\/debug.\+h.
+
+\index{include/hmi-\/debug.\+h@{include/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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+I\+N\+FO}{HMI_INFO}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+I\+N\+FO(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{include_2hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}{}\label{include_2hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}
+
+
+Definition at line 41 of file hmi-\/debug.\+h.
+
+\index{include/hmi-\/debug.\+h@{include/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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}{HMI_NOTICE}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+N\+O\+T\+I\+CE(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{}\label{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}
+
+
+Definition at line 40 of file hmi-\/debug.\+h.
+
+\index{include/hmi-\/debug.\+h@{include/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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}{HMI_WARNING}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{include_2hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}{}\label{include_2hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}
+
+
+Definition at line 39 of file hmi-\/debug.\+h.
+
+
+
+\subsection{Enumeration Type Documentation}
+\index{include/hmi-\/debug.\+h@{include/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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{L\+O\+G\+\_\+\+L\+E\+V\+EL}{LOG_LEVEL}}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf L\+O\+G\+\_\+\+L\+E\+V\+EL}}\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}
+\begin{Desc}
+\item[Enumerator]\par
+\begin{description}
+\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}
+}]\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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}
+}]\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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}
+}]\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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}
+}]\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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}
+}]\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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}
+}]\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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}
+}]\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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}
+}]\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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}\index{include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX\hypertarget{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{}\label{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}
+}]\end{description}
+\end{Desc}
+
+
+Definition at line 26 of file hmi-\/debug.\+h.
+
+
+\begin{DoxyCode}
+26 \{
+27 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{LOG\_LEVEL\_NONE} = 0,
+28 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{LOG\_LEVEL\_ERROR},
+29 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{LOG\_LEVEL\_WARNING},
+30 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{LOG\_LEVEL\_NOTICE},
+31 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{LOG\_LEVEL\_INFO},
+32 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{LOG\_LEVEL\_DEBUG},
+33 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{LOG\_LEVEL\_MAX} = LOG\_LEVEL\_DEBUG
+34 \};
+\end{DoxyCode}
+
+
+\subsection{Function Documentation}
+\index{include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}!\+\_\+\+H\+M\+I\+\_\+\+L\+OG@{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}}
+\index{\+\_\+\+H\+M\+I\+\_\+\+L\+OG@{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{\+\_\+\+H\+M\+I\+\_\+\+L\+O\+G(enum L\+O\+G\+\_\+\+L\+E\+V\+E\+L level, const char $\ast$file, const char $\ast$func, const int line, const char $\ast$prefix, const char $\ast$log,...)}{_HMI_LOG(enum LOG_LEVEL level, const char *file, const char *func, const int line, const char *prefix, const char *log,...)}}]{\setlength{\rightskip}{0pt plus 5cm}static void \+\_\+\+H\+M\+I\+\_\+\+L\+OG (
+\begin{DoxyParamCaption}
+\item[{enum {\bf 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]}}\hypertarget{include_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{}\label{include_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}
+
+
+Definition at line 46 of file hmi-\/debug.\+h.
+
+
+\begin{DoxyCode}
+47 \{
+48 \textcolor{keyword}{const} \textcolor{keywordtype}{int} log\_level = (getenv(\textcolor{stringliteral}{"USE\_HMI\_DEBUG"}) == NULL)?\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{LOG\_LEVEL\_ERROR}:atoi(getenv(\textcolor{stringliteral}{"
+ USE\_HMI\_DEBUG"}));
+49 \textcolor{keywordflow}{if}(log\_level < level)
+50 \{
+51 \textcolor{keywordflow}{return};
+52 \}
+53
+54 \textcolor{keywordtype}{char} *message;
+55 \textcolor{keyword}{struct }timespec tp;
+56 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} time;
+57
+58 clock\_gettime(CLOCK\_REALTIME, &tp);
+59 time = (tp.tv\_sec * 1000000L) + (tp.tv\_nsec / 1000);
+60
+61 va\_list args;
+62 va\_start(args, log);
+63 \textcolor{keywordflow}{if} (log == NULL || vasprintf(&message, log, args) < 0)
+64 message = NULL;
+65 fprintf(stderr, \textcolor{stringliteral}{"[%10.3f] [%s %s] [%s, %s(), Line:%d] >>> %s \(\backslash\)n"}, time / 1000.0, prefix,
+ \hyperlink{include_2hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}{ERROR\_FLAG}[level], file, func, line, message);
+66 va\_end(args);
+67 free(message);
+68 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\index{include/hmi-\/debug.\+h@{include/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}!include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG}{ERROR_FLAG}}]{\setlength{\rightskip}{0pt plus 5cm}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]}}\hypertarget{include_2hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}{}\label{include_2hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}
+
+
+Definition at line 44 of file hmi-\/debug.\+h.
+
diff --git a/doc/api-ref/latex/d2/d8e/class_h_s___client_manager.tex b/doc/api-ref/latex/d2/d8e/class_h_s___client_manager.tex
new file mode 100644
index 0000000..28e0cbc
--- /dev/null
+++ b/doc/api-ref/latex/d2/d8e/class_h_s___client_manager.tex
@@ -0,0 +1,657 @@
+\hypertarget{class_h_s___client_manager}{}\section{H\+S\+\_\+\+Client\+Manager Class Reference}
+\label{class_h_s___client_manager}\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+
+
+{\ttfamily \#include $<$hs-\/clientmanager.\+h$>$}
+
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{class_h_s___client_manager_adac35e476e559cc89bc39363525268bf}{H\+S\+\_\+\+Client\+Manager} ()
+\item
+\hyperlink{class_h_s___client_manager_a50733274a93293fef892fdd453d74cae}{$\sim$\+H\+S\+\_\+\+Client\+Manager} ()=default
+\item
+\hyperlink{class_h_s___client_manager_a0033db6b552f9de818789e76735c1ebc}{H\+S\+\_\+\+Client\+Manager} (\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} const \&)=delete
+\item
+\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} \& \hyperlink{class_h_s___client_manager_ac8e02cffc79d4530b06e1143abb18891}{operator=} (\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} const \&)=delete
+\item
+\hyperlink{class_h_s___client_manager_a715811c549cccd93cb1f903d179c8b41}{H\+S\+\_\+\+Client\+Manager} (\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} \&\&)=delete
+\item
+\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} \& \hyperlink{class_h_s___client_manager_a49e225bb8421c812ac016309d54a00fa}{operator=} (\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} \&\&)=delete
+\item
+int \hyperlink{class_h_s___client_manager_ae0b9b18adeffca7822b060ad4ea8a7a1}{init} (void)
+\item
+void \hyperlink{class_h_s___client_manager_adc23f8b3f5cc06eeab39fb24098af3e2}{remove\+Client\+Ctxt} (void $\ast$data)
+\item
+int \hyperlink{class_h_s___client_manager_a9910fc27c412530b5b9854b00bd16c07}{tap\+\_\+shortcut} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_afed8158f276d1d22c32b0d89e970d442}{show\+Window} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_a6195694d281a3b97b0345b96c0add1fd}{hide\+Window} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_a59b1c1e115b5a257a585c41f854f5fdd}{reply\+Show\+Window} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_a58ce4a013d3694265dd69f481bf88510}{on\+\_\+screen\+\_\+message} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_aa78f992287e3b8fe93422b331dc9edc5}{on\+\_\+screen\+\_\+reply} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_a1b8a4e42342c4bcdc4e7dc4934e02469}{subscribe} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_ac86314afbb90116e2f02ce071166226e}{unsubscribe} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_a857934af280081ca6ac61d9f2cac37c5}{show\+Notification} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_manager_a0645294f89c67fd3c9b0cce62a900f69}{show\+Information} (afb\+\_\+req\+\_\+t request)
+\end{DoxyCompactItemize}
+\subsection*{Static Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+static \hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} $\ast$ \hyperlink{class_h_s___client_manager_ad86c1fea7d107d52cbf0466fb7a2658b}{instance} (void)
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 37 of file hs-\/clientmanager.\+h.
+
+
+
+\subsection{Constructor \& Destructor Documentation}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{H\+S\+\_\+\+Client\+Manager()}{HS_ClientManager()}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+Manager\+::\+H\+S\+\_\+\+Client\+Manager (
+\begin{DoxyParamCaption}
+{}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_adac35e476e559cc89bc39363525268bf}{}\label{class_h_s___client_manager_adac35e476e559cc89bc39363525268bf}
+\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} construction function
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item Nothing
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 39 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+40 \{
+41 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!````~H\+S\+\_\+\+Client\+Manager@{$\sim$\+H\+S\+\_\+\+Client\+Manager}}
+\index{````~H\+S\+\_\+\+Client\+Manager@{$\sim$\+H\+S\+\_\+\+Client\+Manager}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{$\sim$\+H\+S\+\_\+\+Client\+Manager()=default}{~HS_ClientManager()=default}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+Manager\+::$\sim$\+H\+S\+\_\+\+Client\+Manager (
+\begin{DoxyParamCaption}
+{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [default]}}\hypertarget{class_h_s___client_manager_a50733274a93293fef892fdd453d74cae}{}\label{class_h_s___client_manager_a50733274a93293fef892fdd453d74cae}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{H\+S\+\_\+\+Client\+Manager(\+H\+S\+\_\+\+Client\+Manager const \&)=delete}{HS_ClientManager(HS_ClientManager const &)=delete}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+Manager\+::\+H\+S\+\_\+\+Client\+Manager (
+\begin{DoxyParamCaption}
+\item[{{\bf H\+S\+\_\+\+Client\+Manager} const \&}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [delete]}}\hypertarget{class_h_s___client_manager_a0033db6b552f9de818789e76735c1ebc}{}\label{class_h_s___client_manager_a0033db6b552f9de818789e76735c1ebc}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{H\+S\+\_\+\+Client\+Manager(\+H\+S\+\_\+\+Client\+Manager \&\&)=delete}{HS_ClientManager(HS_ClientManager &&)=delete}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+Manager\+::\+H\+S\+\_\+\+Client\+Manager (
+\begin{DoxyParamCaption}
+\item[{{\bf H\+S\+\_\+\+Client\+Manager} \&\&}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [delete]}}\hypertarget{class_h_s___client_manager_a715811c549cccd93cb1f903d179c8b41}{}\label{class_h_s___client_manager_a715811c549cccd93cb1f903d179c8b41}
+
+
+\subsection{Member Function Documentation}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!hide\+Window@{hide\+Window}}
+\index{hide\+Window@{hide\+Window}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{hide\+Window(afb\+\_\+req\+\_\+t request)}{hideWindow(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::hide\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_a6195694d281a3b97b0345b96c0add1fd}{}\label{class_h_s___client_manager_a6195694d281a3b97b0345b96c0add1fd}
+hide\+Window event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 356 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+357 \{
+358 \textcolor{keywordtype}{int} ret = 0;
+359 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id});
+360 \textcolor{keywordflow}{if} (value) \{
+361 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+362 std::lock\_guard<std::mutex> lock(this->mtx);
+363 \textcolor{keyword}{auto} ip = client\_list.find(std::string(value));
+364 \textcolor{keywordflow}{if}(ip != client\_list.end()) \{
+365 ret = ip->second->hideWindow(request);
+366 \}
+367 \}
+368 \textcolor{keywordflow}{else} \{
+369 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input application\_id"});
+370 ret = \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+371 \}
+372 \textcolor{keywordflow}{return} ret;
+373 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!init@{init}}
+\index{init@{init}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{init(void)}{init(void)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::init (
+\begin{DoxyParamCaption}
+\item[{void}]{}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_ae0b9b18adeffca7822b060ad4ea8a7a1}{}\label{class_h_s___client_manager_ae0b9b18adeffca7822b060ad4ea8a7a1}
+\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} init function
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item Nothing
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+init result
+
+Definition at line 71 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+72 \{
+73 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+74 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!instance@{instance}}
+\index{instance@{instance}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{instance(void)}{instance(void)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf H\+S\+\_\+\+Client\+Manager} $\ast$ H\+S\+\_\+\+Client\+Manager\+::instance (
+\begin{DoxyParamCaption}
+\item[{void}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{class_h_s___client_manager_ad86c1fea7d107d52cbf0466fb7a2658b}{}\label{class_h_s___client_manager_ad86c1fea7d107d52cbf0466fb7a2658b}
+get instance
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item Nothing
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+\hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} instance pointer
+
+Definition at line 53 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+54 \{
+55 \textcolor{keywordflow}{if}(me == \textcolor{keyword}{nullptr})
+56 me = \textcolor{keyword}{new} \hyperlink{class_h_s___client_manager_adac35e476e559cc89bc39363525268bf}{HS\_ClientManager}();
+57
+58 \textcolor{keywordflow}{return} me;
+59 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!on\+\_\+screen\+\_\+message@{on\+\_\+screen\+\_\+message}}
+\index{on\+\_\+screen\+\_\+message@{on\+\_\+screen\+\_\+message}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{on\+\_\+screen\+\_\+message(afb\+\_\+req\+\_\+t request)}{on_screen_message(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::on\+\_\+screen\+\_\+message (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_a58ce4a013d3694265dd69f481bf88510}{}\label{class_h_s___client_manager_a58ce4a013d3694265dd69f481bf88510}
+on\+\_\+screen\+\_\+message
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request\+: the request to bindings
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 195 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+196 \{
+197 \textcolor{keywordtype}{int} ret = 0;
+198 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8cpp_abfd6c1d6f316fa952b11553f8f275e92}{\_display\_message});
+199 \textcolor{keywordflow}{if} (value) \{
+200 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+201 std::lock\_guard<std::mutex> lock(this->mtx);
+202 \textcolor{keywordflow}{for}(\textcolor{keyword}{auto} m : client\_list) \{
+203 m.second->on\_screen\_message(request, value);
+204 \}
+205 \}
+206 \textcolor{keywordflow}{else} \{
+207 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input display\_message"});
+208 ret = \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+209 \}
+210 \textcolor{keywordflow}{return} ret;
+211 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!on\+\_\+screen\+\_\+reply@{on\+\_\+screen\+\_\+reply}}
+\index{on\+\_\+screen\+\_\+reply@{on\+\_\+screen\+\_\+reply}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{on\+\_\+screen\+\_\+reply(afb\+\_\+req\+\_\+t request)}{on_screen_reply(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::on\+\_\+screen\+\_\+reply (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_aa78f992287e3b8fe93422b331dc9edc5}{}\label{class_h_s___client_manager_aa78f992287e3b8fe93422b331dc9edc5}
+on\+\_\+screen\+\_\+reply
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request\+: the request to bindings
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 223 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+224 \{
+225 \textcolor{keywordtype}{int} ret = 0;
+226 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8cpp_a79b0f0b481161527ccb80e83da143219}{\_reply\_message});
+227 \textcolor{keywordflow}{if} (value) \{
+228 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+229 std::lock\_guard<std::mutex> lock(this->mtx);
+230 \textcolor{keywordflow}{for}(\textcolor{keyword}{auto} m : client\_list) \{
+231 m.second->on\_screen\_reply(request, value);
+232 \}
+233 \}
+234 \textcolor{keywordflow}{else} \{
+235 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input reply\_message"});
+236 ret = \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+237 \}
+238 \textcolor{keywordflow}{return} ret;
+239 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!operator=@{operator=}}
+\index{operator=@{operator=}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{operator=(\+H\+S\+\_\+\+Client\+Manager const \&)=delete}{operator=(HS_ClientManager const &)=delete}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf H\+S\+\_\+\+Client\+Manager}\& H\+S\+\_\+\+Client\+Manager\+::operator= (
+\begin{DoxyParamCaption}
+\item[{{\bf H\+S\+\_\+\+Client\+Manager} const \&}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [delete]}}\hypertarget{class_h_s___client_manager_ac8e02cffc79d4530b06e1143abb18891}{}\label{class_h_s___client_manager_ac8e02cffc79d4530b06e1143abb18891}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!operator=@{operator=}}
+\index{operator=@{operator=}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{operator=(\+H\+S\+\_\+\+Client\+Manager \&\&)=delete}{operator=(HS_ClientManager &&)=delete}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf H\+S\+\_\+\+Client\+Manager}\& H\+S\+\_\+\+Client\+Manager\+::operator= (
+\begin{DoxyParamCaption}
+\item[{{\bf H\+S\+\_\+\+Client\+Manager} \&\&}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [delete]}}\hypertarget{class_h_s___client_manager_a49e225bb8421c812ac016309d54a00fa}{}\label{class_h_s___client_manager_a49e225bb8421c812ac016309d54a00fa}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!remove\+Client\+Ctxt@{remove\+Client\+Ctxt}}
+\index{remove\+Client\+Ctxt@{remove\+Client\+Ctxt}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{remove\+Client\+Ctxt(void $\ast$data)}{removeClientCtxt(void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}void H\+S\+\_\+\+Client\+Manager\+::remove\+Client\+Ctxt (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{data}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_adc23f8b3f5cc06eeab39fb24098af3e2}{}\label{class_h_s___client_manager_adc23f8b3f5cc06eeab39fb24098af3e2}
+remove Client from list
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item data\+: \hyperlink{struct_h_s___client_ctxt}{H\+S\+\_\+\+Client\+Ctxt} pointer
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 140 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+141 \{
+142 \hyperlink{struct_h_s___client_ctxt}{HS\_ClientCtxt} *ctxt = (\hyperlink{struct_h_s___client_ctxt}{HS\_ClientCtxt} *)data;
+143 \textcolor{keywordflow}{if}(ctxt == \textcolor{keyword}{nullptr})
+144 \{
+145 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"homescreen-service"}, \textcolor{stringliteral}{"data is nullptr"});
+146 \textcolor{keywordflow}{return};
+147 \}
+148
+149 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"}, \textcolor{stringliteral}{"remove app %s"}, ctxt->\hyperlink{struct_h_s___client_ctxt_a04929d7d5f583a821d3d594815f77d1c}{id}.c\_str());
+150 std::lock\_guard<std::mutex> lock(this->mtx);
+151 removeClient(ctxt->\hyperlink{struct_h_s___client_ctxt_a04929d7d5f583a821d3d594815f77d1c}{id});
+152 \textcolor{keyword}{delete} appid2ctxt[ctxt->\hyperlink{struct_h_s___client_ctxt_a04929d7d5f583a821d3d594815f77d1c}{id}];
+153 appid2ctxt.erase(ctxt->\hyperlink{struct_h_s___client_ctxt_a04929d7d5f583a821d3d594815f77d1c}{id});
+154 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!reply\+Show\+Window@{reply\+Show\+Window}}
+\index{reply\+Show\+Window@{reply\+Show\+Window}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{reply\+Show\+Window(afb\+\_\+req\+\_\+t request)}{replyShowWindow(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::reply\+Show\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_a59b1c1e115b5a257a585c41f854f5fdd}{}\label{class_h_s___client_manager_a59b1c1e115b5a257a585c41f854f5fdd}
+reply\+Show\+Window event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 386 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+387 \{
+388 \textcolor{keywordtype}{int} ret = 0;
+389 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id});
+390 \textcolor{keywordflow}{if} (value) \{
+391 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+392 std::lock\_guard<std::mutex> lock(this->mtx);
+393 \textcolor{keyword}{auto} ip = client\_list.find(std::string(value));
+394 \textcolor{keywordflow}{if}(ip != client\_list.end()) \{
+395 ret = ip->second->replyShowWindow(request, value);
+396 \}
+397 \}
+398 \textcolor{keywordflow}{else} \{
+399 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input application\_id"});
+400 ret = \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+401 \}
+402 \textcolor{keywordflow}{return} ret;
+403 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!show\+Information@{show\+Information}}
+\index{show\+Information@{show\+Information}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{show\+Information(afb\+\_\+req\+\_\+t request)}{showInformation(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::show\+Information (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_a0645294f89c67fd3c9b0cce62a900f69}{}\label{class_h_s___client_manager_a0645294f89c67fd3c9b0cce62a900f69}
+show\+Information event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 443 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+444 \{
+445 \textcolor{keywordtype}{int} ret = 0;
+446 std::lock\_guard<std::mutex> lock(this->mtx);
+447 \textcolor{keyword}{auto} ip = client\_list.find(\hyperlink{hs-clientmanager_8cpp_a8bbab9002543614eacdc7a319d13a476}{\_homescreen});
+448 \textcolor{keywordflow}{if}(ip != client\_list.end()) \{
+449 ret = ip->second->showInformation(request);
+450 \}
+451 \textcolor{keywordflow}{else} \{
+452 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"not exist sessiion with homescreen"});
+453 ret = \hyperlink{hs-helper_8h_aefe0d7ff8202f954693c235c1fb8e310}{AFB\_REQ\_SHOWINFORMATION\_ERROR};
+454 \}
+455
+456 \textcolor{keywordflow}{return} ret;
+457 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!show\+Notification@{show\+Notification}}
+\index{show\+Notification@{show\+Notification}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{show\+Notification(afb\+\_\+req\+\_\+t request)}{showNotification(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::show\+Notification (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_a857934af280081ca6ac61d9f2cac37c5}{}\label{class_h_s___client_manager_a857934af280081ca6ac61d9f2cac37c5}
+show\+Notification event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 416 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+417 \{
+418 \textcolor{keywordtype}{int} ret = 0;
+419 std::lock\_guard<std::mutex> lock(this->mtx);
+420 \textcolor{keyword}{auto} ip = client\_list.find(\hyperlink{hs-clientmanager_8cpp_a8bbab9002543614eacdc7a319d13a476}{\_homescreen});
+421 \textcolor{keywordflow}{if}(ip != client\_list.end()) \{
+422 ret = ip->second->showNotification(request);
+423 \}
+424 \textcolor{keywordflow}{else} \{
+425 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"not exist sessiion with homescreen"});
+426 ret = \hyperlink{hs-helper_8h_a057fc88b8445828c261305cf9107d99d}{AFB\_REQ\_SHOWNOTIFICATION\_ERROR};
+427 \}
+428
+429 \textcolor{keywordflow}{return} ret;
+430 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!show\+Window@{show\+Window}}
+\index{show\+Window@{show\+Window}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{show\+Window(afb\+\_\+req\+\_\+t request)}{showWindow(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::show\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_afed8158f276d1d22c32b0d89e970d442}{}\label{class_h_s___client_manager_afed8158f276d1d22c32b0d89e970d442}
+show\+Window event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 326 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+327 \{
+328 \textcolor{keywordtype}{int} ret = 0;
+329 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id});
+330 \textcolor{keywordflow}{if} (value) \{
+331 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+332 std::lock\_guard<std::mutex> lock(this->mtx);
+333 \textcolor{keyword}{auto} ip = client\_list.find(std::string(value));
+334 \textcolor{keywordflow}{if}(ip != client\_list.end()) \{
+335 ret = ip->second->showWindow(request, value);
+336 \}
+337 \}
+338 \textcolor{keywordflow}{else} \{
+339 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input application\_id"});
+340 ret = \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+341 \}
+342 \textcolor{keywordflow}{return} ret;
+343 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!subscribe@{subscribe}}
+\index{subscribe@{subscribe}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{subscribe(afb\+\_\+req\+\_\+t request)}{subscribe(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::subscribe (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_a1b8a4e42342c4bcdc4e7dc4934e02469}{}\label{class_h_s___client_manager_a1b8a4e42342c4bcdc4e7dc4934e02469}
+subscribe
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request\+: the request to bindings
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 251 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+252 \{
+253 \textcolor{keywordtype}{int} ret = 0;
+254 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *value = afb\_req\_value(request, \textcolor{stringliteral}{"event"});
+255 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"value is %s"}, value);
+256 \textcolor{keywordflow}{if}(value) \{
+257 std::string appid(afb\_req\_get\_application\_id(request));
+258 std::lock\_guard<std::mutex> lock(this->mtx);
+259
+260 \hyperlink{class_h_s___client}{HS\_Client}* client = \textcolor{keyword}{nullptr};
+261 \textcolor{keyword}{auto} ip = client\_list.find(appid);
+262 \textcolor{keywordflow}{if}(ip != client\_list.end()) \{
+263 client = client\_list[appid];
+264 \}
+265 \textcolor{keywordflow}{else} \{
+266 appid2ctxt[appid] = createClientCtxt(request, appid);
+267 client = addClient(request, appid);
+268 \}
+269
+270 \textcolor{keywordflow}{if}(client->\hyperlink{class_h_s___client_a3d000ca70bd4a8af7c4895d95bc7d0d0}{subscribe}(request, value) != 0) \{
+271 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"subscribe failed"});
+272 ret = \hyperlink{hs-helper_8h_a995612de89db4df1483c16e4b9b70571}{AFB\_REQ\_SUBSCRIBE\_ERROR};
+273 \}
+274 \}
+275 \textcolor{keywordflow}{else} \{
+276 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input event name"});
+277 ret = \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+278 \}
+279 \textcolor{keywordflow}{return} ret;
+280 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!tap\+\_\+shortcut@{tap\+\_\+shortcut}}
+\index{tap\+\_\+shortcut@{tap\+\_\+shortcut}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{tap\+\_\+shortcut(afb\+\_\+req\+\_\+t request)}{tap_shortcut(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::tap\+\_\+shortcut (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_a9910fc27c412530b5b9854b00bd16c07}{}\label{class_h_s___client_manager_a9910fc27c412530b5b9854b00bd16c07}
+tap\+\_\+shortcut
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request\+: the request to bindings
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 166 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+167 \{
+168 \textcolor{keywordtype}{int} ret = 0;
+169 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* value = afb\_req\_value(request, \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id});
+170 \textcolor{keywordflow}{if} (value) \{
+171 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"request params = %s."}, value);
+172 std::lock\_guard<std::mutex> lock(this->mtx);
+173 \textcolor{keyword}{auto} ip = client\_list.find(std::string(value));
+174 \textcolor{keywordflow}{if}(ip != client\_list.end()) \{
+175 ip->second->tap\_shortcut(value);
+176 \}
+177 \}
+178 \textcolor{keywordflow}{else} \{
+179 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input application\_id"});
+180 ret = \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+181 \}
+182 \textcolor{keywordflow}{return} ret;
+183 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}!unsubscribe@{unsubscribe}}
+\index{unsubscribe@{unsubscribe}!H\+S\+\_\+\+Client\+Manager@{H\+S\+\_\+\+Client\+Manager}}
+\subsubsection[{\texorpdfstring{unsubscribe(afb\+\_\+req\+\_\+t request)}{unsubscribe(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+Manager\+::unsubscribe (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_manager_ac86314afbb90116e2f02ce071166226e}{}\label{class_h_s___client_manager_ac86314afbb90116e2f02ce071166226e}
+unsubscribe
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request\+: the request to bindings
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 292 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+293 \{
+294 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *value = afb\_req\_value(request, \textcolor{stringliteral}{"event"});
+295 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"value is %s"}, value);
+296 \textcolor{keywordtype}{int} ret = 0;
+297 \textcolor{keywordflow}{if}(value) \{
+298 std::string appid(afb\_req\_get\_application\_id(request));
+299 std::lock\_guard<std::mutex> lock(this->mtx);
+300
+301 \textcolor{keyword}{auto} ip = client\_list.find(appid);
+302 \textcolor{keywordflow}{if}(ip != client\_list.end()
+303 && ip->second->unsubscribe(request, value) != 0) \{
+304 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"unsubscribe failed"});
+305 ret = \hyperlink{hs-helper_8h_a78e930a97920b821706a80ca8f430034}{AFB\_REQ\_UNSUBSCRIBE\_ERROR};
+306 \}
+307 \}
+308 \textcolor{keywordflow}{else} \{
+309 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Please input event name"});
+310 ret = \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+311 \}
+312 \textcolor{keywordflow}{return} ret;
+313 \}
+\end{DoxyCode}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\hyperlink{hs-clientmanager_8h}{hs-\/clientmanager.\+h}\item
+src/\hyperlink{hs-clientmanager_8cpp}{hs-\/clientmanager.\+cpp}\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/d3/d3d/hs-helper_8h.tex b/doc/api-ref/latex/d3/d3d/hs-helper_8h.tex
index d6e9808..8f217ca 100644
--- a/doc/api-ref/latex/d3/d3d/hs-helper_8h.tex
+++ b/doc/api-ref/latex/d3/d3d/hs-helper_8h.tex
@@ -1,14 +1,21 @@
\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
+{\ttfamily \#include $<$afb/afb-\/binding.\+h$>$}\\*
+{\ttfamily \#include $<$json-\/c/json.\+h$>$}\\*
\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
+\#define \hyperlink{hs-helper_8h_ad2c1fbc92ba364fcf83f15e6d0af66f0}{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}~3
+\item
+\#define \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{A\+F\+B\+\_\+\+E\+V\+E\+N\+T\+\_\+\+B\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST}~100
+\item
+\#define \hyperlink{hs-helper_8h_a995612de89db4df1483c16e4b9b70571}{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR}~101
+\item
+\#define \hyperlink{hs-helper_8h_a78e930a97920b821706a80ca8f430034}{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+U\+N\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR}~102
+\item
+\#define \hyperlink{hs-helper_8h_a057fc88b8445828c261305cf9107d99d}{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+N\+O\+T\+I\+F\+I\+C\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR}~103
+\item
+\#define \hyperlink{hs-helper_8h_aefe0d7ff8202f954693c235c1fb8e310}{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+I\+N\+F\+O\+R\+M\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR}~104
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
@@ -27,11 +34,11 @@ enum \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E
\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)
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8h_aba9ca63f68b1991f8650871f4eae8e0b}{get\+\_\+value\+\_\+uint16} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, uint16\+\_\+t $\ast$out\+\_\+id)
\item
-\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8h_a2e62366684e39ea94436bf017e416827}{get\+\_\+value\+\_\+int16} (const struct afb\+\_\+req request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8h_af3043612cf74bb92cb073e10cacd594a}{get\+\_\+value\+\_\+int16} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)
\item
-\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8h_ac5b0370643c520377afd3fd4891918d2}{get\+\_\+value\+\_\+int32} (const struct afb\+\_\+req request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8h_a8121d965b6fd795c16b8576ab03dcaf1}{get\+\_\+value\+\_\+int32} (const afb\+\_\+req\+\_\+t 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
@@ -44,302 +51,457 @@ int \hyperlink{hs-helper_8h_a2ff1b894941c3b461ca8119079c4146a}{hs\+\_\+search\+\
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item
-static const char $\ast$ \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} \mbox{[}$\,$\mbox{]}
+const char $\ast$ \hyperlink{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} \mbox{[}$\,$\mbox{]}
+\item
+const char \hyperlink{hs-helper_8h_aed1c5296a2e6d34945507a0fca17a376}{\+\_\+error} \mbox{[}$\,$\mbox{]}
+\item
+const char \hyperlink{hs-helper_8h_a6a0e1db2562b442f8131ddf64b61d1ba}{\+\_\+application\+\_\+id} \mbox{[}$\,$\mbox{]}
+\item
+const char \hyperlink{hs-helper_8h_abfd6c1d6f316fa952b11553f8f275e92}{\+\_\+display\+\_\+message} \mbox{[}$\,$\mbox{]}
+\item
+const char \hyperlink{hs-helper_8h_a79b0f0b481161527ccb80e83da143219}{\+\_\+reply\+\_\+message} \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}
-
+\subsubsection[{\texorpdfstring{A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON}{AFB_BINDING_VERSION}}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\+F\+B\+\_\+\+B\+I\+N\+D\+I\+N\+G\+\_\+\+V\+E\+R\+S\+I\+ON~3}\hypertarget{hs-helper_8h_ad2c1fbc92ba364fcf83f15e6d0af66f0}{}\label{hs-helper_8h_ad2c1fbc92ba364fcf83f15e6d0af66f0}
Definition at line 19 of file hs-\/helper.\+h.
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!A\+F\+B\+\_\+\+E\+V\+E\+N\+T\+\_\+\+B\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST@{A\+F\+B\+\_\+\+E\+V\+E\+N\+T\+\_\+\+B\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST}}
+\index{A\+F\+B\+\_\+\+E\+V\+E\+N\+T\+\_\+\+B\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST@{A\+F\+B\+\_\+\+E\+V\+E\+N\+T\+\_\+\+B\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{A\+F\+B\+\_\+\+E\+V\+E\+N\+T\+\_\+\+B\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST}{AFB_EVENT_BAD_REQUEST}}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\+F\+B\+\_\+\+E\+V\+E\+N\+T\+\_\+\+B\+A\+D\+\_\+\+R\+E\+Q\+U\+E\+ST~100}\hypertarget{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{}\label{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}
-\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}}
+Definition at line 23 of file hs-\/helper.\+h.
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+I\+N\+F\+O\+R\+M\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR@{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+I\+N\+F\+O\+R\+M\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR}}
+\index{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+I\+N\+F\+O\+R\+M\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR@{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+I\+N\+F\+O\+R\+M\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+I\+N\+F\+O\+R\+M\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR}{AFB_REQ_SHOWINFORMATION_ERROR}}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+I\+N\+F\+O\+R\+M\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR~104}\hypertarget{hs-helper_8h_aefe0d7ff8202f954693c235c1fb8e310}{}\label{hs-helper_8h_aefe0d7ff8202f954693c235c1fb8e310}
-\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}}
+Definition at line 27 of file hs-\/helper.\+h.
+
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+N\+O\+T\+I\+F\+I\+C\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR@{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+N\+O\+T\+I\+F\+I\+C\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR}}
+\index{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+N\+O\+T\+I\+F\+I\+C\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR@{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+N\+O\+T\+I\+F\+I\+C\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+N\+O\+T\+I\+F\+I\+C\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR}{AFB_REQ_SHOWNOTIFICATION_ERROR}}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+H\+O\+W\+N\+O\+T\+I\+F\+I\+C\+A\+T\+I\+O\+N\+\_\+\+E\+R\+R\+OR~103}\hypertarget{hs-helper_8h_a057fc88b8445828c261305cf9107d99d}{}\label{hs-helper_8h_a057fc88b8445828c261305cf9107d99d}
-\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
+Definition at line 26 of file hs-\/helper.\+h.
-\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
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR@{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR}}
+\index{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR@{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR}{AFB_REQ_SUBSCRIBE_ERROR}}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR~101}\hypertarget{hs-helper_8h_a995612de89db4df1483c16e4b9b70571}{}\label{hs-helper_8h_a995612de89db4df1483c16e4b9b70571}
-\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 24 of file hs-\/helper.\+h.
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+U\+N\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR@{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+U\+N\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR}}
+\index{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+U\+N\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR@{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+U\+N\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+U\+N\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR}{AFB_REQ_UNSUBSCRIBE_ERROR}}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\+F\+B\+\_\+\+R\+E\+Q\+\_\+\+U\+N\+S\+U\+B\+S\+C\+R\+I\+B\+E\+\_\+\+E\+R\+R\+OR~102}\hypertarget{hs-helper_8h_a78e930a97920b821706a80ca8f430034}{}\label{hs-helper_8h_a78e930a97920b821706a80ca8f430034}
-Definition at line 26 of file hs-\/helper.\+h.
+
+Definition at line 25 of file hs-\/helper.\+h.
+
+
+
+\subsection{Typedef Documentation}
+\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}}]{\setlength{\rightskip}{0pt plus 5cm}typedef enum {\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} {\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR}}\hypertarget{hs-helper_8h_ab0d62ccfa9c3ab87f090f67c3d50adce}{}\label{hs-helper_8h_ab0d62ccfa9c3ab87f090f67c3d50adce}
+
+
+\subsection{Enumeration Type Documentation}
+\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}}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR}}\hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}
+\begin{Desc}
+\item[Enumerator]\par
+\begin{description}
+\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}}\item[{\em
+R\+E\+Q\+\_\+\+F\+A\+IL\hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}
+}]\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}}\item[{\em
+R\+E\+Q\+\_\+\+OK\hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}
+}]\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}}\item[{\em
+N\+O\+T\+\_\+\+N\+U\+M\+B\+ER\hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}
+}]\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}}\item[{\em
+O\+U\+T\+\_\+\+R\+A\+N\+GE\hypertarget{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{}\label{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}
+}]\end{description}
+\end{Desc}
+
+
+Definition at line 29 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};
+30 \{
+31 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL} = -1,
+32 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK}=0,
+33 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER},
+34 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE}
+35 \}\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})}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+int16(const afb\+\_\+req\+\_\+t request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)}{get_value_int16(const afb_req_t request, const char *source, int16_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int16 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{int16\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8h_af3043612cf74bb92cb073e10cacd594a}{}\label{hs-helper_8h_af3043612cf74bb92cb073e10cacd594a}
+get int16 value from source
+\subparagraph*{Parameters}
-Definition at line 48 of file hs-\/helper.\+c.
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output int16 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 82 of file hs-\/helper.\+cpp.
\begin{DoxyCode}
-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 \}
+83 \{
+84 \textcolor{keywordtype}{char}* endptr;
+85 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+86 \textcolor{keywordflow}{if}(!tmp)
+87 \{
+88 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+89 \}
+90 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+91
+92 \textcolor{comment}{/* error check of range */}
+93 \textcolor{keywordflow}{if}( (tmp\_id > INT16\_MAX) || (tmp\_id < INT16\_MIN) )
+94 \{
+95 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+96 \}
+97 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+98 \{
+99 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+100 \}
+101
+102 *out\_id = (int16\_t)tmp\_id;
+103 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+104 \}
\end{DoxyCode}
-\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})}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+int32(const afb\+\_\+req\+\_\+t request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)}{get_value_int32(const afb_req_t request, const char *source, int32_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int32 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{int32\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8h_a8121d965b6fd795c16b8576ab03dcaf1}{}\label{hs-helper_8h_a8121d965b6fd795c16b8576ab03dcaf1}
+get int32 value from source
+\subparagraph*{Parameters}
-Definition at line 72 of file hs-\/helper.\+c.
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output int32 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 118 of file hs-\/helper.\+cpp.
\begin{DoxyCode}
-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 \}
+119 \{
+120 \textcolor{keywordtype}{char}* endptr;
+121 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+122 \textcolor{keywordflow}{if}(!tmp)
+123 \{
+124 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+125 \}
+126 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+127
+128 \textcolor{comment}{/* error check of range */}
+129 \textcolor{keywordflow}{if}( (tmp\_id > INT32\_MAX) || (tmp\_id < INT32\_MIN) )
+130 \{
+131 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+132 \}
+133 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+134 \{
+135 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+136 \}
+137
+138 *out\_id = (int32\_t)tmp\_id;
+139 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+140 \}
\end{DoxyCode}
-\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})}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+uint16(const afb\+\_\+req\+\_\+t request, const char $\ast$source, uint16\+\_\+t $\ast$out\+\_\+id)}{get_value_uint16(const afb_req_t request, const char *source, uint16_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+uint16 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{uint16\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8h_aba9ca63f68b1991f8650871f4eae8e0b}{}\label{hs-helper_8h_aba9ca63f68b1991f8650871f4eae8e0b}
+get uint16 value from source
+\subparagraph*{Parameters}
-Definition at line 24 of file hs-\/helper.\+c.
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output uint16 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 46 of file hs-\/helper.\+cpp.
\begin{DoxyCode}
-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 \}
+47 \{
+48 \textcolor{keywordtype}{char}* endptr;
+49 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+50 \textcolor{keywordflow}{if}(!tmp)
+51 \{
+52 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+53 \}
+54 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+55
+56 \textcolor{comment}{/* error check of range */}
+57 \textcolor{keywordflow}{if}( (tmp\_id > UINT16\_MAX) || (tmp\_id < 0) )
+58 \{
+59 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+60 \}
+61 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+62 \{
+63 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+64 \}
+65
+66 *out\_id = (uint16\_t)tmp\_id;
+67 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+68 \}
\end{DoxyCode}
-\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})}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object(struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)}{hs_add_object_to_json_object(struct json_object *j_obj, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8h_a1ba31a6a94515ff1730ba0043a67d59e}{}\label{hs-helper_8h_a1ba31a6a94515ff1730ba0043a67d59e}
+add int object to json object
+
+\subparagraph*{Parameters}
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in int json object
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
-Definition at line 96 of file hs-\/helper.\+c.
+\subparagraph*{Return}
+
+None
+
+Definition at line 154 of file hs-\/helper.\+cpp.
\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 \}
+155 \{
+156 va\_list args;
+157 va\_start(args, count);
+158 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+159 \{
+160 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+161 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+162 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+163 ++i;
+164 \}
+165 va\_end(args);
+166 \}
\end{DoxyCode}
-\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})}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func(struct json\+\_\+object $\ast$j\+\_\+obj, const char $\ast$verb\+\_\+name, int count,...)}{hs_add_object_to_json_object_func(struct json_object *j_obj, const char *verb_name, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{const char $\ast$}]{verb\+\_\+name, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8h_ae83604a37134e7bdee3ce4f10bb0b47a}{}\label{hs-helper_8h_ae83604a37134e7bdee3ce4f10bb0b47a}
+add new json object to json object
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in new json object
+\item verb\+\_\+name \+: new json object\textquotesingle{}s verb value
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
+\subparagraph*{Return}
+None
-Definition at line 125 of file hs-\/helper.\+c.
+Definition at line 207 of file hs-\/helper.\+cpp.
\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 \}
+208 \{
+209 va\_list args;
+210 va\_start(args, count);
+211
+212 json\_object\_object\_add(j\_obj,\textcolor{stringliteral}{"verb"}, json\_object\_new\_string(verb\_name));
+213
+214 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+215 \{
+216 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+217 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+218 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+219 ++i;
+220 \}
+221 va\_end(args);
+222 \}
\end{DoxyCode}
-\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})}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str(struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)}{hs_add_object_to_json_object_str(struct json_object *j_obj, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8h_a8777c53f1d4d5412f19b134ad85ffedf}{}\label{hs-helper_8h_a8777c53f1d4d5412f19b134ad85ffedf}
+add string object to json object
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in string json object
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
+\subparagraph*{Return}
+None
-Definition at line 110 of file hs-\/helper.\+c.
+Definition at line 180 of file hs-\/helper.\+cpp.
\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 \}
+181 \{
+182 va\_list args;
+183 va\_start(args, count);
+184 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+185 \{
+186 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+187 \textcolor{keywordtype}{char} *value = va\_arg(args, \textcolor{keywordtype}{char}*);
+188 json\_object\_object\_add(j\_obj, key, json\_object\_new\_string(value));
+189 ++i;
+190 \}
+191 va\_end(args);
+192 \}
\end{DoxyCode}
-\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})}
+\subsubsection[{\texorpdfstring{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index(const char $\ast$value)}{hs_search_event_name_index(const char *value)}}]{\setlength{\rightskip}{0pt plus 5cm}int hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{value}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8h_a2ff1b894941c3b461ca8119079c4146a}{}\label{hs-helper_8h_a2ff1b894941c3b461ca8119079c4146a}
+search event position in event list
+\subparagraph*{Parameters}
-Definition at line 142 of file hs-\/helper.\+c.
+\begin{DoxyItemize}
+\item value \+: searched event name
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+event\textquotesingle{}s index in event list
+
+Definition at line 234 of file hs-\/helper.\+cpp.
\begin{DoxyCode}
-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 \}
+235 \{
+236 \textcolor{keywordtype}{size\_t} buf\_size = 50;
+237 \textcolor{keywordtype}{size\_t} size = \textcolor{keyword}{sizeof} \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} / \textcolor{keyword}{sizeof} *\hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist};
+238 \textcolor{keywordtype}{int} ret = -1;
+239 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{size\_t} i = 0 ; i < size ; ++i)
+240 \{
+241 \textcolor{keywordflow}{if}(!strncmp(value, \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[i], buf\_size))
+242 \{
+243 ret = i;
+244 \textcolor{keywordflow}{break};
+245 \}
+246 \}
+247 \textcolor{keywordflow}{return} ret;
+248 \}
\end{DoxyCode}
\subsection{Variable Documentation}
-\mbox{\Hypertarget{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}\label{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}}
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!\+\_\+application\+\_\+id@{\+\_\+application\+\_\+id}}
+\index{\+\_\+application\+\_\+id@{\+\_\+application\+\_\+id}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{\+\_\+application\+\_\+id}{_application_id}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+application\+\_\+id\mbox{[}$\,$\mbox{]}}\hypertarget{hs-helper_8h_a6a0e1db2562b442f8131ddf64b61d1ba}{}\label{hs-helper_8h_a6a0e1db2562b442f8131ddf64b61d1ba}
+
+
+Definition at line 28 of file homescreen.\+cpp.
+
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!\+\_\+display\+\_\+message@{\+\_\+display\+\_\+message}}
+\index{\+\_\+display\+\_\+message@{\+\_\+display\+\_\+message}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{\+\_\+display\+\_\+message}{_display_message}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+display\+\_\+message\mbox{[}$\,$\mbox{]}}\hypertarget{hs-helper_8h_abfd6c1d6f316fa952b11553f8f275e92}{}\label{hs-helper_8h_abfd6c1d6f316fa952b11553f8f275e92}
+
+
+Definition at line 29 of file homescreen.\+cpp.
+
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!\+\_\+error@{\+\_\+error}}
+\index{\+\_\+error@{\+\_\+error}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{\+\_\+error}{_error}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+error\mbox{[}$\,$\mbox{]}}\hypertarget{hs-helper_8h_aed1c5296a2e6d34945507a0fca17a376}{}\label{hs-helper_8h_aed1c5296a2e6d34945507a0fca17a376}
+
+
+Definition at line 27 of file homescreen.\+cpp.
+
+\index{hs-\/helper.\+h@{hs-\/helper.\+h}!\+\_\+reply\+\_\+message@{\+\_\+reply\+\_\+message}}
+\index{\+\_\+reply\+\_\+message@{\+\_\+reply\+\_\+message}!hs-\/helper.\+h@{hs-\/helper.\+h}}
+\subsubsection[{\texorpdfstring{\+\_\+reply\+\_\+message}{_reply_message}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+reply\+\_\+message\mbox{[}$\,$\mbox{]}}\hypertarget{hs-helper_8h_a79b0f0b481161527ccb80e83da143219}{}\label{hs-helper_8h_a79b0f0b481161527ccb80e83da143219}
+
+
+Definition at line 30 of file homescreen.\+cpp.
+
\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}
+\subsubsection[{\texorpdfstring{evlist}{evlist}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ evlist\mbox{[}$\,$\mbox{]}}\hypertarget{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}{}\label{hs-helper_8h_a0cd84b1a2184c9b84d1b7bf24582f28e}
-Definition at line 34 of file hs-\/helper.\+h.
+Definition at line 22 of file hs-\/helper.\+cpp.
diff --git a/doc/api-ref/latex/d5/d20/class_h_s___client.tex b/doc/api-ref/latex/d5/d20/class_h_s___client.tex
new file mode 100644
index 0000000..e9f25cc
--- /dev/null
+++ b/doc/api-ref/latex/d5/d20/class_h_s___client.tex
@@ -0,0 +1,579 @@
+\hypertarget{class_h_s___client}{}\section{H\+S\+\_\+\+Client Class Reference}
+\label{class_h_s___client}\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+
+
+{\ttfamily \#include $<$hs-\/client.\+h$>$}
+
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{class_h_s___client_a0afac6b86b9a72e74846e47e435f5f90}{H\+S\+\_\+\+Client} (afb\+\_\+req\+\_\+t request, const char $\ast$id)
+\item
+\hyperlink{class_h_s___client_a47cb0035116ac7be4fffcfc9736e9233}{H\+S\+\_\+\+Client} (afb\+\_\+req\+\_\+t request, std\+::string id)
+\item
+\hyperlink{class_h_s___client_a429a4697767344f3789bb233bc73a2b9}{H\+S\+\_\+\+Client} (\hyperlink{class_h_s___client}{H\+S\+\_\+\+Client} \&)=delete
+\item
+\hyperlink{class_h_s___client}{H\+S\+\_\+\+Client} \& \hyperlink{class_h_s___client_a3e3d8fa1c8746d6d1b1650fe1fcc56a8}{operator=} (\hyperlink{class_h_s___client}{H\+S\+\_\+\+Client} \&)=delete
+\item
+\hyperlink{class_h_s___client_ab29a9e899aaec3c21983c24ec6e5ee70}{$\sim$\+H\+S\+\_\+\+Client} ()
+\item
+int \hyperlink{class_h_s___client_a0d7fb8316248e8946dcb73a6612f21bb}{tap\+\_\+shortcut} (const char $\ast$appid)
+\item
+int \hyperlink{class_h_s___client_af0f2be967a5b6ee81932c73b101184f7}{show\+Window} (afb\+\_\+req\+\_\+t request, const char $\ast$appid)
+\item
+int \hyperlink{class_h_s___client_ac29482ffdf1b27733247ba0ffcc28b76}{hide\+Window} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_a294e461500ef02aed17ed5d91479f6b9}{reply\+Show\+Window} (afb\+\_\+req\+\_\+t request, const char $\ast$appid)
+\item
+int \hyperlink{class_h_s___client_a274301617c9ab629d6916c0dde8c40b9}{on\+\_\+screen\+\_\+message} (afb\+\_\+req\+\_\+t request, const char $\ast$message)
+\item
+int \hyperlink{class_h_s___client_a9f7a30840c95b1348bcce4cd4626b2ae}{on\+\_\+screen\+\_\+reply} (afb\+\_\+req\+\_\+t request, const char $\ast$message)
+\item
+int \hyperlink{class_h_s___client_a3d000ca70bd4a8af7c4895d95bc7d0d0}{subscribe} (afb\+\_\+req\+\_\+t request, const char $\ast$event)
+\item
+int \hyperlink{class_h_s___client_a3da3b5662f918e11773da75f8f971d9c}{unsubscribe} (afb\+\_\+req\+\_\+t request, const char $\ast$event)
+\item
+int \hyperlink{class_h_s___client_a77b41c1bc6f2c939410108d821a0b456}{show\+Notification} (afb\+\_\+req\+\_\+t request)
+\item
+int \hyperlink{class_h_s___client_a7145c14a7a971b45f647a82e3390ce9c}{show\+Information} (afb\+\_\+req\+\_\+t request)
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 25 of file hs-\/client.\+h.
+
+
+
+\subsection{Constructor \& Destructor Documentation}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{H\+S\+\_\+\+Client(afb\+\_\+req\+\_\+t request, const char $\ast$id)}{HS_Client(afb_req_t request, const char *id)}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+::\+H\+S\+\_\+\+Client (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{id}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [inline]}}\hypertarget{class_h_s___client_a0afac6b86b9a72e74846e47e435f5f90}{}\label{class_h_s___client_a0afac6b86b9a72e74846e47e435f5f90}
+
+
+Definition at line 27 of file hs-\/client.\+h.
+
+
+\begin{DoxyCode}
+27 : \hyperlink{class_h_s___client_a0afac6b86b9a72e74846e47e435f5f90}{HS\_Client}(request, std::string(\textcolor{keywordtype}{id}))\{\}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{H\+S\+\_\+\+Client(afb\+\_\+req\+\_\+t request, std\+::string id)}{HS_Client(afb_req_t request, std::string id)}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+::\+H\+S\+\_\+\+Client (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request, }
+\item[{std\+::string}]{id}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a47cb0035116ac7be4fffcfc9736e9233}{}\label{class_h_s___client_a47cb0035116ac7be4fffcfc9736e9233}
+\hyperlink{class_h_s___client}{H\+S\+\_\+\+Client} construction function
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item id\+: app\textquotesingle{}s id
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 38 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+38 : my\_id(\textcolor{keywordtype}{id})
+39 \{
+40 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+41 my\_event = afb\_api\_make\_event(request->api, \textcolor{keywordtype}{id}.c\_str());
+42 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{H\+S\+\_\+\+Client(\+H\+S\+\_\+\+Client \&)=delete}{HS_Client(HS_Client &)=delete}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+::\+H\+S\+\_\+\+Client (
+\begin{DoxyParamCaption}
+\item[{{\bf H\+S\+\_\+\+Client} \&}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [delete]}}\hypertarget{class_h_s___client_a429a4697767344f3789bb233bc73a2b9}{}\label{class_h_s___client_a429a4697767344f3789bb233bc73a2b9}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!````~H\+S\+\_\+\+Client@{$\sim$\+H\+S\+\_\+\+Client}}
+\index{````~H\+S\+\_\+\+Client@{$\sim$\+H\+S\+\_\+\+Client}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{$\sim$\+H\+S\+\_\+\+Client()}{~HS_Client()}}]{\setlength{\rightskip}{0pt plus 5cm}H\+S\+\_\+\+Client\+::$\sim$\+H\+S\+\_\+\+Client (
+\begin{DoxyParamCaption}
+{}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_ab29a9e899aaec3c21983c24ec6e5ee70}{}\label{class_h_s___client_ab29a9e899aaec3c21983c24ec6e5ee70}
+\hyperlink{class_h_s___client}{H\+S\+\_\+\+Client} destruction function
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item null
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 54 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+55 \{
+56 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+57 afb\_event\_unref(my\_event);
+58 \}
+\end{DoxyCode}
+
+
+\subsection{Member Function Documentation}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!hide\+Window@{hide\+Window}}
+\index{hide\+Window@{hide\+Window}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{hide\+Window(afb\+\_\+req\+\_\+t request)}{hideWindow(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::hide\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_ac29482ffdf1b27733247ba0ffcc28b76}{}\label{class_h_s___client_ac29482ffdf1b27733247ba0ffcc28b76}
+hide\+Window event
+
+input contents \+: \{\char`\"{}application\+\_\+id\char`\"{}\+:\char`\"{}the appid that want to hide\char`\"{}\}
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 245 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+246 \{
+247 \textcolor{keywordflow}{if}(!checkEvent(\_\_FUNCTION\_\_))
+248 \textcolor{keywordflow}{return} 0;
+249
+250 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"%s application\_id = %s."}, \_\_FUNCTION\_\_);
+251 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* req\_appid = afb\_req\_get\_application\_id(request);
+252 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+253 \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 4,
+ \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id}, req\_appid,
+254 \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\_type}, \_\_FUNCTION\_\_);
+255 afb\_event\_push(my\_event, push\_obj);
+256 \textcolor{keywordflow}{return} 0;
+257 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!on\+\_\+screen\+\_\+message@{on\+\_\+screen\+\_\+message}}
+\index{on\+\_\+screen\+\_\+message@{on\+\_\+screen\+\_\+message}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{on\+\_\+screen\+\_\+message(afb\+\_\+req\+\_\+t request, const char $\ast$message)}{on_screen_message(afb_req_t request, const char *message)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::on\+\_\+screen\+\_\+message (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{message}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a274301617c9ab629d6916c0dde8c40b9}{}\label{class_h_s___client_a274301617c9ab629d6916c0dde8c40b9}
+push on\+\_\+screen\+\_\+message event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item message\+: post message.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 93 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+94 \{
+95 \textcolor{keywordflow}{if}(!checkEvent(\_\_FUNCTION\_\_))
+96 \textcolor{keywordflow}{return} 0;
+97
+98 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"push %s event message [%s]."}, \_\_FUNCTION\_\_, message);
+99 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+100 \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 4,
+ \hyperlink{homescreen_8cpp_abfd6c1d6f316fa952b11553f8f275e92}{\_display\_message}, message,
+101 \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\_type}, \_\_FUNCTION\_\_);
+102 afb\_event\_push(my\_event, push\_obj);
+103 \textcolor{keywordflow}{return} 0;
+104 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!on\+\_\+screen\+\_\+reply@{on\+\_\+screen\+\_\+reply}}
+\index{on\+\_\+screen\+\_\+reply@{on\+\_\+screen\+\_\+reply}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{on\+\_\+screen\+\_\+reply(afb\+\_\+req\+\_\+t request, const char $\ast$message)}{on_screen_reply(afb_req_t request, const char *message)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::on\+\_\+screen\+\_\+reply (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{message}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a9f7a30840c95b1348bcce4cd4626b2ae}{}\label{class_h_s___client_a9f7a30840c95b1348bcce4cd4626b2ae}
+push on\+\_\+screen\+\_\+reply event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item message\+: reply message.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 116 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+117 \{
+118 \textcolor{keywordflow}{if}(!checkEvent(\_\_FUNCTION\_\_))
+119 \textcolor{keywordflow}{return} 0;
+120
+121 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"push %s event message [%s]."}, \_\_FUNCTION\_\_, message);
+122 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+123 \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 4,
+ \hyperlink{homescreen_8cpp_a79b0f0b481161527ccb80e83da143219}{\_reply\_message}, message,
+124 \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\_type}, \_\_FUNCTION\_\_);
+125 afb\_event\_push(my\_event, push\_obj);
+126 \textcolor{keywordflow}{return} 0;
+127 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!operator=@{operator=}}
+\index{operator=@{operator=}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{operator=(\+H\+S\+\_\+\+Client \&)=delete}{operator=(HS_Client &)=delete}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf H\+S\+\_\+\+Client}\& H\+S\+\_\+\+Client\+::operator= (
+\begin{DoxyParamCaption}
+\item[{{\bf H\+S\+\_\+\+Client} \&}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [delete]}}\hypertarget{class_h_s___client_a3e3d8fa1c8746d6d1b1650fe1fcc56a8}{}\label{class_h_s___client_a3e3d8fa1c8746d6d1b1650fe1fcc56a8}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!reply\+Show\+Window@{reply\+Show\+Window}}
+\index{reply\+Show\+Window@{reply\+Show\+Window}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{reply\+Show\+Window(afb\+\_\+req\+\_\+t request, const char $\ast$appid)}{replyShowWindow(afb_req_t request, const char *appid)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::reply\+Show\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{appid}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a294e461500ef02aed17ed5d91479f6b9}{}\label{class_h_s___client_a294e461500ef02aed17ed5d91479f6b9}
+reply\+Show\+Window event
+
+input contens \+: \{\char`\"{}application\+\_\+id\char`\"{}\+: \char`\"{}the appid that want to reply\char`\"{}, \char`\"{}parameter\char`\"{}\+: \{...\}\}
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\item appid \+: the appid that want to reply
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 273 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+274 \{
+275 \textcolor{keywordflow}{if}(!checkEvent(\_\_FUNCTION\_\_))
+276 \textcolor{keywordflow}{return} 0;
+277
+278 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"%s application\_id = %s."}, \_\_FUNCTION\_\_, appid);
+279 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+280 \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 4,
+ \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id}, appid, \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\_type}, \_\_FUNCTION\_\_);
+281 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* param = afb\_req\_value(request, \hyperlink{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}{\_parameter});
+282 \textcolor{keywordflow}{if}(param) \{
+283 json\_object\_object\_add(push\_obj, \hyperlink{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}{\_parameter}, json\_tokener\_parse(param));
+284 \}
+285 \textcolor{keywordflow}{else} \{
+286 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"please input correct parameter."});
+287 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+288 \}
+289
+290 afb\_event\_push(my\_event, push\_obj);
+291 \textcolor{keywordflow}{return} 0;
+292 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!show\+Information@{show\+Information}}
+\index{show\+Information@{show\+Information}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{show\+Information(afb\+\_\+req\+\_\+t request)}{showInformation(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::show\+Information (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a7145c14a7a971b45f647a82e3390ce9c}{}\label{class_h_s___client_a7145c14a7a971b45f647a82e3390ce9c}
+show\+Information event
+
+input contents \+: \{\char`\"{}info\char`\"{}\+: \char`\"{}information contents\char`\"{}\}
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 350 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+351 \{
+352 \textcolor{keywordtype}{int} ret = 0;
+353 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *value = afb\_req\_value(request, \hyperlink{hs-client_8cpp_ae125cd80cb98582684636e46ecf33cac}{\_info});
+354 \textcolor{keywordflow}{if}(value) \{
+355 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"info is %s"}, value);
+356 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* appid = afb\_req\_get\_application\_id(request);
+357 \textcolor{keyword}{struct }json\_object* param\_obj = json\_object\_new\_object();
+358 json\_object\_object\_add(param\_obj, \hyperlink{hs-client_8cpp_ae125cd80cb98582684636e46ecf33cac}{\_info}, json\_object\_new\_string(value));
+359 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+360 \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 4,
+ \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id}, appid, \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\_type}, \_\_FUNCTION\_\_);
+361 json\_object\_object\_add(push\_obj, \hyperlink{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}{\_parameter}, param\_obj);
+362 afb\_event\_push(my\_event, push\_obj);
+363 \}
+364 \textcolor{keywordflow}{else} \{
+365 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"please input information."});
+366 ret = \hyperlink{hs-helper_8h_aefe0d7ff8202f954693c235c1fb8e310}{AFB\_REQ\_SHOWINFORMATION\_ERROR};
+367 \}
+368
+369 \textcolor{keywordflow}{return} ret;
+370 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!show\+Notification@{show\+Notification}}
+\index{show\+Notification@{show\+Notification}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{show\+Notification(afb\+\_\+req\+\_\+t request)}{showNotification(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::show\+Notification (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a77b41c1bc6f2c939410108d821a0b456}{}\label{class_h_s___client_a77b41c1bc6f2c939410108d821a0b456}
+show\+Notification event
+
+input contents \+: \{\char`\"{}icon\char`\"{}\+: \char`\"{}icon path\char`\"{}, \char`\"{}text\char`\"{}\+: \char`\"{}message contents\char`\"{}\}
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 307 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+308 \{
+309 \textcolor{keywordtype}{int} ret = 0;
+310 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *value = afb\_req\_value(request, \hyperlink{hs-client_8cpp_ad177811d47939fe9404de88672a980ab}{\_text});
+311 \textcolor{keywordflow}{if}(value) \{
+312 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"text is %s"}, value);
+313 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* appid = afb\_req\_get\_application\_id(request);
+314 \textcolor{keyword}{struct }json\_object* param\_obj = json\_object\_new\_object();
+315 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *icon = afb\_req\_value(request, \hyperlink{hs-client_8cpp_a5476c8a51997c773220bec9fc02eeaf5}{\_icon});
+316 \textcolor{keywordflow}{if}(icon) \{
+317 json\_object\_object\_add(param\_obj, \hyperlink{hs-client_8cpp_a5476c8a51997c773220bec9fc02eeaf5}{\_icon}, json\_object\_new\_string(icon));
+318 json\_object\_object\_add(param\_obj, \hyperlink{hs-client_8cpp_ad177811d47939fe9404de88672a980ab}{\_text}, json\_object\_new\_string(value));
+319 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+320 \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 4,
+ \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id}, appid, \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\_type}, \_\_FUNCTION\_\_);
+321 json\_object\_object\_add(push\_obj, \hyperlink{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}{\_parameter}, param\_obj);
+322 afb\_event\_push(my\_event, push\_obj);
+323 \}
+324 \textcolor{keywordflow}{else} \{
+325 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"please input icon."});
+326 ret = \hyperlink{hs-helper_8h_a057fc88b8445828c261305cf9107d99d}{AFB\_REQ\_SHOWNOTIFICATION\_ERROR};
+327 \}
+328 \}
+329 \textcolor{keywordflow}{else} \{
+330 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"please input text."});
+331 ret = \hyperlink{hs-helper_8h_a057fc88b8445828c261305cf9107d99d}{AFB\_REQ\_SHOWNOTIFICATION\_ERROR};
+332 \}
+333
+334 \textcolor{keywordflow}{return} ret;
+335 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!show\+Window@{show\+Window}}
+\index{show\+Window@{show\+Window}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{show\+Window(afb\+\_\+req\+\_\+t request, const char $\ast$appid)}{showWindow(afb_req_t request, const char *appid)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::show\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{appid}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_af0f2be967a5b6ee81932c73b101184f7}{}\label{class_h_s___client_af0f2be967a5b6ee81932c73b101184f7}
+show\+Window event
+
+input contents \+: \{\char`\"{}application\+\_\+id\char`\"{}\+:\char`\"{}the appid that want to display\char`\"{}, \char`\"{}parameter\char`\"{}\+:\{\char`\"{}area\char`\"{}\+: \char`\"{}display area\char`\"{}, ...\}\}
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\item appid \+: the appid that want to display
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+0 \+: success others \+: fail
+
+Definition at line 209 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+210 \{
+211 \textcolor{keywordflow}{if}(!checkEvent(\_\_FUNCTION\_\_))
+212 \textcolor{keywordflow}{return} 0;
+213
+214 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"%s application\_id = %s."}, \_\_FUNCTION\_\_, appid);
+215 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+216 \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 4,
+ \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id}, appid, \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\_type}, \_\_FUNCTION\_\_);
+217 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* param = afb\_req\_value(request, \hyperlink{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}{\_parameter});
+218 \textcolor{keywordflow}{if}(param) \{
+219 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* req\_appid = afb\_req\_get\_application\_id(request);
+220 \textcolor{keyword}{struct }json\_object* param\_obj = json\_tokener\_parse(param);
+221 json\_object\_object\_add(param\_obj, \hyperlink{hs-client_8cpp_ac5b722c0d87d2b0e3dfc527b44a1f5db}{\_replyto}, json\_object\_new\_string(req\_appid));
+222 json\_object\_object\_add(push\_obj, \hyperlink{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}{\_parameter}, param\_obj);
+223 \}
+224 \textcolor{keywordflow}{else} \{
+225 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"please input correct parameter."});
+226 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa611e2ec24ef295bd87825889fe2ce5e}{AFB\_EVENT\_BAD\_REQUEST};
+227 \}
+228 afb\_event\_push(my\_event, push\_obj);
+229 \textcolor{keywordflow}{return} 0;
+230 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!subscribe@{subscribe}}
+\index{subscribe@{subscribe}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{subscribe(afb\+\_\+req\+\_\+t request, const char $\ast$event)}{subscribe(afb_req_t request, const char *event)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::subscribe (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{event}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a3d000ca70bd4a8af7c4895d95bc7d0d0}{}\label{class_h_s___client_a3d000ca70bd4a8af7c4895d95bc7d0d0}
+subscribe event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event\+: homescreen event, tap\+\_\+shortcut etc.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 139 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+140 \{
+141 \textcolor{keywordtype}{int} ret = 0;
+142 \textcolor{keyword}{auto} ip = event\_list.find(std::string(event));
+143 \textcolor{keywordflow}{if}(ip == event\_list.end()) \{
+144 event\_list[std::string(event)] = 0;
+145 \}
+146 \textcolor{keywordflow}{if}(!subscription) \{
+147 ret = afb\_req\_subscribe(request, my\_event);
+148 \textcolor{keywordflow}{if}(ret == 0) \{
+149 subscription = \textcolor{keyword}{true};
+150 \}
+151 \}
+152 \textcolor{keywordflow}{return} ret;
+153 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!tap\+\_\+shortcut@{tap\+\_\+shortcut}}
+\index{tap\+\_\+shortcut@{tap\+\_\+shortcut}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{tap\+\_\+shortcut(const char $\ast$appid)}{tap_shortcut(const char *appid)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::tap\+\_\+shortcut (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{appid}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a0d7fb8316248e8946dcb73a6612f21bb}{}\label{class_h_s___client_a0d7fb8316248e8946dcb73a6612f21bb}
+push tap\+\_\+shortcut event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item appid\+: app\textquotesingle{}s id.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 70 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+71 \{
+72 \textcolor{keywordflow}{if}(!checkEvent(\_\_FUNCTION\_\_))
+73 \textcolor{keywordflow}{return} 0;
+74
+75 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"%s application\_id = %s."}, \_\_FUNCTION\_\_, appid);
+76 \textcolor{keyword}{struct }json\_object* push\_obj = json\_object\_new\_object();
+77 \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\_add\_object\_to\_json\_object\_str}( push\_obj, 4,
+ \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\_application\_id}, appid,
+78 \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\_type}, \_\_FUNCTION\_\_);
+79 afb\_event\_push(my\_event, push\_obj);
+80 \textcolor{keywordflow}{return} 0;
+81 \}
+\end{DoxyCode}
+\index{H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}!unsubscribe@{unsubscribe}}
+\index{unsubscribe@{unsubscribe}!H\+S\+\_\+\+Client@{H\+S\+\_\+\+Client}}
+\subsubsection[{\texorpdfstring{unsubscribe(afb\+\_\+req\+\_\+t request, const char $\ast$event)}{unsubscribe(afb_req_t request, const char *event)}}]{\setlength{\rightskip}{0pt plus 5cm}int H\+S\+\_\+\+Client\+::unsubscribe (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{event}
+\end{DoxyParamCaption}
+)}\hypertarget{class_h_s___client_a3da3b5662f918e11773da75f8f971d9c}{}\label{class_h_s___client_a3da3b5662f918e11773da75f8f971d9c}
+unsubscribe event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event\+: homescreen event, tap\+\_\+shortcut etc.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+result
+
+Definition at line 165 of file hs-\/client.\+cpp.
+
+
+\begin{DoxyCode}
+166 \{
+167 \textcolor{keywordtype}{int} ret = 0;
+168 event\_list.erase(std::string(event));
+169 \textcolor{keywordflow}{if}(event\_list.empty()) \{
+170 ret = afb\_req\_unsubscribe(request, my\_event);
+171 \}
+172 \textcolor{keywordflow}{return} ret;
+173 \}
+\end{DoxyCode}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\hyperlink{hs-client_8h}{hs-\/client.\+h}\item
+src/\hyperlink{hs-client_8cpp}{hs-\/client.\+cpp}\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/d6/dda/homescreen_8cpp.tex b/doc/api-ref/latex/d6/dda/homescreen_8cpp.tex
new file mode 100644
index 0000000..4620f7b
--- /dev/null
+++ b/doc/api-ref/latex/d6/dda/homescreen_8cpp.tex
@@ -0,0 +1,672 @@
+\hypertarget{homescreen_8cpp}{}\section{src/homescreen.cpp File Reference}
+\label{homescreen_8cpp}\index{src/homescreen.\+cpp@{src/homescreen.\+cpp}}
+{\ttfamily \#include $<$memory$>$}\\*
+{\ttfamily \#include $<$algorithm$>$}\\*
+{\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\\*
+{\ttfamily \#include \char`\"{}hmi-\/debug.\+h\char`\"{}}\\*
+{\ttfamily \#include \char`\"{}hs-\/clientmanager.\+h\char`\"{}}\\*
+\subsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\#define \hyperlink{homescreen_8cpp_a369266c24eacffb87046522897a570d5}{\+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE}
+\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+static void \hyperlink{homescreen_8cpp_ace65cfe6008848a3cd66581f536cc4c9}{ping\+Sample} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_ab8abb667377924d5c073611738febbd3}{tap\+\_\+shortcut} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_a0df2b60ff6cd56b53dc87b36bfee2b91}{on\+\_\+screen\+\_\+message} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_a7443596f6ddf459824ecd8138c681532}{on\+\_\+screen\+\_\+reply} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_a6e942ab2b7207d2aef9adce71a4574e8}{subscribe} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_a3b162ab1856a8fa4284cb2c5c35ea748}{unsubscribe} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_ae475c69e7ca2a539ae0fb40a82963ac1}{show\+Window} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_a057c380ea38cfba4e2fbccc40fc21798}{hide\+Window} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_a710bcc84a61e11dbd4517def2764ff95}{reply\+Show\+Window} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_ad96a84455e8676abb4486e48ef67b1ad}{show\+Notification} (afb\+\_\+req\+\_\+t request)
+\item
+static void \hyperlink{homescreen_8cpp_a916c8dd31373222ee2b6ef89aca91978}{show\+Information} (afb\+\_\+req\+\_\+t request)
+\item
+static int \hyperlink{homescreen_8cpp_ab3b1914acb53dcc038c1cf86c2975785}{preinit} (afb\+\_\+api\+\_\+t api)
+\item
+static int \hyperlink{homescreen_8cpp_a5d7de3437d5dcb79fa035959d95878db}{init} (afb\+\_\+api\+\_\+t api)
+\item
+static void \hyperlink{homescreen_8cpp_a60665935681c76d38b3833912109cdd3}{onevent} (afb\+\_\+api\+\_\+t api, const char $\ast$event, struct json\+\_\+object $\ast$object)
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+const char \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\+\_\+error} \mbox{[}$\,$\mbox{]} = \char`\"{}error\char`\"{}
+\item
+const char \hyperlink{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{\+\_\+application\+\_\+id} \mbox{[}$\,$\mbox{]} = \char`\"{}application\+\_\+id\char`\"{}
+\item
+const char \hyperlink{homescreen_8cpp_abfd6c1d6f316fa952b11553f8f275e92}{\+\_\+display\+\_\+message} \mbox{[}$\,$\mbox{]} = \char`\"{}display\+\_\+message\char`\"{}
+\item
+const char \hyperlink{homescreen_8cpp_a79b0f0b481161527ccb80e83da143219}{\+\_\+reply\+\_\+message} \mbox{[}$\,$\mbox{]} = \char`\"{}reply\+\_\+message\char`\"{}
+\item
+static \hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager} $\ast$ \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\+\_\+client\+\_\+manager} = \hyperlink{class_h_s___client_manager_ad86c1fea7d107d52cbf0466fb7a2658b}{H\+S\+\_\+\+Client\+Manager\+::instance}()
+\item
+static const afb\+\_\+verb\+\_\+t \hyperlink{homescreen_8cpp_a01e06b6317acebc1d5686386b15f0872}{verbs} \mbox{[}$\,$\mbox{]}
+\item
+const afb\+\_\+binding\+\_\+t \hyperlink{homescreen_8cpp_a970e7864dba290a0371534ad4961bcc5}{afb\+Binding\+Export}
+\end{DoxyCompactItemize}
+
+
+\subsection{Macro Definition Documentation}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!\+\_\+\+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.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE}{_GNU_SOURCE}}]{\setlength{\rightskip}{0pt plus 5cm}\#define \+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE}\hypertarget{homescreen_8cpp_a369266c24eacffb87046522897a570d5}{}\label{homescreen_8cpp_a369266c24eacffb87046522897a570d5}
+
+
+Definition at line 18 of file homescreen.\+cpp.
+
+
+
+\subsection{Function Documentation}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!hide\+Window@{hide\+Window}}
+\index{hide\+Window@{hide\+Window}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{hide\+Window(afb\+\_\+req\+\_\+t request)}{hideWindow(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void hide\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a057c380ea38cfba4e2fbccc40fc21798}{}\label{homescreen_8cpp_a057c380ea38cfba4e2fbccc40fc21798}
+hide\+Window event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 221 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+222 \{
+223 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+224
+225 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_a6195694d281a3b97b0345b96c0add1fd}{hideWindow}(request);
+226 \textcolor{keywordflow}{if} (ret != 0) \{
+227 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown parameter"}, \_\_FUNCTION\_\_);
+228 \textcolor{keywordflow}{return};
+229 \}
+230
+231 \textcolor{comment}{// response to HomeScreen}
+232 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+233 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+234 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+235 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [hideWindow]"});
+236 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!init@{init}}
+\index{init@{init}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{init(afb\+\_\+api\+\_\+t api)}{init(afb_api_t api)}}]{\setlength{\rightskip}{0pt plus 5cm}static int init (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+api\+\_\+t}]{api}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a5d7de3437d5dcb79fa035959d95878db}{}\label{homescreen_8cpp_a5d7de3437d5dcb79fa035959d95878db}
+homescreen binding init function
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item api \+: the api serving the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 368 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+369 \{
+370 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"binding init"});
+371
+372 \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_ae0b9b18adeffca7822b060ad4ea8a7a1}{init}();
+373
+374 \textcolor{keywordflow}{return} 0;
+375 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!on\+\_\+screen\+\_\+message@{on\+\_\+screen\+\_\+message}}
+\index{on\+\_\+screen\+\_\+message@{on\+\_\+screen\+\_\+message}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{on\+\_\+screen\+\_\+message(afb\+\_\+req\+\_\+t request)}{on_screen_message(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void on\+\_\+screen\+\_\+message (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a0df2b60ff6cd56b53dc87b36bfee2b91}{}\label{homescreen_8cpp_a0df2b60ff6cd56b53dc87b36bfee2b91}
+Home\+Screen On\+Screen message
+
+\subparagraph*{Parameters}
+
+Request key
+\begin{DoxyItemize}
+\item display\+\_\+message \+: message for display
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 85 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+86 \{
+87 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+88
+89 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_a58ce4a013d3694265dd69f481bf88510}{on\_screen\_message}(request);
+90 \textcolor{keywordflow}{if} (ret != 0) \{
+91 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown parameter"}, \_\_FUNCTION\_\_);
+92 \textcolor{keywordflow}{return};
+93 \}
+94
+95 \textcolor{comment}{// response to HomeScreen}
+96 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+97 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+98 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+99 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [on\_screen\_message]"});
+100 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!on\+\_\+screen\+\_\+reply@{on\+\_\+screen\+\_\+reply}}
+\index{on\+\_\+screen\+\_\+reply@{on\+\_\+screen\+\_\+reply}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{on\+\_\+screen\+\_\+reply(afb\+\_\+req\+\_\+t request)}{on_screen_reply(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void on\+\_\+screen\+\_\+reply (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a7443596f6ddf459824ecd8138c681532}{}\label{homescreen_8cpp_a7443596f6ddf459824ecd8138c681532}
+Home\+Screen On\+Screen Reply
+
+\subparagraph*{Parameters}
+
+Request key
+\begin{DoxyItemize}
+\item reply\+\_\+message \+: message for reply
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 113 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+114 \{
+115 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+116
+117 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_aa78f992287e3b8fe93422b331dc9edc5}{on\_screen\_reply}(request);
+118 \textcolor{keywordflow}{if} (ret != 0) \{
+119 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown parameter"}, \_\_FUNCTION\_\_);
+120 \textcolor{keywordflow}{return};
+121 \}
+122
+123 \textcolor{comment}{// response to HomeScreen}
+124 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+125 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+126 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+127 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [on\_screen\_reply]"});
+128 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!onevent@{onevent}}
+\index{onevent@{onevent}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{onevent(afb\+\_\+api\+\_\+t api, const char $\ast$event, struct json\+\_\+object $\ast$object)}{onevent(afb_api_t api, const char *event, struct json_object *object)}}]{\setlength{\rightskip}{0pt plus 5cm}static void onevent (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+api\+\_\+t}]{api, }
+\item[{const char $\ast$}]{event, }
+\item[{struct json\+\_\+object $\ast$}]{object}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a60665935681c76d38b3833912109cdd3}{}\label{homescreen_8cpp_a60665935681c76d38b3833912109cdd3}
+homescreen binding event function
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item api \+: the api serving the request
+\item event \+: event name
+\item object \+: event json object
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 389 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+390 \{
+391 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"on\_event %s"}, event);
+392 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!ping\+Sample@{ping\+Sample}}
+\index{ping\+Sample@{ping\+Sample}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{ping\+Sample(afb\+\_\+req\+\_\+t request)}{pingSample(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void ping\+Sample (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_ace65cfe6008848a3cd66581f536cc4c9}{}\label{homescreen_8cpp_ace65cfe6008848a3cd66581f536cc4c9}
+
+
+Definition at line 38 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+39 \{
+40 \textcolor{keyword}{static} \textcolor{keywordtype}{int} pingcount = 0;
+41 afb\_req\_success\_f(request, json\_object\_new\_int(pingcount), \textcolor{stringliteral}{"Ping count = %d"}, pingcount);
+42 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"Verbosity macro at level notice invoked at ping invocation
+ count = %d"}, pingcount);
+43 pingcount++;
+44 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!preinit@{preinit}}
+\index{preinit@{preinit}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{preinit(afb\+\_\+api\+\_\+t api)}{preinit(afb_api_t api)}}]{\setlength{\rightskip}{0pt plus 5cm}static int preinit (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+api\+\_\+t}]{api}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_ab3b1914acb53dcc038c1cf86c2975785}{}\label{homescreen_8cpp_ab3b1914acb53dcc038c1cf86c2975785}
+homescreen binding preinit function
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item api \+: the api serving the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 352 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+353 \{
+354 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"binding preinit (was register)"});
+355 \textcolor{keywordflow}{return} 0;
+356 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!reply\+Show\+Window@{reply\+Show\+Window}}
+\index{reply\+Show\+Window@{reply\+Show\+Window}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{reply\+Show\+Window(afb\+\_\+req\+\_\+t request)}{replyShowWindow(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void reply\+Show\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a710bcc84a61e11dbd4517def2764ff95}{}\label{homescreen_8cpp_a710bcc84a61e11dbd4517def2764ff95}
+reply\+Show\+Window event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 248 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+249 \{
+250 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+251
+252 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_a59b1c1e115b5a257a585c41f854f5fdd}{replyShowWindow}(request);
+253 \textcolor{keywordflow}{if} (ret != 0) \{
+254 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown parameter"}, \_\_FUNCTION\_\_);
+255 \textcolor{keywordflow}{return};
+256 \}
+257
+258 \textcolor{comment}{// response to HomeScreen}
+259 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+260 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+261 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+262 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [replyShowWindow]"});
+263 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!show\+Information@{show\+Information}}
+\index{show\+Information@{show\+Information}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{show\+Information(afb\+\_\+req\+\_\+t request)}{showInformation(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void show\+Information (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a916c8dd31373222ee2b6ef89aca91978}{}\label{homescreen_8cpp_a916c8dd31373222ee2b6ef89aca91978}
+show\+Information event
+
+the contents to homescreen which display at bottom area.
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 306 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+307 \{
+308 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+309
+310 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_a0645294f89c67fd3c9b0cce62a900f69}{showInformation}(request);
+311 \textcolor{keywordflow}{if} (ret != 0) \{
+312 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown parameter"}, \_\_FUNCTION\_\_);
+313 \textcolor{keywordflow}{return};
+314 \}
+315
+316 \textcolor{comment}{// response to Application}
+317 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+318 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+319 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+320 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [showInformation]"});
+321 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!show\+Notification@{show\+Notification}}
+\index{show\+Notification@{show\+Notification}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{show\+Notification(afb\+\_\+req\+\_\+t request)}{showNotification(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void show\+Notification (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_ad96a84455e8676abb4486e48ef67b1ad}{}\label{homescreen_8cpp_ad96a84455e8676abb4486e48ef67b1ad}
+show\+Notification event
+
+the contents to homescreen which display at top area.
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 277 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+278 \{
+279 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+280
+281 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_a857934af280081ca6ac61d9f2cac37c5}{showNotification}(request);
+282 \textcolor{keywordflow}{if} (ret != 0) \{
+283 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown parameter"}, \_\_FUNCTION\_\_);
+284 \textcolor{keywordflow}{return};
+285 \}
+286
+287 \textcolor{comment}{// response to Application}
+288 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+289 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+290 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+291 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [showNotification]"});
+292 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!show\+Window@{show\+Window}}
+\index{show\+Window@{show\+Window}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{show\+Window(afb\+\_\+req\+\_\+t request)}{showWindow(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void show\+Window (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_ae475c69e7ca2a539ae0fb40a82963ac1}{}\label{homescreen_8cpp_ae475c69e7ca2a539ae0fb40a82963ac1}
+show\+Window event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: the request
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 194 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+195 \{
+196 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+197
+198 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_afed8158f276d1d22c32b0d89e970d442}{showWindow}(request);
+199 \textcolor{keywordflow}{if} (ret != 0) \{
+200 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown parameter"}, \_\_FUNCTION\_\_);
+201 \textcolor{keywordflow}{return};
+202 \}
+203
+204 \textcolor{comment}{// response to HomeScreen}
+205 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+206 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+207 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+208 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [showWindow]"});
+209 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!subscribe@{subscribe}}
+\index{subscribe@{subscribe}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{subscribe(afb\+\_\+req\+\_\+t request)}{subscribe(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void subscribe (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a6e942ab2b7207d2aef9adce71a4574e8}{}\label{homescreen_8cpp_a6e942ab2b7207d2aef9adce71a4574e8}
+Subscribe event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event \+: Event name. Event list is written in \hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp}
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 140 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+141 \{
+142 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+143
+144 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_a1b8a4e42342c4bcdc4e7dc4934e02469}{subscribe}(request);
+145 \textcolor{keywordflow}{if}(ret) \{
+146 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"afb\_req\_subscribe failed"}, \textcolor{stringliteral}{"called %s."}, \_\_FUNCTION\_\_);
+147 \textcolor{keywordflow}{return};
+148 \}
+149
+150 \textcolor{comment}{/*create response json object*/}
+151 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+152 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+153 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+154 afb\_req\_success\_f(request, res, \textcolor{stringliteral}{"homescreen binder subscribe."});
+155 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!tap\+\_\+shortcut@{tap\+\_\+shortcut}}
+\index{tap\+\_\+shortcut@{tap\+\_\+shortcut}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{tap\+\_\+shortcut(afb\+\_\+req\+\_\+t request)}{tap_shortcut(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void tap\+\_\+shortcut (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_ab8abb667377924d5c073611738febbd3}{}\label{homescreen_8cpp_ab8abb667377924d5c073611738febbd3}
+tap\+\_\+shortcut notify for homescreen When Shortcut area is tapped, notify these applciations
+
+\subparagraph*{Parameters}
+
+Request key
+\begin{DoxyItemize}
+\item application\+\_\+id \+: application id
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 58 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+59 \{
+60 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+61 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_a9910fc27c412530b5b9854b00bd16c07}{tap\_shortcut}(request);
+62 \textcolor{keywordflow}{if} (ret != 0) \{
+63 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"failed"}, \textcolor{stringliteral}{"called %s, Unknown parameter"}, \_\_FUNCTION\_\_);
+64 \textcolor{keywordflow}{return};
+65 \}
+66
+67 \textcolor{comment}{// response to HomeScreen}
+68 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+69 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+70 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+71 afb\_req\_success(request, res, \textcolor{stringliteral}{"afb\_event\_push event [tap\_shortcut]"});
+72 \}
+\end{DoxyCode}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!unsubscribe@{unsubscribe}}
+\index{unsubscribe@{unsubscribe}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{unsubscribe(afb\+\_\+req\+\_\+t request)}{unsubscribe(afb_req_t request)}}]{\setlength{\rightskip}{0pt plus 5cm}static void unsubscribe (
+\begin{DoxyParamCaption}
+\item[{afb\+\_\+req\+\_\+t}]{request}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a3b162ab1856a8fa4284cb2c5c35ea748}{}\label{homescreen_8cpp_a3b162ab1856a8fa4284cb2c5c35ea748}
+Unsubscribe event
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item event \+: Event name. Event list is written in \hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp}
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 167 of file homescreen.\+cpp.
+
+
+\begin{DoxyCode}
+168 \{
+169 \hyperlink{include_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{HMI\_NOTICE}(\textcolor{stringliteral}{"homescreen-service"},\textcolor{stringliteral}{"called."});
+170
+171 \textcolor{keywordtype}{int} ret = \hyperlink{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{g\_client\_manager}->\hyperlink{class_h_s___client_manager_ac86314afbb90116e2f02ce071166226e}{unsubscribe}(request);
+172 \textcolor{keywordflow}{if}(ret) \{
+173 afb\_req\_fail\_f(request, \textcolor{stringliteral}{"afb\_req\_unsubscribe failed"}, \textcolor{stringliteral}{"called %s."}, \_\_FUNCTION\_\_);
+174 \textcolor{keywordflow}{return};
+175 \}
+176
+177 \textcolor{comment}{/*create response json object*/}
+178 \textcolor{keyword}{struct }json\_object *res = json\_object\_new\_object();
+179 \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\_add\_object\_to\_json\_object\_func}(res, \_\_FUNCTION\_\_, 2,
+180 \hyperlink{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{\_error}, ret);
+181 afb\_req\_success\_f(request, res, \textcolor{stringliteral}{"homescreen binder unsubscribe success."});
+182 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\index{homescreen.\+cpp@{homescreen.\+cpp}!\+\_\+application\+\_\+id@{\+\_\+application\+\_\+id}}
+\index{\+\_\+application\+\_\+id@{\+\_\+application\+\_\+id}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+application\+\_\+id}{_application_id}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+application\+\_\+id\mbox{[}$\,$\mbox{]} = \char`\"{}application\+\_\+id\char`\"{}}\hypertarget{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}{}\label{homescreen_8cpp_a6a0e1db2562b442f8131ddf64b61d1ba}
+
+
+Definition at line 28 of file homescreen.\+cpp.
+
+\index{homescreen.\+cpp@{homescreen.\+cpp}!\+\_\+display\+\_\+message@{\+\_\+display\+\_\+message}}
+\index{\+\_\+display\+\_\+message@{\+\_\+display\+\_\+message}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+display\+\_\+message}{_display_message}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+display\+\_\+message\mbox{[}$\,$\mbox{]} = \char`\"{}display\+\_\+message\char`\"{}}\hypertarget{homescreen_8cpp_abfd6c1d6f316fa952b11553f8f275e92}{}\label{homescreen_8cpp_abfd6c1d6f316fa952b11553f8f275e92}
+
+
+Definition at line 29 of file homescreen.\+cpp.
+
+\index{homescreen.\+cpp@{homescreen.\+cpp}!\+\_\+error@{\+\_\+error}}
+\index{\+\_\+error@{\+\_\+error}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+error}{_error}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+error\mbox{[}$\,$\mbox{]} = \char`\"{}error\char`\"{}}\hypertarget{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}{}\label{homescreen_8cpp_aed1c5296a2e6d34945507a0fca17a376}
+
+
+Definition at line 27 of file homescreen.\+cpp.
+
+\index{homescreen.\+cpp@{homescreen.\+cpp}!\+\_\+reply\+\_\+message@{\+\_\+reply\+\_\+message}}
+\index{\+\_\+reply\+\_\+message@{\+\_\+reply\+\_\+message}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+reply\+\_\+message}{_reply_message}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+reply\+\_\+message\mbox{[}$\,$\mbox{]} = \char`\"{}reply\+\_\+message\char`\"{}}\hypertarget{homescreen_8cpp_a79b0f0b481161527ccb80e83da143219}{}\label{homescreen_8cpp_a79b0f0b481161527ccb80e83da143219}
+
+
+Definition at line 30 of file homescreen.\+cpp.
+
+\index{homescreen.\+cpp@{homescreen.\+cpp}!afb\+Binding\+Export@{afb\+Binding\+Export}}
+\index{afb\+Binding\+Export@{afb\+Binding\+Export}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{afb\+Binding\+Export}{afbBindingExport}}]{\setlength{\rightskip}{0pt plus 5cm}const afb\+\_\+binding\+\_\+t afb\+Binding\+Export}\hypertarget{homescreen_8cpp_a970e7864dba290a0371534ad4961bcc5}{}\label{homescreen_8cpp_a970e7864dba290a0371534ad4961bcc5}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ .api = \textcolor{stringliteral}{"homescreen"},
+ .specification = NULL,
+ .info = NULL,
+ .verbs = \hyperlink{homescreen_8cpp_a01e06b6317acebc1d5686386b15f0872}{verbs},
+ .preinit = \hyperlink{homescreen_8cpp_ab3b1914acb53dcc038c1cf86c2975785}{preinit},
+ .init = \hyperlink{homescreen_8cpp_a5d7de3437d5dcb79fa035959d95878db}{init},
+ .onevent = \hyperlink{homescreen_8cpp_a60665935681c76d38b3833912109cdd3}{onevent}
+\}
+\end{DoxyCode}
+
+
+Definition at line 394 of file homescreen.\+cpp.
+
+\index{homescreen.\+cpp@{homescreen.\+cpp}!g\+\_\+client\+\_\+manager@{g\+\_\+client\+\_\+manager}}
+\index{g\+\_\+client\+\_\+manager@{g\+\_\+client\+\_\+manager}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{g\+\_\+client\+\_\+manager}{g_client_manager}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf H\+S\+\_\+\+Client\+Manager}$\ast$ g\+\_\+client\+\_\+manager = {\bf H\+S\+\_\+\+Client\+Manager\+::instance}()\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}{}\label{homescreen_8cpp_a501f5bca8425de3171d46e0723f466ec}
+
+
+Definition at line 32 of file homescreen.\+cpp.
+
+\index{homescreen.\+cpp@{homescreen.\+cpp}!verbs@{verbs}}
+\index{verbs@{verbs}!homescreen.\+cpp@{homescreen.\+cpp}}
+\subsubsection[{\texorpdfstring{verbs}{verbs}}]{\setlength{\rightskip}{0pt plus 5cm}const afb\+\_\+verb\+\_\+t verbs\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{homescreen_8cpp_a01e06b6317acebc1d5686386b15f0872}{}\label{homescreen_8cpp_a01e06b6317acebc1d5686386b15f0872}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+
+ \{ .verb=\textcolor{stringliteral}{"ping"}, .callback=\hyperlink{homescreen_8cpp_ace65cfe6008848a3cd66581f536cc4c9}{pingSample} \},
+ \{ .verb=\textcolor{stringliteral}{"tap\_shortcut"}, .callback=\hyperlink{homescreen_8cpp_ab8abb667377924d5c073611738febbd3}{tap\_shortcut} \},
+ \{ .verb=\textcolor{stringliteral}{"showWindow"}, .callback=\hyperlink{homescreen_8cpp_ae475c69e7ca2a539ae0fb40a82963ac1}{showWindow} \},
+ \{ .verb=\textcolor{stringliteral}{"hideWindow"}, .callback=\hyperlink{homescreen_8cpp_a057c380ea38cfba4e2fbccc40fc21798}{hideWindow} \},
+ \{ .verb=\textcolor{stringliteral}{"replyShowWindow"}, .callback=\hyperlink{homescreen_8cpp_a710bcc84a61e11dbd4517def2764ff95}{replyShowWindow} \},
+ \{ .verb=\textcolor{stringliteral}{"on\_screen\_message"}, .callback=\hyperlink{homescreen_8cpp_a0df2b60ff6cd56b53dc87b36bfee2b91}{on\_screen\_message} \},
+ \{ .verb=\textcolor{stringliteral}{"on\_screen\_reply"}, .callback=\hyperlink{homescreen_8cpp_a7443596f6ddf459824ecd8138c681532}{on\_screen\_reply} \},
+ \{ .verb=\textcolor{stringliteral}{"subscribe"}, .callback=\hyperlink{homescreen_8cpp_a6e942ab2b7207d2aef9adce71a4574e8}{subscribe} \},
+ \{ .verb=\textcolor{stringliteral}{"unsubscribe"}, .callback=\hyperlink{homescreen_8cpp_a3b162ab1856a8fa4284cb2c5c35ea748}{unsubscribe} \},
+ \{ .verb=\textcolor{stringliteral}{"showNotification"}, .callback=\hyperlink{homescreen_8cpp_ad96a84455e8676abb4486e48ef67b1ad}{showNotification} \},
+ \{ .verb=\textcolor{stringliteral}{"showInformation"}, .callback=\hyperlink{homescreen_8cpp_a916c8dd31373222ee2b6ef89aca91978}{showInformation} \},
+ \{NULL \}
+\}
+\end{DoxyCode}
+
+
+Definition at line 326 of file homescreen.\+cpp.
+
diff --git a/doc/api-ref/latex/d6/de3/structwindow.tex b/doc/api-ref/latex/d6/de3/structwindow.tex
new file mode 100644
index 0000000..bf61d03
--- /dev/null
+++ b/doc/api-ref/latex/d6/de3/structwindow.tex
@@ -0,0 +1,170 @@
+\hypertarget{structwindow}{}\section{window Struct Reference}
+\label{structwindow}\index{window@{window}}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+struct \hyperlink{structdisplay}{display} $\ast$ \hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display}
+\item
+struct \hyperlink{structgeometry}{geometry} \hyperlink{structgeometry}{geometry} \hyperlink{structwindow_ad2b6c8ed8044b41fd1189a0ce26d539a}{window\+\_\+size}
+\item
+\begin{tabbing}
+xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
+struct \{\\
+\>GLuint \hyperlink{structwindow_a5202f3b60e262a6fa4fcee68dd47cb67}{rotation\_uniform}\\
+\>GLuint \hyperlink{structwindow_aaf965f90f9fc938db2315ff62028c362}{pos}\\
+\>GLuint \hyperlink{structwindow_aef10fe94766ccd4831ee611c5ad0e55c}{col}\\
+\} \hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}\\
+
+\end{tabbing}\item
+uint32\+\_\+t \hyperlink{structwindow_a72629bf021a361ad900504732a74cb68}{benchmark\+\_\+time}
+\item
+uint32\+\_\+t \hyperlink{structwindow_a633864bb495ec265bee220a5c70cc98f}{frames}
+\item
+struct wl\+\_\+egl\+\_\+window $\ast$ \hyperlink{structwindow_ae41be0955d0e73530e1bc13dfeb9d731}{native}
+\item
+struct wl\+\_\+surface $\ast$ \hyperlink{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}{surface}
+\item
+struct ivi\+\_\+surface $\ast$ \hyperlink{structwindow_a40e2c6fb4178953c820fc1b9f41d4b31}{ivi\+\_\+surface}
+\item
+E\+G\+L\+Surface \hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\+\_\+surface}
+\item
+struct wl\+\_\+callback $\ast$ \hyperlink{structwindow_a35ba639556fa19d9273dad0953a6807e}{callback}
+\item
+int \hyperlink{structwindow_a8da44798a9e1feb7ed3fbd18ec3a28b6}{fullscreen}
+\item
+int \hyperlink{structwindow_a026a50808d8323a5a73d585c19916fa8}{opaque}
+\item
+int \hyperlink{structwindow_a0e634038f669aff472012f25ea250b40}{buffer\+\_\+size}
+\item
+int \hyperlink{structwindow_a851bcb65083f5ab5ff768b09522bed70}{frame\+\_\+sync}
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 136 of file simple-\/egl.\+cpp.
+
+
+
+\subsection{Member Data Documentation}
+\index{window@{window}!benchmark\+\_\+time@{benchmark\+\_\+time}}
+\index{benchmark\+\_\+time@{benchmark\+\_\+time}!window@{window}}
+\subsubsection[{\texorpdfstring{benchmark\+\_\+time}{benchmark_time}}]{\setlength{\rightskip}{0pt plus 5cm}uint32\+\_\+t window\+::benchmark\+\_\+time}\hypertarget{structwindow_a72629bf021a361ad900504732a74cb68}{}\label{structwindow_a72629bf021a361ad900504732a74cb68}
+
+
+Definition at line 145 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!buffer\+\_\+size@{buffer\+\_\+size}}
+\index{buffer\+\_\+size@{buffer\+\_\+size}!window@{window}}
+\subsubsection[{\texorpdfstring{buffer\+\_\+size}{buffer_size}}]{\setlength{\rightskip}{0pt plus 5cm}int window\+::buffer\+\_\+size}\hypertarget{structwindow_a0e634038f669aff472012f25ea250b40}{}\label{structwindow_a0e634038f669aff472012f25ea250b40}
+
+
+Definition at line 151 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!callback@{callback}}
+\index{callback@{callback}!window@{window}}
+\subsubsection[{\texorpdfstring{callback}{callback}}]{\setlength{\rightskip}{0pt plus 5cm}struct wl\+\_\+callback$\ast$ window\+::callback}\hypertarget{structwindow_a35ba639556fa19d9273dad0953a6807e}{}\label{structwindow_a35ba639556fa19d9273dad0953a6807e}
+
+
+Definition at line 150 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!col@{col}}
+\index{col@{col}!window@{window}}
+\subsubsection[{\texorpdfstring{col}{col}}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint window\+::col}\hypertarget{structwindow_aef10fe94766ccd4831ee611c5ad0e55c}{}\label{structwindow_aef10fe94766ccd4831ee611c5ad0e55c}
+
+
+Definition at line 142 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!display@{display}}
+\index{display@{display}!window@{window}}
+\subsubsection[{\texorpdfstring{display}{display}}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf display}$\ast$ window\+::display}\hypertarget{structwindow_a129486f2bd23791194f389ca1405cfd4}{}\label{structwindow_a129486f2bd23791194f389ca1405cfd4}
+
+
+Definition at line 137 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!egl\+\_\+surface@{egl\+\_\+surface}}
+\index{egl\+\_\+surface@{egl\+\_\+surface}!window@{window}}
+\subsubsection[{\texorpdfstring{egl\+\_\+surface}{egl_surface}}]{\setlength{\rightskip}{0pt plus 5cm}E\+G\+L\+Surface window\+::egl\+\_\+surface}\hypertarget{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{}\label{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}
+
+
+Definition at line 149 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!frame\+\_\+sync@{frame\+\_\+sync}}
+\index{frame\+\_\+sync@{frame\+\_\+sync}!window@{window}}
+\subsubsection[{\texorpdfstring{frame\+\_\+sync}{frame_sync}}]{\setlength{\rightskip}{0pt plus 5cm}int window\+::frame\+\_\+sync}\hypertarget{structwindow_a851bcb65083f5ab5ff768b09522bed70}{}\label{structwindow_a851bcb65083f5ab5ff768b09522bed70}
+
+
+Definition at line 151 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!frames@{frames}}
+\index{frames@{frames}!window@{window}}
+\subsubsection[{\texorpdfstring{frames}{frames}}]{\setlength{\rightskip}{0pt plus 5cm}uint32\+\_\+t window\+::frames}\hypertarget{structwindow_a633864bb495ec265bee220a5c70cc98f}{}\label{structwindow_a633864bb495ec265bee220a5c70cc98f}
+
+
+Definition at line 145 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!fullscreen@{fullscreen}}
+\index{fullscreen@{fullscreen}!window@{window}}
+\subsubsection[{\texorpdfstring{fullscreen}{fullscreen}}]{\setlength{\rightskip}{0pt plus 5cm}int window\+::fullscreen}\hypertarget{structwindow_a8da44798a9e1feb7ed3fbd18ec3a28b6}{}\label{structwindow_a8da44798a9e1feb7ed3fbd18ec3a28b6}
+
+
+Definition at line 151 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!gl@{gl}}
+\index{gl@{gl}!window@{window}}
+\subsubsection[{\texorpdfstring{gl}{gl}}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \} window\+::gl}\hypertarget{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{}\label{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}
+\index{window@{window}!ivi\+\_\+surface@{ivi\+\_\+surface}}
+\index{ivi\+\_\+surface@{ivi\+\_\+surface}!window@{window}}
+\subsubsection[{\texorpdfstring{ivi\+\_\+surface}{ivi_surface}}]{\setlength{\rightskip}{0pt plus 5cm}struct ivi\+\_\+surface$\ast$ window\+::ivi\+\_\+surface}\hypertarget{structwindow_a40e2c6fb4178953c820fc1b9f41d4b31}{}\label{structwindow_a40e2c6fb4178953c820fc1b9f41d4b31}
+
+
+Definition at line 148 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!native@{native}}
+\index{native@{native}!window@{window}}
+\subsubsection[{\texorpdfstring{native}{native}}]{\setlength{\rightskip}{0pt plus 5cm}struct wl\+\_\+egl\+\_\+window$\ast$ window\+::native}\hypertarget{structwindow_ae41be0955d0e73530e1bc13dfeb9d731}{}\label{structwindow_ae41be0955d0e73530e1bc13dfeb9d731}
+
+
+Definition at line 146 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!opaque@{opaque}}
+\index{opaque@{opaque}!window@{window}}
+\subsubsection[{\texorpdfstring{opaque}{opaque}}]{\setlength{\rightskip}{0pt plus 5cm}int window\+::opaque}\hypertarget{structwindow_a026a50808d8323a5a73d585c19916fa8}{}\label{structwindow_a026a50808d8323a5a73d585c19916fa8}
+
+
+Definition at line 151 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!pos@{pos}}
+\index{pos@{pos}!window@{window}}
+\subsubsection[{\texorpdfstring{pos}{pos}}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint window\+::pos}\hypertarget{structwindow_aaf965f90f9fc938db2315ff62028c362}{}\label{structwindow_aaf965f90f9fc938db2315ff62028c362}
+
+
+Definition at line 141 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!rotation\+\_\+uniform@{rotation\+\_\+uniform}}
+\index{rotation\+\_\+uniform@{rotation\+\_\+uniform}!window@{window}}
+\subsubsection[{\texorpdfstring{rotation\+\_\+uniform}{rotation_uniform}}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint window\+::rotation\+\_\+uniform}\hypertarget{structwindow_a5202f3b60e262a6fa4fcee68dd47cb67}{}\label{structwindow_a5202f3b60e262a6fa4fcee68dd47cb67}
+
+
+Definition at line 140 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!surface@{surface}}
+\index{surface@{surface}!window@{window}}
+\subsubsection[{\texorpdfstring{surface}{surface}}]{\setlength{\rightskip}{0pt plus 5cm}struct wl\+\_\+surface$\ast$ window\+::surface}\hypertarget{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}{}\label{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}
+
+
+Definition at line 147 of file simple-\/egl.\+cpp.
+
+\index{window@{window}!window\+\_\+size@{window\+\_\+size}}
+\index{window\+\_\+size@{window\+\_\+size}!window@{window}}
+\subsubsection[{\texorpdfstring{window\+\_\+size}{window_size}}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf geometry} {\bf geometry} window\+::window\+\_\+size}\hypertarget{structwindow_ad2b6c8ed8044b41fd1189a0ce26d539a}{}\label{structwindow_ad2b6c8ed8044b41fd1189a0ce26d539a}
+
+
+Definition at line 138 of file simple-\/egl.\+cpp.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+libhomescreen/\hyperlink{simple-egl_8cpp}{simple-\/egl.\+cpp}\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/d6/df5/structdisplay.tex b/doc/api-ref/latex/d6/df5/structdisplay.tex
new file mode 100644
index 0000000..0205443
--- /dev/null
+++ b/doc/api-ref/latex/d6/df5/structdisplay.tex
@@ -0,0 +1,116 @@
+\hypertarget{structdisplay}{}\section{display Struct Reference}
+\label{structdisplay}\index{display@{display}}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+struct wl\+\_\+display $\ast$ \hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display}
+\item
+struct wl\+\_\+registry $\ast$ \hyperlink{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{registry}
+\item
+struct wl\+\_\+compositor $\ast$ \hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor}
+\item
+struct wl\+\_\+seat $\ast$ \hyperlink{structdisplay_a9dd8fd9967beb6b3767bd93011373bb8}{seat}
+\item
+\begin{tabbing}
+xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
+struct \{\\
+\>EGLDisplay \hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}\\
+\>EGLContext \hyperlink{structdisplay_a3420940a29a710e0e5ebd41ba462cc00}{ctx}\\
+\>EGLConfig \hyperlink{structdisplay_a880aef9408b499f5b749541dc6e396c3}{conf}\\
+\} \hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}\\
+
+\end{tabbing}\item
+struct \hyperlink{structwindow}{window} $\ast$ \hyperlink{structdisplay_a9974d560bec291487ae2440f897ffc58}{window}
+\item
+struct ivi\+\_\+application $\ast$ \hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\+\_\+application}
+\item
+P\+F\+N\+E\+G\+L\+S\+W\+A\+P\+B\+U\+F\+F\+E\+R\+S\+W\+I\+T\+H\+D\+A\+M\+A\+G\+E\+E\+X\+T\+P\+R\+OC \hyperlink{structdisplay_a48c46c118e4765ef06596f6341c8f23f}{swap\+\_\+buffers\+\_\+with\+\_\+damage}
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 116 of file simple-\/egl.\+cpp.
+
+
+
+\subsection{Member Data Documentation}
+\index{display@{display}!compositor@{compositor}}
+\index{compositor@{compositor}!display@{display}}
+\subsubsection[{\texorpdfstring{compositor}{compositor}}]{\setlength{\rightskip}{0pt plus 5cm}struct wl\+\_\+compositor$\ast$ display\+::compositor}\hypertarget{structdisplay_a41ba32dfde812165dda5b62885000c78}{}\label{structdisplay_a41ba32dfde812165dda5b62885000c78}
+
+
+Definition at line 119 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!conf@{conf}}
+\index{conf@{conf}!display@{display}}
+\subsubsection[{\texorpdfstring{conf}{conf}}]{\setlength{\rightskip}{0pt plus 5cm}E\+G\+L\+Config display\+::conf}\hypertarget{structdisplay_a880aef9408b499f5b749541dc6e396c3}{}\label{structdisplay_a880aef9408b499f5b749541dc6e396c3}
+
+
+Definition at line 124 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!ctx@{ctx}}
+\index{ctx@{ctx}!display@{display}}
+\subsubsection[{\texorpdfstring{ctx}{ctx}}]{\setlength{\rightskip}{0pt plus 5cm}E\+G\+L\+Context display\+::ctx}\hypertarget{structdisplay_a3420940a29a710e0e5ebd41ba462cc00}{}\label{structdisplay_a3420940a29a710e0e5ebd41ba462cc00}
+
+
+Definition at line 123 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!display@{display}}
+\index{display@{display}!display@{display}}
+\subsubsection[{\texorpdfstring{display}{display}}]{\setlength{\rightskip}{0pt plus 5cm}struct wl\+\_\+display$\ast$ display\+::display}\hypertarget{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{}\label{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}
+
+
+Definition at line 117 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!dpy@{dpy}}
+\index{dpy@{dpy}!display@{display}}
+\subsubsection[{\texorpdfstring{dpy}{dpy}}]{\setlength{\rightskip}{0pt plus 5cm}E\+G\+L\+Display display\+::dpy}\hypertarget{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{}\label{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}
+
+
+Definition at line 122 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!egl@{egl}}
+\index{egl@{egl}!display@{display}}
+\subsubsection[{\texorpdfstring{egl}{egl}}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \} display\+::egl}\hypertarget{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{}\label{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}
+\index{display@{display}!ivi\+\_\+application@{ivi\+\_\+application}}
+\index{ivi\+\_\+application@{ivi\+\_\+application}!display@{display}}
+\subsubsection[{\texorpdfstring{ivi\+\_\+application}{ivi_application}}]{\setlength{\rightskip}{0pt plus 5cm}struct ivi\+\_\+application$\ast$ display\+::ivi\+\_\+application}\hypertarget{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{}\label{structdisplay_a24c073faff3bb4799c2d46291f27ab89}
+
+
+Definition at line 127 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!registry@{registry}}
+\index{registry@{registry}!display@{display}}
+\subsubsection[{\texorpdfstring{registry}{registry}}]{\setlength{\rightskip}{0pt plus 5cm}struct wl\+\_\+registry$\ast$ display\+::registry}\hypertarget{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{}\label{structdisplay_a925781323f5c8eb84ef2225ed129de4b}
+
+
+Definition at line 118 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!seat@{seat}}
+\index{seat@{seat}!display@{display}}
+\subsubsection[{\texorpdfstring{seat}{seat}}]{\setlength{\rightskip}{0pt plus 5cm}struct wl\+\_\+seat$\ast$ display\+::seat}\hypertarget{structdisplay_a9dd8fd9967beb6b3767bd93011373bb8}{}\label{structdisplay_a9dd8fd9967beb6b3767bd93011373bb8}
+
+
+Definition at line 120 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!swap\+\_\+buffers\+\_\+with\+\_\+damage@{swap\+\_\+buffers\+\_\+with\+\_\+damage}}
+\index{swap\+\_\+buffers\+\_\+with\+\_\+damage@{swap\+\_\+buffers\+\_\+with\+\_\+damage}!display@{display}}
+\subsubsection[{\texorpdfstring{swap\+\_\+buffers\+\_\+with\+\_\+damage}{swap_buffers_with_damage}}]{\setlength{\rightskip}{0pt plus 5cm}P\+F\+N\+E\+G\+L\+S\+W\+A\+P\+B\+U\+F\+F\+E\+R\+S\+W\+I\+T\+H\+D\+A\+M\+A\+G\+E\+E\+X\+T\+P\+R\+OC display\+::swap\+\_\+buffers\+\_\+with\+\_\+damage}\hypertarget{structdisplay_a48c46c118e4765ef06596f6341c8f23f}{}\label{structdisplay_a48c46c118e4765ef06596f6341c8f23f}
+
+
+Definition at line 129 of file simple-\/egl.\+cpp.
+
+\index{display@{display}!window@{window}}
+\index{window@{window}!display@{display}}
+\subsubsection[{\texorpdfstring{window}{window}}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf window}$\ast$ display\+::window}\hypertarget{structdisplay_a9974d560bec291487ae2440f897ffc58}{}\label{structdisplay_a9974d560bec291487ae2440f897ffc58}
+
+
+Definition at line 126 of file simple-\/egl.\+cpp.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+libhomescreen/\hyperlink{simple-egl_8cpp}{simple-\/egl.\+cpp}\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/d6/dff/src_2hmi-debug_8h.tex b/doc/api-ref/latex/d6/dff/src_2hmi-debug_8h.tex
new file mode 100644
index 0000000..7aa760c
--- /dev/null
+++ b/doc/api-ref/latex/d6/dff/src_2hmi-debug_8h.tex
@@ -0,0 +1,242 @@
+\hypertarget{src_2hmi-debug_8h}{}\section{src/hmi-\/debug.h File Reference}
+\label{src_2hmi-debug_8h}\index{src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+{\ttfamily \#include $<$time.\+h$>$}\\*
+{\ttfamily \#include $<$stdio.\+h$>$}\\*
+{\ttfamily \#include $<$stdarg.\+h$>$}\\*
+{\ttfamily \#include $<$string.\+h$>$}\\*
+{\ttfamily \#include $<$stdlib.\+h$>$}\\*
+\subsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\#define \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}~(strrchr(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \textquotesingle{}/\textquotesingle{}) ? strrchr(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \textquotesingle{}/\textquotesingle{}) + 1 \+: \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+)
+\item
+\#define \hyperlink{src_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{H\+M\+I\+\_\+\+E\+R\+R\+OR}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
+\item
+\#define \hyperlink{src_2hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
+\item
+\#define \hyperlink{src_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
+\item
+\#define \hyperlink{src_2hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}{H\+M\+I\+\_\+\+I\+N\+FO}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
+\item
+\#define \hyperlink{src_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{H\+M\+I\+\_\+\+D\+E\+B\+UG}(prefix, args, ...)~\hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}, \hyperlink{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+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{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL} \{ \\*
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE} = 0,
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR},
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG},
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE},
+\\*
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO},
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG},
+\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX} = L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG,
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE} = 0,
+\\*
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR},
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG},
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE},
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO},
+\\*
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG},
+\hyperlink{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX} = L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG
+ \}
+\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+static void \hyperlink{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG} (enum \hyperlink{include_2hmi-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{src_2hmi-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}
+\index{src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}!\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+@{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}}
+\index{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+@{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{\+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}{__FILENAME__}}]{\setlength{\rightskip}{0pt plus 5cm}\#define \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+~(strrchr(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \textquotesingle{}/\textquotesingle{}) ? strrchr(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \textquotesingle{}/\textquotesingle{}) + 1 \+: \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+)}\hypertarget{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}{}\label{src_2hmi-debug_8h_a5fccb4fc71e44089a1b1a77fc76c0b68}
+
+
+Definition at line 40 of file hmi-\/debug.\+h.
+
+\index{src/hmi-\/debug.\+h@{src/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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+D\+E\+B\+UG}{HMI_DEBUG}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+D\+E\+B\+UG(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{src_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{}\label{src_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}
+
+
+Definition at line 46 of file hmi-\/debug.\+h.
+
+\index{src/hmi-\/debug.\+h@{src/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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+E\+R\+R\+OR}{HMI_ERROR}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+E\+R\+R\+OR(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{src_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{}\label{src_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}
+
+
+Definition at line 42 of file hmi-\/debug.\+h.
+
+\index{src/hmi-\/debug.\+h@{src/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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+I\+N\+FO}{HMI_INFO}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+I\+N\+FO(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{src_2hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}{}\label{src_2hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}
+
+
+Definition at line 45 of file hmi-\/debug.\+h.
+
+\index{src/hmi-\/debug.\+h@{src/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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}{HMI_NOTICE}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+N\+O\+T\+I\+CE(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{src_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{}\label{src_2hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}
+
+
+Definition at line 44 of file hmi-\/debug.\+h.
+
+\index{src/hmi-\/debug.\+h@{src/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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}{HMI_WARNING}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG(
+\begin{DoxyParamCaption}
+\item[{}]{prefix, }
+\item[{}]{args, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)~{\bf \+\_\+\+H\+M\+I\+\_\+\+L\+OG}({\bf L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}, {\bf \+\_\+\+\_\+\+F\+I\+L\+E\+N\+A\+M\+E\+\_\+\+\_\+}, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\hypertarget{src_2hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}{}\label{src_2hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}
+
+
+Definition at line 43 of file hmi-\/debug.\+h.
+
+
+
+\subsection{Enumeration Type Documentation}
+\index{src/hmi-\/debug.\+h@{src/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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{L\+O\+G\+\_\+\+L\+E\+V\+EL}{LOG_LEVEL}}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf L\+O\+G\+\_\+\+L\+E\+V\+EL}}\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}
+\begin{Desc}
+\item[Enumerator]\par
+\begin{description}
+\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}
+}]\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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}
+}]\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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}
+}]\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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}
+}]\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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}
+}]\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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}
+}]\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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}
+}]\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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}
+}]\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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/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}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}
+}]\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}\index{src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}}\item[{\em
+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX\hypertarget{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{}\label{src_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}
+}]\end{description}
+\end{Desc}
+
+
+Definition at line 30 of file hmi-\/debug.\+h.
+
+
+\begin{DoxyCode}
+30 \{
+31 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{LOG\_LEVEL\_NONE} = 0,
+32 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{LOG\_LEVEL\_ERROR},
+33 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{LOG\_LEVEL\_WARNING},
+34 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{LOG\_LEVEL\_NOTICE},
+35 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{LOG\_LEVEL\_INFO},
+36 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{LOG\_LEVEL\_DEBUG},
+37 \hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{LOG\_LEVEL\_MAX} = LOG\_LEVEL\_DEBUG
+38 \};
+\end{DoxyCode}
+
+
+\subsection{Function Documentation}
+\index{src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}!\+\_\+\+H\+M\+I\+\_\+\+L\+OG@{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}}
+\index{\+\_\+\+H\+M\+I\+\_\+\+L\+OG@{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{\+\_\+\+H\+M\+I\+\_\+\+L\+O\+G(enum L\+O\+G\+\_\+\+L\+E\+V\+E\+L level, const char $\ast$file, const char $\ast$func, const int line, const char $\ast$prefix, const char $\ast$log,...)}{_HMI_LOG(enum LOG_LEVEL level, const char *file, const char *func, const int line, const char *prefix, const char *log,...)}}]{\setlength{\rightskip}{0pt plus 5cm}static void \+\_\+\+H\+M\+I\+\_\+\+L\+OG (
+\begin{DoxyParamCaption}
+\item[{enum {\bf 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]}}\hypertarget{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{}\label{src_2hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}
+
+
+Definition at line 50 of file hmi-\/debug.\+h.
+
+
+\begin{DoxyCode}
+51 \{
+52 \textcolor{keyword}{const} \textcolor{keywordtype}{int} log\_level = (getenv(\textcolor{stringliteral}{"USE\_HMI\_DEBUG"}) == NULL)?\hyperlink{include_2hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{LOG\_LEVEL\_ERROR}:atoi(getenv(\textcolor{stringliteral}{"
+ USE\_HMI\_DEBUG"}));
+53 \textcolor{keywordflow}{if}(log\_level < level)
+54 \{
+55 \textcolor{keywordflow}{return};
+56 \}
+57
+58 \textcolor{keywordtype}{char} *message;
+59 \textcolor{keyword}{struct }timespec tp;
+60 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} time;
+61
+62 clock\_gettime(CLOCK\_REALTIME, &tp);
+63 time = (tp.tv\_sec * 1000000L) + (tp.tv\_nsec / 1000);
+64
+65 va\_list args;
+66 va\_start(args, log);
+67 \textcolor{keywordflow}{if} (log == NULL || vasprintf(&message, log, args) < 0)
+68 message = NULL;
+69 fprintf(stderr, \textcolor{stringliteral}{"[%10.3f] [%s %s] [%s, %s(), Line:%d] >>> %s \(\backslash\)n"}, time / 1000.0, prefix,
+ \hyperlink{src_2hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}{ERROR\_FLAG}[level], file, func, line, message);
+70 va\_end(args);
+71 free(message);
+72 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\index{src/hmi-\/debug.\+h@{src/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}!src/hmi-\/debug.\+h@{src/hmi-\/debug.\+h}}
+\subsubsection[{\texorpdfstring{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG}{ERROR_FLAG}}]{\setlength{\rightskip}{0pt plus 5cm}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]}}\hypertarget{src_2hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}{}\label{src_2hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}
+
+
+Definition at line 48 of file hmi-\/debug.\+h.
+
diff --git a/doc/api-ref/latex/d8/d55/hs-client_8cpp.tex b/doc/api-ref/latex/d8/d55/hs-client_8cpp.tex
new file mode 100644
index 0000000..54740d3
--- /dev/null
+++ b/doc/api-ref/latex/d8/d55/hs-client_8cpp.tex
@@ -0,0 +1,65 @@
+\hypertarget{hs-client_8cpp}{}\section{src/hs-\/client.cpp File Reference}
+\label{hs-client_8cpp}\index{src/hs-\/client.\+cpp@{src/hs-\/client.\+cpp}}
+{\ttfamily \#include \char`\"{}hs-\/client.\+h\char`\"{}}\\*
+{\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\\*
+{\ttfamily \#include \char`\"{}hmi-\/debug.\+h\char`\"{}}\\*
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+static const char \hyperlink{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{\+\_\+type} \mbox{[}$\,$\mbox{]} = \char`\"{}type\char`\"{}
+\item
+static const char \hyperlink{hs-client_8cpp_ad177811d47939fe9404de88672a980ab}{\+\_\+text} \mbox{[}$\,$\mbox{]} = \char`\"{}text\char`\"{}
+\item
+static const char \hyperlink{hs-client_8cpp_ae125cd80cb98582684636e46ecf33cac}{\+\_\+info} \mbox{[}$\,$\mbox{]} = \char`\"{}info\char`\"{}
+\item
+static const char \hyperlink{hs-client_8cpp_a5476c8a51997c773220bec9fc02eeaf5}{\+\_\+icon} \mbox{[}$\,$\mbox{]} = \char`\"{}icon\char`\"{}
+\item
+static const char \hyperlink{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}{\+\_\+parameter} \mbox{[}$\,$\mbox{]} = \char`\"{}parameter\char`\"{}
+\item
+static const char \hyperlink{hs-client_8cpp_ac5b722c0d87d2b0e3dfc527b44a1f5db}{\+\_\+replyto} \mbox{[}$\,$\mbox{]} = \char`\"{}replyto\char`\"{}
+\end{DoxyCompactItemize}
+
+
+\subsection{Variable Documentation}
+\index{hs-\/client.\+cpp@{hs-\/client.\+cpp}!\+\_\+icon@{\+\_\+icon}}
+\index{\+\_\+icon@{\+\_\+icon}!hs-\/client.\+cpp@{hs-\/client.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+icon}{_icon}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+icon\mbox{[}$\,$\mbox{]} = \char`\"{}icon\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hs-client_8cpp_a5476c8a51997c773220bec9fc02eeaf5}{}\label{hs-client_8cpp_a5476c8a51997c773220bec9fc02eeaf5}
+
+
+Definition at line 24 of file hs-\/client.\+cpp.
+
+\index{hs-\/client.\+cpp@{hs-\/client.\+cpp}!\+\_\+info@{\+\_\+info}}
+\index{\+\_\+info@{\+\_\+info}!hs-\/client.\+cpp@{hs-\/client.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+info}{_info}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+info\mbox{[}$\,$\mbox{]} = \char`\"{}info\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hs-client_8cpp_ae125cd80cb98582684636e46ecf33cac}{}\label{hs-client_8cpp_ae125cd80cb98582684636e46ecf33cac}
+
+
+Definition at line 23 of file hs-\/client.\+cpp.
+
+\index{hs-\/client.\+cpp@{hs-\/client.\+cpp}!\+\_\+parameter@{\+\_\+parameter}}
+\index{\+\_\+parameter@{\+\_\+parameter}!hs-\/client.\+cpp@{hs-\/client.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+parameter}{_parameter}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+parameter\mbox{[}$\,$\mbox{]} = \char`\"{}parameter\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}{}\label{hs-client_8cpp_ae3fc16098a2461f2f1ae0ac8561437c6}
+
+
+Definition at line 25 of file hs-\/client.\+cpp.
+
+\index{hs-\/client.\+cpp@{hs-\/client.\+cpp}!\+\_\+replyto@{\+\_\+replyto}}
+\index{\+\_\+replyto@{\+\_\+replyto}!hs-\/client.\+cpp@{hs-\/client.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+replyto}{_replyto}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+replyto\mbox{[}$\,$\mbox{]} = \char`\"{}replyto\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hs-client_8cpp_ac5b722c0d87d2b0e3dfc527b44a1f5db}{}\label{hs-client_8cpp_ac5b722c0d87d2b0e3dfc527b44a1f5db}
+
+
+Definition at line 26 of file hs-\/client.\+cpp.
+
+\index{hs-\/client.\+cpp@{hs-\/client.\+cpp}!\+\_\+text@{\+\_\+text}}
+\index{\+\_\+text@{\+\_\+text}!hs-\/client.\+cpp@{hs-\/client.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+text}{_text}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+text\mbox{[}$\,$\mbox{]} = \char`\"{}text\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hs-client_8cpp_ad177811d47939fe9404de88672a980ab}{}\label{hs-client_8cpp_ad177811d47939fe9404de88672a980ab}
+
+
+Definition at line 22 of file hs-\/client.\+cpp.
+
+\index{hs-\/client.\+cpp@{hs-\/client.\+cpp}!\+\_\+type@{\+\_\+type}}
+\index{\+\_\+type@{\+\_\+type}!hs-\/client.\+cpp@{hs-\/client.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+type}{_type}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+type\mbox{[}$\,$\mbox{]} = \char`\"{}type\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}{}\label{hs-client_8cpp_a1c24b43242df87f75631175c75afdcda}
+
+
+Definition at line 21 of file hs-\/client.\+cpp.
+
diff --git a/doc/api-ref/latex/da/dd3/hs-client_8h.tex b/doc/api-ref/latex/da/dd3/hs-client_8h.tex
new file mode 100644
index 0000000..595a0b1
--- /dev/null
+++ b/doc/api-ref/latex/da/dd3/hs-client_8h.tex
@@ -0,0 +1,10 @@
+\hypertarget{hs-client_8h}{}\section{src/hs-\/client.h File Reference}
+\label{hs-client_8h}\index{src/hs-\/client.\+h@{src/hs-\/client.\+h}}
+{\ttfamily \#include $<$string$>$}\\*
+{\ttfamily \#include $<$unordered\+\_\+map$>$}\\*
+{\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\\*
+\subsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \hyperlink{class_h_s___client}{H\+S\+\_\+\+Client}
+\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/dd/d1d/hs-helper_8c.tex b/doc/api-ref/latex/dd/d1d/hs-helper_8c.tex
deleted file mode 100644
index 407da09..0000000
--- a/doc/api-ref/latex/dd/d1d/hs-helper_8c.tex
+++ /dev/null
@@ -1,238 +0,0 @@
-\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/doc/api-ref/latex/dd/d30/hs-clientmanager_8cpp.tex b/doc/api-ref/latex/dd/d30/hs-clientmanager_8cpp.tex
new file mode 100644
index 0000000..540781a
--- /dev/null
+++ b/doc/api-ref/latex/dd/d30/hs-clientmanager_8cpp.tex
@@ -0,0 +1,45 @@
+\hypertarget{hs-clientmanager_8cpp}{}\section{src/hs-\/clientmanager.cpp File Reference}
+\label{hs-clientmanager_8cpp}\index{src/hs-\/clientmanager.\+cpp@{src/hs-\/clientmanager.\+cpp}}
+{\ttfamily \#include $<$algorithm$>$}\\*
+{\ttfamily \#include \char`\"{}hs-\/clientmanager.\+h\char`\"{}}\\*
+{\ttfamily \#include \char`\"{}hmi-\/debug.\+h\char`\"{}}\\*
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+static void \hyperlink{hs-clientmanager_8cpp_a2e9d0e1086eba0a016056dc43bc90a73}{cb\+Remove\+Client\+Ctxt} (void $\ast$data)
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+static const char \hyperlink{hs-clientmanager_8cpp_a8bbab9002543614eacdc7a319d13a476}{\+\_\+homescreen} \mbox{[}$\,$\mbox{]} = \char`\"{}homescreen\char`\"{}
+\end{DoxyCompactItemize}
+
+
+\subsection{Function Documentation}
+\index{hs-\/clientmanager.\+cpp@{hs-\/clientmanager.\+cpp}!cb\+Remove\+Client\+Ctxt@{cb\+Remove\+Client\+Ctxt}}
+\index{cb\+Remove\+Client\+Ctxt@{cb\+Remove\+Client\+Ctxt}!hs-\/clientmanager.\+cpp@{hs-\/clientmanager.\+cpp}}
+\subsubsection[{\texorpdfstring{cb\+Remove\+Client\+Ctxt(void $\ast$data)}{cbRemoveClientCtxt(void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}static void cb\+Remove\+Client\+Ctxt (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{data}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hs-clientmanager_8cpp_a2e9d0e1086eba0a016056dc43bc90a73}{}\label{hs-clientmanager_8cpp_a2e9d0e1086eba0a016056dc43bc90a73}
+
+
+Definition at line 24 of file hs-\/clientmanager.\+cpp.
+
+
+\begin{DoxyCode}
+25 \{
+26 \hyperlink{class_h_s___client_manager_ad86c1fea7d107d52cbf0466fb7a2658b}{HS\_ClientManager::instance}()->\hyperlink{class_h_s___client_manager_adc23f8b3f5cc06eeab39fb24098af3e2}{removeClientCtxt}(data);
+27 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\index{hs-\/clientmanager.\+cpp@{hs-\/clientmanager.\+cpp}!\+\_\+homescreen@{\+\_\+homescreen}}
+\index{\+\_\+homescreen@{\+\_\+homescreen}!hs-\/clientmanager.\+cpp@{hs-\/clientmanager.\+cpp}}
+\subsubsection[{\texorpdfstring{\+\_\+homescreen}{_homescreen}}]{\setlength{\rightskip}{0pt plus 5cm}const char \+\_\+homescreen\mbox{[}$\,$\mbox{]} = \char`\"{}homescreen\char`\"{}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hs-clientmanager_8cpp_a8bbab9002543614eacdc7a319d13a476}{}\label{hs-clientmanager_8cpp_a8bbab9002543614eacdc7a319d13a476}
+
+
+Definition at line 20 of file hs-\/clientmanager.\+cpp.
+
diff --git a/doc/api-ref/latex/dd/ddc/structgeometry.tex b/doc/api-ref/latex/dd/ddc/structgeometry.tex
new file mode 100644
index 0000000..99d7236
--- /dev/null
+++ b/doc/api-ref/latex/dd/ddc/structgeometry.tex
@@ -0,0 +1,38 @@
+\hypertarget{structgeometry}{}\section{geometry Struct Reference}
+\label{structgeometry}\index{geometry@{geometry}}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+int \hyperlink{structgeometry_a854a87ce277335591f06958a2363c3e1}{width}
+\item
+int \hyperlink{structgeometry_a6968ae18c72699d1c164399bf0e5cf14}{height}
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+Definition at line 132 of file simple-\/egl.\+cpp.
+
+
+
+\subsection{Member Data Documentation}
+\index{geometry@{geometry}!height@{height}}
+\index{height@{height}!geometry@{geometry}}
+\subsubsection[{\texorpdfstring{height}{height}}]{\setlength{\rightskip}{0pt plus 5cm}int geometry\+::height}\hypertarget{structgeometry_a6968ae18c72699d1c164399bf0e5cf14}{}\label{structgeometry_a6968ae18c72699d1c164399bf0e5cf14}
+
+
+Definition at line 133 of file simple-\/egl.\+cpp.
+
+\index{geometry@{geometry}!width@{width}}
+\index{width@{width}!geometry@{geometry}}
+\subsubsection[{\texorpdfstring{width}{width}}]{\setlength{\rightskip}{0pt plus 5cm}int geometry\+::width}\hypertarget{structgeometry_a854a87ce277335591f06958a2363c3e1}{}\label{structgeometry_a854a87ce277335591f06958a2363c3e1}
+
+
+Definition at line 133 of file simple-\/egl.\+cpp.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+libhomescreen/\hyperlink{simple-egl_8cpp}{simple-\/egl.\+cpp}\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/de/da4/simple-egl_8cpp.tex b/doc/api-ref/latex/de/da4/simple-egl_8cpp.tex
new file mode 100644
index 0000000..fcf9e12
--- /dev/null
+++ b/doc/api-ref/latex/de/da4/simple-egl_8cpp.tex
@@ -0,0 +1,1068 @@
+\hypertarget{simple-egl_8cpp}{}\section{libhomescreen/simple-\/egl.cpp File Reference}
+\label{simple-egl_8cpp}\index{libhomescreen/simple-\/egl.\+cpp@{libhomescreen/simple-\/egl.\+cpp}}
+{\ttfamily \#include $<$mutex$>$}\\*
+{\ttfamily \#include $<$chrono$>$}\\*
+{\ttfamily \#include $<$iostream$>$}\\*
+{\ttfamily \#include $<$string$>$}\\*
+{\ttfamily \#include $<$stdarg.\+h$>$}\\*
+{\ttfamily \#include $<$sys/types.\+h$>$}\\*
+{\ttfamily \#include $<$thread$>$}\\*
+{\ttfamily \#include $<$exception$>$}\\*
+{\ttfamily \#include $<$vector$>$}\\*
+{\ttfamily \#include $<$sstream$>$}\\*
+{\ttfamily \#include $<$assert.\+h$>$}\\*
+{\ttfamily \#include $<$signal.\+h$>$}\\*
+{\ttfamily \#include $<$wayland-\/client.\+h$>$}\\*
+{\ttfamily \#include $<$wayland-\/egl.\+h$>$}\\*
+{\ttfamily \#include $<$G\+L\+E\+S2/gl2.\+h$>$}\\*
+{\ttfamily \#include $<$E\+G\+L/egl.\+h$>$}\\*
+{\ttfamily \#include $<$E\+G\+L/eglext.\+h$>$}\\*
+{\ttfamily \#include $<$unistd.\+h$>$}\\*
+{\ttfamily \#include $<$time.\+h$>$}\\*
+{\ttfamily \#include $<$libwindowmanager.\+h$>$}\\*
+{\ttfamily \#include $<$libhomescreen.\+hpp$>$}\\*
+{\ttfamily \#include $<$ilm/ivi-\/application-\/client-\/protocol.\+h$>$}\\*
+{\ttfamily \#include \char`\"{}hmi-\/debug.\+h\char`\"{}}\\*
+{\ttfamily \#include \char`\"{}platform.\+h\char`\"{}}\\*
+\subsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+struct \hyperlink{structdisplay}{display}
+\item
+struct \hyperlink{structgeometry}{geometry}
+\item
+struct \hyperlink{structwindow}{window}
+\end{DoxyCompactItemize}
+\subsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\#define \hyperlink{simple-egl_8cpp_a083d37f289b99270e0391419178d458f}{E\+G\+L\+\_\+\+E\+X\+T\+\_\+swap\+\_\+buffers\+\_\+with\+\_\+damage}~1
+\item
+\#define \hyperlink{simple-egl_8cpp_a0792e3d8b2bc978f95917a234b0c81df}{E\+G\+L\+\_\+\+E\+X\+T\+\_\+buffer\+\_\+age}~1
+\item
+\#define \hyperlink{simple-egl_8cpp_a7045d8a6b4857f268a62fab2de2021fd}{E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+G\+E\+\_\+\+E\+XT}~0x313D
+\end{DoxyCompactItemize}
+\subsection*{Typedefs}
+\begin{DoxyCompactItemize}
+\item
+typedef E\+G\+L\+Surface \hyperlink{simple-egl_8cpp_a0720952aa1caded45b5bcdce589663a9}{surface}
+\item
+typedef E\+G\+L\+Surface E\+G\+Lint $\ast$ \hyperlink{simple-egl_8cpp_a56616f7ca3fc53c0da41d05de9330b11}{rects}
+\item
+typedef E\+G\+L\+Surface E\+G\+Lint E\+G\+Lint \hyperlink{simple-egl_8cpp_aa6a11810244355f89e6c4961b9dd3b53}{n\+\_\+rects}
+\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+typedef \hyperlink{simple-egl_8cpp_ab4ad070d3bf82abe5e70330578f67893}{E\+G\+L\+Boolean} (E\+G\+L\+A\+P\+I\+E\+N\+T\+R\+YP P\+F\+N\+E\+G\+L\+S\+W\+A\+P\+B\+U\+F\+F\+E\+R\+S\+W\+I\+T\+H\+D\+A\+M\+A\+G\+E\+E\+X\+T\+P\+R\+OC)(E\+G\+L\+Display dpy
+\item
+static void \hyperlink{simple-egl_8cpp_a1073d4aca1838d3877fe577d813700fc}{init\+\_\+egl} (struct \hyperlink{structdisplay}{display} $\ast$\hyperlink{structdisplay}{display}, struct \hyperlink{structwindow}{window} $\ast$\hyperlink{structwindow}{window})
+\item
+static void \hyperlink{simple-egl_8cpp_a4f71f46ede5b73bd7c770c973826f771}{fini\+\_\+egl} (struct \hyperlink{structdisplay}{display} $\ast$\hyperlink{structdisplay}{display})
+\item
+static G\+Luint \hyperlink{simple-egl_8cpp_ab72c580e4d6d47c2fb49c72cc76b85bb}{create\+\_\+shader} (struct \hyperlink{structwindow}{window} $\ast$\hyperlink{structwindow}{window}, const char $\ast$source, G\+Lenum shader\+\_\+type)
+\item
+static void \hyperlink{simple-egl_8cpp_ab3ee863fa45f4026f78f592d6f6e34ff}{init\+\_\+gl} (struct \hyperlink{structwindow}{window} $\ast$\hyperlink{structwindow}{window})
+\item
+static void \hyperlink{simple-egl_8cpp_a0122201fe28a7f35b0fbd362fff7094e}{create\+\_\+ivi\+\_\+surface} (struct \hyperlink{structwindow}{window} $\ast$\hyperlink{structwindow}{window}, struct \hyperlink{structdisplay}{display} $\ast$\hyperlink{structdisplay}{display})
+\item
+static void \hyperlink{simple-egl_8cpp_a83c7f2e34bbc715d97f0642def708293}{create\+\_\+surface} (struct \hyperlink{structwindow}{window} $\ast$\hyperlink{structwindow}{window})
+\item
+static void \hyperlink{simple-egl_8cpp_aba2ea9aa51701e52d4f36b4f34cecf7a}{destroy\+\_\+surface} (struct \hyperlink{structwindow}{window} $\ast$\hyperlink{structwindow}{window})
+\item
+static void \hyperlink{simple-egl_8cpp_a927502f6103ec35422eead39e62ab7ba}{redraw} (void $\ast$data, struct wl\+\_\+callback $\ast$callback, uint32\+\_\+t time)
+\item
+static void \hyperlink{simple-egl_8cpp_af288e02a94c196a68b327fc55c049932}{registry\+\_\+handle\+\_\+global} (void $\ast$data, struct wl\+\_\+registry $\ast$registry, uint32\+\_\+t name, const char $\ast$interface, uint32\+\_\+t version)
+\item
+static void \hyperlink{simple-egl_8cpp_a59a731b9efa9d6a2015cdc8ccae1db80}{registry\+\_\+handle\+\_\+global\+\_\+remove} (void $\ast$data, struct wl\+\_\+registry $\ast$registry, uint32\+\_\+t name)
+\item
+static void \hyperlink{simple-egl_8cpp_a2cfc8c2d3fc1273ba8f811d2e639aec8}{signal\+\_\+int} (int signum)
+\item
+int \hyperlink{simple-egl_8cpp_a644e25276ecdea04f2aa3412c1973927}{init\+\_\+wm} (Lib\+Windowmanager $\ast$\hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}, struct \hyperlink{structwindow}{window} $\ast$\hyperlink{structwindow}{window})
+\item
+int \hyperlink{simple-egl_8cpp_a79aafeb99915566dd3970246f465f306}{init\+\_\+hs} (\hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} $\ast$\hyperlink{simple-egl_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs})
+\item
+int \hyperlink{simple-egl_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}{main} (int argc, char $\ast$$\ast$argv)
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+const char $\ast$ \hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\+\_\+prefix} = \char`\"{}simple-\/egl\char`\"{}
+\item
+uint32\+\_\+t \hyperlink{simple-egl_8cpp_a28f56c9f01ed9f108201950645317cc9}{g\+\_\+id\+\_\+ivisurf} = 9009
+\item
+long \hyperlink{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{port} = 1700
+\item
+string \hyperlink{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{token} = string(\char`\"{}wm\char`\"{})
+\item
+string \hyperlink{simple-egl_8cpp_a0da928eccfc57d1dfadfd29d4ac4854c}{app\+\_\+name} = string(\char`\"{}Navigation\char`\"{})
+\item
+const char $\ast$ \hyperlink{simple-egl_8cpp_a332251aa739a56836cd4fbf3ecbb8bb2}{main\+\_\+role} = \char`\"{}navigation\char`\"{}
+\item
+\hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} $\ast$ \hyperlink{simple-egl_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}
+\item
+Lib\+Windowmanager $\ast$ \hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}
+\item
+static const struct wl\+\_\+interface $\ast$ \hyperlink{simple-egl_8cpp_aea3203db9e218d3e5d60bdb4ebe2fa1f}{types} \mbox{[}$\,$\mbox{]}
+\item
+static const struct wl\+\_\+message \hyperlink{simple-egl_8cpp_ada80120c5590d2821da9babef808b98d}{ivi\+\_\+surface\+\_\+requests} \mbox{[}$\,$\mbox{]}
+\item
+static const struct wl\+\_\+message \hyperlink{simple-egl_8cpp_ac848f4fbf712a9ba414272fa85577791}{ivi\+\_\+surface\+\_\+events} \mbox{[}$\,$\mbox{]}
+\item
+const struct wl\+\_\+interface \hyperlink{simple-egl_8cpp_adf384de8d12d2edd7265ab85fd16b11c}{ivi\+\_\+surface\+\_\+interface}
+\item
+static const struct wl\+\_\+message \hyperlink{simple-egl_8cpp_a21a39b7c6cf5f6d10a62a70b3ebc9bad}{ivi\+\_\+application\+\_\+requests} \mbox{[}$\,$\mbox{]}
+\item
+const struct wl\+\_\+interface \hyperlink{simple-egl_8cpp_a769b65b7b0e834f732f1f45e835890d5}{ivi\+\_\+application\+\_\+interface}
+\item
+static const char $\ast$ \hyperlink{simple-egl_8cpp_a717575939a37d84dcd4cf0447a630834}{vert\+\_\+shader\+\_\+text}
+\item
+static const char $\ast$ \hyperlink{simple-egl_8cpp_ab5a6a2a26ac23f79b1687daa4b0d8980}{frag\+\_\+shader\+\_\+text}
+\item
+static int \hyperlink{simple-egl_8cpp_a2f45113638a0b749a8a205d2cd7fb42b}{running} = 1
+\item
+static const struct wl\+\_\+registry\+\_\+listener \hyperlink{simple-egl_8cpp_a8998c87c94cd7d185e8f0cdafab4b1c4}{registry\+\_\+listener}
+\end{DoxyCompactItemize}
+
+
+\subsection{Macro Definition Documentation}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+G\+E\+\_\+\+E\+XT@{E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+G\+E\+\_\+\+E\+XT}}
+\index{E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+G\+E\+\_\+\+E\+XT@{E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+G\+E\+\_\+\+E\+XT}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+G\+E\+\_\+\+E\+XT}{EGL_BUFFER_AGE_EXT}}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+G\+E\+\_\+\+E\+XT~0x313D}\hypertarget{simple-egl_8cpp_a7045d8a6b4857f268a62fab2de2021fd}{}\label{simple-egl_8cpp_a7045d8a6b4857f268a62fab2de2021fd}
+
+
+Definition at line 110 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!E\+G\+L\+\_\+\+E\+X\+T\+\_\+buffer\+\_\+age@{E\+G\+L\+\_\+\+E\+X\+T\+\_\+buffer\+\_\+age}}
+\index{E\+G\+L\+\_\+\+E\+X\+T\+\_\+buffer\+\_\+age@{E\+G\+L\+\_\+\+E\+X\+T\+\_\+buffer\+\_\+age}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{E\+G\+L\+\_\+\+E\+X\+T\+\_\+buffer\+\_\+age}{EGL_EXT_buffer_age}}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+G\+L\+\_\+\+E\+X\+T\+\_\+buffer\+\_\+age~1}\hypertarget{simple-egl_8cpp_a0792e3d8b2bc978f95917a234b0c81df}{}\label{simple-egl_8cpp_a0792e3d8b2bc978f95917a234b0c81df}
+
+
+Definition at line 109 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!E\+G\+L\+\_\+\+E\+X\+T\+\_\+swap\+\_\+buffers\+\_\+with\+\_\+damage@{E\+G\+L\+\_\+\+E\+X\+T\+\_\+swap\+\_\+buffers\+\_\+with\+\_\+damage}}
+\index{E\+G\+L\+\_\+\+E\+X\+T\+\_\+swap\+\_\+buffers\+\_\+with\+\_\+damage@{E\+G\+L\+\_\+\+E\+X\+T\+\_\+swap\+\_\+buffers\+\_\+with\+\_\+damage}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{E\+G\+L\+\_\+\+E\+X\+T\+\_\+swap\+\_\+buffers\+\_\+with\+\_\+damage}{EGL_EXT_swap_buffers_with_damage}}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+G\+L\+\_\+\+E\+X\+T\+\_\+swap\+\_\+buffers\+\_\+with\+\_\+damage~1}\hypertarget{simple-egl_8cpp_a083d37f289b99270e0391419178d458f}{}\label{simple-egl_8cpp_a083d37f289b99270e0391419178d458f}
+
+
+Definition at line 104 of file simple-\/egl.\+cpp.
+
+
+
+\subsection{Typedef Documentation}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!n\+\_\+rects@{n\+\_\+rects}}
+\index{n\+\_\+rects@{n\+\_\+rects}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{n\+\_\+rects}{n_rects}}]{\setlength{\rightskip}{0pt plus 5cm}typedef E\+G\+L\+Surface E\+G\+Lint E\+G\+Lint {\bf n\+\_\+rects}}\hypertarget{simple-egl_8cpp_aa6a11810244355f89e6c4961b9dd3b53}{}\label{simple-egl_8cpp_aa6a11810244355f89e6c4961b9dd3b53}
+
+
+Definition at line 105 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!rects@{rects}}
+\index{rects@{rects}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{rects}{rects}}]{\setlength{\rightskip}{0pt plus 5cm}typedef E\+G\+L\+Surface E\+G\+Lint$\ast$ {\bf rects}}\hypertarget{simple-egl_8cpp_a56616f7ca3fc53c0da41d05de9330b11}{}\label{simple-egl_8cpp_a56616f7ca3fc53c0da41d05de9330b11}
+
+
+Definition at line 105 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!surface@{surface}}
+\index{surface@{surface}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{surface}{surface}}]{\setlength{\rightskip}{0pt plus 5cm}typedef E\+G\+L\+Surface {\bf surface}}\hypertarget{simple-egl_8cpp_a0720952aa1caded45b5bcdce589663a9}{}\label{simple-egl_8cpp_a0720952aa1caded45b5bcdce589663a9}
+
+
+Definition at line 105 of file simple-\/egl.\+cpp.
+
+
+
+\subsection{Function Documentation}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!create\+\_\+ivi\+\_\+surface@{create\+\_\+ivi\+\_\+surface}}
+\index{create\+\_\+ivi\+\_\+surface@{create\+\_\+ivi\+\_\+surface}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{create\+\_\+ivi\+\_\+surface(struct window $\ast$window, struct display $\ast$display)}{create_ivi_surface(struct window *window, struct display *display)}}]{\setlength{\rightskip}{0pt plus 5cm}static void create\+\_\+ivi\+\_\+surface (
+\begin{DoxyParamCaption}
+\item[{struct {\bf window} $\ast$}]{window, }
+\item[{struct {\bf display} $\ast$}]{display}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a0122201fe28a7f35b0fbd362fff7094e}{}\label{simple-egl_8cpp_a0122201fe28a7f35b0fbd362fff7094e}
+
+
+Definition at line 322 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+323 \{
+324 uint32\_t id\_ivisurf = \hyperlink{simple-egl_8cpp_a28f56c9f01ed9f108201950645317cc9}{g\_id\_ivisurf};
+325 window->\hyperlink{structwindow_a40e2c6fb4178953c820fc1b9f41d4b31}{ivi\_surface} =
+326 ivi\_application\_surface\_create(display->\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application},
+327 id\_ivisurf, window->\hyperlink{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}{surface});
+328
+329 \textcolor{keywordflow}{if} (window->\hyperlink{structwindow_a40e2c6fb4178953c820fc1b9f41d4b31}{ivi\_surface} == NULL) \{
+330 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"Failed to create ivi\_client\_surface"});
+331 abort();
+332 \}
+333
+334 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!create\+\_\+shader@{create\+\_\+shader}}
+\index{create\+\_\+shader@{create\+\_\+shader}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{create\+\_\+shader(struct window $\ast$window, const char $\ast$source, G\+Lenum shader\+\_\+type)}{create_shader(struct window *window, const char *source, GLenum shader_type)}}]{\setlength{\rightskip}{0pt plus 5cm}static G\+Luint create\+\_\+shader (
+\begin{DoxyParamCaption}
+\item[{struct {\bf window} $\ast$}]{window, }
+\item[{const char $\ast$}]{source, }
+\item[{G\+Lenum}]{shader\+\_\+type}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_ab72c580e4d6d47c2fb49c72cc76b85bb}{}\label{simple-egl_8cpp_ab72c580e4d6d47c2fb49c72cc76b85bb}
+
+
+Definition at line 259 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+260 \{
+261 GLuint shader;
+262 GLint status;
+263
+264 shader = glCreateShader(shader\_type);
+265 assert(shader != 0);
+266
+267 glShaderSource(shader, 1, (\textcolor{keyword}{const} \textcolor{keywordtype}{char} **) &source, NULL);
+268 glCompileShader(shader);
+269
+270 glGetShaderiv(shader, GL\_COMPILE\_STATUS, &status);
+271 \textcolor{keywordflow}{if} (!status) \{
+272 \textcolor{keywordtype}{char} log[1000];
+273 GLsizei len;
+274 glGetShaderInfoLog(shader, 1000, &len, log);
+275 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"Error: compiling %s: %*s"},
+276 shader\_type == GL\_VERTEX\_SHADER ? \textcolor{stringliteral}{"vertex"} : \textcolor{stringliteral}{"fragment"},
+277 len, log);
+278 exit(1);
+279 \}
+280
+281 \textcolor{keywordflow}{return} shader;
+282 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!create\+\_\+surface@{create\+\_\+surface}}
+\index{create\+\_\+surface@{create\+\_\+surface}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{create\+\_\+surface(struct window $\ast$window)}{create_surface(struct window *window)}}]{\setlength{\rightskip}{0pt plus 5cm}static void create\+\_\+surface (
+\begin{DoxyParamCaption}
+\item[{struct {\bf window} $\ast$}]{window}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a83c7f2e34bbc715d97f0642def708293}{}\label{simple-egl_8cpp_a83c7f2e34bbc715d97f0642def708293}
+
+
+Definition at line 337 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+338 \{
+339 \textcolor{keyword}{struct }\hyperlink{structdisplay}{display} *\hyperlink{structdisplay}{display} = window->\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display};
+340 \hyperlink{simple-egl_8cpp_ab4ad070d3bf82abe5e70330578f67893}{EGLBoolean} ret;
+341
+342 window->\hyperlink{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}{surface} = wl\_compositor\_create\_surface(display->\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor});
+343
+344 window->\hyperlink{structwindow_ae41be0955d0e73530e1bc13dfeb9d731}{native} =
+345 wl\_egl\_window\_create(window->\hyperlink{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}{surface},
+346 window->geometry.width,
+347 window->geometry.height);
+348 window->\hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\_surface} =
+349 weston\_platform\_create\_egl\_surface(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy},
+350 display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a880aef9408b499f5b749541dc6e396c3}{conf},
+351 window->\hyperlink{structwindow_ae41be0955d0e73530e1bc13dfeb9d731}{native}, NULL);
+352
+353
+354 \textcolor{keywordflow}{if} (display->\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application} ) \{
+355 \hyperlink{simple-egl_8cpp_a0122201fe28a7f35b0fbd362fff7094e}{create\_ivi\_surface}(window, display);
+356 \} \textcolor{keywordflow}{else} \{
+357 assert(0);
+358 \}
+359
+360 ret = eglMakeCurrent(window->\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display}->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, window->
+ \hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\_surface},
+361 window->\hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\_surface}, window->\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display}->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.
+ \hyperlink{structdisplay_a3420940a29a710e0e5ebd41ba462cc00}{ctx});
+362 assert(ret == EGL\_TRUE);
+363
+364 \textcolor{keywordflow}{if} (!window->\hyperlink{structwindow_a851bcb65083f5ab5ff768b09522bed70}{frame\_sync})
+365 eglSwapInterval(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, 0);
+366
+367 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!destroy\+\_\+surface@{destroy\+\_\+surface}}
+\index{destroy\+\_\+surface@{destroy\+\_\+surface}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{destroy\+\_\+surface(struct window $\ast$window)}{destroy_surface(struct window *window)}}]{\setlength{\rightskip}{0pt plus 5cm}static void destroy\+\_\+surface (
+\begin{DoxyParamCaption}
+\item[{struct {\bf window} $\ast$}]{window}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_aba2ea9aa51701e52d4f36b4f34cecf7a}{}\label{simple-egl_8cpp_aba2ea9aa51701e52d4f36b4f34cecf7a}
+
+
+Definition at line 370 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+371 \{
+372 \textcolor{comment}{/* Required, otherwise segfault in egl\_dri2.c: dri2\_make\_current()}
+373 \textcolor{comment}{ * on eglReleaseThread(). */}
+374 eglMakeCurrent(window->\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display}->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, EGL\_NO\_SURFACE, EGL\_NO\_SURFACE,
+375 EGL\_NO\_CONTEXT);
+376
+377 eglDestroySurface(window->\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display}->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, window->\hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\_surface});
+378 wl\_egl\_window\_destroy(window->\hyperlink{structwindow_ae41be0955d0e73530e1bc13dfeb9d731}{native});
+379
+380 \textcolor{keywordflow}{if} (window->\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display}->\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application})
+381 ivi\_surface\_destroy(window->\hyperlink{structwindow_a40e2c6fb4178953c820fc1b9f41d4b31}{ivi\_surface});
+382 wl\_surface\_destroy(window->\hyperlink{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}{surface});
+383
+384 \textcolor{keywordflow}{if} (window->\hyperlink{structwindow_a35ba639556fa19d9273dad0953a6807e}{callback})
+385 wl\_callback\_destroy(window->\hyperlink{structwindow_a35ba639556fa19d9273dad0953a6807e}{callback});
+386 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!E\+G\+L\+Boolean@{E\+G\+L\+Boolean}}
+\index{E\+G\+L\+Boolean@{E\+G\+L\+Boolean}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{E\+G\+L\+Boolean(\+E\+G\+L\+A\+P\+I\+E\+N\+T\+R\+Y\+P P\+F\+N\+E\+G\+L\+S\+W\+A\+P\+B\+U\+F\+F\+E\+R\+S\+W\+I\+T\+H\+D\+A\+M\+A\+G\+E\+E\+X\+T\+P\+R\+O\+C)(\+E\+G\+L\+Display dpy}{EGLBoolean(EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy}}]{\setlength{\rightskip}{0pt plus 5cm}typedef E\+G\+L\+Boolean (
+\begin{DoxyParamCaption}
+\item[{E\+G\+L\+A\+P\+I\+E\+N\+T\+R\+YP}]{P\+F\+N\+E\+G\+L\+S\+W\+A\+P\+B\+U\+F\+F\+E\+R\+S\+W\+I\+T\+H\+D\+A\+M\+A\+G\+E\+E\+X\+T\+P\+R\+OC}
+\end{DoxyParamCaption}
+)}\hypertarget{simple-egl_8cpp_ab4ad070d3bf82abe5e70330578f67893}{}\label{simple-egl_8cpp_ab4ad070d3bf82abe5e70330578f67893}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!fini\+\_\+egl@{fini\+\_\+egl}}
+\index{fini\+\_\+egl@{fini\+\_\+egl}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{fini\+\_\+egl(struct display $\ast$display)}{fini_egl(struct display *display)}}]{\setlength{\rightskip}{0pt plus 5cm}static void fini\+\_\+egl (
+\begin{DoxyParamCaption}
+\item[{struct {\bf display} $\ast$}]{display}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a4f71f46ede5b73bd7c770c973826f771}{}\label{simple-egl_8cpp_a4f71f46ede5b73bd7c770c973826f771}
+
+
+Definition at line 252 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+253 \{
+254 eglTerminate(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy});
+255 eglReleaseThread();
+256 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!init\+\_\+egl@{init\+\_\+egl}}
+\index{init\+\_\+egl@{init\+\_\+egl}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{init\+\_\+egl(struct display $\ast$display, struct window $\ast$window)}{init_egl(struct display *display, struct window *window)}}]{\setlength{\rightskip}{0pt plus 5cm}static void init\+\_\+egl (
+\begin{DoxyParamCaption}
+\item[{struct {\bf display} $\ast$}]{display, }
+\item[{struct {\bf window} $\ast$}]{window}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a1073d4aca1838d3877fe577d813700fc}{}\label{simple-egl_8cpp_a1073d4aca1838d3877fe577d813700fc}
+
+
+Definition at line 174 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+175 \{
+176 \textcolor{keyword}{static} \textcolor{keyword}{const} EGLint context\_attribs[] = \{
+177 EGL\_CONTEXT\_CLIENT\_VERSION, 2,
+178 EGL\_NONE
+179 \};
+180 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *extensions;
+181
+182 EGLint config\_attribs[] = \{
+183 EGL\_SURFACE\_TYPE, EGL\_WINDOW\_BIT,
+184 EGL\_RED\_SIZE, 1,
+185 EGL\_GREEN\_SIZE, 1,
+186 EGL\_BLUE\_SIZE, 1,
+187 EGL\_ALPHA\_SIZE, 1,
+188 EGL\_RENDERABLE\_TYPE, EGL\_OPENGL\_ES2\_BIT,
+189 EGL\_NONE
+190 \};
+191
+192 EGLint major, minor, n, count, i, size;
+193 EGLConfig *configs;
+194 \hyperlink{simple-egl_8cpp_ab4ad070d3bf82abe5e70330578f67893}{EGLBoolean} ret;
+195
+196 \textcolor{keywordflow}{if} (window->\hyperlink{structwindow_a026a50808d8323a5a73d585c19916fa8}{opaque} || window->\hyperlink{structwindow_a0e634038f669aff472012f25ea250b40}{buffer\_size} == 16)
+197 config\_attribs[9] = 0;
+198
+199 display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy} = weston\_platform\_get\_egl\_display(EGL\_PLATFORM\_WAYLAND\_KHR, display->
+ \hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display}, NULL);
+200 assert(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy});
+201
+202 ret = eglInitialize(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, &major, &minor);
+203 assert(ret == EGL\_TRUE);
+204 ret = eglBindAPI(EGL\_OPENGL\_ES\_API);
+205 assert(ret == EGL\_TRUE);
+206
+207 \textcolor{keywordflow}{if} (!eglGetConfigs(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, NULL, 0, &count) || count < 1)
+208 assert(0);
+209
+210 configs = calloc(count, \textcolor{keyword}{sizeof} *configs);
+211 assert(configs);
+212
+213 ret = eglChooseConfig(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, config\_attribs,
+214 configs, count, &n);
+215 assert(ret && n >= 1);
+216
+217 \textcolor{keywordflow}{for} (i = 0; i < n; i++) \{
+218 eglGetConfigAttrib(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy},
+219 configs[i], EGL\_BUFFER\_SIZE, &size);
+220 \textcolor{keywordflow}{if} (window->\hyperlink{structwindow_a0e634038f669aff472012f25ea250b40}{buffer\_size} == size) \{
+221 display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a880aef9408b499f5b749541dc6e396c3}{conf} = configs[i];
+222 \textcolor{keywordflow}{break};
+223 \}
+224 \}
+225 free(configs);
+226 \textcolor{keywordflow}{if} (display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a880aef9408b499f5b749541dc6e396c3}{conf} == NULL) \{
+227 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"did not find config with buffer size %d"},
+228 window->\hyperlink{structwindow_a0e634038f669aff472012f25ea250b40}{buffer\_size});
+229 exit(EXIT\_FAILURE);
+230 \}
+231
+232 display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a3420940a29a710e0e5ebd41ba462cc00}{ctx} = eglCreateContext(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy},
+233 display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a880aef9408b499f5b749541dc6e396c3}{conf},
+234 EGL\_NO\_CONTEXT, context\_attribs);
+235 assert(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a3420940a29a710e0e5ebd41ba462cc00}{ctx});
+236
+237 display->\hyperlink{structdisplay_a48c46c118e4765ef06596f6341c8f23f}{swap\_buffers\_with\_damage} = NULL;
+238 extensions = eglQueryString(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, EGL\_EXTENSIONS);
+239 \textcolor{keywordflow}{if} (extensions &&
+240 strstr(extensions, \textcolor{stringliteral}{"EGL\_EXT\_swap\_buffers\_with\_damage"}) &&
+241 strstr(extensions, \textcolor{stringliteral}{"EGL\_EXT\_buffer\_age"}))
+242 display->\hyperlink{structdisplay_a48c46c118e4765ef06596f6341c8f23f}{swap\_buffers\_with\_damage} =
+243 (PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)
+244 eglGetProcAddress(\textcolor{stringliteral}{"eglSwapBuffersWithDamageEXT"});
+245
+246 \textcolor{keywordflow}{if} (display->\hyperlink{structdisplay_a48c46c118e4765ef06596f6341c8f23f}{swap\_buffers\_with\_damage})
+247 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"has EGL\_EXT\_buffer\_age and
+ EGL\_EXT\_swap\_buffers\_with\_damage"});
+248
+249 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!init\+\_\+gl@{init\+\_\+gl}}
+\index{init\+\_\+gl@{init\+\_\+gl}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{init\+\_\+gl(struct window $\ast$window)}{init_gl(struct window *window)}}]{\setlength{\rightskip}{0pt plus 5cm}static void init\+\_\+gl (
+\begin{DoxyParamCaption}
+\item[{struct {\bf window} $\ast$}]{window}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_ab3ee863fa45f4026f78f592d6f6e34ff}{}\label{simple-egl_8cpp_ab3ee863fa45f4026f78f592d6f6e34ff}
+
+
+Definition at line 285 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+286 \{
+287 GLuint frag, vert;
+288 GLuint program;
+289 GLint status;
+290
+291 frag = \hyperlink{simple-egl_8cpp_ab72c580e4d6d47c2fb49c72cc76b85bb}{create\_shader}(window, \hyperlink{simple-egl_8cpp_ab5a6a2a26ac23f79b1687daa4b0d8980}{frag\_shader\_text}, GL\_FRAGMENT\_SHADER);
+292 vert = \hyperlink{simple-egl_8cpp_ab72c580e4d6d47c2fb49c72cc76b85bb}{create\_shader}(window, \hyperlink{simple-egl_8cpp_a717575939a37d84dcd4cf0447a630834}{vert\_shader\_text}, GL\_VERTEX\_SHADER);
+293
+294 program = glCreateProgram();
+295 glAttachShader(program, frag);
+296 glAttachShader(program, vert);
+297 glLinkProgram(program);
+298
+299 glGetProgramiv(program, GL\_LINK\_STATUS, &status);
+300 \textcolor{keywordflow}{if} (!status) \{
+301 \textcolor{keywordtype}{char} log[1000];
+302 GLsizei len;
+303 glGetProgramInfoLog(program, 1000, &len, log);
+304 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"Error: linking:%*s"}, len, log);
+305 exit(1);
+306 \}
+307
+308 glUseProgram(program);
+309
+310 window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aaf965f90f9fc938db2315ff62028c362}{pos} = 0;
+311 window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aef10fe94766ccd4831ee611c5ad0e55c}{col} = 1;
+312
+313 glBindAttribLocation(program, window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aaf965f90f9fc938db2315ff62028c362}{pos}, \textcolor{stringliteral}{"pos"});
+314 glBindAttribLocation(program, window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aef10fe94766ccd4831ee611c5ad0e55c}{col}, \textcolor{stringliteral}{"color"});
+315 glLinkProgram(program);
+316
+317 window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_a5202f3b60e262a6fa4fcee68dd47cb67}{rotation\_uniform} =
+318 glGetUniformLocation(program, \textcolor{stringliteral}{"rotation"});
+319 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!init\+\_\+hs@{init\+\_\+hs}}
+\index{init\+\_\+hs@{init\+\_\+hs}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{init\+\_\+hs(\+Lib\+Home\+Screen $\ast$hs)}{init_hs(LibHomeScreen *hs)}}]{\setlength{\rightskip}{0pt plus 5cm}int init\+\_\+hs (
+\begin{DoxyParamCaption}
+\item[{{\bf Lib\+Home\+Screen} $\ast$}]{hs}
+\end{DoxyParamCaption}
+)}\hypertarget{simple-egl_8cpp_a79aafeb99915566dd3970246f465f306}{}\label{simple-egl_8cpp_a79aafeb99915566dd3970246f465f306}
+
+
+Definition at line 565 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+565 \{
+566 \textcolor{keywordflow}{if}(hs->\hyperlink{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}{init}(\hyperlink{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{port}, \hyperlink{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{token})!=0)
+567 \{
+568 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"homescreen init failed. "});
+569 \textcolor{keywordflow}{return} -1;
+570 \}
+571
+572 hs->\hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\_event\_handler}(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c}{LibHomeScreen::Event\_ShowWindow},
+ [hs](json\_object *\textcolor{keywordtype}{object})\{
+573 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"simple-egl"},\textcolor{stringliteral}{"try to activeWindow %s "}, \hyperlink{simple-egl_8cpp_a0da928eccfc57d1dfadfd29d4ac4854c}{app\_name}.c\_str());
+574
+575 \textcolor{keyword}{struct }json\_object *param\_obj = json\_object\_object\_get(\textcolor{keywordtype}{object}, hs->
+ \hyperlink{class_lib_home_screen_a927592eff8e34efbbceaf12522f8897f}{\_keyParameter});
+576 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *area = json\_object\_get\_string(
+577 json\_object\_object\_get(param\_obj, hs->\hyperlink{class_lib_home_screen_a8becda1b035ae45f5a11c7e7963091bf}{\_keyArea}));
+578 \textcolor{comment}{// Application should call LibWindowmanager::activateWindow() in showWindow handler}
+579 \textcolor{keywordflow}{if}(area == \textcolor{keyword}{nullptr})
+580 \hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}->activateWindow(\hyperlink{simple-egl_8cpp_a332251aa739a56836cd4fbf3ecbb8bb2}{main\_role}, hs->\hyperlink{class_lib_home_screen_aac718b60b83c74e2b061f6f7f7ec3bf5}{\_areaNormal});
+581 \textcolor{keywordflow}{else}
+582 \hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}->activateWindow(\hyperlink{simple-egl_8cpp_a332251aa739a56836cd4fbf3ecbb8bb2}{main\_role}, area);
+583 \});
+584
+585 \textcolor{keywordflow}{return} 0;
+586 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!init\+\_\+wm@{init\+\_\+wm}}
+\index{init\+\_\+wm@{init\+\_\+wm}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{init\+\_\+wm(\+Lib\+Windowmanager $\ast$wm, struct window $\ast$window)}{init_wm(LibWindowmanager *wm, struct window *window)}}]{\setlength{\rightskip}{0pt plus 5cm}int init\+\_\+wm (
+\begin{DoxyParamCaption}
+\item[{Lib\+Windowmanager $\ast$}]{wm, }
+\item[{struct {\bf window} $\ast$}]{window}
+\end{DoxyParamCaption}
+)}\hypertarget{simple-egl_8cpp_a644e25276ecdea04f2aa3412c1973927}{}\label{simple-egl_8cpp_a644e25276ecdea04f2aa3412c1973927}
+
+
+Definition at line 527 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+528 \{
+529 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"called"});
+530
+531 \textcolor{keywordflow}{if} (\hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}->init(\hyperlink{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{port}, \hyperlink{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{token}) != 0) \{
+532 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"wm init failed. "});
+533 \textcolor{keywordflow}{return} -1;
+534 \}
+535
+536 \hyperlink{simple-egl_8cpp_a28f56c9f01ed9f108201950645317cc9}{g\_id\_ivisurf} = \hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}->requestSurface(\hyperlink{simple-egl_8cpp_a332251aa739a56836cd4fbf3ecbb8bb2}{main\_role});
+537 \textcolor{keywordflow}{if} (\hyperlink{simple-egl_8cpp_a28f56c9f01ed9f108201950645317cc9}{g\_id\_ivisurf} < 0) \{
+538 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"wm request surface failed "});
+539 \textcolor{keywordflow}{return} -1;
+540 \}
+541 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"IVI\_SURFACE\_ID: %d "}, \hyperlink{simple-egl_8cpp_a28f56c9f01ed9f108201950645317cc9}{g\_id\_ivisurf});
+542
+543 WMHandler wmh;
+544 wmh.on\_visible = [](\textcolor{keyword}{const} \textcolor{keywordtype}{char}* role, \textcolor{keywordtype}{bool} visible)\{
+545 \textcolor{comment}{// Sample code if user uses visible event}
+546 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix}, \textcolor{stringliteral}{"role: %s, visible: %s"}, role, visible ? \textcolor{stringliteral}{"true"} : \textcolor{stringliteral}{"false"})
+ ;
+547 \};
+548 wmh.on\_sync\_draw = [\hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}, window](\textcolor{keyword}{const} \textcolor{keywordtype}{char}* role, \textcolor{keyword}{const} \textcolor{keywordtype}{char}* area, Rect rect) \{
+549
+550 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"Surface %s got syncDraw! Area: %s. w:%d, h:%d"}, role, area
+ , rect.width(), rect.height());
+551
+552 wl\_egl\_window\_resize(window->\hyperlink{structwindow_ae41be0955d0e73530e1bc13dfeb9d731}{native}, rect.width(), rect.height(), 0, 0);
+553 window->geometry.width = rect.width();
+554 window->geometry.height = rect.height();
+555
+556 \hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}->endDraw(role);
+557 \};
+558
+559 \hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}->setEventHandler(wmh);
+560
+561 \textcolor{keywordflow}{return} 0;
+562 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!main@{main}}
+\index{main@{main}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{main(int argc, char $\ast$$\ast$argv)}{main(int argc, char **argv)}}]{\setlength{\rightskip}{0pt plus 5cm}int main (
+\begin{DoxyParamCaption}
+\item[{int}]{argc, }
+\item[{char $\ast$$\ast$}]{argv}
+\end{DoxyParamCaption}
+)}\hypertarget{simple-egl_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}{}\label{simple-egl_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}
+
+
+Definition at line 589 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+590 \{
+591 \textcolor{keyword}{struct }sigaction sigint;
+592 \textcolor{keyword}{struct }\hyperlink{structwindow}{window} \hyperlink{structwindow}{window} = \{ 0 \};
+593 \textcolor{keyword}{struct }\hyperlink{structdisplay}{display} \hyperlink{structdisplay}{display} = \{ 0 \};
+594
+595 window.\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display} = &\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display};
+596 display.\hyperlink{structdisplay_a9974d560bec291487ae2440f897ffc58}{window} = &\hyperlink{structdisplay_a9974d560bec291487ae2440f897ffc58}{window};
+597 window.geometry.width = 1080;
+598 window.geometry.height = 1488;
+599 window.\hyperlink{structwindow_ad2b6c8ed8044b41fd1189a0ce26d539a}{window\_size} = window.geometry;
+600 window.\hyperlink{structwindow_a0e634038f669aff472012f25ea250b40}{buffer\_size} = 32;
+601 window.\hyperlink{structwindow_a851bcb65083f5ab5ff768b09522bed70}{frame\_sync} = 1;
+602
+603 \textcolor{keywordflow}{if}(argc > 2)\{
+604 \hyperlink{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{port} = strtol(argv[1], NULL, 10);
+605 \hyperlink{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{token} = argv[2];
+606 \}
+607
+608 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"main\_role: %s, port: %d, token: %s. "},
+ \hyperlink{simple-egl_8cpp_a332251aa739a56836cd4fbf3ecbb8bb2}{main\_role}, \hyperlink{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{port}, \hyperlink{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{token}.c\_str());
+609
+610 display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display} = wl\_display\_connect(NULL);
+611 assert(display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display});
+612
+613 display.\hyperlink{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{registry} = wl\_display\_get\_registry(display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display});
+614 wl\_registry\_add\_listener(display.\hyperlink{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{registry},
+615 &\hyperlink{simple-egl_8cpp_a8998c87c94cd7d185e8f0cdafab4b1c4}{registry\_listener}, &display);
+616
+617 wl\_display\_roundtrip(display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display});
+618
+619 \hyperlink{simple-egl_8cpp_a1073d4aca1838d3877fe577d813700fc}{init\_egl}(&display, &window);
+620
+621 \hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm} = \textcolor{keyword}{new} LibWindowmanager();
+622 \textcolor{keywordflow}{if}(\hyperlink{simple-egl_8cpp_a644e25276ecdea04f2aa3412c1973927}{init\_wm}(\hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}, &window)!=0)\{
+623 \hyperlink{simple-egl_8cpp_a4f71f46ede5b73bd7c770c973826f771}{fini\_egl}(&display);
+624 \textcolor{keywordflow}{if} (display.\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application})
+625 ivi\_application\_destroy(display.\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application});
+626 \textcolor{keywordflow}{if} (display.\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor})
+627 wl\_compositor\_destroy(display.\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor});
+628 wl\_registry\_destroy(display.\hyperlink{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{registry});
+629 wl\_display\_flush(display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display});
+630 \textcolor{keywordflow}{return} -1;
+631 \}
+632
+633 \hyperlink{simple-egl_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs} = \textcolor{keyword}{new} \hyperlink{class_lib_home_screen}{LibHomeScreen}();
+634 \textcolor{keywordflow}{if}(\hyperlink{simple-egl_8cpp_a79aafeb99915566dd3970246f465f306}{init\_hs}(\hyperlink{simple-egl_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs})!=0)\{
+635 \hyperlink{simple-egl_8cpp_a4f71f46ede5b73bd7c770c973826f771}{fini\_egl}(&display);
+636 \textcolor{keywordflow}{if} (display.\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application})
+637 ivi\_application\_destroy(display.\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application});
+638 \textcolor{keywordflow}{if} (display.\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor})
+639 wl\_compositor\_destroy(display.\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor});
+640 wl\_registry\_destroy(display.\hyperlink{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{registry});
+641 wl\_display\_flush(display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display});
+642 \textcolor{keywordflow}{return} -1;
+643 \}
+644
+645 \hyperlink{simple-egl_8cpp_a83c7f2e34bbc715d97f0642def708293}{create\_surface}(&window);
+646 \hyperlink{simple-egl_8cpp_ab3ee863fa45f4026f78f592d6f6e34ff}{init\_gl}(&window);
+647
+648 \textcolor{comment}{//Ctrl+C}
+649 sigint.sa\_handler = \hyperlink{simple-egl_8cpp_a2cfc8c2d3fc1273ba8f811d2e639aec8}{signal\_int};
+650 sigemptyset(&sigint.sa\_mask);
+651 sigint.sa\_flags = SA\_RESETHAND;
+652 sigaction(SIGINT, &sigint, NULL);
+653
+654 eglSwapBuffers(window.\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display}->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, window.\hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\_surface});
+655
+656 \hyperlink{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{wm}->activateWindow(\hyperlink{simple-egl_8cpp_a332251aa739a56836cd4fbf3ecbb8bb2}{main\_role});
+657
+658 \textcolor{comment}{/* The mainloop here is a little subtle. Redrawing will cause}
+659 \textcolor{comment}{ * EGL to read events so we can just call}
+660 \textcolor{comment}{ * wl\_display\_dispatch\_pending() to handle any events that got}
+661 \textcolor{comment}{ * queued up as a side effect. */}
+662 \textcolor{keywordflow}{while} (\hyperlink{simple-egl_8cpp_a2f45113638a0b749a8a205d2cd7fb42b}{running}) \{
+663 wl\_display\_dispatch\_pending(display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display});
+664 \hyperlink{simple-egl_8cpp_a927502f6103ec35422eead39e62ab7ba}{redraw}(&window, NULL, 0);
+665 \}
+666
+667 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"simple-egl exiting! "});
+668
+669 \hyperlink{simple-egl_8cpp_aba2ea9aa51701e52d4f36b4f34cecf7a}{destroy\_surface}(&window);
+670 \hyperlink{simple-egl_8cpp_a4f71f46ede5b73bd7c770c973826f771}{fini\_egl}(&display);
+671
+672 \textcolor{keywordflow}{if} (display.\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application})
+673 ivi\_application\_destroy(display.\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application});
+674
+675 \textcolor{keywordflow}{if} (display.\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor})
+676 wl\_compositor\_destroy(display.\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor});
+677
+678 wl\_registry\_destroy(display.\hyperlink{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{registry});
+679 wl\_display\_flush(display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display});
+680 wl\_display\_disconnect(display.\hyperlink{structdisplay_aa8faf09631925e9221fd8a0c086ce75a}{display});
+681
+682 \textcolor{keywordflow}{return} 0;
+683 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!redraw@{redraw}}
+\index{redraw@{redraw}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{redraw(void $\ast$data, struct wl\+\_\+callback $\ast$callback, uint32\+\_\+t time)}{redraw(void *data, struct wl_callback *callback, uint32_t time)}}]{\setlength{\rightskip}{0pt plus 5cm}static void redraw (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{data, }
+\item[{struct wl\+\_\+callback $\ast$}]{callback, }
+\item[{uint32\+\_\+t}]{time}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a927502f6103ec35422eead39e62ab7ba}{}\label{simple-egl_8cpp_a927502f6103ec35422eead39e62ab7ba}
+
+
+Definition at line 389 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+390 \{
+391 \textcolor{keyword}{struct }\hyperlink{structwindow}{window} *\hyperlink{structwindow}{window} = data;
+392 \textcolor{keyword}{struct }\hyperlink{structdisplay}{display} *\hyperlink{structdisplay}{display} = window->\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display};
+393 \textcolor{keyword}{static} \textcolor{keyword}{const} GLfloat verts[3][2] = \{
+394 \{ -0.5, -0.5 \},
+395 \{ 0.5, -0.5 \},
+396 \{ 0, 0.5 \}
+397 \};
+398
+399 \textcolor{keyword}{static} \textcolor{keyword}{const} GLfloat colors[3][3] = \{
+400 \{ 1, 0, 0 \},
+401 \{ 0, 1, 0 \},
+402 \{ 0, 0, 1 \}
+403 \};
+404
+405 GLfloat angle;
+406 GLfloat rotation[4][4] = \{
+407 \{ 1, 0, 0, 0 \},
+408 \{ 0, 1, 0, 0 \},
+409 \{ 0, 0, 1, 0 \},
+410 \{ 0, 0, 0, 1 \}
+411 \};
+412 \textcolor{keyword}{static} \textcolor{keyword}{const} uint32\_t speed\_div = 5, benchmark\_interval = 5;
+413 \textcolor{keyword}{struct }wl\_region *region;
+414 EGLint rect[4];
+415 EGLint buffer\_age = 0;
+416 \textcolor{keyword}{struct }timeval tv;
+417
+418 assert(window->\hyperlink{structwindow_a35ba639556fa19d9273dad0953a6807e}{callback} == callback);
+419 window->\hyperlink{structwindow_a35ba639556fa19d9273dad0953a6807e}{callback} = NULL;
+420
+421 \textcolor{keywordflow}{if} (callback)
+422 wl\_callback\_destroy(callback);
+423
+424 gettimeofday(&tv, NULL);
+425 time = tv.tv\_sec * 1000 + tv.tv\_usec / 1000;
+426 \textcolor{keywordflow}{if} (window->\hyperlink{structwindow_a633864bb495ec265bee220a5c70cc98f}{frames} == 0)
+427 window->\hyperlink{structwindow_a72629bf021a361ad900504732a74cb68}{benchmark\_time} = time;
+428
+429 \textcolor{keywordflow}{if} (time - window->\hyperlink{structwindow_a72629bf021a361ad900504732a74cb68}{benchmark\_time} > (benchmark\_interval * 1000)) \{
+430 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\hyperlink{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{log\_prefix},\textcolor{stringliteral}{"%d frames in %d seconds: %f fps"},
+431 window->\hyperlink{structwindow_a633864bb495ec265bee220a5c70cc98f}{frames},
+432 benchmark\_interval,
+433 (\textcolor{keywordtype}{float}) window->\hyperlink{structwindow_a633864bb495ec265bee220a5c70cc98f}{frames} / benchmark\_interval);
+434 window->\hyperlink{structwindow_a72629bf021a361ad900504732a74cb68}{benchmark\_time} = time;
+435 window->\hyperlink{structwindow_a633864bb495ec265bee220a5c70cc98f}{frames} = 0;
+436 \}
+437
+438 angle = (time / speed\_div) % 360 * M\_PI / 180.0;
+439 rotation[0][0] = cos(angle);
+440 rotation[0][2] = sin(angle);
+441 rotation[2][0] = -sin(angle);
+442 rotation[2][2] = cos(angle);
+443
+444 \textcolor{keywordflow}{if} (display->\hyperlink{structdisplay_a48c46c118e4765ef06596f6341c8f23f}{swap\_buffers\_with\_damage})
+445 eglQuerySurface(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, window->\hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\_surface},
+446 \hyperlink{simple-egl_8cpp_a7045d8a6b4857f268a62fab2de2021fd}{EGL\_BUFFER\_AGE\_EXT}, &buffer\_age);
+447
+448 glViewport(0, 0, window->geometry.width, window->geometry.height);
+449
+450 glUniformMatrix4fv(window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_a5202f3b60e262a6fa4fcee68dd47cb67}{rotation\_uniform}, 1, GL\_FALSE,
+451 (GLfloat *) rotation);
+452
+453 glClearColor(0.0, 0.0, 0.0, 0.5);
+454 glClear(GL\_COLOR\_BUFFER\_BIT);
+455
+456 glVertexAttribPointer(window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aaf965f90f9fc938db2315ff62028c362}{pos}, 2, GL\_FLOAT, GL\_FALSE, 0, verts);
+457 glVertexAttribPointer(window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aef10fe94766ccd4831ee611c5ad0e55c}{col}, 3, GL\_FLOAT, GL\_FALSE, 0, colors);
+458 glEnableVertexAttribArray(window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aaf965f90f9fc938db2315ff62028c362}{pos});
+459 glEnableVertexAttribArray(window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aef10fe94766ccd4831ee611c5ad0e55c}{col});
+460
+461 glDrawArrays(GL\_TRIANGLES, 0, 3);
+462
+463 glDisableVertexAttribArray(window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aaf965f90f9fc938db2315ff62028c362}{pos});
+464 glDisableVertexAttribArray(window->\hyperlink{structwindow_a6975a930e9a3c166f8201fc4ef5e7728}{gl}.\hyperlink{structwindow_aef10fe94766ccd4831ee611c5ad0e55c}{col});
+465
+466 \textcolor{keywordflow}{if} (window->\hyperlink{structwindow_a026a50808d8323a5a73d585c19916fa8}{opaque} || window->\hyperlink{structwindow_a8da44798a9e1feb7ed3fbd18ec3a28b6}{fullscreen}) \{
+467 region = wl\_compositor\_create\_region(window->\hyperlink{structwindow_a129486f2bd23791194f389ca1405cfd4}{display}->\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor});
+468 wl\_region\_add(region, 0, 0,
+469 window->geometry.width,
+470 window->geometry.height);
+471 wl\_surface\_set\_opaque\_region(window->\hyperlink{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}{surface}, region);
+472 wl\_region\_destroy(region);
+473 \} \textcolor{keywordflow}{else} \{
+474 wl\_surface\_set\_opaque\_region(window->\hyperlink{structwindow_a7d0790cfc7c30621611fa26ab5c1ae97}{surface}, NULL);
+475 \}
+476
+477 \textcolor{keywordflow}{if} (display->\hyperlink{structdisplay_a48c46c118e4765ef06596f6341c8f23f}{swap\_buffers\_with\_damage} && buffer\_age > 0) \{
+478 rect[0] = window->geometry.width / 4 - 1;
+479 rect[1] = window->geometry.height / 4 - 1;
+480 rect[2] = window->geometry.width / 2 + 2;
+481 rect[3] = window->geometry.height / 2 + 2;
+482 display->\hyperlink{structdisplay_a48c46c118e4765ef06596f6341c8f23f}{swap\_buffers\_with\_damage}(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.
+ \hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy},
+483 window->\hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\_surface},
+484 rect, 1);
+485 \} \textcolor{keywordflow}{else} \{
+486 eglSwapBuffers(display->\hyperlink{structdisplay_a8b8bc104c19ff228d476a377e572d9c7}{egl}.\hyperlink{structdisplay_a8a1cbda15a286e41e89a85f158ce9311}{dpy}, window->\hyperlink{structwindow_a8de0059f3f1cb0dec33fba1143b7dee1}{egl\_surface});
+487 \}
+488
+489 window->\hyperlink{structwindow_a633864bb495ec265bee220a5c70cc98f}{frames}++;
+490 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!registry\+\_\+handle\+\_\+global@{registry\+\_\+handle\+\_\+global}}
+\index{registry\+\_\+handle\+\_\+global@{registry\+\_\+handle\+\_\+global}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{registry\+\_\+handle\+\_\+global(void $\ast$data, struct wl\+\_\+registry $\ast$registry, uint32\+\_\+t name, const char $\ast$interface, uint32\+\_\+t version)}{registry_handle_global(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version)}}]{\setlength{\rightskip}{0pt plus 5cm}static void registry\+\_\+handle\+\_\+global (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{data, }
+\item[{struct wl\+\_\+registry $\ast$}]{registry, }
+\item[{uint32\+\_\+t}]{name, }
+\item[{const char $\ast$}]{interface, }
+\item[{uint32\+\_\+t}]{version}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_af288e02a94c196a68b327fc55c049932}{}\label{simple-egl_8cpp_af288e02a94c196a68b327fc55c049932}
+
+
+Definition at line 493 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+495 \{
+496 \textcolor{keyword}{struct }\hyperlink{structdisplay}{display} *d = data;
+497
+498 \textcolor{keywordflow}{if} (strcmp(interface, \textcolor{stringliteral}{"wl\_compositor"}) == 0) \{
+499 d->\hyperlink{structdisplay_a41ba32dfde812165dda5b62885000c78}{compositor} =
+500 wl\_registry\_bind(\hyperlink{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{registry}, name,
+501 &wl\_compositor\_interface, 1);
+502 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcmp(interface, \textcolor{stringliteral}{"ivi\_application"}) == 0) \{
+503 d->\hyperlink{structdisplay_a24c073faff3bb4799c2d46291f27ab89}{ivi\_application} =
+504 wl\_registry\_bind(\hyperlink{structdisplay_a925781323f5c8eb84ef2225ed129de4b}{registry}, name,
+505 &\hyperlink{simple-egl_8cpp_a769b65b7b0e834f732f1f45e835890d5}{ivi\_application\_interface}, 1);
+506 \}
+507 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!registry\+\_\+handle\+\_\+global\+\_\+remove@{registry\+\_\+handle\+\_\+global\+\_\+remove}}
+\index{registry\+\_\+handle\+\_\+global\+\_\+remove@{registry\+\_\+handle\+\_\+global\+\_\+remove}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{registry\+\_\+handle\+\_\+global\+\_\+remove(void $\ast$data, struct wl\+\_\+registry $\ast$registry, uint32\+\_\+t name)}{registry_handle_global_remove(void *data, struct wl_registry *registry, uint32_t name)}}]{\setlength{\rightskip}{0pt plus 5cm}static void registry\+\_\+handle\+\_\+global\+\_\+remove (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{data, }
+\item[{struct wl\+\_\+registry $\ast$}]{registry, }
+\item[{uint32\+\_\+t}]{name}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a59a731b9efa9d6a2015cdc8ccae1db80}{}\label{simple-egl_8cpp_a59a731b9efa9d6a2015cdc8ccae1db80}
+
+
+Definition at line 510 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+512 \{
+513 \}
+\end{DoxyCode}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!signal\+\_\+int@{signal\+\_\+int}}
+\index{signal\+\_\+int@{signal\+\_\+int}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{signal\+\_\+int(int signum)}{signal_int(int signum)}}]{\setlength{\rightskip}{0pt plus 5cm}static void signal\+\_\+int (
+\begin{DoxyParamCaption}
+\item[{int}]{signum}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a2cfc8c2d3fc1273ba8f811d2e639aec8}{}\label{simple-egl_8cpp_a2cfc8c2d3fc1273ba8f811d2e639aec8}
+
+
+Definition at line 521 of file simple-\/egl.\+cpp.
+
+
+\begin{DoxyCode}
+522 \{
+523 \hyperlink{simple-egl_8cpp_a2f45113638a0b749a8a205d2cd7fb42b}{running} = 0;
+524 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!app\+\_\+name@{app\+\_\+name}}
+\index{app\+\_\+name@{app\+\_\+name}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{app\+\_\+name}{app_name}}]{\setlength{\rightskip}{0pt plus 5cm}string app\+\_\+name = string(\char`\"{}Navigation\char`\"{})}\hypertarget{simple-egl_8cpp_a0da928eccfc57d1dfadfd29d4ac4854c}{}\label{simple-egl_8cpp_a0da928eccfc57d1dfadfd29d4ac4854c}
+
+
+Definition at line 63 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!frag\+\_\+shader\+\_\+text@{frag\+\_\+shader\+\_\+text}}
+\index{frag\+\_\+shader\+\_\+text@{frag\+\_\+shader\+\_\+text}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{frag\+\_\+shader\+\_\+text}{frag_shader_text}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ frag\+\_\+shader\+\_\+text\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_ab5a6a2a26ac23f79b1687daa4b0d8980}{}\label{simple-egl_8cpp_ab5a6a2a26ac23f79b1687daa4b0d8980}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+=
+ \textcolor{stringliteral}{"precision mediump float;\(\backslash\)n"}
+ \textcolor{stringliteral}{"varying vec4 v\_color;\(\backslash\)n"}
+ \textcolor{stringliteral}{"void main() \{\(\backslash\)n"}
+ \textcolor{stringliteral}{" gl\_FragColor = v\_color;\(\backslash\)n"}
+ \textcolor{stringliteral}{"\}\(\backslash\)n"}
+\end{DoxyCode}
+
+
+Definition at line 164 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!g\+\_\+id\+\_\+ivisurf@{g\+\_\+id\+\_\+ivisurf}}
+\index{g\+\_\+id\+\_\+ivisurf@{g\+\_\+id\+\_\+ivisurf}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{g\+\_\+id\+\_\+ivisurf}{g_id_ivisurf}}]{\setlength{\rightskip}{0pt plus 5cm}uint32\+\_\+t g\+\_\+id\+\_\+ivisurf = 9009}\hypertarget{simple-egl_8cpp_a28f56c9f01ed9f108201950645317cc9}{}\label{simple-egl_8cpp_a28f56c9f01ed9f108201950645317cc9}
+
+
+Definition at line 59 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!hs@{hs}}
+\index{hs@{hs}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{hs}{hs}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Lib\+Home\+Screen}$\ast$ hs}\hypertarget{simple-egl_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{}\label{simple-egl_8cpp_a529acbd1fed9d98a587edfa62309fa8d}
+
+
+Definition at line 66 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!ivi\+\_\+application\+\_\+interface@{ivi\+\_\+application\+\_\+interface}}
+\index{ivi\+\_\+application\+\_\+interface@{ivi\+\_\+application\+\_\+interface}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{ivi\+\_\+application\+\_\+interface}{ivi_application_interface}}]{\setlength{\rightskip}{0pt plus 5cm}const struct wl\+\_\+interface ivi\+\_\+application\+\_\+interface}\hypertarget{simple-egl_8cpp_a769b65b7b0e834f732f1f45e835890d5}{}\label{simple-egl_8cpp_a769b65b7b0e834f732f1f45e835890d5}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \textcolor{stringliteral}{"ivi\_application"}, 1,
+ 1, \hyperlink{simple-egl_8cpp_a21a39b7c6cf5f6d10a62a70b3ebc9bad}{ivi\_application\_requests},
+ 0, NULL,
+\}
+\end{DoxyCode}
+
+
+Definition at line 95 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!ivi\+\_\+application\+\_\+requests@{ivi\+\_\+application\+\_\+requests}}
+\index{ivi\+\_\+application\+\_\+requests@{ivi\+\_\+application\+\_\+requests}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{ivi\+\_\+application\+\_\+requests}{ivi_application_requests}}]{\setlength{\rightskip}{0pt plus 5cm}const struct wl\+\_\+message ivi\+\_\+application\+\_\+requests\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a21a39b7c6cf5f6d10a62a70b3ebc9bad}{}\label{simple-egl_8cpp_a21a39b7c6cf5f6d10a62a70b3ebc9bad}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \{ \textcolor{stringliteral}{"surface\_create"}, \textcolor{stringliteral}{"uon"}, \hyperlink{simple-egl_8cpp_aea3203db9e218d3e5d60bdb4ebe2fa1f}{types} + 2 \},
+\}
+\end{DoxyCode}
+
+
+Definition at line 91 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!ivi\+\_\+surface\+\_\+events@{ivi\+\_\+surface\+\_\+events}}
+\index{ivi\+\_\+surface\+\_\+events@{ivi\+\_\+surface\+\_\+events}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{ivi\+\_\+surface\+\_\+events}{ivi_surface_events}}]{\setlength{\rightskip}{0pt plus 5cm}const struct wl\+\_\+message ivi\+\_\+surface\+\_\+events\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_ac848f4fbf712a9ba414272fa85577791}{}\label{simple-egl_8cpp_ac848f4fbf712a9ba414272fa85577791}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \{ \textcolor{stringliteral}{"configure"}, \textcolor{stringliteral}{"ii"}, \hyperlink{simple-egl_8cpp_aea3203db9e218d3e5d60bdb4ebe2fa1f}{types} + 0 \},
+\}
+\end{DoxyCode}
+
+
+Definition at line 81 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!ivi\+\_\+surface\+\_\+interface@{ivi\+\_\+surface\+\_\+interface}}
+\index{ivi\+\_\+surface\+\_\+interface@{ivi\+\_\+surface\+\_\+interface}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{ivi\+\_\+surface\+\_\+interface}{ivi_surface_interface}}]{\setlength{\rightskip}{0pt plus 5cm}const struct wl\+\_\+interface ivi\+\_\+surface\+\_\+interface}\hypertarget{simple-egl_8cpp_adf384de8d12d2edd7265ab85fd16b11c}{}\label{simple-egl_8cpp_adf384de8d12d2edd7265ab85fd16b11c}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \textcolor{stringliteral}{"ivi\_surface"}, 1,
+ 1, \hyperlink{simple-egl_8cpp_ada80120c5590d2821da9babef808b98d}{ivi\_surface\_requests},
+ 1, \hyperlink{simple-egl_8cpp_ac848f4fbf712a9ba414272fa85577791}{ivi\_surface\_events},
+\}
+\end{DoxyCode}
+
+
+Definition at line 85 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!ivi\+\_\+surface\+\_\+requests@{ivi\+\_\+surface\+\_\+requests}}
+\index{ivi\+\_\+surface\+\_\+requests@{ivi\+\_\+surface\+\_\+requests}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{ivi\+\_\+surface\+\_\+requests}{ivi_surface_requests}}]{\setlength{\rightskip}{0pt plus 5cm}const struct wl\+\_\+message ivi\+\_\+surface\+\_\+requests\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_ada80120c5590d2821da9babef808b98d}{}\label{simple-egl_8cpp_ada80120c5590d2821da9babef808b98d}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \{ \textcolor{stringliteral}{"destroy"}, \textcolor{stringliteral}{""}, \hyperlink{simple-egl_8cpp_aea3203db9e218d3e5d60bdb4ebe2fa1f}{types} + 0 \},
+\}
+\end{DoxyCode}
+
+
+Definition at line 77 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!log\+\_\+prefix@{log\+\_\+prefix}}
+\index{log\+\_\+prefix@{log\+\_\+prefix}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{log\+\_\+prefix}{log_prefix}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ log\+\_\+prefix = \char`\"{}simple-\/egl\char`\"{}}\hypertarget{simple-egl_8cpp_a894f18168fa25101d792262f59846938}{}\label{simple-egl_8cpp_a894f18168fa25101d792262f59846938}
+
+
+Definition at line 58 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!main\+\_\+role@{main\+\_\+role}}
+\index{main\+\_\+role@{main\+\_\+role}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{main\+\_\+role}{main_role}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ main\+\_\+role = \char`\"{}navigation\char`\"{}}\hypertarget{simple-egl_8cpp_a332251aa739a56836cd4fbf3ecbb8bb2}{}\label{simple-egl_8cpp_a332251aa739a56836cd4fbf3ecbb8bb2}
+
+
+Definition at line 64 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!port@{port}}
+\index{port@{port}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{port}{port}}]{\setlength{\rightskip}{0pt plus 5cm}long port = 1700}\hypertarget{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{}\label{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}
+
+
+Definition at line 60 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!registry\+\_\+listener@{registry\+\_\+listener}}
+\index{registry\+\_\+listener@{registry\+\_\+listener}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{registry\+\_\+listener}{registry_listener}}]{\setlength{\rightskip}{0pt plus 5cm}const struct wl\+\_\+registry\+\_\+listener registry\+\_\+listener\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a8998c87c94cd7d185e8f0cdafab4b1c4}{}\label{simple-egl_8cpp_a8998c87c94cd7d185e8f0cdafab4b1c4}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \hyperlink{simple-egl_8cpp_af288e02a94c196a68b327fc55c049932}{registry\_handle\_global},
+ \hyperlink{simple-egl_8cpp_a59a731b9efa9d6a2015cdc8ccae1db80}{registry\_handle\_global\_remove}
+\}
+\end{DoxyCode}
+
+
+Definition at line 515 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!running@{running}}
+\index{running@{running}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{running}{running}}]{\setlength{\rightskip}{0pt plus 5cm}int running = 1\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a2f45113638a0b749a8a205d2cd7fb42b}{}\label{simple-egl_8cpp_a2f45113638a0b749a8a205d2cd7fb42b}
+
+
+Definition at line 171 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!token@{token}}
+\index{token@{token}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{token}{token}}]{\setlength{\rightskip}{0pt plus 5cm}string token = string(\char`\"{}wm\char`\"{})}\hypertarget{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{}\label{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}
+
+
+Definition at line 61 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!types@{types}}
+\index{types@{types}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{types}{types}}]{\setlength{\rightskip}{0pt plus 5cm}const struct wl\+\_\+interface$\ast$ types\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_aea3203db9e218d3e5d60bdb4ebe2fa1f}{}\label{simple-egl_8cpp_aea3203db9e218d3e5d60bdb4ebe2fa1f}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ NULL,
+ NULL,
+ NULL,
+ &wl\_surface\_interface,
+ &\hyperlink{simple-egl_8cpp_adf384de8d12d2edd7265ab85fd16b11c}{ivi\_surface\_interface},
+\}
+\end{DoxyCode}
+
+
+Definition at line 69 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!vert\+\_\+shader\+\_\+text@{vert\+\_\+shader\+\_\+text}}
+\index{vert\+\_\+shader\+\_\+text@{vert\+\_\+shader\+\_\+text}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{vert\+\_\+shader\+\_\+text}{vert_shader_text}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ vert\+\_\+shader\+\_\+text\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{simple-egl_8cpp_a717575939a37d84dcd4cf0447a630834}{}\label{simple-egl_8cpp_a717575939a37d84dcd4cf0447a630834}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+=
+ \textcolor{stringliteral}{"uniform mat4 rotation;\(\backslash\)n"}
+ \textcolor{stringliteral}{"attribute vec4 pos;\(\backslash\)n"}
+ \textcolor{stringliteral}{"attribute vec4 color;\(\backslash\)n"}
+ \textcolor{stringliteral}{"varying vec4 v\_color;\(\backslash\)n"}
+ \textcolor{stringliteral}{"void main() \{\(\backslash\)n"}
+ \textcolor{stringliteral}{" gl\_Position = rotation * pos;\(\backslash\)n"}
+ \textcolor{stringliteral}{" v\_color = color;\(\backslash\)n"}
+ \textcolor{stringliteral}{"\}\(\backslash\)n"}
+\end{DoxyCode}
+
+
+Definition at line 154 of file simple-\/egl.\+cpp.
+
+\index{simple-\/egl.\+cpp@{simple-\/egl.\+cpp}!wm@{wm}}
+\index{wm@{wm}!simple-\/egl.\+cpp@{simple-\/egl.\+cpp}}
+\subsubsection[{\texorpdfstring{wm}{wm}}]{\setlength{\rightskip}{0pt plus 5cm}Lib\+Windowmanager$\ast$ wm}\hypertarget{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}{}\label{simple-egl_8cpp_ad1513698e07197206c290f94d7669d85}
+
+
+Definition at line 67 of file simple-\/egl.\+cpp.
+
diff --git a/doc/api-ref/latex/de/dca/hs-clientmanager_8h.tex b/doc/api-ref/latex/de/dca/hs-clientmanager_8h.tex
new file mode 100644
index 0000000..79fb594
--- /dev/null
+++ b/doc/api-ref/latex/de/dca/hs-clientmanager_8h.tex
@@ -0,0 +1,26 @@
+\hypertarget{hs-clientmanager_8h}{}\section{src/hs-\/clientmanager.h File Reference}
+\label{hs-clientmanager_8h}\index{src/hs-\/clientmanager.\+h@{src/hs-\/clientmanager.\+h}}
+{\ttfamily \#include $<$string$>$}\\*
+{\ttfamily \#include $<$mutex$>$}\\*
+{\ttfamily \#include $<$memory$>$}\\*
+{\ttfamily \#include $<$unordered\+\_\+map$>$}\\*
+{\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\\*
+{\ttfamily \#include \char`\"{}hs-\/client.\+h\char`\"{}}\\*
+\subsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+struct \hyperlink{struct_h_s___client_ctxt}{H\+S\+\_\+\+Client\+Ctxt}
+\item
+class \hyperlink{class_h_s___client_manager}{H\+S\+\_\+\+Client\+Manager}
+\end{DoxyCompactItemize}
+\subsection*{Typedefs}
+\begin{DoxyCompactItemize}
+\item
+typedef struct \hyperlink{struct_h_s___client_ctxt}{H\+S\+\_\+\+Client\+Ctxt} \hyperlink{hs-clientmanager_8h_a58a145d17337b835ab3fe17b50163040}{H\+S\+\_\+\+Client\+Ctxt}
+\end{DoxyCompactItemize}
+
+
+\subsection{Typedef Documentation}
+\index{hs-\/clientmanager.\+h@{hs-\/clientmanager.\+h}!H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}}
+\index{H\+S\+\_\+\+Client\+Ctxt@{H\+S\+\_\+\+Client\+Ctxt}!hs-\/clientmanager.\+h@{hs-\/clientmanager.\+h}}
+\subsubsection[{\texorpdfstring{H\+S\+\_\+\+Client\+Ctxt}{HS_ClientCtxt}}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf H\+S\+\_\+\+Client\+Ctxt} {\bf H\+S\+\_\+\+Client\+Ctxt}}\hypertarget{hs-clientmanager_8h_a58a145d17337b835ab3fe17b50163040}{}\label{hs-clientmanager_8h_a58a145d17337b835ab3fe17b50163040}
diff --git a/doc/api-ref/latex/de/dd0/class_lib_home_screen.tex b/doc/api-ref/latex/de/dd0/class_lib_home_screen.tex
index ce14de7..01b42c8 100644
--- a/doc/api-ref/latex/de/dd0/class_lib_home_screen.tex
+++ b/doc/api-ref/latex/de/dd0/class_lib_home_screen.tex
@@ -7,9 +7,16 @@
\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,
+enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Event\+Type} \{ \\*
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c}{Event\+\_\+\+Show\+Window} = 1,
+\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}
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\+\_\+\+On\+Screen\+Reply},
+\\*
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aef8bb1086ddbc0a125d77af9da3146a0}{Event\+\_\+\+Hide\+Window},
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aaacb8babce7fac884ab4bf7605da0d9f}{Event\+\_\+\+Reply\+Show\+Window},
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a68119a9c3ff85e807db38d3282e5ca30}{Event\+\_\+\+Show\+Notification},
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a1fad2ac5071a1dae7db9c8e1b522669b}{Event\+\_\+\+Show\+Information}
\}
\item
using \hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{handler\+\_\+func} = std\+::function$<$ void(json\+\_\+object $\ast$)$>$
@@ -25,9 +32,9 @@ using \hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{handle
\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)
+int \hyperlink{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}{init} (const int \hyperlink{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{port}, const std\+::string \&\hyperlink{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{token})
\item
-int \hyperlink{class_lib_home_screen_afb571c9577087b47065eb23e7fdbc903}{tap\+Shortcut} (const char $\ast$application\+\_\+name)
+int \hyperlink{class_lib_home_screen_a6ca8ff4a2aa019a735afaff713e0ef44}{tap\+Shortcut} (const char $\ast$application\+\_\+id)
\item
int \hyperlink{class_lib_home_screen_ac336482036a72b51a822725f1929523c}{on\+Screen\+Message} (const char $\ast$display\+\_\+message)
\item
@@ -35,7 +42,7 @@ int \hyperlink{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}{on\+Scre
\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)
+void \hyperlink{class_lib_home_screen_a2789e8a5372202cc36f48e71dbb9b7cf}{register\+Callback} (void($\ast$event\+\_\+cb)(const std\+::string \&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
@@ -45,14 +52,39 @@ int \hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscrib
\item
int \hyperlink{class_lib_home_screen_aac03a45cbd453ba69ddb00c1016930a6}{unsubscribe} (const std\+::string \&event\+\_\+name)
\item
+int \hyperlink{class_lib_home_screen_a69fc770cb3f94d30a10c2c8c81eb892f}{show\+Window} (const char $\ast$application\+\_\+id, json\+\_\+object $\ast$json)
+\item
+int \hyperlink{class_lib_home_screen_a4dbaea6c7b310e8ce7207155ff11b32a}{hide\+Window} (const char $\ast$application\+\_\+id)
+\item
+int \hyperlink{class_lib_home_screen_a6310b129fc85ef0623e2e2063950cc4b}{reply\+Show\+Window} (const char $\ast$application\+\_\+id, json\+\_\+object $\ast$json)
+\item
+int \hyperlink{class_lib_home_screen_a93ad567ed597a80a344ba82457c2bd7f}{show\+Notification} (json\+\_\+object $\ast$json)
+\item
+int \hyperlink{class_lib_home_screen_ada999aeb0444c964428bdf1ee236727f}{show\+Information} (json\+\_\+object $\ast$json)
+\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)
+void \hyperlink{class_lib_home_screen_a9c4885b51b43ab24a548d49fb3ab2de3}{on\+\_\+event} (void $\ast$closure, const char $\ast$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*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+const char $\ast$ \hyperlink{class_lib_home_screen_a927592eff8e34efbbceaf12522f8897f}{\+\_\+key\+Parameter} = \char`\"{}parameter\char`\"{}
+\item
+const char $\ast$ \hyperlink{class_lib_home_screen_a8becda1b035ae45f5a11c7e7963091bf}{\+\_\+key\+Area} = \char`\"{}area\char`\"{}
+\item
+const char $\ast$ \hyperlink{class_lib_home_screen_aac718b60b83c74e2b061f6f7f7ec3bf5}{\+\_\+area\+Normal} = \char`\"{}normal\char`\"{}
+\item
+const char $\ast$ \hyperlink{class_lib_home_screen_ad0569f5323ead77a43bd8735377a6f25}{\+\_\+area\+Full\+Screen} = \char`\"{}fullscreen\char`\"{}
+\item
+const char $\ast$ \hyperlink{class_lib_home_screen_a7f201fc366146790520bf8d990f7b2eb}{\+\_\+area\+Split\+Main} = \char`\"{}split.\+main\char`\"{}
+\item
+const char $\ast$ \hyperlink{class_lib_home_screen_ab4f54373b0681de11243152f01c48888}{\+\_\+area\+Split\+Sub} = \char`\"{}split.\+sub\char`\"{}
+\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item
@@ -65,118 +97,131 @@ static const std\+::vector$<$ std\+::string $>$ \hyperlink{class_lib_home_screen
\subsection{Detailed Description}
-Definition at line 32 of file libhomescreen.\+hpp.
+Definition at line 31 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$)$>$}
+\subsubsection[{\texorpdfstring{handler\+\_\+func}{handler_func}}]{\setlength{\rightskip}{0pt plus 5cm}using {\bf Lib\+Home\+Screen\+::handler\+\_\+func} = std\+::function$<$void(json\+\_\+object$\ast$)$>$}\hypertarget{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{}\label{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}
-
-Definition at line 42 of file libhomescreen.\+hpp.
+Definition at line 40 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}}
+\subsubsection[{\texorpdfstring{Event\+Type}{EventType}}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf Lib\+Home\+Screen\+::\+Event\+Type}}\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}
+\begin{Desc}
+\item[Enumerator]\par
+\begin{description}
+\index{Event\+\_\+\+Show\+Window@{Event\+\_\+\+Show\+Window}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+\_\+\+Show\+Window@{Event\+\_\+\+Show\+Window}}\item[{\em
+Event\+\_\+\+Show\+Window\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c}
+}]\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}}\item[{\em
+Event\+\_\+\+Tap\+Shortcut\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}
+}]\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}}\item[{\em
+Event\+\_\+\+On\+Screen\+Message\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}
+}]\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}}\item[{\em
+Event\+\_\+\+On\+Screen\+Reply\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}
+}]\index{Event\+\_\+\+Hide\+Window@{Event\+\_\+\+Hide\+Window}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+\_\+\+Hide\+Window@{Event\+\_\+\+Hide\+Window}}\item[{\em
+Event\+\_\+\+Hide\+Window\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aef8bb1086ddbc0a125d77af9da3146a0}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aef8bb1086ddbc0a125d77af9da3146a0}
+}]\index{Event\+\_\+\+Reply\+Show\+Window@{Event\+\_\+\+Reply\+Show\+Window}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+\_\+\+Reply\+Show\+Window@{Event\+\_\+\+Reply\+Show\+Window}}\item[{\em
+Event\+\_\+\+Reply\+Show\+Window\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aaacb8babce7fac884ab4bf7605da0d9f}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aaacb8babce7fac884ab4bf7605da0d9f}
+}]\index{Event\+\_\+\+Show\+Notification@{Event\+\_\+\+Show\+Notification}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+\_\+\+Show\+Notification@{Event\+\_\+\+Show\+Notification}}\item[{\em
+Event\+\_\+\+Show\+Notification\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a68119a9c3ff85e807db38d3282e5ca30}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a68119a9c3ff85e807db38d3282e5ca30}
+}]\index{Event\+\_\+\+Show\+Information@{Event\+\_\+\+Show\+Information}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Event\+\_\+\+Show\+Information@{Event\+\_\+\+Show\+Information}}\item[{\em
+Event\+\_\+\+Show\+Information\hypertarget{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a1fad2ac5071a1dae7db9c8e1b522669b}{}\label{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a1fad2ac5071a1dae7db9c8e1b522669b}
+}]\end{description}
+\end{Desc}
-\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.
+Definition at line 42 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 \};
+42 \{
+43 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c}{Event\_ShowWindow} = 1,
+44 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut} = 1,
+45 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage},
+46 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply},
+47 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aef8bb1086ddbc0a125d77af9da3146a0}{Event\_HideWindow},
+48 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aaacb8babce7fac884ab4bf7605da0d9f}{Event\_ReplyShowWindow},
+49 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a68119a9c3ff85e807db38d3282e5ca30}{Event\_ShowNotification},
+50 \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a1fad2ac5071a1dae7db9c8e1b522669b}{Event\_ShowInformation}
+51 \};
\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})}
-
+\subsubsection[{\texorpdfstring{Lib\+Home\+Screen()}{LibHomeScreen()}}]{\setlength{\rightskip}{0pt plus 5cm}Lib\+Home\+Screen\+::\+Lib\+Home\+Screen (
+\begin{DoxyParamCaption}
+{}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a724bd949c4154fad041f96a15ef0f5dc}{}\label{class_lib_home_screen_a724bd949c4154fad041f96a15ef0f5dc}
constructor
-Definition at line 83 of file libhomescreen.\+cpp.
+Definition at line 93 of file libhomescreen.\+cpp.
\begin{DoxyCode}
-84 \{
-85 \}
+94 \{
+95 \}
\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})}
-
+\subsubsection[{\texorpdfstring{$\sim$\+Lib\+Home\+Screen()}{~LibHomeScreen()}}]{\setlength{\rightskip}{0pt plus 5cm}Lib\+Home\+Screen\+::$\sim$\+Lib\+Home\+Screen (
+\begin{DoxyParamCaption}
+{}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a249902aebf71a5383ca8ec6ae558d095}{}\label{class_lib_home_screen_a249902aebf71a5383ca8ec6ae558d095}
destructor
-Definition at line 90 of file libhomescreen.\+cpp.
+Definition at line 100 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 \}
+101 \{
+102 \textcolor{keywordflow}{if}(mploop)
+103 \{
+104 sd\_event\_unref(mploop);
+105 \}
+106 \textcolor{keywordflow}{if}(sp\_websock != NULL)
+107 \{
+108 afb\_wsj1\_unref(sp\_websock);
+109 \}
+110 \}
\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]}}
-
+\subsubsection[{\texorpdfstring{Lib\+Home\+Screen(const Lib\+Home\+Screen \&)=delete}{LibHomeScreen(const LibHomeScreen &)=delete}}]{\setlength{\rightskip}{0pt plus 5cm}Lib\+Home\+Screen\+::\+Lib\+Home\+Screen (
+\begin{DoxyParamCaption}
+\item[{const {\bf Lib\+Home\+Screen} \&}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [delete]}}\hypertarget{class_lib_home_screen_a0fff2f703c8ce184eb9edd133e0f4137}{}\label{class_lib_home_screen_a0fff2f703c8ce184eb9edd133e0f4137}
\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}}
+\subsubsection[{\texorpdfstring{call(const std\+::string \&verb, struct json\+\_\+object $\ast$arg)}{call(const std::string &verb, struct json_object *arg)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::call (
+\begin{DoxyParamCaption}
+\item[{const std\+::string \&}]{verb, }
+\item[{struct json\+\_\+object $\ast$}]{arg}
+\end{DoxyParamCaption}
+)}\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 [2/2]}}
-{\footnotesize\ttfamily int Lib\+Home\+Screen\+::call (\begin{DoxyParamCaption}\item[{const char $\ast$}]{verb, }\item[{struct json\+\_\+object $\ast$}]{arg }\end{DoxyParamCaption})}
-
+\subsubsection[{\texorpdfstring{call(const char $\ast$verb, struct json\+\_\+object $\ast$arg)}{call(const char *verb, struct json_object *arg)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::call (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{verb, }
+\item[{struct json\+\_\+object $\ast$}]{arg}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_ab5e8e8ab7d53e0f114e9e907fcbb7643}{}\label{class_lib_home_screen_ab5e8e8ab7d53e0f114e9e907fcbb7643}
This function calls the A\+PI of Home\+Screen via Web\+Socket This function is overload function of \char`\"{}call\char`\"{}
\subparagraph*{Parameters}
@@ -198,34 +243,78 @@ This function calls the A\+PI of Home\+Screen via Web\+Socket This function is o
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.
+Definition at line 377 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+378 \{
+379 \textcolor{keywordtype}{int} ret;
+380 \textcolor{keywordflow}{if}(!sp\_websock)
+381 \{
+382 \textcolor{keywordflow}{return} -1;
+383 \}
+384 \textcolor{keywordflow}{if} (!\hyperlink{libhomescreen_8cpp_a7a2176c3d71fec0f09dcb2aa0866b17e}{has\_verb}(\textcolor{keywordtype}{string}(verb)))
+385 \{
+386 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"verb doesn't exit"});
+387 \textcolor{keywordflow}{return} -1;
+388 \}
+389 ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, verb, arg, \hyperlink{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{\_on\_reply\_static}, \textcolor{keyword}{this});
+390 \textcolor{keywordflow}{if} (ret < 0) \{
+391 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to call verb:%s"},verb);
+392 \}
+393 \textcolor{keywordflow}{return} ret;
+394 \}
+\end{DoxyCode}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!hide\+Window@{hide\+Window}}
+\index{hide\+Window@{hide\+Window}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{hide\+Window(const char $\ast$application\+\_\+id)}{hideWindow(const char *application_id)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::hide\+Window (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{application\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a4dbaea6c7b310e8ce7207155ff11b32a}{}\label{class_lib_home_screen_a4dbaea6c7b310e8ce7207155ff11b32a}
+Sending hide window event
+
+Call Home\+Screen Service\textquotesingle{}s hide\+Window verb to release id\textquotesingle{}s screen.
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item application\+\_\+id \mbox{[}in\mbox{]} \+: This argument should be specified to the application\textquotesingle{}s id.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+Definition at line 503 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 \}
+504 \{
+505 \textcolor{keywordflow}{if}(!sp\_websock)
+506 \{
+507 \textcolor{keywordflow}{return} -1;
+508 \}
+509
+510 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+511 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(application\_id);
+512 json\_object\_object\_add(j\_obj, \hyperlink{libhomescreen_8cpp_a5a89bcb5a83f6b2e5c664a041bd8fd00}{ApplicationId}, val);
+513
+514 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"hideWindow"}, j\_obj);
+515 \}
\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})}
-
+\subsubsection[{\texorpdfstring{init(const int port, const std\+::string \&token)}{init(const int port, const std::string &token)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::init (
+\begin{DoxyParamCaption}
+\item[{const int}]{port, }
+\item[{const std\+::string \&}]{token}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}{}\label{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}
This function is initializer
\subparagraph*{Parameters}
@@ -244,153 +333,194 @@ Nothing
Use this constructor
-Definition at line 116 of file libhomescreen.\+cpp.
+Definition at line 126 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"});
+127 \{
+128 \textcolor{keywordtype}{int} ret = 0;
+129 \textcolor{keywordflow}{if}(\hyperlink{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{port} > 0 && \hyperlink{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{token}.size() > 0)
+130 \{
+131 mport = \hyperlink{simple-egl_8cpp_a300b6806fe6818927fe4df08f2398124}{port};
+132 mtoken = \hyperlink{simple-egl_8cpp_a623ef6987ef3bd185c07b28b13e46d34}{token};
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 \}
+134 \textcolor{keywordflow}{else}
+135 \{
+136 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"port and token should be > 0, Initial port and token uses."});
+137 \}
+138
+139 ret = initialize\_websocket();
+140 \textcolor{keywordflow}{if}(ret != 0 )
+141 \{
+142 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to initialize websocket"});
+143 \}
+144 \textcolor{keywordflow}{else}\{
+145 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Initialized"});
+146 \}
+147
+148 \textcolor{keywordflow}{return} ret;
+149 \}
\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})}
-
+\subsubsection[{\texorpdfstring{on\+\_\+call(void $\ast$closure, const char $\ast$api, const char $\ast$verb, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)}{on_call(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg)}}]{\setlength{\rightskip}{0pt plus 5cm}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}
+)}\hypertarget{class_lib_home_screen_a608638eb87b2772a3dcc92d8ca8f3596}{}\label{class_lib_home_screen_a608638eb87b2772a3dcc92d8ca8f3596}
-Definition at line 448 of file libhomescreen.\+cpp.
+Definition at line 606 of file libhomescreen.\+cpp.
\begin{DoxyCode}
-449 \{
-450 \}
+607 \{
+608 \}
\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})}
-
+\subsubsection[{\texorpdfstring{on\+\_\+event(void $\ast$closure, const char $\ast$event, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)}{on_event(void *closure, const char *event, struct afb_wsj1_msg *msg)}}]{\setlength{\rightskip}{0pt plus 5cm}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}
+)}\hypertarget{class_lib_home_screen_a9c4885b51b43ab24a548d49fb3ab2de3}{}\label{class_lib_home_screen_a9c4885b51b43ab24a548d49fb3ab2de3}
-Definition at line 458 of file libhomescreen.\+cpp.
+Definition at line 616 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 \}
+617 \{
+618 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"event: (%s) msg: (%s)."}, event, afb\_wsj1\_msg\_object\_s(msg));
+619
+620 \textcolor{keywordflow}{if} (strstr(event, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}) == NULL) \{
+621 \textcolor{keywordflow}{return};
+622 \}
+623
+624 \textcolor{keyword}{struct }json\_object* ev\_contents = afb\_wsj1\_msg\_object\_j(msg);
+625 \textcolor{keyword}{struct }json\_object *json\_data;
+626 \textcolor{keywordflow}{if}(!json\_object\_object\_get\_ex(ev\_contents, \textcolor{stringliteral}{"data"}, &json\_data)) \{
+627 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"}, \textcolor{stringliteral}{"got ev\_contents error."});
+628 \textcolor{keywordflow}{return};
+629 \}
+630
+631 \textcolor{keywordflow}{if}(onEvent != \textcolor{keyword}{nullptr})
+632 \{
+633 \textcolor{keyword}{const} \textcolor{keywordtype}{string} ev(event);
+634 onEvent(ev, ev\_contents);
+635 \}
+636
+637 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* event\_type = \textcolor{keyword}{nullptr};
+638 \textcolor{keyword}{struct }json\_object *json\_event\_type;
+639 \textcolor{keywordflow}{if}(json\_object\_object\_get\_ex(json\_data, \textcolor{stringliteral}{"type"}, &json\_event\_type)) \{
+640 event\_type = json\_object\_get\_string(json\_event\_type);
+641 \}
+642 \textcolor{keywordflow}{else} \{
+643 \hyperlink{include_2hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}{HMI\_WARNING}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"event\_type is null."});
+644 \textcolor{keywordflow}{return};
+645 \}
+646
+647 \textcolor{keywordflow}{if} (strcasecmp(event\_type, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[0].c\_str()) == 0) \{
+648 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c}{Event\_ShowWindow});
+649 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+650 i->second(json\_data);
+651 \}
+652 \}
+653 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_type, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[1].c\_str()) == 0) \{
+654 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage});
+655 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+656 i->second(json\_data);
+657 \}
+658 \}
+659 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_type, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[2].c\_str()) == 0) \{
+660 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply});
+661 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+662 i->second(json\_data);
+663 \}
+664 \}
+665 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_type, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[3].c\_str()) == 0) \{
+666 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aef8bb1086ddbc0a125d77af9da3146a0}{Event\_HideWindow});
+667 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+668 i->second(json\_data);
+669 \}
+670 \}
+671 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_type, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[4].c\_str()) == 0) \{
+672 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aaacb8babce7fac884ab4bf7605da0d9f}{Event\_ReplyShowWindow});
+673 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+674 i->second(json\_data);
+675 \}
+676 \}
+677 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_type, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[5].c\_str()) == 0) \{
+678 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a68119a9c3ff85e807db38d3282e5ca30}{Event\_ShowNotification});
+679 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+680 i->second(json\_data);
+681 \}
+682 \}
+683 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_type, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[6].c\_str()) == 0) \{
+684 \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a1fad2ac5071a1dae7db9c8e1b522669b}{Event\_ShowInformation});
+685 \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+686 i->second(json\_data);
+687 \}
+688 \}
+689 \}
\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})}
-
+\subsubsection[{\texorpdfstring{on\+\_\+hangup(void $\ast$closure, struct afb\+\_\+wsj1 $\ast$wsj)}{on_hangup(void *closure, struct afb_wsj1 *wsj)}}]{\setlength{\rightskip}{0pt plus 5cm}void Lib\+Home\+Screen\+::on\+\_\+hangup (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{closure, }
+\item[{struct afb\+\_\+wsj1 $\ast$}]{wsj}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_ab1c1fa69f24b981e824dd9fb810c4b74}{}\label{class_lib_home_screen_ab1c1fa69f24b981e824dd9fb810c4b74}
-Definition at line 439 of file libhomescreen.\+cpp.
+Definition at line 597 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 \}
+598 \{
+599 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"called"});
+600 \textcolor{keywordflow}{if}(onHangup != \textcolor{keyword}{nullptr})
+601 \{
+602 onHangup();
+603 \}
+604 \}
\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})}
-
+\subsubsection[{\texorpdfstring{on\+\_\+reply(void $\ast$closure, struct afb\+\_\+wsj1\+\_\+msg $\ast$msg)}{on_reply(void *closure, struct afb_wsj1_msg *msg)}}]{\setlength{\rightskip}{0pt plus 5cm}void Lib\+Home\+Screen\+::on\+\_\+reply (
+\begin{DoxyParamCaption}
+\item[{void $\ast$}]{closure, }
+\item[{struct afb\+\_\+wsj1\+\_\+msg $\ast$}]{msg}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a248d9648c6186287a7632ec1c75fc9c5}{}\label{class_lib_home_screen_a248d9648c6186287a7632ec1c75fc9c5}
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.
+Definition at line 695 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 \}
+696 \{
+697 \hyperlink{include_2hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"msg: (%s)"}, afb\_wsj1\_msg\_object\_s(msg));
+698 \textcolor{keywordflow}{if}(onReply != \textcolor{keyword}{nullptr})
+699 \{
+700 \textcolor{keyword}{struct }json\_object* reply = afb\_wsj1\_msg\_object\_j(msg);
+701 onReply(reply);
+702 \}
+703 \}
\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})}
-
+\subsubsection[{\texorpdfstring{on\+Screen\+Message(const char $\ast$display\+\_\+message)}{onScreenMessage(const char *display_message)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::on\+Screen\+Message (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{display\+\_\+message}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_ac336482036a72b51a822725f1929523c}{}\label{class_lib_home_screen_ac336482036a72b51a822725f1929523c}
Sending on\+Screen message event
Sending On\+Screen message event to Home\+Screen from applications
@@ -409,28 +539,29 @@ Sending On\+Screen message event to Home\+Screen from applications
\item Returns 0 on success or -\/1 in case of error.
\end{DoxyItemize}
-Definition at line 244 of file libhomescreen.\+cpp.
+Definition at line 242 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 \}
+243 \{
+244 \textcolor{keywordflow}{if}(!sp\_websock)
+245 \{
+246 \textcolor{keywordflow}{return} -1;
+247 \}
+248
+249 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+250 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(display\_message);
+251 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"display\_message"}, val);
+252 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"on\_screen\_message"}, j\_obj);
+253 \}
\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})}
-
+\subsubsection[{\texorpdfstring{on\+Screen\+Reply(const char $\ast$reply\+\_\+message)}{onScreenReply(const char *reply_message)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::on\+Screen\+Reply (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{reply\+\_\+message}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}{}\label{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}
Sending on\+Screen reply event
Sending On\+Screen reply event to applications from Home\+Screen
@@ -449,34 +580,38 @@ Sending On\+Screen reply event to applications from Home\+Screen
\item Returns 0 on success or -\/1 in case of error.
\end{DoxyItemize}
-Definition at line 268 of file libhomescreen.\+cpp.
+Definition at line 266 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 \}
+267 \{
+268 \textcolor{keywordflow}{if}(!sp\_websock)
+269 \{
+270 \textcolor{keywordflow}{return} -1;
+271 \}
+272
+273 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+274 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(reply\_message);
+275 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"reply\_message"}, val);
+276 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"on\_screen\_reply"}, j\_obj);
+277 \}
\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}}
+\subsubsection[{\texorpdfstring{operator=(const Lib\+Home\+Screen \&)=delete}{operator=(const LibHomeScreen &)=delete}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Lib\+Home\+Screen}\& Lib\+Home\+Screen\+::operator= (
+\begin{DoxyParamCaption}
+\item[{const {\bf Lib\+Home\+Screen} \&}]{}
+\end{DoxyParamCaption}
+)\hspace{0.3cm}{\ttfamily [delete]}}\hypertarget{class_lib_home_screen_a23bc17798453cfca50904562736f6b25}{}\label{class_lib_home_screen_a23bc17798453cfca50904562736f6b25}
\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})}
-
+\subsubsection[{\texorpdfstring{register\+Callback(void($\ast$event\+\_\+cb)(const std\+::string \&event, struct json\+\_\+object $\ast$event\+\_\+contents), void($\ast$reply\+\_\+cb)(struct json\+\_\+object $\ast$reply\+\_\+contents), void($\ast$hangup\+\_\+cb)(void)=nullptr)}{registerCallback(void(*event_cb)(const std::string &event, struct json_object *event_contents), void(*reply_cb)(struct json_object *reply_contents), void(*hangup_cb)(void)=nullptr)}}]{\setlength{\rightskip}{0pt plus 5cm}void Lib\+Home\+Screen\+::register\+Callback (
+\begin{DoxyParamCaption}
+\item[{void($\ast$)(const std\+::string \&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}
+)}\hypertarget{class_lib_home_screen_a2789e8a5372202cc36f48e71dbb9b7cf}{}\label{class_lib_home_screen_a2789e8a5372202cc36f48e71dbb9b7cf}
This function register callback function for reply/event message from home screen
\subparagraph*{Parameters}
@@ -495,22 +630,74 @@ Nothing
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.
+Definition at line 165 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+169 \{
+170 onEvent = event\_cb;
+171 onReply = reply\_cb;
+172 onHangup = hangup\_cb;
+173 \}
+\end{DoxyCode}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!reply\+Show\+Window@{reply\+Show\+Window}}
+\index{reply\+Show\+Window@{reply\+Show\+Window}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{reply\+Show\+Window(const char $\ast$application\+\_\+id, json\+\_\+object $\ast$json)}{replyShowWindow(const char *application_id, json_object *json)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::reply\+Show\+Window (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{application\+\_\+id, }
+\item[{json\+\_\+object $\ast$}]{json}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a6310b129fc85ef0623e2e2063950cc4b}{}\label{class_lib_home_screen_a6310b129fc85ef0623e2e2063950cc4b}
+Sending reply onscreen message event
+
+Call Home\+Screen Service\textquotesingle{}s reply\+Show\+Window verb to reply onscreen message.
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item application\+\_\+id \mbox{[}in\mbox{]} \+: This argument should be specified to the onscreen reply to applilcation id.
+\item json \mbox{[}in\mbox{]} \+: This argument should be specified to the json parameters.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+Definition at line 530 of file libhomescreen.\+cpp.
\begin{DoxyCode}
-159 \{
-160 onEvent = event\_cb;
-161 onReply = reply\_cb;
-162 onHangup = hangup\_cb;
-163 \}
+531 \{
+532 \textcolor{keywordflow}{if}(!sp\_websock)
+533 \{
+534 \textcolor{keywordflow}{return} -1;
+535 \}
+536
+537 \textcolor{keywordflow}{if} (json == \textcolor{keyword}{nullptr}) \{
+538 \hyperlink{include_2hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}{HMI\_WARNING}(\textcolor{stringliteral}{"libhomescreen"}, \textcolor{stringliteral}{"replyShowWindow`s parameter is null"});
+539 \textcolor{keywordflow}{return} -1;
+540 \}
+541
+542 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+543 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(application\_id);
+544 json\_object\_object\_add(j\_obj, \hyperlink{libhomescreen_8cpp_a5a89bcb5a83f6b2e5c664a041bd8fd00}{ApplicationId}, val);
+545 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"parameter"}, json);
+546
+547 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"replyShowWindow"}, j\_obj);
+548 \}
\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})}
-
+\subsubsection[{\texorpdfstring{set\+\_\+event\+\_\+handler(enum Event\+Type et, handler\+\_\+func f)}{set_event_handler(enum EventType et, handler_func f)}}]{\setlength{\rightskip}{0pt plus 5cm}void Lib\+Home\+Screen\+::set\+\_\+event\+\_\+handler (
+\begin{DoxyParamCaption}
+\item[{enum {\bf Event\+Type}}]{et, }
+\item[{{\bf handler\+\_\+func}}]{f}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{}\label{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}
Setting Event Handler
Setting event handler for Homescreen
@@ -525,36 +712,186 @@ Setting event handler for Homescreen
\subparagraph*{Return}
-Nothing
+Nothing
+
+\subparagraph*{Note}
+
+Don\textquotesingle{}t release json\+\_\+object by json\+\_\+object\+\_\+put in handler\+\_\+func. The resource is released by libafbwsc library.
+
+Definition at line 295 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+296 \{
+297 \textcolor{keywordflow}{if} (et >= 1 && et <= 7) \{
+298 \textcolor{keywordflow}{switch} (et) \{
+299 \textcolor{comment}{/* case Event\_TapShortcut:}
+300 \textcolor{comment}{ this->subscribe(LibHomeScreen::event\_list[0]);}
+301 \textcolor{comment}{ break;*/}
+302 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c}{Event\_ShowWindow}:
+303 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[0]);
+304 \textcolor{keywordflow}{break};
+305 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage}:
+306 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[1]);
+307 \textcolor{keywordflow}{break};
+308 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply}:
+309 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[2]);
+310 \textcolor{keywordflow}{break};
+311 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aef8bb1086ddbc0a125d77af9da3146a0}{Event\_HideWindow}:
+312 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[3]);
+313 \textcolor{keywordflow}{break};
+314 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aaacb8babce7fac884ab4bf7605da0d9f}{Event\_ReplyShowWindow}:
+315 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[4]);
+316 \textcolor{keywordflow}{break};
+317 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a68119a9c3ff85e807db38d3282e5ca30}{Event\_ShowNotification}:
+318 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[5]);
+319 \textcolor{keywordflow}{break};
+320 \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a1fad2ac5071a1dae7db9c8e1b522669b}{Event\_ShowInformation}:
+321 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[6]);
+322 \textcolor{keywordflow}{break};
+323 \}
+324
+325 this->handlers[et] = std::move(f);
+326 \}
+327 \}
+\end{DoxyCode}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!show\+Information@{show\+Information}}
+\index{show\+Information@{show\+Information}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{show\+Information(json\+\_\+object $\ast$json)}{showInformation(json_object *json)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::show\+Information (
+\begin{DoxyParamCaption}
+\item[{json\+\_\+object $\ast$}]{json}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_ada999aeb0444c964428bdf1ee236727f}{}\label{class_lib_home_screen_ada999aeb0444c964428bdf1ee236727f}
+Sending show information event
+
+Call Home\+Screen Service\textquotesingle{}s information verb to show notification on Information Bar.
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item json \mbox{[}in\mbox{]} \+: This argument should be specified to the json parameters.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+Definition at line 584 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+585 \{
+586 \textcolor{keywordflow}{if}(!sp\_websock)
+587 \{
+588 \textcolor{keywordflow}{return} -1;
+589 \}
+590
+591 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"showInformation"}, json);
+592 \}
+\end{DoxyCode}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!show\+Notification@{show\+Notification}}
+\index{show\+Notification@{show\+Notification}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{show\+Notification(json\+\_\+object $\ast$json)}{showNotification(json_object *json)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::show\+Notification (
+\begin{DoxyParamCaption}
+\item[{json\+\_\+object $\ast$}]{json}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a93ad567ed597a80a344ba82457c2bd7f}{}\label{class_lib_home_screen_a93ad567ed597a80a344ba82457c2bd7f}
+Sending show notification event
+
+Call Home\+Screen Service\textquotesingle{}s notification verb to show notification on Status Bar.
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item json \mbox{[}in\mbox{]} \+: This argument should be specified to the json parameters.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
+
+Definition at line 562 of file libhomescreen.\+cpp.
+
+
+\begin{DoxyCode}
+563 \{
+564 \textcolor{keywordflow}{if}(!sp\_websock)
+565 \{
+566 \textcolor{keywordflow}{return} -1;
+567 \}
+568
+569 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"showNotification"}, json);
+570 \}
+\end{DoxyCode}
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!show\+Window@{show\+Window}}
+\index{show\+Window@{show\+Window}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{show\+Window(const char $\ast$application\+\_\+id, json\+\_\+object $\ast$json)}{showWindow(const char *application_id, json_object *json)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::show\+Window (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{application\+\_\+id, }
+\item[{json\+\_\+object $\ast$}]{json}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a69fc770cb3f94d30a10c2c8c81eb892f}{}\label{class_lib_home_screen_a69fc770cb3f94d30a10c2c8c81eb892f}
+Sending show window event
+
+Call Home\+Screen Service\textquotesingle{}s show\+Window verb to request display id\textquotesingle{}s screen.
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item application\+\_\+id \mbox{[}in\mbox{]} \+: This argument should be specified to the application\textquotesingle{}s id.
+\item json \mbox{[}in\mbox{]} \+: This argument should be specified to the json parameters.
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error.
+\end{DoxyItemize}
-Definition at line 293 of file libhomescreen.\+cpp.
+Definition at line 467 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 \}
+468 \{
+469 \textcolor{keywordflow}{if}(!sp\_websock)
+470 \{
+471 \textcolor{keywordflow}{return} -1;
+472 \}
+473
+474 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+475 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(application\_id);
+476 json\_object\_object\_add(j\_obj, \hyperlink{libhomescreen_8cpp_a5a89bcb5a83f6b2e5c664a041bd8fd00}{ApplicationId}, val);
+477
+478 \textcolor{keywordflow}{if} (json == \textcolor{keyword}{nullptr}) \{
+479 \textcolor{keyword}{struct }json\_object* j\_json = json\_object\_new\_object();
+480 \textcolor{keyword}{struct }json\_object* value = json\_object\_new\_string(\textcolor{stringliteral}{"normal"});
+481 json\_object\_object\_add(j\_json, \textcolor{stringliteral}{"area"}, value);
+482 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"parameter"}, j\_json);
+483 \}
+484 \textcolor{keywordflow}{else} \{
+485 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"parameter"}, json);
+486 \}
+487
+488 \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"showWindow"}, j\_obj);
+489 \}
\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})}
-
+\subsubsection[{\texorpdfstring{subscribe(const std\+::string \&event\+\_\+name)}{subscribe(const std::string &event_name)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::subscribe (
+\begin{DoxyParamCaption}
+\item[{const std\+::string \&}]{event\+\_\+name}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{}\label{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}
Register callback function for each event
\subparagraph*{Parameters}
@@ -575,32 +912,33 @@ Register callback function for each event
This function enables to get an event to your callback function.
-Definition at line 392 of file libhomescreen.\+cpp.
+Definition at line 409 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,
+410 \{
+411 \textcolor{keywordflow}{if}(!sp\_websock)
+412 \{
+413 \textcolor{keywordflow}{return} -1;
+414 \}
+415 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+416 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"event"}, json\_object\_new\_string(event\_name.c\_str()));
+417
+418 \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 \}
+419 \textcolor{keywordflow}{if} (ret < 0) \{
+420 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to call verb"});
+421 \}
+422 \textcolor{keywordflow}{return} ret;
+423 \}
\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})}
-
+\subsubsection[{\texorpdfstring{tap\+Shortcut(const char $\ast$application\+\_\+id)}{tapShortcut(const char *application_id)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::tap\+Shortcut (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{application\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_a6ca8ff4a2aa019a735afaff713e0ef44}{}\label{class_lib_home_screen_a6ca8ff4a2aa019a735afaff713e0ef44}
Sending Short\+Cut Icon tapped event
When Home\+Screen shortcut area is tapped, sending a event
@@ -609,7 +947,7 @@ When Home\+Screen shortcut area is tapped, sending a event
\begin{DoxyItemize}
-\item application\+\_\+name \mbox{[}in\mbox{]} \+: Tapped application name (label)
+\item application\+\_\+id \mbox{[}in\mbox{]} \+: Tapped application id (label)
\end{DoxyItemize}
\subparagraph*{Return}
@@ -619,28 +957,25 @@ When Home\+Screen shortcut area is tapped, sending a event
\item Returns 0 on success or -\/1 in case of error.
\end{DoxyItemize}
-Definition at line 220 of file libhomescreen.\+cpp.
+Definition at line 222 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 \}
+223 \{
+224 \textcolor{keyword}{struct }json\_object* obj = json\_object\_new\_object();
+225 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(\textcolor{stringliteral}{"normal"});
+226 json\_object\_object\_add(obj, \textcolor{stringliteral}{"area"}, val);
+227
+228 \textcolor{keywordflow}{return} \hyperlink{class_lib_home_screen_a69fc770cb3f94d30a10c2c8c81eb892f}{showWindow}(application\_id, obj);
+229 \}
\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})}
-
+\subsubsection[{\texorpdfstring{unsubscribe(const std\+::string \&event\+\_\+name)}{unsubscribe(const std::string &event_name)}}]{\setlength{\rightskip}{0pt plus 5cm}int Lib\+Home\+Screen\+::unsubscribe (
+\begin{DoxyParamCaption}
+\item[{const std\+::string \&}]{event\+\_\+name}
+\end{DoxyParamCaption}
+)}\hypertarget{class_lib_home_screen_aac03a45cbd453ba69ddb00c1016930a6}{}\label{class_lib_home_screen_aac03a45cbd453ba69ddb00c1016930a6}
Unregister callback function for each event
\subparagraph*{Parameters}
@@ -661,35 +996,74 @@ Unregister callback function for each event
This function disables to get an event to your callback function.
-Definition at line 421 of file libhomescreen.\+cpp.
+Definition at line 438 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,
+439 \{
+440 \textcolor{keywordflow}{if}(!sp\_websock)
+441 \{
+442 \textcolor{keywordflow}{return} -1;
+443 \}
+444 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+445 json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"event"}, json\_object\_new\_string(event\_name.c\_str()));
+446
+447 \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 \}
+448 \textcolor{keywordflow}{if} (ret < 0) \{
+449 \hyperlink{include_2hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to call verb"});
+450 \}
+451 \textcolor{keywordflow}{return} ret;
+452 \}
\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}!\+\_\+area\+Full\+Screen@{\+\_\+area\+Full\+Screen}}
+\index{\+\_\+area\+Full\+Screen@{\+\_\+area\+Full\+Screen}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{\+\_\+area\+Full\+Screen}{_areaFullScreen}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ Lib\+Home\+Screen\+::\+\_\+area\+Full\+Screen = \char`\"{}fullscreen\char`\"{}}\hypertarget{class_lib_home_screen_ad0569f5323ead77a43bd8735377a6f25}{}\label{class_lib_home_screen_ad0569f5323ead77a43bd8735377a6f25}
+
+
+Definition at line 59 of file libhomescreen.\+hpp.
+
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!\+\_\+area\+Normal@{\+\_\+area\+Normal}}
+\index{\+\_\+area\+Normal@{\+\_\+area\+Normal}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{\+\_\+area\+Normal}{_areaNormal}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ Lib\+Home\+Screen\+::\+\_\+area\+Normal = \char`\"{}normal\char`\"{}}\hypertarget{class_lib_home_screen_aac718b60b83c74e2b061f6f7f7ec3bf5}{}\label{class_lib_home_screen_aac718b60b83c74e2b061f6f7f7ec3bf5}
+
+
+Definition at line 58 of file libhomescreen.\+hpp.
+
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!\+\_\+area\+Split\+Main@{\+\_\+area\+Split\+Main}}
+\index{\+\_\+area\+Split\+Main@{\+\_\+area\+Split\+Main}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{\+\_\+area\+Split\+Main}{_areaSplitMain}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ Lib\+Home\+Screen\+::\+\_\+area\+Split\+Main = \char`\"{}split.\+main\char`\"{}}\hypertarget{class_lib_home_screen_a7f201fc366146790520bf8d990f7b2eb}{}\label{class_lib_home_screen_a7f201fc366146790520bf8d990f7b2eb}
+
+
+Definition at line 60 of file libhomescreen.\+hpp.
+
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!\+\_\+area\+Split\+Sub@{\+\_\+area\+Split\+Sub}}
+\index{\+\_\+area\+Split\+Sub@{\+\_\+area\+Split\+Sub}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{\+\_\+area\+Split\+Sub}{_areaSplitSub}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ Lib\+Home\+Screen\+::\+\_\+area\+Split\+Sub = \char`\"{}split.\+sub\char`\"{}}\hypertarget{class_lib_home_screen_ab4f54373b0681de11243152f01c48888}{}\label{class_lib_home_screen_ab4f54373b0681de11243152f01c48888}
+
+
+Definition at line 61 of file libhomescreen.\+hpp.
+
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!\+\_\+key\+Area@{\+\_\+key\+Area}}
+\index{\+\_\+key\+Area@{\+\_\+key\+Area}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{\+\_\+key\+Area}{_keyArea}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ Lib\+Home\+Screen\+::\+\_\+key\+Area = \char`\"{}area\char`\"{}}\hypertarget{class_lib_home_screen_a8becda1b035ae45f5a11c7e7963091bf}{}\label{class_lib_home_screen_a8becda1b035ae45f5a11c7e7963091bf}
+
+
+Definition at line 55 of file libhomescreen.\+hpp.
+
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!\+\_\+key\+Parameter@{\+\_\+key\+Parameter}}
+\index{\+\_\+key\+Parameter@{\+\_\+key\+Parameter}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection[{\texorpdfstring{\+\_\+key\+Parameter}{_keyParameter}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ Lib\+Home\+Screen\+::\+\_\+key\+Parameter = \char`\"{}parameter\char`\"{}}\hypertarget{class_lib_home_screen_a927592eff8e34efbbceaf12522f8897f}{}\label{class_lib_home_screen_a927592eff8e34efbbceaf12522f8897f}
+
+
+Definition at line 54 of file libhomescreen.\+hpp.
+
\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]}}
-
+\subsubsection[{\texorpdfstring{api\+\_\+list}{api_list}}]{\setlength{\rightskip}{0pt plus 5cm}const std\+::vector$<$ std\+::string $>$ Lib\+Home\+Screen\+::api\+\_\+list\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{}\label{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}
{\bfseries Initial value\+:}
\begin{DoxyCode}
\{
@@ -698,31 +1072,38 @@ Definition at line 421 of file libhomescreen.\+cpp.
std::string(\textcolor{stringliteral}{"on\_screen\_message"}),
std::string(\textcolor{stringliteral}{"on\_screen\_reply"}),
std::string(\textcolor{stringliteral}{"subscribe"}),
- std::string(\textcolor{stringliteral}{"unsubscribe"})
+ std::string(\textcolor{stringliteral}{"unsubscribe"}),
+ std::string(\textcolor{stringliteral}{"showWindow"}),
+ std::string(\textcolor{stringliteral}{"hideWindow"}),
+ std::string(\textcolor{stringliteral}{"replyShowWindow"}),
+ std::string(\textcolor{stringliteral}{"showNotification"}),
+ std::string(\textcolor{stringliteral}{"showInformation"})
\}
\end{DoxyCode}
-Definition at line 50 of file libhomescreen.\+hpp.
+Definition at line 63 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]}}
-
+\subsubsection[{\texorpdfstring{event\+\_\+list}{event_list}}]{\setlength{\rightskip}{0pt plus 5cm}const std\+::vector$<$ std\+::string $>$ Lib\+Home\+Screen\+::event\+\_\+list\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{}\label{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}
{\bfseries Initial value\+:}
\begin{DoxyCode}
\{
- std::string(\textcolor{stringliteral}{"tap\_shortcut"}),
+
+ std::string(\textcolor{stringliteral}{"showWindow"}),
std::string(\textcolor{stringliteral}{"on\_screen\_message"}),
std::string(\textcolor{stringliteral}{"on\_screen\_reply"}),
+ std::string(\textcolor{stringliteral}{"hideWindow"}),
+ std::string(\textcolor{stringliteral}{"replyShowWindow"}),
+ std::string(\textcolor{stringliteral}{"showNotification"}),
+ std::string(\textcolor{stringliteral}{"showInformation"}),
std::string(\textcolor{stringliteral}{"none"})
\}
\end{DoxyCode}
-Definition at line 51 of file libhomescreen.\+hpp.
+Definition at line 64 of file libhomescreen.\+hpp.
diff --git a/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex b/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex
index a88a588..d2fbd81 100644
--- a/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex
+++ b/doc/api-ref/latex/df/d43/libhomescreen_8hpp.tex
@@ -1,14 +1,13 @@
\hypertarget{libhomescreen_8hpp}{}\section{include/libhomescreen.hpp File Reference}
\label{libhomescreen_8hpp}\index{include/libhomescreen.\+hpp@{include/libhomescreen.\+hpp}}
-{\ttfamily \#include $<$vector$>$}\newline
-{\ttfamily \#include $<$map$>$}\newline
-{\ttfamily \#include $<$string$>$}\newline
-{\ttfamily \#include $<$functional$>$}\newline
-{\ttfamily \#include $<$json-\/c/json.\+h$>$}\newline
-{\ttfamily \#include $<$systemd/sd-\/event.\+h$>$}\newline
-{\ttfamily \#include $<$afb/afb-\/binding.\+h$>$}\newline
-{\ttfamily \#include $<$afb/afb-\/wsj1.\+h$>$}\newline
-{\ttfamily \#include $<$afb/afb-\/ws-\/client.\+h$>$}\newline
+{\ttfamily \#include $<$vector$>$}\\*
+{\ttfamily \#include $<$map$>$}\\*
+{\ttfamily \#include $<$string$>$}\\*
+{\ttfamily \#include $<$functional$>$}\\*
+{\ttfamily \#include $<$json-\/c/json.\+h$>$}\\*
+{\ttfamily \#include $<$systemd/sd-\/event.\+h$>$}\\*
+{\ttfamily \#include $<$afb/afb-\/wsj1.\+h$>$}\\*
+{\ttfamily \#include $<$afb/afb-\/ws-\/client.\+h$>$}\\*
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item
diff --git a/doc/api-ref/latex/df/d66/hs-helper_8cpp.tex b/doc/api-ref/latex/df/d66/hs-helper_8cpp.tex
new file mode 100644
index 0000000..2e69a28
--- /dev/null
+++ b/doc/api-ref/latex/df/d66/hs-helper_8cpp.tex
@@ -0,0 +1,374 @@
+\hypertarget{hs-helper_8cpp}{}\section{src/hs-\/helper.cpp File Reference}
+\label{hs-helper_8cpp}\index{src/hs-\/helper.\+cpp@{src/hs-\/helper.\+cpp}}
+{\ttfamily \#include $<$string.\+h$>$}\\*
+{\ttfamily \#include $<$cstdarg$>$}\\*
+{\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\\*
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}{get\+\_\+value\+\_\+uint16} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, uint16\+\_\+t $\ast$out\+\_\+id)
+\item
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}{get\+\_\+value\+\_\+int16} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)
+\item
+\hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}{get\+\_\+value\+\_\+int32} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)
+\item
+void \hyperlink{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
+\item
+void \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
+\item
+void \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func} (struct json\+\_\+object $\ast$j\+\_\+obj, const char $\ast$verb\+\_\+name, int count,...)
+\item
+int \hyperlink{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index} (const char $\ast$value)
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+const char $\ast$ \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} \mbox{[}$\,$\mbox{]}
+\end{DoxyCompactItemize}
+
+
+\subsection{Function Documentation}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}}
+\index{get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+int16(const afb\+\_\+req\+\_\+t request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)}{get_value_int16(const afb_req_t request, const char *source, int16_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int16 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{int16\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}{}\label{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}
+get int16 value from source
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output int16 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 82 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+83 \{
+84 \textcolor{keywordtype}{char}* endptr;
+85 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+86 \textcolor{keywordflow}{if}(!tmp)
+87 \{
+88 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+89 \}
+90 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+91
+92 \textcolor{comment}{/* error check of range */}
+93 \textcolor{keywordflow}{if}( (tmp\_id > INT16\_MAX) || (tmp\_id < INT16\_MIN) )
+94 \{
+95 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+96 \}
+97 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+98 \{
+99 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+100 \}
+101
+102 *out\_id = (int16\_t)tmp\_id;
+103 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+104 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}}
+\index{get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+int32(const afb\+\_\+req\+\_\+t request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)}{get_value_int32(const afb_req_t request, const char *source, int32_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int32 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{int32\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}{}\label{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}
+get int32 value from source
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output int32 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 118 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+119 \{
+120 \textcolor{keywordtype}{char}* endptr;
+121 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+122 \textcolor{keywordflow}{if}(!tmp)
+123 \{
+124 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+125 \}
+126 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+127
+128 \textcolor{comment}{/* error check of range */}
+129 \textcolor{keywordflow}{if}( (tmp\_id > INT32\_MAX) || (tmp\_id < INT32\_MIN) )
+130 \{
+131 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+132 \}
+133 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+134 \{
+135 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+136 \}
+137
+138 *out\_id = (int32\_t)tmp\_id;
+139 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+140 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}}
+\index{get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+uint16(const afb\+\_\+req\+\_\+t request, const char $\ast$source, uint16\+\_\+t $\ast$out\+\_\+id)}{get_value_uint16(const afb_req_t request, const char *source, uint16_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+uint16 (
+\begin{DoxyParamCaption}
+\item[{const afb\+\_\+req\+\_\+t}]{request, }
+\item[{const char $\ast$}]{source, }
+\item[{uint16\+\_\+t $\ast$}]{out\+\_\+id}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}{}\label{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}
+get uint16 value from source
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item request \+: Describes the request by bindings from afb-\/daemon
+\item source \+: input source
+\item out\+\_\+id \+: output uint16 value
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+error code
+
+Definition at line 46 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+47 \{
+48 \textcolor{keywordtype}{char}* endptr;
+49 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
+50 \textcolor{keywordflow}{if}(!tmp)
+51 \{
+52 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
+53 \}
+54 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
+55
+56 \textcolor{comment}{/* error check of range */}
+57 \textcolor{keywordflow}{if}( (tmp\_id > UINT16\_MAX) || (tmp\_id < 0) )
+58 \{
+59 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
+60 \}
+61 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
+62 \{
+63 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
+64 \}
+65
+66 *out\_id = (uint16\_t)tmp\_id;
+67 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
+68 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object}}
+\index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object(struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)}{hs_add_object_to_json_object(struct json_object *j_obj, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}{}\label{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}
+add int object to json object
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in int json object
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 154 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+155 \{
+156 va\_list args;
+157 va\_start(args, count);
+158 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+159 \{
+160 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+161 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+162 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+163 ++i;
+164 \}
+165 va\_end(args);
+166 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func}}
+\index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func(struct json\+\_\+object $\ast$j\+\_\+obj, const char $\ast$verb\+\_\+name, int count,...)}{hs_add_object_to_json_object_func(struct json_object *j_obj, const char *verb_name, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{const char $\ast$}]{verb\+\_\+name, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{}\label{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}
+add new json object to json object
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in new json object
+\item verb\+\_\+name \+: new json object\textquotesingle{}s verb value
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 207 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+208 \{
+209 va\_list args;
+210 va\_start(args, count);
+211
+212 json\_object\_object\_add(j\_obj,\textcolor{stringliteral}{"verb"}, json\_object\_new\_string(verb\_name));
+213
+214 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+215 \{
+216 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+217 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
+218 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
+219 ++i;
+220 \}
+221 va\_end(args);
+222 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str}}
+\index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str(struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)}{hs_add_object_to_json_object_str(struct json_object *j_obj, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str (
+\begin{DoxyParamCaption}
+\item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
+\item[{int}]{count, }
+\item[{}]{...}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{}\label{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}
+add string object to json object
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item j\+\_\+obj \+: the json object will join in string json object
+\item count \+: input parameter number
+\item ... \+: parameter list
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+None
+
+Definition at line 180 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+181 \{
+182 va\_list args;
+183 va\_start(args, count);
+184 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
+185 \{
+186 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
+187 \textcolor{keywordtype}{char} *value = va\_arg(args, \textcolor{keywordtype}{char}*);
+188 json\_object\_object\_add(j\_obj, key, json\_object\_new\_string(value));
+189 ++i;
+190 \}
+191 va\_end(args);
+192 \}
+\end{DoxyCode}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}}
+\index{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index(const char $\ast$value)}{hs_search_event_name_index(const char *value)}}]{\setlength{\rightskip}{0pt plus 5cm}int hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index (
+\begin{DoxyParamCaption}
+\item[{const char $\ast$}]{value}
+\end{DoxyParamCaption}
+)}\hypertarget{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}{}\label{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}
+search event position in event list
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item value \+: searched event name
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+event\textquotesingle{}s index in event list
+
+Definition at line 234 of file hs-\/helper.\+cpp.
+
+
+\begin{DoxyCode}
+235 \{
+236 \textcolor{keywordtype}{size\_t} buf\_size = 50;
+237 \textcolor{keywordtype}{size\_t} size = \textcolor{keyword}{sizeof} \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} / \textcolor{keyword}{sizeof} *\hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist};
+238 \textcolor{keywordtype}{int} ret = -1;
+239 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{size\_t} i = 0 ; i < size ; ++i)
+240 \{
+241 \textcolor{keywordflow}{if}(!strncmp(value, \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[i], buf\_size))
+242 \{
+243 ret = i;
+244 \textcolor{keywordflow}{break};
+245 \}
+246 \}
+247 \textcolor{keywordflow}{return} ret;
+248 \}
+\end{DoxyCode}
+
+
+\subsection{Variable Documentation}
+\index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!evlist@{evlist}}
+\index{evlist@{evlist}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
+\subsubsection[{\texorpdfstring{evlist}{evlist}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ evlist\mbox{[}$\,$\mbox{]}}\hypertarget{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{}\label{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}
+{\bfseries Initial value\+:}
+\begin{DoxyCode}
+= \{
+ \textcolor{stringliteral}{"tap\_shortcut"},
+ \textcolor{stringliteral}{"on\_screen\_message"},
+ \textcolor{stringliteral}{"on\_screen\_reply"},
+ \textcolor{stringliteral}{"showWindow"},
+ \textcolor{stringliteral}{"hideWindow"},
+ \textcolor{stringliteral}{"replyShowWindow"},
+ \textcolor{stringliteral}{"showNotification"},
+ \textcolor{stringliteral}{"showInformation"},
+ \textcolor{stringliteral}{"reserved"}
+ \}
+\end{DoxyCode}
+
+
+Definition at line 22 of file hs-\/helper.\+cpp.
+
diff --git a/doc/api-ref/latex/df/d76/hmi-debug_8h.tex b/doc/api-ref/latex/df/d76/hmi-debug_8h.tex
deleted file mode 100644
index 4f5a64c..0000000
--- a/doc/api-ref/latex/df/d76/hmi-debug_8h.tex
+++ /dev/null
@@ -1,202 +0,0 @@
-\hypertarget{hmi-debug_8h}{}\section{include/hmi-\/debug.h File Reference}
-\label{hmi-debug_8h}\index{include/hmi-\/debug.\+h@{include/hmi-\/debug.\+h}}
-{\ttfamily \#include $<$time.\+h$>$}\newline
-{\ttfamily \#include $<$stdio.\+h$>$}\newline
-{\ttfamily \#include $<$afb/afb-\/binding.\+h$>$}\newline
-\subsection*{Macros}
-\begin{DoxyCompactItemize}
-\item
-\#define \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{H\+M\+I\+\_\+\+E\+R\+R\+OR}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\item
-\#define \hyperlink{hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\item
-\#define \hyperlink{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\item
-\#define \hyperlink{hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}{H\+M\+I\+\_\+\+I\+N\+FO}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\item
-\#define \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{H\+M\+I\+\_\+\+D\+E\+B\+UG}(prefix, args, ...)~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
-\end{DoxyCompactItemize}
-\subsection*{Enumerations}
-\begin{DoxyCompactItemize}
-\item
-enum \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL} \{ \newline
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE} = 0,
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR},
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG},
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE},
-\newline
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO},
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG},
-\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX} = L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR
- \}
-\end{DoxyCompactItemize}
-\subsection*{Functions}
-\begin{DoxyCompactItemize}
-\item
-static void \hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG} (enum \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL} level, const char $\ast$file, const char $\ast$func, const int line, const char $\ast$prefix, const char $\ast$log,...)
-\end{DoxyCompactItemize}
-\subsection*{Variables}
-\begin{DoxyCompactItemize}
-\item
-static char \hyperlink{hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG} \mbox{[}6\mbox{]}\mbox{[}20\mbox{]} = \{\char`\"{}N\+O\+NE\char`\"{}, \char`\"{}E\+R\+R\+OR\char`\"{}, \char`\"{}W\+A\+R\+N\+I\+NG\char`\"{}, \char`\"{}N\+O\+T\+I\+CE\char`\"{}, \char`\"{}I\+N\+FO\char`\"{}, \char`\"{}D\+E\+B\+UG\char`\"{}\}
-\end{DoxyCompactItemize}
-
-
-\subsection{Macro Definition Documentation}
-\mbox{\Hypertarget{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}\label{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+D\+E\+B\+UG@{H\+M\+I\+\_\+\+D\+E\+B\+UG}}
-\index{H\+M\+I\+\_\+\+D\+E\+B\+UG@{H\+M\+I\+\_\+\+D\+E\+B\+UG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+D\+E\+B\+UG}{HMI\_DEBUG}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+D\+E\+B\+UG(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 22 of file hmi-\/debug.\+h.
-
-\mbox{\Hypertarget{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}\label{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+E\+R\+R\+OR@{H\+M\+I\+\_\+\+E\+R\+R\+OR}}
-\index{H\+M\+I\+\_\+\+E\+R\+R\+OR@{H\+M\+I\+\_\+\+E\+R\+R\+OR}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+E\+R\+R\+OR}{HMI\_ERROR}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+E\+R\+R\+OR(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 18 of file hmi-\/debug.\+h.
-
-\mbox{\Hypertarget{hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}\label{hmi-debug_8h_a11b249a67108f0f4c50a0fc8a3eb4f5c}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+I\+N\+FO@{H\+M\+I\+\_\+\+I\+N\+FO}}
-\index{H\+M\+I\+\_\+\+I\+N\+FO@{H\+M\+I\+\_\+\+I\+N\+FO}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+I\+N\+FO}{HMI\_INFO}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+I\+N\+FO(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 21 of file hmi-\/debug.\+h.
-
-\mbox{\Hypertarget{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}\label{hmi-debug_8h_abc0d6e0760017d8ae48b836925b2ef15}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+N\+O\+T\+I\+CE@{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}}
-\index{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE@{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+N\+O\+T\+I\+CE}{HMI\_NOTICE}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+N\+O\+T\+I\+CE(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 20 of file hmi-\/debug.\+h.
-
-\mbox{\Hypertarget{hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}\label{hmi-debug_8h_a25361812432cd2480bc8f1a8e56ecbf7}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG@{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}}
-\index{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG@{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG}{HMI\_WARNING}}
-{\footnotesize\ttfamily \#define H\+M\+I\+\_\+\+W\+A\+R\+N\+I\+NG(\begin{DoxyParamCaption}\item[{}]{prefix, }\item[{}]{args, }\item[{}]{... }\end{DoxyParamCaption})~\hyperlink{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}(\hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+F\+U\+N\+C\+T\+I\+O\+N\+\_\+\+\_\+,\+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, prefix, args,\#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}
-
-
-
-Definition at line 19 of file hmi-\/debug.\+h.
-
-
-
-\subsection{Enumeration Type Documentation}
-\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+EL@{L\+O\+G\+\_\+\+L\+E\+V\+EL}}
-\index{L\+O\+G\+\_\+\+L\+E\+V\+EL@{L\+O\+G\+\_\+\+L\+E\+V\+EL}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{L\+O\+G\+\_\+\+L\+E\+V\+EL}{LOG\_LEVEL}}
-{\footnotesize\ttfamily enum \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL}}
-
-\begin{DoxyEnumFields}{Enumerator}
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+NE&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+R\+R\+OR&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+W\+A\+R\+N\+I\+NG&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+T\+I\+CE&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+FO&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+E\+B\+UG&\\
-\hline
-
-\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX@{L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX}}}\mbox{\Hypertarget{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}\label{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}}
-L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+M\+AX&\\
-\hline
-
-\end{DoxyEnumFields}
-
-
-Definition at line 8 of file hmi-\/debug.\+h.
-
-
-\begin{DoxyCode}
-8 \{
-9 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a69dacb1837e1e37c6ed34cc2ee1d8848}{LOG\_LEVEL\_NONE} = 0,
-10 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{LOG\_LEVEL\_ERROR},
-11 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b4dd81b4dc7eefbc55ba03415c627ef}{LOG\_LEVEL\_WARNING},
-12 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a23ae4d711a7bbb3900240cb7316b4b4e}{LOG\_LEVEL\_NOTICE},
-13 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583aedee1e3159bfe7d918b6e29873c5aee4}{LOG\_LEVEL\_INFO},
-14 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a538b2b6e011479d408ecd2be0f6d6177}{LOG\_LEVEL\_DEBUG},
-15 \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a0459003454bc8bb17752e6d8e5787444}{LOG\_LEVEL\_MAX} = \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583a5b40f003febbc3b535649d63f4b8a44f}{LOG\_LEVEL\_ERROR}
-16 \};
-\end{DoxyCode}
-
-
-\subsection{Function Documentation}
-\mbox{\Hypertarget{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}\label{hmi-debug_8h_a0846b9d51e2e0612c4825a9a581aa40a}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!\+\_\+\+H\+M\+I\+\_\+\+L\+OG@{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}}
-\index{\+\_\+\+H\+M\+I\+\_\+\+L\+OG@{\+\_\+\+H\+M\+I\+\_\+\+L\+OG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{\+\_\+\+H\+M\+I\+\_\+\+L\+O\+G()}{\_HMI\_LOG()}}
-{\footnotesize\ttfamily static void \+\_\+\+H\+M\+I\+\_\+\+L\+OG (\begin{DoxyParamCaption}\item[{enum \hyperlink{hmi-debug_8h_aa5a9053636a30269210c54e734e0d583}{L\+O\+G\+\_\+\+L\+E\+V\+EL}}]{level, }\item[{const char $\ast$}]{file, }\item[{const char $\ast$}]{func, }\item[{const int}]{line, }\item[{const char $\ast$}]{prefix, }\item[{const char $\ast$}]{log, }\item[{}]{... }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 26 of file hmi-\/debug.\+h.
-
-
-\begin{DoxyCode}
-27 \{
-28 \textcolor{keyword}{const} \textcolor{keywordtype}{int} log\_level = (getenv(\textcolor{stringliteral}{"USE\_HMI\_DEBUG"}) == NULL)?0:atoi(getenv(\textcolor{stringliteral}{"USE\_HMI\_DEBUG"}));
-29 \textcolor{keywordflow}{if}(log\_level < level)
-30 \{
-31 \textcolor{keywordflow}{return};
-32 \}
-33
-34 \textcolor{keywordtype}{char} *message;
-35 \textcolor{keyword}{struct }timespec tp;
-36 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} time;
-37
-38 clock\_gettime(CLOCK\_REALTIME, &tp);
-39 time = (tp.tv\_sec * 1000000L) + (tp.tv\_nsec / 1000);
-40
-41 va\_list args;
-42 va\_start(args, log);
-43 \textcolor{keywordflow}{if} (log == NULL || vasprintf(&message, log, args) < 0)
-44 message = NULL;
-45 fprintf(stderr, \textcolor{stringliteral}{"[%10.3f] [%s %s] [%s:%d] >>> %s \(\backslash\)n"}, time / 1000.0, prefix,
- \hyperlink{hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}{ERROR\_FLAG}[level], func, line, message);
-46 va\_end(args);
-47 free(message);
-48 \}
-\end{DoxyCode}
-
-
-\subsection{Variable Documentation}
-\mbox{\Hypertarget{hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}\label{hmi-debug_8h_a13d4c7647aad2e84766f8b48a6caab09}}
-\index{hmi-\/debug.\+h@{hmi-\/debug.\+h}!E\+R\+R\+O\+R\+\_\+\+F\+L\+AG@{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG}}
-\index{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG@{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG}!hmi-\/debug.\+h@{hmi-\/debug.\+h}}
-\subsubsection{\texorpdfstring{E\+R\+R\+O\+R\+\_\+\+F\+L\+AG}{ERROR\_FLAG}}
-{\footnotesize\ttfamily char E\+R\+R\+O\+R\+\_\+\+F\+L\+AG\mbox{[}6\mbox{]}\mbox{[}20\mbox{]} = \{\char`\"{}N\+O\+NE\char`\"{}, \char`\"{}E\+R\+R\+OR\char`\"{}, \char`\"{}W\+A\+R\+N\+I\+NG\char`\"{}, \char`\"{}N\+O\+T\+I\+CE\char`\"{}, \char`\"{}I\+N\+FO\char`\"{}, \char`\"{}D\+E\+B\+UG\char`\"{}\}\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 24 of file hmi-\/debug.\+h.
-
diff --git a/doc/api-ref/latex/df/d7d/structevent.tex b/doc/api-ref/latex/df/d7d/structevent.tex
deleted file mode 100644
index d33a2da..0000000
--- a/doc/api-ref/latex/df/d7d/structevent.tex
+++ /dev/null
@@ -1,44 +0,0 @@
-\hypertarget{structevent}{}\section{event Struct Reference}
-\label{structevent}\index{event@{event}}
-\subsection*{Public Attributes}
-\begin{DoxyCompactItemize}
-\item
-const char $\ast$ \hyperlink{structevent_a45c6cfb7961a21a3366db067e4cc59ab}{name}
-\item
-struct afb\+\_\+event $\ast$ \hyperlink{structevent_a58726ebc551d36562ac3f9e1fe293214}{event}
-\end{DoxyCompactItemize}
-
-
-\subsection{Detailed Description}
-
-
-Definition at line 35 of file homescreen.\+c.
-
-
-
-\subsection{Member Data Documentation}
-\mbox{\Hypertarget{structevent_a58726ebc551d36562ac3f9e1fe293214}\label{structevent_a58726ebc551d36562ac3f9e1fe293214}}
-\index{event@{event}!event@{event}}
-\index{event@{event}!event@{event}}
-\subsubsection{\texorpdfstring{event}{event}}
-{\footnotesize\ttfamily struct afb\+\_\+event$\ast$ event\+::event}
-
-
-
-Definition at line 37 of file homescreen.\+c.
-
-\mbox{\Hypertarget{structevent_a45c6cfb7961a21a3366db067e4cc59ab}\label{structevent_a45c6cfb7961a21a3366db067e4cc59ab}}
-\index{event@{event}!name@{name}}
-\index{name@{name}!event@{event}}
-\subsubsection{\texorpdfstring{name}{name}}
-{\footnotesize\ttfamily const char$\ast$ event\+::name}
-
-
-
-Definition at line 36 of file homescreen.\+c.
-
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item
-src/\hyperlink{homescreen_8c}{homescreen.\+c}\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/df/dac/test_8cpp.tex b/doc/api-ref/latex/df/dac/test_8cpp.tex
deleted file mode 100644
index 92ef1df..0000000
--- a/doc/api-ref/latex/df/dac/test_8cpp.tex
+++ /dev/null
@@ -1,275 +0,0 @@
-\hypertarget{test_8cpp}{}\section{libhomescreen/test.cpp File Reference}
-\label{test_8cpp}\index{libhomescreen/test.\+cpp@{libhomescreen/test.\+cpp}}
-{\ttfamily \#include $<$libhomescreen.\+hpp$>$}\newline
-{\ttfamily \#include $<$iostream$>$}\newline
-{\ttfamily \#include $<$glib-\/2.\+0/glib.\+h$>$}\newline
-{\ttfamily \#include $<$fcntl.\+h$>$}\newline
-{\ttfamily \#include $<$string$>$}\newline
-{\ttfamily \#include $<$sys/types.\+h$>$}\newline
-{\ttfamily \#include $<$sys/stat.\+h$>$}\newline
-{\ttfamily \#include $<$thread$>$}\newline
-{\ttfamily \#include $<$exception$>$}\newline
-{\ttfamily \#include $<$vector$>$}\newline
-{\ttfamily \#include $<$sstream$>$}\newline
-{\ttfamily \#include $<$functional$>$}\newline
-\subsection*{Functions}
-\begin{DoxyCompactItemize}
-\item
-static vector$<$ string $>$ \hyperlink{test_8cpp_aafb7f182b8bb6ba92354dde1658d86a4}{split} (const string \&str, char sep)
-\item
-static void \hyperlink{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}{usage} ()
-\item
-static void \hyperlink{test_8cpp_aa9b3c43c212b49edee82ac30a11aa255}{call\+\_\+test} ()
-\item
-static void \hyperlink{test_8cpp_a6d3cb4886e7afd45bd56b49800da932d}{on\+Rep} (struct json\+\_\+object $\ast$reply\+\_\+contents)
-\item
-static void \hyperlink{test_8cpp_a6a2874c419fe5936fcccadc7e6cf268e}{on\+Ev} (const string \&\hyperlink{structevent}{event}, struct json\+\_\+object $\ast$event\+\_\+contents)
-\item
-int \hyperlink{test_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}{main} (int argc, char $\ast$$\ast$argv)
-\end{DoxyCompactItemize}
-\subsection*{Variables}
-\begin{DoxyCompactItemize}
-\item
-\hyperlink{class_lib_home_screen}{Lib\+Home\+Screen} $\ast$ \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}
-\end{DoxyCompactItemize}
-
-
-\subsection{Function Documentation}
-\mbox{\Hypertarget{test_8cpp_aa9b3c43c212b49edee82ac30a11aa255}\label{test_8cpp_aa9b3c43c212b49edee82ac30a11aa255}}
-\index{test.\+cpp@{test.\+cpp}!call\+\_\+test@{call\+\_\+test}}
-\index{call\+\_\+test@{call\+\_\+test}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{call\+\_\+test()}{call\_test()}}
-{\footnotesize\ttfamily static void call\+\_\+test (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 51 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-52 \{
-53 \textcolor{keywordtype}{string} command;
-54
-55 cout << \textcolor{stringliteral}{"input verb and argments"} << endl;
-56
-57 \textcolor{comment}{/* read the buffer */}
-58 \textcolor{keywordflow}{for}(;;)\{
-59 \textcolor{keywordtype}{char} line[1023];
-60 cin.getline(line, \textcolor{keyword}{sizeof}(line));
-61 command = line;
-62 \textcolor{keywordflow}{if}(command.empty())\{
-63 \textcolor{keywordflow}{continue};
-64 \}
-65
-66 vector<string> v\_command = \hyperlink{test_8cpp_aafb7f182b8bb6ba92354dde1658d86a4}{split}(command, \textcolor{charliteral}{' '});
-67 \textcolor{comment}{/*for(auto itr = v\_command.begin(); itr != v\_command.end(); ++itr)}
-68 \textcolor{comment}{ \{}
-69 \textcolor{comment}{ cout << *itr <<endl;}
-70 \textcolor{comment}{ \}*/}
-71 \textcolor{keywordtype}{size\_t} num = v\_command.size();
-72 \textcolor{keywordflow}{if}(num % 2 == 0)\{
-73 cout << \textcolor{stringliteral}{"If command contains args, please input <key,value> in argument part"} << endl;
-74 \textcolor{keywordflow}{continue};
-75 \}
-76 \textcolor{comment}{/* create json object */}
-77 \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
-78 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 1;i < (v\_command.size()) ;++i)\{
-79 \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(v\_command[i+1].c\_str());
-80 json\_object\_object\_add(j\_obj, v\_command[i].c\_str(), val);
-81 ++i;
-82 \}
-83 \textcolor{comment}{/* call verb via LibHomeScreen */}
-84 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(v\_command[0], j\_obj);
-85 \textcolor{comment}{/* free vector */}
-86 vector<string>().swap(v\_command);
-87 string().swap(command);
-88 \}
-89 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}\label{test_8cpp_a3c04138a5bfe5d72780bb7e82a18e627}}
-\index{test.\+cpp@{test.\+cpp}!main@{main}}
-\index{main@{main}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{main()}{main()}}
-{\footnotesize\ttfamily int main (\begin{DoxyParamCaption}\item[{int}]{argc, }\item[{char $\ast$$\ast$}]{argv }\end{DoxyParamCaption})}
-
-
-
-Definition at line 117 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-118 \{
-119 \textcolor{keywordtype}{int} ret;
-120 \textcolor{keywordflow}{if}(argc == 1)
-121 \{
-122 printf(\textcolor{stringliteral}{"Please input port num in first argument, and token in second argument"});
-123 \hyperlink{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}{usage}();
-124 \textcolor{keywordflow}{return} 0;
-125 \}
-126 \textcolor{keywordflow}{if}(argc == 2)
-127 \{
-128 \textcolor{keywordtype}{string} av(argv[1]);
-129 \textcolor{keywordflow}{if}( (av == \textcolor{stringliteral}{"-h"}) || (av == \textcolor{stringliteral}{"--help"}))
-130 \{
-131 \hyperlink{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}{usage}();
-132 \textcolor{keywordflow}{return} 0;
-133 \}
-134 \}
-135
-136 \textcolor{keywordtype}{string} port\_string(argv[1]);
-137 \textcolor{keywordtype}{string} token(argv[2]);
-138 \textcolor{keywordtype}{char}* endptr;
-139 \textcolor{keywordtype}{long} port = strtol(port\_string.c\_str(),&endptr,10);
-140
-141 \textcolor{comment}{/* error check of range */}
-142 \textcolor{keywordflow}{if}( (port > 20000) || (port < 0) )
-143 \{
-144 printf(\textcolor{stringliteral}{"input under 20000(temporary number)"});
-145 \textcolor{keywordflow}{return} 0;
-146 \}
-147 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
-148 \{
-149 printf(\textcolor{stringliteral}{"not number"});
-150 \textcolor{keywordflow}{return} 0;
-151 \}
-152
-153 cout << \textcolor{stringliteral}{"Call test for LibHomeScreen"} << endl;
-154 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs} = \textcolor{keyword}{new} \hyperlink{class_lib_home_screen}{LibHomeScreen}();
-155 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}{init}(port, token);
-156
-157 \textcolor{comment}{// hs->registerCallback(&onEv, &onRep);}
-158 \textcolor{comment}{//}
-159 \textcolor{comment}{// hs->subscribe(event\_list[0]); // tap\_shortcut event subscribe}
-160 \textcolor{comment}{// hs->subscribe(event\_list[1]);}
-161
-162 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\_event\_handler}(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{LibHomeScreen::Event\_TapShortcut}
- , [](json\_object *\textcolor{keywordtype}{object})\{
-163 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *application\_name = json\_object\_get\_string(
-164 json\_object\_object\_get(\textcolor{keywordtype}{object}, \textcolor{stringliteral}{"application\_name"}));
-165 cout << \textcolor{stringliteral}{"set\_event\_handler Event\_TapShortcut application\_name = "} << application\_name << endl;
-166 \});
-167
-168 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\_event\_handler}(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{LibHomeScreen::Event\_OnScreenMessage}
- , [](json\_object *\textcolor{keywordtype}{object})\{
-169 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *display\_message = json\_object\_get\_string(
-170 json\_object\_object\_get(\textcolor{keywordtype}{object}, \textcolor{stringliteral}{"display\_message"}));
-171 cout << \textcolor{stringliteral}{"set\_event\_handler Event\_OnScreenMessage display\_message = "} << display\_message << endl;
-172 \});
-173
-174 \hyperlink{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}{hs}->\hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\_event\_handler}(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{LibHomeScreen::Event\_OnScreenReply}
- , [](json\_object *\textcolor{keywordtype}{object})\{
-175 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *reply\_message = json\_object\_get\_string(
-176 json\_object\_object\_get(\textcolor{keywordtype}{object}, \textcolor{stringliteral}{"reply\_message"}));
-177 cout << \textcolor{stringliteral}{"set\_event\_handler Event\_OnScreenReply reply\_message = "} << reply\_message << endl;
-178 \});
-179
-180 \textcolor{keywordflow}{if} (ret < 0) \{
-181 printf(\textcolor{stringliteral}{"failed to create event loop"});
-182 \textcolor{keywordflow}{return} -1;
-183 \}
-184
-185 \hyperlink{test_8cpp_aa9b3c43c212b49edee82ac30a11aa255}{call\_test}();
-186
-187 \textcolor{keywordflow}{return} 0;
-188 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_a6a2874c419fe5936fcccadc7e6cf268e}\label{test_8cpp_a6a2874c419fe5936fcccadc7e6cf268e}}
-\index{test.\+cpp@{test.\+cpp}!on\+Ev@{on\+Ev}}
-\index{on\+Ev@{on\+Ev}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{on\+Ev()}{onEv()}}
-{\footnotesize\ttfamily static void on\+Ev (\begin{DoxyParamCaption}\item[{const string \&}]{event, }\item[{struct json\+\_\+object $\ast$}]{event\+\_\+contents }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 98 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-99 \{
-100 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* str = json\_object\_to\_json\_string(event\_contents);
-101 cout << \textcolor{stringliteral}{"test.cpp [CB onEvent]: event: "} << \textcolor{keyword}{event}.c\_str() << \textcolor{stringliteral}{" contents: "} << str << endl;
-102 \textcolor{comment}{//json\_object\_put(event\_contents); do not release!!!}
-103 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_a6d3cb4886e7afd45bd56b49800da932d}\label{test_8cpp_a6d3cb4886e7afd45bd56b49800da932d}}
-\index{test.\+cpp@{test.\+cpp}!on\+Rep@{on\+Rep}}
-\index{on\+Rep@{on\+Rep}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{on\+Rep()}{onRep()}}
-{\footnotesize\ttfamily static void on\+Rep (\begin{DoxyParamCaption}\item[{struct json\+\_\+object $\ast$}]{reply\+\_\+contents }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 91 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-92 \{
-93 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* str = json\_object\_to\_json\_string(reply\_contents);
-94 cout << \textcolor{stringliteral}{"test.cpp [CB onRep]: "} << str << endl;
-95 \textcolor{comment}{//json\_object\_put(reply\_contents); do not release!!!}
-96 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_aafb7f182b8bb6ba92354dde1658d86a4}\label{test_8cpp_aafb7f182b8bb6ba92354dde1658d86a4}}
-\index{test.\+cpp@{test.\+cpp}!split@{split}}
-\index{split@{split}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{split()}{split()}}
-{\footnotesize\ttfamily static vector$<$ string $>$ split (\begin{DoxyParamCaption}\item[{const string \&}]{str, }\item[{char}]{sep }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 105 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-106 \{
-107 vector<string> v;
-108 stringstream ss(str);
-109 \textcolor{keywordtype}{string} buffer;
-110 \textcolor{keywordflow}{while}( getline(ss, buffer, sep) ) \{
-111 \textcolor{keywordflow}{if}(!buffer.empty())
-112 v.push\_back(buffer);
-113 \}
-114 \textcolor{keywordflow}{return} v;
-115 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}\label{test_8cpp_a64a6014565bb3e03294ec4a952d5add0}}
-\index{test.\+cpp@{test.\+cpp}!usage@{usage}}
-\index{usage@{usage}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{usage()}{usage()}}
-{\footnotesize\ttfamily static void usage (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
-
-
-
-Definition at line 35 of file test.\+cpp.
-
-
-\begin{DoxyCode}
-36 \{
-37 cout << \textcolor{stringliteral}{"verb "}<< \textcolor{stringliteral}{"key:arg"} << endl;
-38 cout << \textcolor{stringliteral}{"example:"} << endl;
-39 cout << \textcolor{stringliteral}{"ping"} << endl;
-40 cout << \textcolor{stringliteral}{"------- -------- --- "} << endl;
-41 cout << \textcolor{stringliteral}{" verb key value"} << endl;
-42 cout << \textcolor{stringliteral}{"verb list:"} << endl;
-43 \textcolor{keywordflow}{for}(\textcolor{keyword}{auto} itr = \hyperlink{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{LibHomeScreen::api\_list}.begin(); itr !=
- \hyperlink{class_lib_home_screen_a5593ff5ac78f6495ccb649904cf0ab08}{LibHomeScreen::api\_list}.end(); ++itr)
-44 \{
-45 cout << \textcolor{stringliteral}{" "} << *itr << endl;
-46 \}
-47 \textcolor{comment}{// Todo output api list}
-48 exit(0);
-49 \}
-\end{DoxyCode}
-
-
-\subsection{Variable Documentation}
-\mbox{\Hypertarget{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}\label{test_8cpp_a529acbd1fed9d98a587edfa62309fa8d}}
-\index{test.\+cpp@{test.\+cpp}!hs@{hs}}
-\index{hs@{hs}!test.\+cpp@{test.\+cpp}}
-\subsubsection{\texorpdfstring{hs}{hs}}
-{\footnotesize\ttfamily \hyperlink{class_lib_home_screen}{Lib\+Home\+Screen}$\ast$ hs}
-
-
-
-Definition at line 33 of file test.\+cpp.
-
diff --git a/doc/api-ref/latex/dir_0f70dc74e67ded1ed6ea12b5a24cac83.tex b/doc/api-ref/latex/dir_0f70dc74e67ded1ed6ea12b5a24cac83.tex
deleted file mode 100644
index ddf11f0..0000000
--- a/doc/api-ref/latex/dir_0f70dc74e67ded1ed6ea12b5a24cac83.tex
+++ /dev/null
@@ -1,7 +0,0 @@
-\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/doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex b/doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex
index ae40678..94c1eca 100644
--- a/doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex
+++ b/doc/api-ref/latex/dir_65f76d62445e9e84c0450b12bf77c3bc.tex
@@ -5,5 +5,5 @@
\item
file \hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp}
\item
-file \hyperlink{test_8cpp}{test.\+cpp}
+file \hyperlink{simple-egl_8cpp}{simple-\/egl.\+cpp}
\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex b/doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
index 4a60c25..d1564f9 100644
--- a/doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
+++ b/doc/api-ref/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
@@ -3,9 +3,19 @@
\subsection*{Files}
\begin{DoxyCompactItemize}
\item
-file \hyperlink{homescreen_8c}{homescreen.\+c}
+file \hyperlink{src_2hmi-debug_8h}{hmi-\/debug.\+h}
\item
-file \hyperlink{hs-helper_8c}{hs-\/helper.\+c}
+file \hyperlink{homescreen_8cpp}{homescreen.\+cpp}
+\item
+file \hyperlink{hs-client_8cpp}{hs-\/client.\+cpp}
+\item
+file \hyperlink{hs-client_8h}{hs-\/client.\+h}
+\item
+file \hyperlink{hs-clientmanager_8cpp}{hs-\/clientmanager.\+cpp}
+\item
+file \hyperlink{hs-clientmanager_8h}{hs-\/clientmanager.\+h}
+\item
+file \hyperlink{hs-helper_8cpp}{hs-\/helper.\+cpp}
\item
file \hyperlink{hs-helper_8h}{hs-\/helper.\+h}
\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/dir_a01af9eb3c502936dfd53c3f8e45721d.tex b/doc/api-ref/latex/dir_a01af9eb3c502936dfd53c3f8e45721d.tex
deleted file mode 100644
index d46199f..0000000
--- a/doc/api-ref/latex/dir_a01af9eb3c502936dfd53c3f8e45721d.tex
+++ /dev/null
@@ -1,11 +0,0 @@
-\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/doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex b/doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex
index c00f852..1339cc2 100644
--- a/doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex
+++ b/doc/api-ref/latex/dir_d44c64559bbebec7f509842c48db8b23.tex
@@ -3,7 +3,7 @@
\subsection*{Files}
\begin{DoxyCompactItemize}
\item
-file \hyperlink{hmi-debug_8h}{hmi-\/debug.\+h}
+file \hyperlink{include_2hmi-debug_8h}{hmi-\/debug.\+h}
\item
file \hyperlink{libhomescreen_8hpp}{libhomescreen.\+hpp}
\end{DoxyCompactItemize}
diff --git a/doc/api-ref/latex/doxygen.sty b/doc/api-ref/latex/doxygen.sty
index e457acc..3f21871 100644
--- a/doc/api-ref/latex/doxygen.sty
+++ b/doc/api-ref/latex/doxygen.sty
@@ -305,25 +305,9 @@
\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}}%
+ \renewcommand{\item}[2][]{##1 {\em ##2}}%
}{%
}
@@ -491,13 +475,3 @@
% 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/doc/api-ref/latex/files.tex b/doc/api-ref/latex/files.tex
index d348dbe..ae88208 100644
--- a/doc/api-ref/latex/files.tex
+++ b/doc/api-ref/latex/files.tex
@@ -1,10 +1,15 @@
\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}}{}
+\item\contentsline{section}{include/\hyperlink{include_2hmi-debug_8h}{hmi-\/debug.\+h} }{\pageref{d2/d66/include_2hmi-debug_8h}}{}
+\item\contentsline{section}{include/\hyperlink{libhomescreen_8hpp}{libhomescreen.\+hpp} }{\pageref{df/d43/libhomescreen_8hpp}}{}
+\item\contentsline{section}{libhomescreen/\hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp} }{\pageref{d0/d8a/libhomescreen_8cpp}}{}
+\item\contentsline{section}{libhomescreen/\hyperlink{simple-egl_8cpp}{simple-\/egl.\+cpp} }{\pageref{de/da4/simple-egl_8cpp}}{}
+\item\contentsline{section}{src/\hyperlink{src_2hmi-debug_8h}{hmi-\/debug.\+h} }{\pageref{d6/dff/src_2hmi-debug_8h}}{}
+\item\contentsline{section}{src/\hyperlink{homescreen_8cpp}{homescreen.\+cpp} }{\pageref{d6/dda/homescreen_8cpp}}{}
+\item\contentsline{section}{src/\hyperlink{hs-client_8cpp}{hs-\/client.\+cpp} }{\pageref{d8/d55/hs-client_8cpp}}{}
+\item\contentsline{section}{src/\hyperlink{hs-client_8h}{hs-\/client.\+h} }{\pageref{da/dd3/hs-client_8h}}{}
+\item\contentsline{section}{src/\hyperlink{hs-clientmanager_8cpp}{hs-\/clientmanager.\+cpp} }{\pageref{dd/d30/hs-clientmanager_8cpp}}{}
+\item\contentsline{section}{src/\hyperlink{hs-clientmanager_8h}{hs-\/clientmanager.\+h} }{\pageref{de/dca/hs-clientmanager_8h}}{}
+\item\contentsline{section}{src/\hyperlink{hs-helper_8cpp}{hs-\/helper.\+cpp} }{\pageref{df/d66/hs-helper_8cpp}}{}
+\item\contentsline{section}{src/\hyperlink{hs-helper_8h}{hs-\/helper.\+h} }{\pageref{d3/d3d/hs-helper_8h}}{}
\end{DoxyCompactList}
diff --git a/doc/api-ref/latex/refman.tex b/doc/api-ref/latex/refman.tex
index 1559bf7..88a02cf 100644
--- a/doc/api-ref/latex/refman.tex
+++ b/doc/api-ref/latex/refman.tex
@@ -121,17 +121,16 @@
bookmarksnumbered=true,
pdfencoding=unicode
}
-\pagenumbering{alph}
+\pagenumbering{roman}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large Home\+Screen\+Binding }\\
\vspace*{1cm}
-{\large Generated by Doxygen 1.8.13}\\
+{\large Generated by Doxygen 1.8.11}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
-\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
@@ -143,15 +142,25 @@
\chapter{File Index}
\input{files}
\chapter{Class Documentation}
-\input{df/d7d/structevent}
+\input{d6/df5/structdisplay}
+\input{dd/ddc/structgeometry}
+\input{d5/d20/class_h_s___client}
+\input{d0/d53/struct_h_s___client_ctxt}
+\input{d2/d8e/class_h_s___client_manager}
\input{de/dd0/class_lib_home_screen}
+\input{d6/de3/structwindow}
\chapter{File Documentation}
-\input{df/d76/hmi-debug_8h}
+\input{d2/d66/include_2hmi-debug_8h}
+\input{d6/dff/src_2hmi-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{de/da4/simple-egl_8cpp}
+\input{d6/dda/homescreen_8cpp}
+\input{d8/d55/hs-client_8cpp}
+\input{da/dd3/hs-client_8h}
+\input{dd/d30/hs-clientmanager_8cpp}
+\input{de/dca/hs-clientmanager_8h}
+\input{df/d66/hs-helper_8cpp}
\input{d3/d3d/hs-helper_8h}
%--- End generated contents ---