Add a new OnScreenReply api to agl-service-homescreen
[apps/agl-service-homescreen.git] / doc / api-ref / latex / de / dd0 / class_lib_home_screen.tex
index 5dba568..ce14de7 100644 (file)
@@ -8,10 +8,11 @@
 \begin{DoxyCompactItemize}
 \item 
 enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Event\+Type} \{ \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\+\_\+\+Tap\+Shortcut} = 1, 
-\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\+\_\+\+On\+Screen\+Message}
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\+\_\+\+On\+Screen\+Message}, 
+\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\+\_\+\+On\+Screen\+Reply}
  \}
 \item 
-using \hyperlink{class_lib_home_screen_ae99dee1e03d494d59d26c9f17078e01f}{handler\+\_\+func} = std\+::function$<$ void(const char $\ast$)$>$
+using \hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{handler\+\_\+func} = std\+::function$<$ void(json\+\_\+object $\ast$)$>$
 \end{DoxyCompactItemize}
 \subsection*{Public Member Functions}
 \begin{DoxyCompactItemize}
@@ -26,13 +27,13 @@ using \hyperlink{class_lib_home_screen_ae99dee1e03d494d59d26c9f17078e01f}{handle
 \item 
 int \hyperlink{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}{init} (const int port, const std\+::string \&token)
 \item 
-int \hyperlink{class_lib_home_screen_a32d3282898d0f04151c24b4103511e00}{run\+Eventloop} ()
-\item 
 int \hyperlink{class_lib_home_screen_afb571c9577087b47065eb23e7fdbc903}{tap\+Shortcut} (const char $\ast$application\+\_\+name)
 \item 
 int \hyperlink{class_lib_home_screen_ac336482036a72b51a822725f1929523c}{on\+Screen\+Message} (const char $\ast$display\+\_\+message)
 \item 
-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_ae99dee1e03d494d59d26c9f17078e01f}{handler\+\_\+func} f)
+int \hyperlink{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}{on\+Screen\+Reply} (const char $\ast$reply\+\_\+message)
+\item 
+void \hyperlink{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}{set\+\_\+event\+\_\+handler} (enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Event\+Type} et, \hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{handler\+\_\+func} f)
 \item 
 void \hyperlink{class_lib_home_screen_a2789e8a5372202cc36f48e71dbb9b7cf}{register\+Callback} (void($\ast$event\+\_\+cb)(const std\+::string \&\hyperlink{structevent}{event}, struct json\+\_\+object $\ast$event\+\_\+contents), void($\ast$reply\+\_\+cb)(struct json\+\_\+object $\ast$reply\+\_\+contents), void($\ast$hangup\+\_\+cb)(void)=nullptr)
 \item 
@@ -69,15 +70,15 @@ Definition at line 32 of file libhomescreen.\+hpp.
 
 
 \subsection{Member Typedef Documentation}
-\mbox{\Hypertarget{class_lib_home_screen_ae99dee1e03d494d59d26c9f17078e01f}\label{class_lib_home_screen_ae99dee1e03d494d59d26c9f17078e01f}} 
+\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_ae99dee1e03d494d59d26c9f17078e01f}{Lib\+Home\+Screen\+::handler\+\_\+func} =  std\+::function$<$void(const char$\ast$)$>$}
+{\footnotesize\ttfamily using \hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{Lib\+Home\+Screen\+::handler\+\_\+func} =  std\+::function$<$void(json\+\_\+object$\ast$)$>$}
 
 
 
-Definition at line 41 of file libhomescreen.\+hpp.
+Definition at line 42 of file libhomescreen.\+hpp.
 
 
 
@@ -97,17 +98,22 @@ Event\+\_\+\+Tap\+Shortcut&\\
 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 43 of file libhomescreen.\+hpp.
+Definition at line 44 of file libhomescreen.\+hpp.
 
 
 \begin{DoxyCode}
-43                        \{
-44             \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut} = 1,
-45             \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage}
-46         \};
+44                        \{
+45             \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut} = 1,
+46             \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage},
+47             \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply}
+48         \};
 \end{DoxyCode}
 
 
@@ -120,13 +126,12 @@ Definition at line 43 of file libhomescreen.\+hpp.
 
 constructor 
 
