Add agl-service-homescreen-2017
[apps/agl-service-homescreen.git] / doc / api-ref / html / de / dd0 / class_lib_home_screen.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.13"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>HomeScreenBinding: LibHomeScreen Class Reference</title>
9 <link href="../../tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="../../jquery.js"></script>
11 <script type="text/javascript" src="../../dynsections.js"></script>
12 <link href="../../search/search.css" rel="stylesheet" type="text/css"/>
13 <script type="text/javascript" src="../../search/searchdata.js"></script>
14 <script type="text/javascript" src="../../search/search.js"></script>
15 <link href="../../doxygen.css" rel="stylesheet" type="text/css" />
16 </head>
17 <body>
18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19 <div id="titlearea">
20 <table cellspacing="0" cellpadding="0">
21  <tbody>
22  <tr style="height: 56px;">
23   <td id="projectalign" style="padding-left: 0.5em;">
24    <div id="projectname">HomeScreenBinding
25    </div>
26   </td>
27  </tr>
28  </tbody>
29 </table>
30 </div>
31 <!-- end header part -->
32 <!-- Generated by Doxygen 1.8.13 -->
33 <script type="text/javascript">
34 var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
35 </script>
36 <script type="text/javascript" src="../../menudata.js"></script>
37 <script type="text/javascript" src="../../menu.js"></script>
38 <script type="text/javascript">
39 $(function() {
40   initMenu('../../',true,false,'search.php','Search');
41   $(document).ready(function() { init_search(); });
42 });
43 </script>
44 <div id="main-nav"></div>
45 <!-- window showing the filter options -->
46 <div id="MSearchSelectWindow"
47      onmouseover="return searchBox.OnSearchSelectShow()"
48      onmouseout="return searchBox.OnSearchSelectHide()"
49      onkeydown="return searchBox.OnSearchSelectKey(event)">
50 </div>
51
52 <!-- iframe showing the search results (closed by default) -->
53 <div id="MSearchResultsWindow">
54 <iframe src="javascript:void(0)" frameborder="0" 
55         name="MSearchResults" id="MSearchResults">
56 </iframe>
57 </div>
58
59 </div><!-- top -->
60 <div class="header">
61   <div class="summary">
62 <a href="#pub-types">Public Types</a> &#124;
63 <a href="#pub-methods">Public Member Functions</a> &#124;
64 <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
65 <a href="../../d7/df4/class_lib_home_screen-members.html">List of all members</a>  </div>
66   <div class="headertitle">
67 <div class="title">LibHomeScreen Class Reference</div>  </div>
68 </div><!--header-->
69 <div class="contents">
70
71 <p><code>#include &lt;<a class="el" href="../../df/d43/libhomescreen_8hpp_source.html">libhomescreen.hpp</a>&gt;</code></p>
72 <table class="memberdecls">
73 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
74 Public Types</h2></td></tr>
75 <tr class="memitem:a82616c91ac211d2ad08e709b524bf154"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154">EventType</a> { <a class="el" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f">Event_TapShortcut</a> = 1, 
76 <a class="el" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d">Event_OnScreenMessage</a>
77  }</td></tr>
78 <tr class="separator:a82616c91ac211d2ad08e709b524bf154"><td class="memSeparator" colspan="2">&#160;</td></tr>
79 <tr class="memitem:ae99dee1e03d494d59d26c9f17078e01f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#ae99dee1e03d494d59d26c9f17078e01f">handler_func</a> = std::function&lt; void(const char *)&gt;</td></tr>
80 <tr class="separator:ae99dee1e03d494d59d26c9f17078e01f"><td class="memSeparator" colspan="2">&#160;</td></tr>
81 </table><table class="memberdecls">
82 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
83 Public Member Functions</h2></td></tr>
84 <tr class="memitem:a724bd949c4154fad041f96a15ef0f5dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a724bd949c4154fad041f96a15ef0f5dc">LibHomeScreen</a> ()</td></tr>
85 <tr class="separator:a724bd949c4154fad041f96a15ef0f5dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
86 <tr class="memitem:a249902aebf71a5383ca8ec6ae558d095"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a249902aebf71a5383ca8ec6ae558d095">~LibHomeScreen</a> ()</td></tr>
87 <tr class="separator:a249902aebf71a5383ca8ec6ae558d095"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 <tr class="memitem:a0fff2f703c8ce184eb9edd133e0f4137"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a0fff2f703c8ce184eb9edd133e0f4137">LibHomeScreen</a> (const <a class="el" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a> &amp;)=delete</td></tr>
89 <tr class="separator:a0fff2f703c8ce184eb9edd133e0f4137"><td class="memSeparator" colspan="2">&#160;</td></tr>
90 <tr class="memitem:a23bc17798453cfca50904562736f6b25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a23bc17798453cfca50904562736f6b25">operator=</a> (const <a class="el" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a> &amp;)=delete</td></tr>
91 <tr class="separator:a23bc17798453cfca50904562736f6b25"><td class="memSeparator" colspan="2">&#160;</td></tr>
92 <tr class="memitem:a6a57b573cc767725762ba9beab032220"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a6a57b573cc767725762ba9beab032220">init</a> (const int port, const std::string &amp;token)</td></tr>
93 <tr class="separator:a6a57b573cc767725762ba9beab032220"><td class="memSeparator" colspan="2">&#160;</td></tr>
94 <tr class="memitem:a32d3282898d0f04151c24b4103511e00"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a32d3282898d0f04151c24b4103511e00">runEventloop</a> ()</td></tr>
95 <tr class="separator:a32d3282898d0f04151c24b4103511e00"><td class="memSeparator" colspan="2">&#160;</td></tr>
96 <tr class="memitem:afb571c9577087b47065eb23e7fdbc903"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#afb571c9577087b47065eb23e7fdbc903">tapShortcut</a> (const char *application_name)</td></tr>
97 <tr class="separator:afb571c9577087b47065eb23e7fdbc903"><td class="memSeparator" colspan="2">&#160;</td></tr>
98 <tr class="memitem:ac336482036a72b51a822725f1929523c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#ac336482036a72b51a822725f1929523c">onScreenMessage</a> (const char *display_message)</td></tr>
99 <tr class="separator:ac336482036a72b51a822725f1929523c"><td class="memSeparator" colspan="2">&#160;</td></tr>
100 <tr class="memitem:ab1b0e08bf35415de9064afed899e9f85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#ab1b0e08bf35415de9064afed899e9f85">set_event_handler</a> (enum <a class="el" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154">EventType</a> et, <a class="el" href="../../de/dd0/class_lib_home_screen.html#ae99dee1e03d494d59d26c9f17078e01f">handler_func</a> f)</td></tr>
101 <tr class="separator:ab1b0e08bf35415de9064afed899e9f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
102 <tr class="memitem:a2789e8a5372202cc36f48e71dbb9b7cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a2789e8a5372202cc36f48e71dbb9b7cf">registerCallback</a> (void(*event_cb)(const std::string &amp;<a class="el" href="../../df/d7d/structevent.html">event</a>, struct json_object *event_contents), void(*reply_cb)(struct json_object *reply_contents), void(*hangup_cb)(void)=nullptr)</td></tr>
103 <tr class="separator:a2789e8a5372202cc36f48e71dbb9b7cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
104 <tr class="memitem:a527b49dcfe581be6275d0eb2236ba37f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a527b49dcfe581be6275d0eb2236ba37f">call</a> (const std::string &amp;verb, struct json_object *arg)</td></tr>
105 <tr class="separator:a527b49dcfe581be6275d0eb2236ba37f"><td class="memSeparator" colspan="2">&#160;</td></tr>
106 <tr class="memitem:ab5e8e8ab7d53e0f114e9e907fcbb7643"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#ab5e8e8ab7d53e0f114e9e907fcbb7643">call</a> (const char *verb, struct json_object *arg)</td></tr>
107 <tr class="separator:ab5e8e8ab7d53e0f114e9e907fcbb7643"><td class="memSeparator" colspan="2">&#160;</td></tr>
108 <tr class="memitem:aa4c189807b75d070f567967f0d690738"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#aa4c189807b75d070f567967f0d690738">subscribe</a> (const std::string &amp;event_name)</td></tr>
109 <tr class="separator:aa4c189807b75d070f567967f0d690738"><td class="memSeparator" colspan="2">&#160;</td></tr>
110 <tr class="memitem:aac03a45cbd453ba69ddb00c1016930a6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#aac03a45cbd453ba69ddb00c1016930a6">unsubscribe</a> (const std::string &amp;event_name)</td></tr>
111 <tr class="separator:aac03a45cbd453ba69ddb00c1016930a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
112 <tr class="memitem:ab1c1fa69f24b981e824dd9fb810c4b74"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#ab1c1fa69f24b981e824dd9fb810c4b74">on_hangup</a> (void *closure, struct afb_wsj1 *wsj)</td></tr>
113 <tr class="separator:ab1c1fa69f24b981e824dd9fb810c4b74"><td class="memSeparator" colspan="2">&#160;</td></tr>
114 <tr class="memitem:a608638eb87b2772a3dcc92d8ca8f3596"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a608638eb87b2772a3dcc92d8ca8f3596">on_call</a> (void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg)</td></tr>
115 <tr class="separator:a608638eb87b2772a3dcc92d8ca8f3596"><td class="memSeparator" colspan="2">&#160;</td></tr>
116 <tr class="memitem:a9c4885b51b43ab24a548d49fb3ab2de3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a9c4885b51b43ab24a548d49fb3ab2de3">on_event</a> (void *closure, const char *<a class="el" href="../../df/d7d/structevent.html">event</a>, struct afb_wsj1_msg *msg)</td></tr>
117 <tr class="separator:a9c4885b51b43ab24a548d49fb3ab2de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
118 <tr class="memitem:a248d9648c6186287a7632ec1c75fc9c5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a248d9648c6186287a7632ec1c75fc9c5">on_reply</a> (void *closure, struct afb_wsj1_msg *msg)</td></tr>
119 <tr class="separator:a248d9648c6186287a7632ec1c75fc9c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
120 </table><table class="memberdecls">
121 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
122 Static Public Attributes</h2></td></tr>
123 <tr class="memitem:a5593ff5ac78f6495ccb649904cf0ab08"><td class="memItemLeft" align="right" valign="top">static const std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a5593ff5ac78f6495ccb649904cf0ab08">api_list</a></td></tr>
124 <tr class="separator:a5593ff5ac78f6495ccb649904cf0ab08"><td class="memSeparator" colspan="2">&#160;</td></tr>
125 <tr class="memitem:a6a6d8a4d33a006a08652e7377a4c29e9"><td class="memItemLeft" align="right" valign="top">static const std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd0/class_lib_home_screen.html#a6a6d8a4d33a006a08652e7377a4c29e9">event_list</a></td></tr>
126 <tr class="separator:a6a6d8a4d33a006a08652e7377a4c29e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
127 </table>
128 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
129 <div class="textblock">
130 <p class="definition">Definition at line <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html#l00032">32</a> of file <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html">libhomescreen.hpp</a>.</p>
131 </div><h2 class="groupheader">Member Typedef Documentation</h2>
132 <a id="ae99dee1e03d494d59d26c9f17078e01f"></a>
133 <h2 class="memtitle"><span class="permalink"><a href="#ae99dee1e03d494d59d26c9f17078e01f">&#9670;&nbsp;</a></span>handler_func</h2>
134
135 <div class="memitem">
136 <div class="memproto">
137       <table class="memname">
138         <tr>
139           <td class="memname">using <a class="el" href="../../de/dd0/class_lib_home_screen.html#ae99dee1e03d494d59d26c9f17078e01f">LibHomeScreen::handler_func</a> =  std::function&lt;void(const char*)&gt;</td>
140         </tr>
141       </table>
142 </div><div class="memdoc">
143
144 <p class="definition">Definition at line <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html#l00041">41</a> of file <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html">libhomescreen.hpp</a>.</p>
145
146 </div>
147 </div>
148 <h2 class="groupheader">Member Enumeration Documentation</h2>
149 <a id="a82616c91ac211d2ad08e709b524bf154"></a>
150 <h2 class="memtitle"><span class="permalink"><a href="#a82616c91ac211d2ad08e709b524bf154">&#9670;&nbsp;</a></span>EventType</h2>
151
152 <div class="memitem">
153 <div class="memproto">
154       <table class="memname">
155         <tr>
156           <td class="memname">enum <a class="el" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154">LibHomeScreen::EventType</a></td>
157         </tr>
158       </table>
159 </div><div class="memdoc">
160 <table class="fieldtable">
161 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f"></a>Event_TapShortcut&#160;</td><td class="fielddoc"></td></tr>
162 <tr><td class="fieldname"><a id="a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d"></a>Event_OnScreenMessage&#160;</td><td class="fielddoc"></td></tr>
163 </table>
164
165 <p class="definition">Definition at line <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html#l00043">43</a> of file <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html">libhomescreen.hpp</a>.</p>
166 <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                       {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;            <a class="code" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f">Event_TapShortcut</a> = 1,</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;            <a class="code" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d">Event_OnScreenMessage</a></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        };</div><div class="ttc" id="class_lib_home_screen_html_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d">LibHomeScreen::Event_OnScreenMessage</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00045">libhomescreen.hpp:45</a></div></div>
167 <div class="ttc" id="class_lib_home_screen_html_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f">LibHomeScreen::Event_TapShortcut</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00044">libhomescreen.hpp:44</a></div></div>
168 </div><!-- fragment -->
169 </div>
170 </div>
171 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
172 <a id="a724bd949c4154fad041f96a15ef0f5dc"></a>
173 <h2 class="memtitle"><span class="permalink"><a href="#a724bd949c4154fad041f96a15ef0f5dc">&#9670;&nbsp;</a></span>LibHomeScreen() <span class="overload">[1/2]</span></h2>
174
175 <div class="memitem">
176 <div class="memproto">
177       <table class="memname">
178         <tr>
179           <td class="memname">LibHomeScreen::LibHomeScreen </td>
180           <td>(</td>
181           <td class="paramname"></td><td>)</td>
182           <td></td>
183         </tr>
184       </table>
185 </div><div class="memdoc">
186 <p>constructor </p>
187
188 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00085">85</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
189 <div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;}</div></div><!-- fragment -->
190 </div>
191 </div>
192 <a id="a249902aebf71a5383ca8ec6ae558d095"></a>
193 <h2 class="memtitle"><span class="permalink"><a href="#a249902aebf71a5383ca8ec6ae558d095">&#9670;&nbsp;</a></span>~LibHomeScreen()</h2>
194
195 <div class="memitem">
196 <div class="memproto">
197       <table class="memname">
198         <tr>
199           <td class="memname">LibHomeScreen::~LibHomeScreen </td>
200           <td>(</td>
201           <td class="paramname"></td><td>)</td>
202           <td></td>
203         </tr>
204       </table>
205 </div><div class="memdoc">
206 <p>destructor </p>
207
208 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00093">93</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
209 <div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordflow">if</span>(mploop)</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    {</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        sd_event_unref(mploop);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    }</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordflow">if</span>(sp_websock != NULL)</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        free(sp_websock);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    }</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div></div><!-- fragment -->
210 </div>
211 </div>
212 <a id="a0fff2f703c8ce184eb9edd133e0f4137"></a>
213 <h2 class="memtitle"><span class="permalink"><a href="#a0fff2f703c8ce184eb9edd133e0f4137">&#9670;&nbsp;</a></span>LibHomeScreen() <span class="overload">[2/2]</span></h2>
214
215 <div class="memitem">
216 <div class="memproto">
217 <table class="mlabels">
218   <tr>
219   <td class="mlabels-left">
220       <table class="memname">
221         <tr>
222           <td class="memname">LibHomeScreen::LibHomeScreen </td>
223           <td>(</td>
224           <td class="paramtype">const <a class="el" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a> &amp;&#160;</td>
225           <td class="paramname"></td><td>)</td>
226           <td></td>
227         </tr>
228       </table>
229   </td>
230   <td class="mlabels-right">
231 <span class="mlabels"><span class="mlabel">delete</span></span>  </td>
232   </tr>
233 </table>
234 </div><div class="memdoc">
235
236 </div>
237 </div>
238 <h2 class="groupheader">Member Function Documentation</h2>
239 <a id="a527b49dcfe581be6275d0eb2236ba37f"></a>
240 <h2 class="memtitle"><span class="permalink"><a href="#a527b49dcfe581be6275d0eb2236ba37f">&#9670;&nbsp;</a></span>call() <span class="overload">[1/2]</span></h2>
241
242 <div class="memitem">
243 <div class="memproto">
244       <table class="memname">
245         <tr>
246           <td class="memname">int LibHomeScreen::call </td>
247           <td>(</td>
248           <td class="paramtype">const std::string &amp;&#160;</td>
249           <td class="paramname"><em>verb</em>, </td>
250         </tr>
251         <tr>
252           <td class="paramkey"></td>
253           <td></td>
254           <td class="paramtype">struct json_object *&#160;</td>
255           <td class="paramname"><em>arg</em>&#160;</td>
256         </tr>
257         <tr>
258           <td></td>
259           <td>)</td>
260           <td></td><td></td>
261         </tr>
262       </table>
263 </div><div class="memdoc">
264
265 </div>
266 </div>
267 <a id="ab5e8e8ab7d53e0f114e9e907fcbb7643"></a>
268 <h2 class="memtitle"><span class="permalink"><a href="#ab5e8e8ab7d53e0f114e9e907fcbb7643">&#9670;&nbsp;</a></span>call() <span class="overload">[2/2]</span></h2>
269
270 <div class="memitem">
271 <div class="memproto">
272       <table class="memname">
273         <tr>
274           <td class="memname">int LibHomeScreen::call </td>
275           <td>(</td>
276           <td class="paramtype">const char *&#160;</td>
277           <td class="paramname"><em>verb</em>, </td>
278         </tr>
279         <tr>
280           <td class="paramkey"></td>
281           <td></td>
282           <td class="paramtype">struct json_object *&#160;</td>
283           <td class="paramname"><em>arg</em>&#160;</td>
284         </tr>
285         <tr>
286           <td></td>
287           <td>)</td>
288           <td></td><td></td>
289         </tr>
290       </table>
291 </div><div class="memdoc">
292 <p>This function calls the API of HomeScreen via WebSocket This function is overload function of "call"</p>
293 <h4>Parameters</h4>
294 <ul>
295 <li>verb [in] : This argument should be specified to the API name (e.g. "tap_shortcut")</li>
296 <li>arg [in] : This argument should be specified to the argument of API. And this argument expects JSON object</li>
297 </ul>
298 <h4>Return</h4>
299 <ul>
300 <li>Returns 0 on success or -1 in case of error.</li>
301 </ul>
302 <h4>Note</h4>
303 <p>To call HomeScreen's APIs, the application should set its function name, arguments to JSON format. </p>
304
305 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00369">369</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
306 <div class="fragment"><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;{</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordtype">int</span> ret;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    <span class="keywordflow">if</span>(!sp_websock)</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    {</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    }</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a7a2176c3d71fec0f09dcb2aa0866b17e">has_verb</a>(<span class="keywordtype">string</span>(verb)))</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    {</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a>(<span class="stringliteral">&quot;verb doesn&#39;t exit&quot;</span>);</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    }</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    ret = afb_wsj1_call_j(sp_websock, <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a>, verb, arg, <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a7778933bffa862c63fa0a1b8219faa8b">_on_reply_static</a>, <span class="keyword">this</span>);</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <span class="keywordflow">if</span> (ret &lt; 0) {</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a>(<span class="stringliteral">&quot;Failed to call verb:%s&quot;</span>,verb);</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    }</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;}</div><div class="ttc" id="libhomescreen_8cpp_html_a1e2d6e77dd8f0162f830058579eab42f"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a></div><div class="ttdeci">static const char API[]</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00040">libhomescreen.cpp:40</a></div></div>
307 <div class="ttc" id="libhomescreen_8cpp_html_a797aa3053bd6a29819d44f8fad8a5eca"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a></div><div class="ttdeci">#define ELOG(args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00032">libhomescreen.cpp:32</a></div></div>
308 <div class="ttc" id="libhomescreen_8cpp_html_a7a2176c3d71fec0f09dcb2aa0866b17e"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a7a2176c3d71fec0f09dcb2aa0866b17e">has_verb</a></div><div class="ttdeci">static bool has_verb(const string &amp;verb)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00557">libhomescreen.cpp:557</a></div></div>
309 <div class="ttc" id="libhomescreen_8cpp_html_a7778933bffa862c63fa0a1b8219faa8b"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a7778933bffa862c63fa0a1b8219faa8b">_on_reply_static</a></div><div class="ttdeci">static void _on_reply_static(void *closure, struct afb_wsj1_msg *msg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00076">libhomescreen.cpp:76</a></div></div>
310 </div><!-- fragment -->
311 </div>
312 </div>
313 <a id="a6a57b573cc767725762ba9beab032220"></a>
314 <h2 class="memtitle"><span class="permalink"><a href="#a6a57b573cc767725762ba9beab032220">&#9670;&nbsp;</a></span>init()</h2>
315
316 <div class="memitem">
317 <div class="memproto">
318       <table class="memname">
319         <tr>
320           <td class="memname">int LibHomeScreen::init </td>
321           <td>(</td>
322           <td class="paramtype">const int&#160;</td>
323           <td class="paramname"><em>port</em>, </td>
324         </tr>
325         <tr>
326           <td class="paramkey"></td>
327           <td></td>
328           <td class="paramtype">const std::string &amp;&#160;</td>
329           <td class="paramname"><em>token</em>&#160;</td>
330         </tr>
331         <tr>
332           <td></td>
333           <td>)</td>
334           <td></td><td></td>
335         </tr>
336       </table>
337 </div><div class="memdoc">
338 <p>This function is initializer</p>
339 <h4>Parameters</h4>
340 <ul>
341 <li>port [in] : This argument should be specified to the port number to be used for websocket</li>
342 <li>token [in] : This argument should be specified to the token to be used for websocket</li>
343 </ul>
344 <h4>Return</h4>
345 <p>Nothing</p>
346 <h4>Note</h4>
347 <p>Use this constructor </p>
348
349 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00119">119</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
350 <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordtype">int</span> ret = 0;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordflow">if</span>(port &gt; 0 &amp;&amp; token.size() &gt; 0)</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        mport = port;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        mtoken = token;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    }</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    {</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a>(<span class="stringliteral">&quot;port and token should be &gt; 0, Initial port and token uses.&quot;</span>);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    ret = initialize_websocket();</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordflow">if</span>(ret != 0 )</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    {</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a>(<span class="stringliteral">&quot;Failed to initialize websocket&quot;</span>);</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    }</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordflow">else</span>{</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a4e42b2f5af2174dd24f958351becf63d">DLOG</a>(<span class="stringliteral">&quot;Initialized&quot;</span>);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    }</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;}</div><div class="ttc" id="libhomescreen_8cpp_html_a4e42b2f5af2174dd24f958351becf63d"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a4e42b2f5af2174dd24f958351becf63d">DLOG</a></div><div class="ttdeci">#define DLOG(args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00033">libhomescreen.cpp:33</a></div></div>
351 <div class="ttc" id="libhomescreen_8cpp_html_a797aa3053bd6a29819d44f8fad8a5eca"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a></div><div class="ttdeci">#define ELOG(args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00032">libhomescreen.cpp:32</a></div></div>
352 </div><!-- fragment -->
353 </div>
354 </div>
355 <a id="a608638eb87b2772a3dcc92d8ca8f3596"></a>
356 <h2 class="memtitle"><span class="permalink"><a href="#a608638eb87b2772a3dcc92d8ca8f3596">&#9670;&nbsp;</a></span>on_call()</h2>
357
358 <div class="memitem">
359 <div class="memproto">
360       <table class="memname">
361         <tr>
362           <td class="memname">void LibHomeScreen::on_call </td>
363           <td>(</td>
364           <td class="paramtype">void *&#160;</td>
365           <td class="paramname"><em>closure</em>, </td>
366         </tr>
367         <tr>
368           <td class="paramkey"></td>
369           <td></td>
370           <td class="paramtype">const char *&#160;</td>
371           <td class="paramname"><em>api</em>, </td>
372         </tr>
373         <tr>
374           <td class="paramkey"></td>
375           <td></td>
376           <td class="paramtype">const char *&#160;</td>
377           <td class="paramname"><em>verb</em>, </td>
378         </tr>
379         <tr>
380           <td class="paramkey"></td>
381           <td></td>
382           <td class="paramtype">struct afb_wsj1_msg *&#160;</td>
383           <td class="paramname"><em>msg</em>&#160;</td>
384         </tr>
385         <tr>
386           <td></td>
387           <td>)</td>
388           <td></td><td></td>
389         </tr>
390       </table>
391 </div><div class="memdoc">
392
393 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00457">457</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
394 <div class="fragment"><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;{</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;}</div></div><!-- fragment -->
395 </div>
396 </div>
397 <a id="a9c4885b51b43ab24a548d49fb3ab2de3"></a>
398 <h2 class="memtitle"><span class="permalink"><a href="#a9c4885b51b43ab24a548d49fb3ab2de3">&#9670;&nbsp;</a></span>on_event()</h2>
399
400 <div class="memitem">
401 <div class="memproto">
402       <table class="memname">
403         <tr>
404           <td class="memname">void LibHomeScreen::on_event </td>
405           <td>(</td>
406           <td class="paramtype">void *&#160;</td>
407           <td class="paramname"><em>closure</em>, </td>
408         </tr>
409         <tr>
410           <td class="paramkey"></td>
411           <td></td>
412           <td class="paramtype">const char *&#160;</td>
413           <td class="paramname"><em>event</em>, </td>
414         </tr>
415         <tr>
416           <td class="paramkey"></td>
417           <td></td>
418           <td class="paramtype">struct afb_wsj1_msg *&#160;</td>
419           <td class="paramname"><em>msg</em>&#160;</td>
420         </tr>
421         <tr>
422           <td></td>
423           <td>)</td>
424           <td></td><td></td>
425         </tr>
426       </table>
427 </div><div class="memdoc">
428
429 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00467">467</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
430 <div class="fragment"><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;{</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    cout &lt;&lt; <span class="stringliteral">&quot;[libhomescreen on_event]: &quot;</span> &lt;&lt; <span class="keyword">event</span> &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; afb_wsj1_msg_object_s(msg) &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  <span class="keywordflow">if</span> (strstr(<a class="code" href="../../df/d7d/structevent.html">event</a>, <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a>) == NULL) {</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    }</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keyword">struct </span>json_object* ev_contents = afb_wsj1_msg_object_j(msg);</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <span class="keyword">struct </span>json_object *json_data = json_object_object_get(ev_contents, <span class="stringliteral">&quot;data&quot;</span>);</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="keywordflow">if</span>(onEvent != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    {</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">string</span> ev(<a class="code" href="../../df/d7d/structevent.html">event</a>);</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        onEvent(ev, ev_contents);</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    }</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* event_only = strchr(<a class="code" href="../../df/d7d/structevent.html">event</a>, <span class="charliteral">&#39;/&#39;</span>);</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordflow">if</span> (event_only != <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        event_only = event_only + 1;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    }</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    <span class="keywordflow">if</span> (strcasecmp(event_only, <a class="code" href="../../de/dd0/class_lib_home_screen.html#a6a6d8a4d33a006a08652e7377a4c29e9">LibHomeScreen::event_list</a>[0].c_str()) == 0) {</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;        <span class="keyword">auto</span> i = this-&gt;handlers.find(<a class="code" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f">Event_TapShortcut</a>);</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        <span class="keyword">struct </span>json_object *json_application_name = json_object_object_get(json_data, <span class="stringliteral">&quot;application_name&quot;</span>);</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* application_name = json_object_get_string(json_application_name);</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        <span class="keywordflow">if</span> ( i != this-&gt;handlers.end() ) {</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;            i-&gt;second(application_name);</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;        }</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    }</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strcasecmp(event_only, <a class="code" href="../../de/dd0/class_lib_home_screen.html#a6a6d8a4d33a006a08652e7377a4c29e9">LibHomeScreen::event_list</a>[1].c_str()) == 0) {</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        <span class="keyword">auto</span> i = this-&gt;handlers.find(<a class="code" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d">Event_OnScreenMessage</a>);</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keyword">struct </span>json_object *json_display_message = json_object_object_get(json_data, <span class="stringliteral">&quot;display_message&quot;</span>);</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* display_message = json_object_get_string(json_display_message);</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        <span class="keywordflow">if</span> ( i != this-&gt;handlers.end() ) {</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;            i-&gt;second(display_message);</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        }</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    }</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    json_object_put(ev_contents);</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;}</div><div class="ttc" id="structevent_html"><div class="ttname"><a href="../../df/d7d/structevent.html">event</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d1e/homescreen_8c_source.html#l00035">homescreen.c:35</a></div></div>
431 <div class="ttc" id="libhomescreen_8cpp_html_a1e2d6e77dd8f0162f830058579eab42f"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a></div><div class="ttdeci">static const char API[]</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00040">libhomescreen.cpp:40</a></div></div>
432 <div class="ttc" id="class_lib_home_screen_html_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d">LibHomeScreen::Event_OnScreenMessage</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00045">libhomescreen.hpp:45</a></div></div>
433 <div class="ttc" id="class_lib_home_screen_html_a6a6d8a4d33a006a08652e7377a4c29e9"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a6a6d8a4d33a006a08652e7377a4c29e9">LibHomeScreen::event_list</a></div><div class="ttdeci">static const std::vector&lt; std::string &gt; event_list</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00049">libhomescreen.hpp:49</a></div></div>
434 <div class="ttc" id="class_lib_home_screen_html_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f">LibHomeScreen::Event_TapShortcut</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00044">libhomescreen.hpp:44</a></div></div>
435 </div><!-- fragment -->
436 </div>
437 </div>
438 <a id="ab1c1fa69f24b981e824dd9fb810c4b74"></a>
439 <h2 class="memtitle"><span class="permalink"><a href="#ab1c1fa69f24b981e824dd9fb810c4b74">&#9670;&nbsp;</a></span>on_hangup()</h2>
440
441 <div class="memitem">
442 <div class="memproto">
443       <table class="memname">
444         <tr>
445           <td class="memname">void LibHomeScreen::on_hangup </td>
446           <td>(</td>
447           <td class="paramtype">void *&#160;</td>
448           <td class="paramname"><em>closure</em>, </td>
449         </tr>
450         <tr>
451           <td class="paramkey"></td>
452           <td></td>
453           <td class="paramtype">struct afb_wsj1 *&#160;</td>
454           <td class="paramname"><em>wsj</em>&#160;</td>
455         </tr>
456         <tr>
457           <td></td>
458           <td>)</td>
459           <td></td><td></td>
460         </tr>
461       </table>
462 </div><div class="memdoc">
463
464 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00448">448</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
465 <div class="fragment"><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;{</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a4e42b2f5af2174dd24f958351becf63d">DLOG</a>(<span class="stringliteral">&quot;%s called&quot;</span>, __FUNCTION__);</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <span class="keywordflow">if</span>(onHangup != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    {</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        onHangup();</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    }</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;}</div><div class="ttc" id="libhomescreen_8cpp_html_a4e42b2f5af2174dd24f958351becf63d"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a4e42b2f5af2174dd24f958351becf63d">DLOG</a></div><div class="ttdeci">#define DLOG(args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00033">libhomescreen.cpp:33</a></div></div>
466 </div><!-- fragment -->
467 </div>
468 </div>
469 <a id="a248d9648c6186287a7632ec1c75fc9c5"></a>
470 <h2 class="memtitle"><span class="permalink"><a href="#a248d9648c6186287a7632ec1c75fc9c5">&#9670;&nbsp;</a></span>on_reply()</h2>
471
472 <div class="memitem">
473 <div class="memproto">
474       <table class="memname">
475         <tr>
476           <td class="memname">void LibHomeScreen::on_reply </td>
477           <td>(</td>
478           <td class="paramtype">void *&#160;</td>
479           <td class="paramname"><em>closure</em>, </td>
480         </tr>
481         <tr>
482           <td class="paramkey"></td>
483           <td></td>
484           <td class="paramtype">struct afb_wsj1_msg *&#160;</td>
485           <td class="paramname"><em>msg</em>&#160;</td>
486         </tr>
487         <tr>
488           <td></td>
489           <td>)</td>
490           <td></td><td></td>
491         </tr>
492       </table>
493 </div><div class="memdoc">
494 <p>msg is like ({"response":{"verb":"subscribe","error":0},"jtype":"afb-reply","request":{"status":"success","info":"homescreen binder subscribe event name [on_screen_message]"}}) msg is like ({"response":{"verb":"tap_shortcut","error":0},"jtype":"afb-reply","request":{"status":"success","info":"afb_event_push event [tap_shortcut]"}}) </p>
495
496 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00519">519</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
497 <div class="fragment"><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;{</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    cout &lt;&lt; <span class="stringliteral">&quot;[libhomescreen on_reply]: &quot;</span> &lt;&lt;  <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; afb_wsj1_msg_object_s(msg) &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    <span class="keywordflow">if</span>(onReply != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    {</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;        <span class="keyword">struct </span>json_object* reply = afb_wsj1_msg_object_j(msg);</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        onReply(reply);</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        json_object_put(reply);</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    }</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;}</div></div><!-- fragment -->
498 </div>
499 </div>
500 <a id="ac336482036a72b51a822725f1929523c"></a>
501 <h2 class="memtitle"><span class="permalink"><a href="#ac336482036a72b51a822725f1929523c">&#9670;&nbsp;</a></span>onScreenMessage()</h2>
502
503 <div class="memitem">
504 <div class="memproto">
505       <table class="memname">
506         <tr>
507           <td class="memname">int LibHomeScreen::onScreenMessage </td>
508           <td>(</td>
509           <td class="paramtype">const char *&#160;</td>
510           <td class="paramname"><em>display_message</em></td><td>)</td>
511           <td></td>
512         </tr>
513       </table>
514 </div><div class="memdoc">
515 <p>HomeScreenアプリに表示するメッセージイベントの発行</p>
516 <p>各アプリからHomeScreenアプリケーションのOnScreenに表示するイベントを発行する</p>
517 <h4>Parameters</h4>
518 <ul>
519 <li>display_message [in] : 表示するメッセージ</li>
520 </ul>
521 <h4>Return</h4>
522 <ul>
523 <li>Returns 0 on success or -1 in case of error. </li>
524 </ul>
525
526 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00280">280</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
527 <div class="fragment"><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;{</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keywordflow">if</span>(!sp_websock)</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    {</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    }</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keyword">struct </span>json_object* j_obj = json_object_new_object();</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keyword">struct </span>json_object* val = json_object_new_string(display_message);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    json_object_object_add(j_obj, <span class="stringliteral">&quot;display_message&quot;</span>, val);</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="keywordflow">return</span> this-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#a527b49dcfe581be6275d0eb2236ba37f">call</a>(<span class="stringliteral">&quot;on_screen_message&quot;</span>, j_obj);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;}</div><div class="ttc" id="class_lib_home_screen_html_a527b49dcfe581be6275d0eb2236ba37f"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a527b49dcfe581be6275d0eb2236ba37f">LibHomeScreen::call</a></div><div class="ttdeci">int call(const std::string &amp;verb, struct json_object *arg)</div></div>
528 </div><!-- fragment -->
529 </div>
530 </div>
531 <a id="a23bc17798453cfca50904562736f6b25"></a>
532 <h2 class="memtitle"><span class="permalink"><a href="#a23bc17798453cfca50904562736f6b25">&#9670;&nbsp;</a></span>operator=()</h2>
533
534 <div class="memitem">
535 <div class="memproto">
536 <table class="mlabels">
537   <tr>
538   <td class="mlabels-left">
539       <table class="memname">
540         <tr>
541           <td class="memname"><a class="el" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a>&amp; LibHomeScreen::operator= </td>
542           <td>(</td>
543           <td class="paramtype">const <a class="el" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a> &amp;&#160;</td>
544           <td class="paramname"></td><td>)</td>
545           <td></td>
546         </tr>
547       </table>
548   </td>
549   <td class="mlabels-right">
550 <span class="mlabels"><span class="mlabel">delete</span></span>  </td>
551   </tr>
552 </table>
553 </div><div class="memdoc">
554
555 </div>
556 </div>
557 <a id="a2789e8a5372202cc36f48e71dbb9b7cf"></a>
558 <h2 class="memtitle"><span class="permalink"><a href="#a2789e8a5372202cc36f48e71dbb9b7cf">&#9670;&nbsp;</a></span>registerCallback()</h2>
559
560 <div class="memitem">
561 <div class="memproto">
562       <table class="memname">
563         <tr>
564           <td class="memname">void LibHomeScreen::registerCallback </td>
565           <td>(</td>
566           <td class="paramtype">void(*)(const std::string &amp;<a class="el" href="../../df/d7d/structevent.html">event</a>, struct json_object *event_contents)&#160;</td>
567           <td class="paramname"><em>event_cb</em>, </td>
568         </tr>
569         <tr>
570           <td class="paramkey"></td>
571           <td></td>
572           <td class="paramtype">void(*)(struct json_object *reply_contents)&#160;</td>
573           <td class="paramname"><em>reply_cb</em>, </td>
574         </tr>
575         <tr>
576           <td class="paramkey"></td>
577           <td></td>
578           <td class="paramtype">void(*)(void)&#160;</td>
579           <td class="paramname"><em>hangup_cb</em> = <code>nullptr</code>&#160;</td>
580         </tr>
581         <tr>
582           <td></td>
583           <td>)</td>
584           <td></td><td></td>
585         </tr>
586       </table>
587 </div><div class="memdoc">
588 <p>This function register callback function for reply/event message from home screen</p>
589 <h4>Parameters</h4>
590 <ul>
591 <li>event_cb [in] : This argument should be specified to the callback for subscribed event</li>
592 <li>reply_cb [in] : This argument should be specified to the reply callback for call function</li>
593 </ul>
594 <h4>Return</h4>
595 <p>Nothing</p>
596 <h4>Note</h4>
597 <p>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 </p>
598
599 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00158">158</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
600 <div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;{</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    onEvent = event_cb;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    onReply = reply_cb;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    onHangup = hangup_cb;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;}</div></div><!-- fragment -->
601 </div>
602 </div>
603 <a id="a32d3282898d0f04151c24b4103511e00"></a>
604 <h2 class="memtitle"><span class="permalink"><a href="#a32d3282898d0f04151c24b4103511e00">&#9670;&nbsp;</a></span>runEventloop()</h2>
605
606 <div class="memitem">
607 <div class="memproto">
608       <table class="memname">
609         <tr>
610           <td class="memname">int LibHomeScreen::runEventloop </td>
611           <td>(</td>
612           <td class="paramname"></td><td>)</td>
613           <td></td>
614         </tr>
615       </table>
616 </div><div class="memdoc">
617 <p>This function start receiving the reply/event message from home screen</p>
618 <h4>Parameters</h4>
619 <p>Nothing</p>
620 <h4>Return</h4>
621 <ul>
622 <li>Returns thread_id on success or -1 in case of error.</li>
623 </ul>
624 <h4>Note</h4>
625
626 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00224">224</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
627 <div class="fragment"><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;{</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordflow">if</span>(mploop &amp;&amp; sp_websock)</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    {</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        pthread_t thread_id;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <span class="keywordtype">int</span> ret = pthread_create(&amp;thread_id, NULL, <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#aa73353e1bf62c68b6b0aba7a1e4e275e">event_loop_run</a>, mploop);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="keywordflow">if</span>(ret != 0)</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        {</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;            <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a>(<span class="stringliteral">&quot;Cannot run eventloop due to error:%d&quot;</span>, errno);</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;            <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        }</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;            <span class="keywordflow">return</span> thread_id;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    }</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    {</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a>(<span class="stringliteral">&quot;Connecting is not established yet&quot;</span>);</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    }</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;}</div><div class="ttc" id="libhomescreen_8cpp_html_a797aa3053bd6a29819d44f8fad8a5eca"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a></div><div class="ttdeci">#define ELOG(args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00032">libhomescreen.cpp:32</a></div></div>
628 <div class="ttc" id="libhomescreen_8cpp_html_aa73353e1bf62c68b6b0aba7a1e4e275e"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#aa73353e1bf62c68b6b0aba7a1e4e275e">event_loop_run</a></div><div class="ttdeci">static void * event_loop_run(void *args)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00204">libhomescreen.cpp:204</a></div></div>
629 </div><!-- fragment -->
630 </div>
631 </div>
632 <a id="ab1b0e08bf35415de9064afed899e9f85"></a>
633 <h2 class="memtitle"><span class="permalink"><a href="#ab1b0e08bf35415de9064afed899e9f85">&#9670;&nbsp;</a></span>set_event_handler()</h2>
634
635 <div class="memitem">
636 <div class="memproto">
637       <table class="memname">
638         <tr>
639           <td class="memname">void LibHomeScreen::set_event_handler </td>
640           <td>(</td>
641           <td class="paramtype">enum <a class="el" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154">EventType</a>&#160;</td>
642           <td class="paramname"><em>et</em>, </td>
643         </tr>
644         <tr>
645           <td class="paramkey"></td>
646           <td></td>
647           <td class="paramtype"><a class="el" href="../../de/dd0/class_lib_home_screen.html#ae99dee1e03d494d59d26c9f17078e01f">handler_func</a>&#160;</td>
648           <td class="paramname"><em>f</em>&#160;</td>
649         </tr>
650         <tr>
651           <td></td>
652           <td>)</td>
653           <td></td><td></td>
654         </tr>
655       </table>
656 </div><div class="memdoc">
657 <p>イベントハンドラの登録</p>
658 <p>各アプリからHomeScreenアプリケーションのOnScreenに表示するイベントを発行する</p>
659 <h4>Parameters</h4>
660 <ul>
661 <li>et [in] : 対象のイベント</li>
662 <li>f [in] : イベントハンドラ</li>
663 </ul>
664 <h4>Return</h4>
665 <p>Nothing </p>
666
667 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00305">305</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
668 <div class="fragment"><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;{</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="keywordflow">if</span> (et &gt;= 1 &amp;&amp; et &lt;= 2) {</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="keywordflow">switch</span> (et) {</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;            <span class="keywordflow">case</span> <a class="code" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f">Event_TapShortcut</a>:</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;                this-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#aa4c189807b75d070f567967f0d690738">subscribe</a>(<a class="code" href="../../de/dd0/class_lib_home_screen.html#a6a6d8a4d33a006a08652e7377a4c29e9">LibHomeScreen::event_list</a>[0]);</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;            <span class="keywordflow">case</span> <a class="code" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d">Event_OnScreenMessage</a>:</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                this-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#aa4c189807b75d070f567967f0d690738">subscribe</a>(<a class="code" href="../../de/dd0/class_lib_home_screen.html#a6a6d8a4d33a006a08652e7377a4c29e9">LibHomeScreen::event_list</a>[1]);</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        }</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        this-&gt;handlers[et] = std::move(f);</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    }</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;}</div><div class="ttc" id="class_lib_home_screen_html_a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154aea56fa32a124a8ddcbea127755280a1d">LibHomeScreen::Event_OnScreenMessage</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00045">libhomescreen.hpp:45</a></div></div>
669 <div class="ttc" id="class_lib_home_screen_html_aa4c189807b75d070f567967f0d690738"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#aa4c189807b75d070f567967f0d690738">LibHomeScreen::subscribe</a></div><div class="ttdeci">int subscribe(const std::string &amp;event_name)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00401">libhomescreen.cpp:401</a></div></div>
670 <div class="ttc" id="class_lib_home_screen_html_a6a6d8a4d33a006a08652e7377a4c29e9"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a6a6d8a4d33a006a08652e7377a4c29e9">LibHomeScreen::event_list</a></div><div class="ttdeci">static const std::vector&lt; std::string &gt; event_list</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00049">libhomescreen.hpp:49</a></div></div>
671 <div class="ttc" id="class_lib_home_screen_html_a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a4b0a82d501e4db5fbfe25c254c92896f">LibHomeScreen::Event_TapShortcut</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00044">libhomescreen.hpp:44</a></div></div>
672 </div><!-- fragment -->
673 </div>
674 </div>
675 <a id="aa4c189807b75d070f567967f0d690738"></a>
676 <h2 class="memtitle"><span class="permalink"><a href="#aa4c189807b75d070f567967f0d690738">&#9670;&nbsp;</a></span>subscribe()</h2>
677
678 <div class="memitem">
679 <div class="memproto">
680       <table class="memname">
681         <tr>
682           <td class="memname">int LibHomeScreen::subscribe </td>
683           <td>(</td>
684           <td class="paramtype">const std::string &amp;&#160;</td>
685           <td class="paramname"><em>event_name</em></td><td>)</td>
686           <td></td>
687         </tr>
688       </table>
689 </div><div class="memdoc">
690 <p>Register callback function for each event</p>
691 <h4>Parameters</h4>
692 <ul>
693 <li>event_name [in] : This argument should be specified to the event name</li>
694 </ul>
695 <h4>Return</h4>
696 <ul>
697 <li>Returns 0 on success or -1 in case of error.</li>
698 </ul>
699 <h4>Note</h4>
700 <p>This function enables to get an event to your callback function. </p>
701
702 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00401">401</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
703 <div class="fragment"><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;{</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="keywordflow">if</span>(!sp_websock)</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    {</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    }</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="keyword">struct </span>json_object* j_obj = json_object_new_object();</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    json_object_object_add(j_obj, <span class="stringliteral">&quot;event&quot;</span>, json_object_new_string(event_name.c_str()));</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="keywordtype">int</span> ret = afb_wsj1_call_j(sp_websock, <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a>, <span class="stringliteral">&quot;subscribe&quot;</span>, j_obj, <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a7778933bffa862c63fa0a1b8219faa8b">_on_reply_static</a>, <span class="keyword">this</span>);</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="keywordflow">if</span> (ret &lt; 0) {</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a>(<span class="stringliteral">&quot;Failed to call verb:%s&quot;</span>,__FUNCTION__);</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    }</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;}</div><div class="ttc" id="libhomescreen_8cpp_html_a1e2d6e77dd8f0162f830058579eab42f"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a></div><div class="ttdeci">static const char API[]</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00040">libhomescreen.cpp:40</a></div></div>
704 <div class="ttc" id="libhomescreen_8cpp_html_a797aa3053bd6a29819d44f8fad8a5eca"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a></div><div class="ttdeci">#define ELOG(args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00032">libhomescreen.cpp:32</a></div></div>
705 <div class="ttc" id="libhomescreen_8cpp_html_a7778933bffa862c63fa0a1b8219faa8b"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a7778933bffa862c63fa0a1b8219faa8b">_on_reply_static</a></div><div class="ttdeci">static void _on_reply_static(void *closure, struct afb_wsj1_msg *msg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00076">libhomescreen.cpp:76</a></div></div>
706 </div><!-- fragment -->
707 </div>
708 </div>
709 <a id="afb571c9577087b47065eb23e7fdbc903"></a>
710 <h2 class="memtitle"><span class="permalink"><a href="#afb571c9577087b47065eb23e7fdbc903">&#9670;&nbsp;</a></span>tapShortcut()</h2>
711
712 <div class="memitem">
713 <div class="memproto">
714       <table class="memname">
715         <tr>
716           <td class="memname">int LibHomeScreen::tapShortcut </td>
717           <td>(</td>
718           <td class="paramtype">const char *&#160;</td>
719           <td class="paramname"><em>application_name</em></td><td>)</td>
720           <td></td>
721         </tr>
722       </table>
723 </div><div class="memdoc">
724 <p>ショートカットアイコンがタップされたイベントの発行</p>
725 <p>HomeScreenアプリケーションにて各アプリアイコンがタップされたときにイベントを発行する</p>
726 <h4>Parameters</h4>
727 <ul>
728 <li>application_name [in] : タップされたアプリケーションの名前(label)</li>
729 </ul>
730 <h4>Return</h4>
731 <ul>
732 <li>Returns 0 on success or -1 in case of error. </li>
733 </ul>
734
735 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00256">256</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
736 <div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;{</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordflow">if</span>(!sp_websock)</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    {</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    }</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="keyword">struct </span>json_object* j_obj = json_object_new_object();</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keyword">struct </span>json_object* val = json_object_new_string(application_name);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    json_object_object_add(j_obj, <span class="stringliteral">&quot;application_name&quot;</span>, val);</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="keywordflow">return</span> this-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#a527b49dcfe581be6275d0eb2236ba37f">call</a>(<span class="stringliteral">&quot;tap_shortcut&quot;</span>, j_obj);</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;}</div><div class="ttc" id="class_lib_home_screen_html_a527b49dcfe581be6275d0eb2236ba37f"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a527b49dcfe581be6275d0eb2236ba37f">LibHomeScreen::call</a></div><div class="ttdeci">int call(const std::string &amp;verb, struct json_object *arg)</div></div>
737 </div><!-- fragment -->
738 </div>
739 </div>
740 <a id="aac03a45cbd453ba69ddb00c1016930a6"></a>
741 <h2 class="memtitle"><span class="permalink"><a href="#aac03a45cbd453ba69ddb00c1016930a6">&#9670;&nbsp;</a></span>unsubscribe()</h2>
742
743 <div class="memitem">
744 <div class="memproto">
745       <table class="memname">
746         <tr>
747           <td class="memname">int LibHomeScreen::unsubscribe </td>
748           <td>(</td>
749           <td class="paramtype">const std::string &amp;&#160;</td>
750           <td class="paramname"><em>event_name</em></td><td>)</td>
751           <td></td>
752         </tr>
753       </table>
754 </div><div class="memdoc">
755 <p>Unregister callback function for each event</p>
756 <h4>Parameters</h4>
757 <ul>
758 <li>event_name [in] : This argument should be specified to the event name</li>
759 </ul>
760 <h4>Return</h4>
761 <ul>
762 <li>Returns 0 on success or -1 in case of error.</li>
763 </ul>
764 <h4>Note</h4>
765 <p>This function disables to get an event to your callback function. </p>
766
767 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00430">430</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
768 <div class="fragment"><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;{</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <span class="keywordflow">if</span>(!sp_websock)</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    {</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    }</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <span class="keyword">struct </span>json_object* j_obj = json_object_new_object();</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    json_object_object_add(j_obj, <span class="stringliteral">&quot;event&quot;</span>, json_object_new_string(event_name.c_str()));</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordtype">int</span> ret = afb_wsj1_call_j(sp_websock, <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a>, <span class="stringliteral">&quot;unsubscribe&quot;</span>, j_obj, <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a7778933bffa862c63fa0a1b8219faa8b">_on_reply_static</a>, <span class="keyword">this</span>);</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    <span class="keywordflow">if</span> (ret &lt; 0) {</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        <a class="code" href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a>(<span class="stringliteral">&quot;Failed to call verb:%s&quot;</span>,__FUNCTION__);</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    }</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;}</div><div class="ttc" id="libhomescreen_8cpp_html_a1e2d6e77dd8f0162f830058579eab42f"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a></div><div class="ttdeci">static const char API[]</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00040">libhomescreen.cpp:40</a></div></div>
769 <div class="ttc" id="libhomescreen_8cpp_html_a797aa3053bd6a29819d44f8fad8a5eca"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a797aa3053bd6a29819d44f8fad8a5eca">ELOG</a></div><div class="ttdeci">#define ELOG(args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00032">libhomescreen.cpp:32</a></div></div>
770 <div class="ttc" id="libhomescreen_8cpp_html_a7778933bffa862c63fa0a1b8219faa8b"><div class="ttname"><a href="../../d0/d8a/libhomescreen_8cpp.html#a7778933bffa862c63fa0a1b8219faa8b">_on_reply_static</a></div><div class="ttdeci">static void _on_reply_static(void *closure, struct afb_wsj1_msg *msg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00076">libhomescreen.cpp:76</a></div></div>
771 </div><!-- fragment -->
772 </div>
773 </div>
774 <h2 class="groupheader">Member Data Documentation</h2>
775 <a id="a5593ff5ac78f6495ccb649904cf0ab08"></a>
776 <h2 class="memtitle"><span class="permalink"><a href="#a5593ff5ac78f6495ccb649904cf0ab08">&#9670;&nbsp;</a></span>api_list</h2>
777
778 <div class="memitem">
779 <div class="memproto">
780 <table class="mlabels">
781   <tr>
782   <td class="mlabels-left">
783       <table class="memname">
784         <tr>
785           <td class="memname">const std::vector&lt; std::string &gt; LibHomeScreen::api_list</td>
786         </tr>
787       </table>
788   </td>
789   <td class="mlabels-right">
790 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
791   </tr>
792 </table>
793 </div><div class="memdoc">
794 <b>Initial value:</b><div class="fragment"><div class="line">{</div><div class="line">    std::string(<span class="stringliteral">&quot;ping&quot;</span>), </div><div class="line">    std::string(<span class="stringliteral">&quot;tap_shortcut&quot;</span>), </div><div class="line">    std::string(<span class="stringliteral">&quot;on_screen_message&quot;</span>),</div><div class="line">    std::string(<span class="stringliteral">&quot;subscribe&quot;</span>),</div><div class="line">    std::string(<span class="stringliteral">&quot;unsubscribe&quot;</span>)</div><div class="line">}</div></div><!-- fragment -->
795 <p class="definition">Definition at line <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html#l00048">48</a> of file <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html">libhomescreen.hpp</a>.</p>
796
797 </div>
798 </div>
799 <a id="a6a6d8a4d33a006a08652e7377a4c29e9"></a>
800 <h2 class="memtitle"><span class="permalink"><a href="#a6a6d8a4d33a006a08652e7377a4c29e9">&#9670;&nbsp;</a></span>event_list</h2>
801
802 <div class="memitem">
803 <div class="memproto">
804 <table class="mlabels">
805   <tr>
806   <td class="mlabels-left">
807       <table class="memname">
808         <tr>
809           <td class="memname">const std::vector&lt; std::string &gt; LibHomeScreen::event_list</td>
810         </tr>
811       </table>
812   </td>
813   <td class="mlabels-right">
814 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
815   </tr>
816 </table>
817 </div><div class="memdoc">
818 <b>Initial value:</b><div class="fragment"><div class="line">{</div><div class="line">    std::string(<span class="stringliteral">&quot;tap_shortcut&quot;</span>),</div><div class="line">    std::string(<span class="stringliteral">&quot;on_screen_message&quot;</span>),</div><div class="line">    std::string(<span class="stringliteral">&quot;none&quot;</span>)</div><div class="line">}</div></div><!-- fragment -->
819 <p class="definition">Definition at line <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html#l00049">49</a> of file <a class="el" href="../../df/d43/libhomescreen_8hpp_source.html">libhomescreen.hpp</a>.</p>
820
821 </div>
822 </div>
823 <hr/>The documentation for this class was generated from the following files:<ul>
824 <li>include/libhomescreen/<a class="el" href="../../df/d43/libhomescreen_8hpp_source.html">libhomescreen.hpp</a></li>
825 <li>libhomescreen/<a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a></li>
826 </ul>
827 </div><!-- contents -->
828 <!-- start footer part -->
829 <hr class="footer"/><address class="footer"><small>
830 Generated by &#160;<a href="http://www.doxygen.org/index.html">
831 <img class="footer" src="../../doxygen.png" alt="doxygen"/>
832 </a> 1.8.13
833 </small></address>
834 </body>
835 </html>