-Definition at line 85 of file libhomescreen.\+cpp.
+Definition at line 83 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-86 \{
-87 
-88 \}
+84 \{
+85 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_a249902aebf71a5383ca8ec6ae558d095}\label{class_lib_home_screen_a249902aebf71a5383ca8ec6ae558d095}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!````~Lib\+Home\+Screen@{$\sim$\+Lib\+Home\+Screen}}
@@ -136,20 +141,20 @@ Definition at line 85 of file libhomescreen.\+cpp.
 
 destructor 
 
-Definition at line 93 of file libhomescreen.\+cpp.
+Definition at line 90 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-94 \{
-95     \textcolor{keywordflow}{if}(mploop)
-96     \{
-97         sd\_event\_unref(mploop);
-98     \}
-99     \textcolor{keywordflow}{if}(sp\_websock != NULL)
-100     \{
-101         free(sp\_websock);
-102     \}
-103 \}
+91 \{
+92     \textcolor{keywordflow}{if}(mploop)
+93     \{
+94         sd\_event\_unref(mploop);
+95     \}
+96     \textcolor{keywordflow}{if}(sp\_websock != NULL)
+97     \{
+98         afb\_wsj1\_unref(sp\_websock);
+99     \}
+100 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_a0fff2f703c8ce184eb9edd133e0f4137}\label{class_lib_home_screen_a0fff2f703c8ce184eb9edd133e0f4137}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
@@ -193,27 +198,27 @@ 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 369 of file libhomescreen.\+cpp.
+Definition at line 360 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-370 \{
-371     \textcolor{keywordtype}{int} ret;
-372     \textcolor{keywordflow}{if}(!sp\_websock)
-373     \{
-374         \textcolor{keywordflow}{return} -1;
+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}{if} (!\hyperlink{libhomescreen_8cpp_a7a2176c3d71fec0f09dcb2aa0866b17e}{has\_verb}(\textcolor{keywordtype}{string}(verb)))
-377     \{
-378         \hyperlink{libhomescreen_8cpp_a797aa3053bd6a29819d44f8fad8a5eca}{ELOG}(\textcolor{stringliteral}{"verb doesn't exit"});
-379         \textcolor{keywordflow}{return} -1;
-380     \}
-381     ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, verb, arg, \hyperlink{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{\_on\_reply\_static}, \textcolor{keyword}{this});
-382     \textcolor{keywordflow}{if} (ret < 0) \{
-383         \hyperlink{libhomescreen_8cpp_a797aa3053bd6a29819d44f8fad8a5eca}{ELOG}(\textcolor{stringliteral}{"Failed to call verb:%s"},verb);
-384     \}
-385     \textcolor{keywordflow}{return} ret;
-386 \}
+376     \textcolor{keywordflow}{return} ret;
+377 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}\label{class_lib_home_screen_a6a57b573cc767725762ba9beab032220}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!init@{init}}
@@ -239,33 +244,33 @@ Nothing
 
 Use this constructor 
 
-Definition at line 119 of file libhomescreen.\+cpp.
+Definition at line 116 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-120 \{
-121     \textcolor{keywordtype}{int} ret = 0;
-122     \textcolor{keywordflow}{if}(port > 0 && token.size() > 0)
-123     \{
-124         mport = port;
-125         mtoken = token;
-126     \}
-127     \textcolor{keywordflow}{else}
-128     \{
-129         \hyperlink{libhomescreen_8cpp_a797aa3053bd6a29819d44f8fad8a5eca}{ELOG}(\textcolor{stringliteral}{"port and token should be > 0, Initial port and token uses."});
-130     \}
-131 
-132     ret = initialize\_websocket();
-133     \textcolor{keywordflow}{if}(ret != 0 )
-134     \{
-135         \hyperlink{libhomescreen_8cpp_a797aa3053bd6a29819d44f8fad8a5eca}{ELOG}(\textcolor{stringliteral}{"Failed to initialize websocket"});
+117 \{
+118     \textcolor{keywordtype}{int} ret = 0;
+119     \textcolor{keywordflow}{if}(port > 0 && token.size() > 0)
+120     \{
+121         mport = port;
+122         mtoken = token;
+123     \}
+124     \textcolor{keywordflow}{else}
+125     \{
+126         \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"port and token should be > 0, Initial port and token uses."});
+127     \}
+128 
+129     ret = initialize\_websocket();
+130     \textcolor{keywordflow}{if}(ret != 0 )
+131     \{
+132         \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to initialize websocket"});
+133     \}
+134     \textcolor{keywordflow}{else}\{
+135         \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Initialized"});
 136     \}
-137     \textcolor{keywordflow}{else}\{
-138         \hyperlink{libhomescreen_8cpp_a4e42b2f5af2174dd24f958351becf63d}{DLOG}(\textcolor{stringliteral}{"Initialized"});
-139     \}
-140 
-141     \textcolor{keywordflow}{return} ret;
-142 \}
+137 
+138     \textcolor{keywordflow}{return} ret;
+139 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_a608638eb87b2772a3dcc92d8ca8f3596}\label{class_lib_home_screen_a608638eb87b2772a3dcc92d8ca8f3596}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+\_\+call@{on\+\_\+call}}
@@ -275,12 +280,12 @@ Definition at line 119 of file libhomescreen.\+cpp.
 
 
 
-Definition at line 457 of file libhomescreen.\+cpp.
+Definition at line 448 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-458 \{
-459 \}
+449 \{
+450 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_a9c4885b51b43ab24a548d49fb3ab2de3}\label{class_lib_home_screen_a9c4885b51b43ab24a548d49fb3ab2de3}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+\_\+event@{on\+\_\+event}}
@@ -290,56 +295,52 @@ Definition at line 457 of file libhomescreen.\+cpp.
 
 
 
-Definition at line 467 of file libhomescreen.\+cpp.
+Definition at line 458 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-468 \{
-469     cout << \textcolor{stringliteral}{"[libhomescreen on\_event]: "} << \textcolor{keyword}{event} << \textcolor{stringliteral}{" ("} << afb\_wsj1\_msg\_object\_s(msg) << \textcolor{stringliteral}{")"} << endl;
-470 
-471   \textcolor{keywordflow}{if} (strstr(\hyperlink{structevent}{event}, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}) == NULL) \{
-472         \textcolor{keywordflow}{return};
+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}{struct }json\_object* ev\_contents = afb\_wsj1\_msg\_object\_j(msg);
-476     \textcolor{keyword}{struct }json\_object *json\_data = json\_object\_object\_get(ev\_contents, \textcolor{stringliteral}{"data"});
-477 
-478     \textcolor{keywordflow}{if}(onEvent != \textcolor{keyword}{nullptr})
-479     \{
-480         \textcolor{keyword}{const} \textcolor{keywordtype}{string} ev(\hyperlink{structevent}{event});
-481         onEvent(ev, ev\_contents);
-482     \}
-483 
-484     \textcolor{keyword}{const} \textcolor{keywordtype}{char}* event\_only = strchr(\hyperlink{structevent}{event}, \textcolor{charliteral}{'/'});
-485     \textcolor{keywordflow}{if} (event\_only != \textcolor{keyword}{nullptr}) \{
-486         event\_only = event\_only + 1;
-487     \}
-488 
-489     \textcolor{keywordflow}{if} (strcasecmp(event\_only, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[0].c\_str()) == 0) \{
-490         \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut});
-491 
-492         \textcolor{keyword}{struct }json\_object *json\_application\_name = json\_object\_object\_get(json\_data, \textcolor{stringliteral}{"application\_name"});
-493         \textcolor{keyword}{const} \textcolor{keywordtype}{char}* application\_name = json\_object\_get\_string(json\_application\_name);
-494 
-495         \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
-496             i->second(application\_name);
-497         \}
-498     \}
-499     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_only, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[1].c\_str()) == 0) \{
-500 
-501         \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage});
-502 
-503         \textcolor{keyword}{struct }json\_object *json\_display\_message = json\_object\_object\_get(json\_data, \textcolor{stringliteral}{"display\_message"});
-504         \textcolor{keyword}{const} \textcolor{keywordtype}{char}* display\_message = json\_object\_get\_string(json\_display\_message);
-505 
-506         \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
-507             i->second(display\_message);
-508         \}
-509 
-510     \}
-511 
-512     json\_object\_put(ev\_contents);
-513 \}
+475     \textcolor{keyword}{const} \textcolor{keywordtype}{char}* event\_only = strchr(\hyperlink{structevent}{event}, \textcolor{charliteral}{'/'});
+476     \textcolor{keywordflow}{if} (event\_only != \textcolor{keyword}{nullptr}) \{
+477         event\_only = event\_only + 1;
+478     \}
+479 
+480     \textcolor{keywordflow}{if} (strcasecmp(event\_only, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[0].c\_str()) == 0) \{
+481         \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut});
+482         \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+483             i->second(json\_data);
+484         \}
+485     \}
+486     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_only, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[1].c\_str()) == 0) \{
+487         \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage});
+488         \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+489             i->second(json\_data);
+490         \}
+491     \}
+492     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcasecmp(event\_only, \hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[2].c\_str()) == 0) \{
+493         \textcolor{keyword}{auto} i = this->handlers.find(\hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply});
+494         \textcolor{keywordflow}{if} ( i != this->handlers.end() ) \{
+495             i->second(json\_data);
+496         \}
+497     \}
+498 
+499     json\_object\_put(ev\_contents);
+500 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_ab1c1fa69f24b981e824dd9fb810c4b74}\label{class_lib_home_screen_ab1c1fa69f24b981e824dd9fb810c4b74}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+\_\+hangup@{on\+\_\+hangup}}
@@ -349,17 +350,17 @@ Definition at line 467 of file libhomescreen.\+cpp.
 
 
 
-Definition at line 448 of file libhomescreen.\+cpp.
+Definition at line 439 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-449 \{
-450     \hyperlink{libhomescreen_8cpp_a4e42b2f5af2174dd24f958351becf63d}{DLOG}(\textcolor{stringliteral}{"%s called"}, \_\_FUNCTION\_\_);
-451     \textcolor{keywordflow}{if}(onHangup != \textcolor{keyword}{nullptr})
-452     \{
-453         onHangup();
-454     \}
-455 \}
+440 \{
+441     \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"%s called"}, \_\_FUNCTION\_\_);
+442     \textcolor{keywordflow}{if}(onHangup != \textcolor{keyword}{nullptr})
+443     \{
+444         onHangup();
+445     \}
+446 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_a248d9648c6186287a7632ec1c75fc9c5}\label{class_lib_home_screen_a248d9648c6186287a7632ec1c75fc9c5}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+\_\+reply@{on\+\_\+reply}}
@@ -369,20 +370,20 @@ Definition at line 448 of file libhomescreen.\+cpp.
 
 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 519 of file libhomescreen.\+cpp.
+Definition at line 506 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-520 \{
-521     cout << \textcolor{stringliteral}{"[libhomescreen on\_reply]: "} <<  \textcolor{stringliteral}{" ("} << afb\_wsj1\_msg\_object\_s(msg) << \textcolor{stringliteral}{")"} << endl;
-522     \textcolor{keywordflow}{if}(onReply != \textcolor{keyword}{nullptr})
-523     \{
-524         \textcolor{keyword}{struct }json\_object* reply = afb\_wsj1\_msg\_object\_j(msg);
-525         onReply(reply);
-526 
-527         json\_object\_put(reply);
-528     \}
-529 \}
+507 \{
+508     \hyperlink{hmi-debug_8h_a0d26d8b8201011dade787236519711c0}{HMI\_DEBUG}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"msg: (%s)"}, afb\_wsj1\_msg\_object\_s(msg));
+509     \textcolor{keywordflow}{if}(onReply != \textcolor{keyword}{nullptr})
+510     \{
+511         \textcolor{keyword}{struct }json\_object* reply = afb\_wsj1\_msg\_object\_j(msg);
+512         onReply(reply);
+513 
+514         json\_object\_put(reply);
+515     \}
+516 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_ac336482036a72b51a822725f1929523c}\label{class_lib_home_screen_ac336482036a72b51a822725f1929523c}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+Screen\+Message@{on\+Screen\+Message}}
@@ -390,15 +391,55 @@ Definition at line 519 of file libhomescreen.\+cpp.
 \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})}
 
-Home\+Screenアプリに表示するメッセージイベントの発行
+Sending on\+Screen message event
+
+Sending On\+Screen message event to Home\+Screen from applications
+
+\subparagraph*{Parameters}
+
+
+\begin{DoxyItemize}
+\item display\+\_\+message \mbox{[}in\mbox{]} \+: message for display
+\end{DoxyItemize}
+
+\subparagraph*{Return}
+
+
+\begin{DoxyItemize}
+\item Returns 0 on success or -\/1 in case of error. 
+\end{DoxyItemize}
+
+Definition at line 244 of file libhomescreen.\+cpp.
 
-各アプリから\+Home\+Screenアプリケーションの\+On\+Screenに表示するイベントを発行する
+
+\begin{DoxyCode}
+245 \{
+246     \textcolor{keywordflow}{if}(!sp\_websock)
+247     \{
+248         \textcolor{keywordflow}{return} -1;
+249     \}
+250 
+251     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+252     \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(display\_message);
+253     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"display\_message"}, val);
+254     \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"on\_screen\_message"}, j\_obj);
+255 \}
+\end{DoxyCode}
+\mbox{\Hypertarget{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}\label{class_lib_home_screen_a6c065f41f2c5d1f58d2763bfb4da9c37}} 
+\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!on\+Screen\+Reply@{on\+Screen\+Reply}}
+\index{on\+Screen\+Reply@{on\+Screen\+Reply}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
+\subsubsection{\texorpdfstring{on\+Screen\+Reply()}{onScreenReply()}}
+{\footnotesize\ttfamily int Lib\+Home\+Screen\+::on\+Screen\+Reply (\begin{DoxyParamCaption}\item[{const char $\ast$}]{reply\+\_\+message }\end{DoxyParamCaption})}
+
+Sending on\+Screen reply event
+
+Sending On\+Screen reply event to applications from Home\+Screen
 
 \subparagraph*{Parameters}
 
 
 \begin{DoxyItemize}
-\item display\+\_\+message \mbox{[}in\mbox{]} \+: 表示するメッセージ
+\item reply\+\_\+message \mbox{[}in\mbox{]} \+: message for reply
 \end{DoxyItemize}
 
 \subparagraph*{Return}
@@ -408,21 +449,21 @@ Home\+Screenアプリに表示するメッセージイベントの発行
 \item Returns 0 on success or -\/1 in case of error. 
 \end{DoxyItemize}
 
-Definition at line 280 of file libhomescreen.\+cpp.
+Definition at line 268 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-281 \{
-282     \textcolor{keywordflow}{if}(!sp\_websock)
-283     \{
-284         \textcolor{keywordflow}{return} -1;
-285     \}
-286 
-287     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
-288     \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(display\_message);
-289     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"display\_message"}, val);
-290     \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"on\_screen\_message"}, j\_obj);
-291 \}
+269 \{
+270     \textcolor{keywordflow}{if}(!sp\_websock)
+271     \{
+272         \textcolor{keywordflow}{return} -1;
+273     \}
+274 
+275     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+276     \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(reply\_message);
+277     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"reply\_message"}, val);
+278     \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"on\_screen\_reply"}, j\_obj);
+279 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_a23bc17798453cfca50904562736f6b25}\label{class_lib_home_screen_a23bc17798453cfca50904562736f6b25}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!operator=@{operator=}}
@@ -454,101 +495,59 @@ 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 158 of file libhomescreen.\+cpp.
-
-
-\begin{DoxyCode}
-162 \{
-163     onEvent = event\_cb;
-164     onReply = reply\_cb;
-165     onHangup = hangup\_cb;
-166 \}
-\end{DoxyCode}
-\mbox{\Hypertarget{class_lib_home_screen_a32d3282898d0f04151c24b4103511e00}\label{class_lib_home_screen_a32d3282898d0f04151c24b4103511e00}} 
-\index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!run\+Eventloop@{run\+Eventloop}}
-\index{run\+Eventloop@{run\+Eventloop}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
-\subsubsection{\texorpdfstring{run\+Eventloop()}{runEventloop()}}
-{\footnotesize\ttfamily int Lib\+Home\+Screen\+::run\+Eventloop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
-
-This function start receiving the reply/event message from home screen
-
-\subparagraph*{Parameters}
-
-Nothing
-
-\subparagraph*{Return}
-
-
-\begin{DoxyItemize}
-\item Returns thread\+\_\+id on success or -\/1 in case of error.
-\end{DoxyItemize}
-
-\subparagraph*{Note}
-
-Definition at line 224 of file libhomescreen.\+cpp.
+Definition at line 155 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-225 \{
-226     \textcolor{keywordflow}{if}(mploop && sp\_websock)
-227     \{
-228         pthread\_t thread\_id;
-229         \textcolor{keywordtype}{int} ret = pthread\_create(&thread\_id, NULL, \hyperlink{libhomescreen_8cpp_aa73353e1bf62c68b6b0aba7a1e4e275e}{event\_loop\_run}, mploop);
-230         \textcolor{keywordflow}{if}(ret != 0)
-231         \{
-232             \hyperlink{libhomescreen_8cpp_a797aa3053bd6a29819d44f8fad8a5eca}{ELOG}(\textcolor{stringliteral}{"Cannot run eventloop due to error:%d"}, errno);
-233             \textcolor{keywordflow}{return} -1;
-234         \}
-235         \textcolor{keywordflow}{else}
-236             \textcolor{keywordflow}{return} thread\_id;
-237     \}
-238     \textcolor{keywordflow}{else}
-239     \{
-240         \hyperlink{libhomescreen_8cpp_a797aa3053bd6a29819d44f8fad8a5eca}{ELOG}(\textcolor{stringliteral}{"Connecting is not established yet"});
-241         \textcolor{keywordflow}{return} -1;
-242     \}
-243 \}
+159 \{
+160     onEvent = event\_cb;
+161     onReply = reply\_cb;
+162     onHangup = hangup\_cb;
+163 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}\label{class_lib_home_screen_ab1b0e08bf35415de9064afed899e9f85}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!set\+\_\+event\+\_\+handler@{set\+\_\+event\+\_\+handler}}
 \index{set\+\_\+event\+\_\+handler@{set\+\_\+event\+\_\+handler}!Lib\+Home\+Screen@{Lib\+Home\+Screen}}
 \subsubsection{\texorpdfstring{set\+\_\+event\+\_\+handler()}{set\_event\_handler()}}
-{\footnotesize\ttfamily void Lib\+Home\+Screen\+::set\+\_\+event\+\_\+handler (\begin{DoxyParamCaption}\item[{enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Event\+Type}}]{et,  }\item[{\hyperlink{class_lib_home_screen_ae99dee1e03d494d59d26c9f17078e01f}{handler\+\_\+func}}]{f }\end{DoxyParamCaption})}
+{\footnotesize\ttfamily void Lib\+Home\+Screen\+::set\+\_\+event\+\_\+handler (\begin{DoxyParamCaption}\item[{enum \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154}{Event\+Type}}]{et,  }\item[{\hyperlink{class_lib_home_screen_a334f11f81c84c98d18284215dcaada3a}{handler\+\_\+func}}]{f }\end{DoxyParamCaption})}
 
-イベントハンドラの登録
+Setting Event Handler
 
-各アプリから\+Home\+Screenアプリケーションの\+On\+Screenに表示するイベントを発行する
+Setting event handler for Homescreen
 
 \subparagraph*{Parameters}
 
 
 \begin{DoxyItemize}
-\item et \mbox{[}in\mbox{]} \+: 対象のイベント
-\item f \mbox{[}in\mbox{]} \+: イベントハンドラ
+\item et \mbox{[}in\mbox{]} \+: event name
+\item f \mbox{[}in\mbox{]} \+: event handler
 \end{DoxyItemize}
 
 \subparagraph*{Return}
 
 Nothing 
 
-Definition at line 305 of file libhomescreen.\+cpp.
+Definition at line 293 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-306 \{
-307     \textcolor{keywordflow}{if} (et >= 1 && et <= 2) \{
-308         \textcolor{keywordflow}{switch} (et) \{
-309             \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut}:
-310                 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[0]);
-311                 \textcolor{keywordflow}{break};
-312             \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage}:
-313                 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[1]);
-314                 \textcolor{keywordflow}{break};
-315         \}
-316 
-317         this->handlers[et] = std::move(f);
-318     \}
-319 \}
+294 \{
+295     \textcolor{keywordflow}{if} (et >= 1 && et <= 3) \{
+296         \textcolor{keywordflow}{switch} (et) \{
+297             \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f}{Event\_TapShortcut}:
+298                 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[0]);
+299                 \textcolor{keywordflow}{break};
+300             \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d}{Event\_OnScreenMessage}:
+301                 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[1]);
+302                 \textcolor{keywordflow}{break};
+303             \textcolor{keywordflow}{case} \hyperlink{class_lib_home_screen_a82616c91ac211d2ad08e709b524bf154acae91db4efc2394fd701f581d277a3fd}{Event\_OnScreenReply}:
+304                 this->\hyperlink{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}{subscribe}(\hyperlink{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}{LibHomeScreen::event\_list}[2]);
+305                 \textcolor{keywordflow}{break};
+306         \}
+307 
+308         this->handlers[et] = std::move(f);
+309     \}
+310 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}\label{class_lib_home_screen_aa4c189807b75d070f567967f0d690738}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!subscribe@{subscribe}}
@@ -576,25 +575,25 @@ Register callback function for each event
 
 This function enables to get an event to your callback function. 
 
-Definition at line 401 of file libhomescreen.\+cpp.
+Definition at line 392 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-402 \{
-403     \textcolor{keywordflow}{if}(!sp\_websock)
-404     \{
-405         \textcolor{keywordflow}{return} -1;
-406     \}
-407     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
-408     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"event"}, json\_object\_new\_string(event\_name.c\_str()));
-409 
-410     \textcolor{keywordtype}{int} ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, \textcolor{stringliteral}{"subscribe"}, j\_obj, 
+393 \{
+394     \textcolor{keywordflow}{if}(!sp\_websock)
+395     \{
+396         \textcolor{keywordflow}{return} -1;
+397     \}
+398     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+399     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"event"}, json\_object\_new\_string(event\_name.c\_str()));
+400 
+401     \textcolor{keywordtype}{int} ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, \textcolor{stringliteral}{"subscribe"}, j\_obj, 
       \hyperlink{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{\_on\_reply\_static}, \textcolor{keyword}{this});
-411     \textcolor{keywordflow}{if} (ret < 0) \{
-412         \hyperlink{libhomescreen_8cpp_a797aa3053bd6a29819d44f8fad8a5eca}{ELOG}(\textcolor{stringliteral}{"Failed to call verb:%s"},\_\_FUNCTION\_\_);
-413     \}
-414     \textcolor{keywordflow}{return} ret;
-415 \}
+402     \textcolor{keywordflow}{if} (ret < 0) \{
+403         \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to call verb:%s"},\_\_FUNCTION\_\_);
+404     \}
+405     \textcolor{keywordflow}{return} ret;
+406 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_afb571c9577087b47065eb23e7fdbc903}\label{class_lib_home_screen_afb571c9577087b47065eb23e7fdbc903}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!tap\+Shortcut@{tap\+Shortcut}}
@@ -602,15 +601,15 @@ Definition at line 401 of file libhomescreen.\+cpp.
 \subsubsection{\texorpdfstring{tap\+Shortcut()}{tapShortcut()}}
 {\footnotesize\ttfamily int Lib\+Home\+Screen\+::tap\+Shortcut (\begin{DoxyParamCaption}\item[{const char $\ast$}]{application\+\_\+name }\end{DoxyParamCaption})}
 
-ショートカットアイコンがタップされたイベントの発行
+Sending Short\+Cut Icon tapped event
 
-Home\+Screenアプリケーションにて各アプリアイコンがタップされたときにイベントを発行する
+When Home\+Screen shortcut area is tapped, sending a event
 
 \subparagraph*{Parameters}
 
 
 \begin{DoxyItemize}
-\item application\+\_\+name \mbox{[}in\mbox{]} \+: タップされたアプリケーションの名前(label)
+\item application\+\_\+name \mbox{[}in\mbox{]} \+: Tapped application name (label)
 \end{DoxyItemize}
 
 \subparagraph*{Return}
@@ -620,21 +619,21 @@ Home\+Screenアプリケーションにて各アプリアイコンがタップ
 \item Returns 0 on success or -\/1 in case of error. 
 \end{DoxyItemize}
 
-Definition at line 256 of file libhomescreen.\+cpp.
+Definition at line 220 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-257 \{
-258     \textcolor{keywordflow}{if}(!sp\_websock)
-259     \{
-260         \textcolor{keywordflow}{return} -1;
-261     \}
-262 
-263     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
-264     \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(application\_name);
-265     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"application\_name"}, val);
-266     \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"tap\_shortcut"}, j\_obj);
-267 \}
+221 \{
+222     \textcolor{keywordflow}{if}(!sp\_websock)
+223     \{
+224         \textcolor{keywordflow}{return} -1;
+225     \}
+226 
+227     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+228     \textcolor{keyword}{struct }json\_object* val = json\_object\_new\_string(application\_name);
+229     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"application\_name"}, val);
+230     \textcolor{keywordflow}{return} this->\hyperlink{class_lib_home_screen_a527b49dcfe581be6275d0eb2236ba37f}{call}(\textcolor{stringliteral}{"tap\_shortcut"}, j\_obj);
+231 \}
 \end{DoxyCode}
 \mbox{\Hypertarget{class_lib_home_screen_aac03a45cbd453ba69ddb00c1016930a6}\label{class_lib_home_screen_aac03a45cbd453ba69ddb00c1016930a6}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!unsubscribe@{unsubscribe}}
@@ -662,25 +661,25 @@ Unregister callback function for each event
 
 This function disables to get an event to your callback function. 
 
-Definition at line 430 of file libhomescreen.\+cpp.
+Definition at line 421 of file libhomescreen.\+cpp.
 
 
 \begin{DoxyCode}
-431 \{
-432     \textcolor{keywordflow}{if}(!sp\_websock)
-433     \{
-434         \textcolor{keywordflow}{return} -1;
-435     \}
-436     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
-437     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"event"}, json\_object\_new\_string(event\_name.c\_str()));
-438 
-439     \textcolor{keywordtype}{int} ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, \textcolor{stringliteral}{"unsubscribe"}, j\_obj, 
+422 \{
+423     \textcolor{keywordflow}{if}(!sp\_websock)
+424     \{
+425         \textcolor{keywordflow}{return} -1;
+426     \}
+427     \textcolor{keyword}{struct }json\_object* j\_obj = json\_object\_new\_object();
+428     json\_object\_object\_add(j\_obj, \textcolor{stringliteral}{"event"}, json\_object\_new\_string(event\_name.c\_str()));
+429 
+430     \textcolor{keywordtype}{int} ret = afb\_wsj1\_call\_j(sp\_websock, \hyperlink{libhomescreen_8cpp_a1e2d6e77dd8f0162f830058579eab42f}{API}, \textcolor{stringliteral}{"unsubscribe"}, j\_obj, 
       \hyperlink{libhomescreen_8cpp_a7778933bffa862c63fa0a1b8219faa8b}{\_on\_reply\_static}, \textcolor{keyword}{this});
-440     \textcolor{keywordflow}{if} (ret < 0) \{
-441         \hyperlink{libhomescreen_8cpp_a797aa3053bd6a29819d44f8fad8a5eca}{ELOG}(\textcolor{stringliteral}{"Failed to call verb:%s"},\_\_FUNCTION\_\_);
-442     \}
-443     \textcolor{keywordflow}{return} ret;
-444 \}
+431     \textcolor{keywordflow}{if} (ret < 0) \{
+432         \hyperlink{hmi-debug_8h_a65bb6c7cfe38f8a724beab5059d36fb2}{HMI\_ERROR}(\textcolor{stringliteral}{"libhomescreen"},\textcolor{stringliteral}{"Failed to call verb:%s"},\_\_FUNCTION\_\_);
+433     \}
+434     \textcolor{keywordflow}{return} ret;
+435 \}
 \end{DoxyCode}
 
 
@@ -697,13 +696,14 @@ Definition at line 430 of file libhomescreen.\+cpp.
     std::string(\textcolor{stringliteral}{"ping"}), 
     std::string(\textcolor{stringliteral}{"tap\_shortcut"}), 
     std::string(\textcolor{stringliteral}{"on\_screen\_message"}),
+    std::string(\textcolor{stringliteral}{"on\_screen\_reply"}),
     std::string(\textcolor{stringliteral}{"subscribe"}),
     std::string(\textcolor{stringliteral}{"unsubscribe"})
 \}
 \end{DoxyCode}
 
 
-Definition at line 48 of file libhomescreen.\+hpp.
+Definition at line 50 of file libhomescreen.\+hpp.
 
 \mbox{\Hypertarget{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}\label{class_lib_home_screen_a6a6d8a4d33a006a08652e7377a4c29e9}} 
 \index{Lib\+Home\+Screen@{Lib\+Home\+Screen}!event\+\_\+list@{event\+\_\+list}}
@@ -716,16 +716,17 @@ Definition at line 48 of file libhomescreen.\+hpp.
 \{
     std::string(\textcolor{stringliteral}{"tap\_shortcut"}),
     std::string(\textcolor{stringliteral}{"on\_screen\_message"}),
+    std::string(\textcolor{stringliteral}{"on\_screen\_reply"}),
     std::string(\textcolor{stringliteral}{"none"})
 \}
 \end{DoxyCode}
 
 
-Definition at line 49 of file libhomescreen.\+hpp.
+Definition at line 51 of file libhomescreen.\+hpp.
 
 
 
 The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
 \item 
-include/libhomescreen/\hyperlink{libhomescreen_8hpp}{libhomescreen.\+hpp}\item 
+include/\hyperlink{libhomescreen_8hpp}{libhomescreen.\+hpp}\item 
 libhomescreen/\hyperlink{libhomescreen_8cpp}{libhomescreen.\+cpp}\end{DoxyCompactItemize}