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">
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/libhomescreen.cpp File 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" />
18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
20 <table cellspacing="0" cellpadding="0">
22 <tr style="height: 56px;">
23 <td id="projectalign" style="padding-left: 0.5em;">
24 <div id="projectname">HomeScreenBinding
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');
36 <script type="text/javascript" src="../../menudata.js"></script>
37 <script type="text/javascript" src="../../menu.js"></script>
38 <script type="text/javascript">
40 initMenu('../../',true,false,'search.php','Search');
41 $(document).ready(function() { init_search(); });
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)">
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">
59 <div id="nav-path" class="navpath">
61 <li class="navelem"><a class="el" href="../../dir_65f76d62445e9e84c0450b12bf77c3bc.html">libhomescreen</a></li> </ul>
66 <a href="#func-members">Functions</a> |
67 <a href="#var-members">Variables</a> </div>
68 <div class="headertitle">
69 <div class="title">libhomescreen.cpp File Reference</div> </div>
71 <div class="contents">
72 <div class="textblock"><code>#include <stdarg.h></code><br />
73 <code>#include <sys/socket.h></code><br />
74 <code>#include <iostream></code><br />
75 <code>#include <algorithm></code><br />
76 <code>#include <thread></code><br />
77 <code>#include <errno.h></code><br />
78 <code>#include <cassert></code><br />
79 <code>#include <cctype></code><br />
80 <code>#include <cerrno></code><br />
81 <code>#include <cstdio></code><br />
82 <code>#include <cstdlib></code><br />
83 <code>#include <cstring></code><br />
84 <code>#include <<a class="el" href="../../df/d43/libhomescreen_8hpp_source.html">libhomescreen.hpp</a>></code><br />
85 <code>#include "<a class="el" href="../../df/d76/hmi-debug_8h_source.html">hmi-debug.h</a>"</code><br />
87 <p><a href="../../d0/d8a/libhomescreen_8cpp_source.html">Go to the source code of this file.</a></p>
88 <table class="memberdecls">
89 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
90 Functions</h2></td></tr>
91 <tr class="memitem:a7a2176c3d71fec0f09dcb2aa0866b17e"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d8a/libhomescreen_8cpp.html#a7a2176c3d71fec0f09dcb2aa0866b17e">has_verb</a> (const string &verb)</td></tr>
92 <tr class="separator:a7a2176c3d71fec0f09dcb2aa0866b17e"><td class="memSeparator" colspan="2"> </td></tr>
93 <tr class="memitem:a73c05b96c151e5e46c28585ccb143c1c"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d8a/libhomescreen_8cpp.html#a73c05b96c151e5e46c28585ccb143c1c">_on_hangup_static</a> (void *closure, struct afb_wsj1 *wsj)</td></tr>
94 <tr class="separator:a73c05b96c151e5e46c28585ccb143c1c"><td class="memSeparator" colspan="2"> </td></tr>
95 <tr class="memitem:a782a05fde0f1c17e0c4c8f972a3f53c8"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d8a/libhomescreen_8cpp.html#a782a05fde0f1c17e0c4c8f972a3f53c8">_on_call_static</a> (void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg)</td></tr>
96 <tr class="separator:a782a05fde0f1c17e0c4c8f972a3f53c8"><td class="memSeparator" colspan="2"> </td></tr>
97 <tr class="memitem:a3df86185aa9453726556da201d95a6f9"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d8a/libhomescreen_8cpp.html#a3df86185aa9453726556da201d95a6f9">_on_event_static</a> (void *closure, const char *<a class="el" href="../../df/d7d/structevent.html">event</a>, struct afb_wsj1_msg *msg)</td></tr>
98 <tr class="separator:a3df86185aa9453726556da201d95a6f9"><td class="memSeparator" colspan="2"> </td></tr>
99 <tr class="memitem:a7778933bffa862c63fa0a1b8219faa8b"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d8a/libhomescreen_8cpp.html#a7778933bffa862c63fa0a1b8219faa8b">_on_reply_static</a> (void *closure, struct afb_wsj1_msg *msg)</td></tr>
100 <tr class="separator:a7778933bffa862c63fa0a1b8219faa8b"><td class="memSeparator" colspan="2"> </td></tr>
101 <tr class="memitem:aa73353e1bf62c68b6b0aba7a1e4e275e"><td class="memItemLeft" align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d8a/libhomescreen_8cpp.html#aa73353e1bf62c68b6b0aba7a1e4e275e">event_loop_run</a> (void *args)</td></tr>
102 <tr class="separator:aa73353e1bf62c68b6b0aba7a1e4e275e"><td class="memSeparator" colspan="2"> </td></tr>
103 </table><table class="memberdecls">
104 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
105 Variables</h2></td></tr>
106 <tr class="memitem:a1e2d6e77dd8f0162f830058579eab42f"><td class="memItemLeft" align="right" valign="top">static const char </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d8a/libhomescreen_8cpp.html#a1e2d6e77dd8f0162f830058579eab42f">API</a> [] = "homescreen"</td></tr>
107 <tr class="separator:a1e2d6e77dd8f0162f830058579eab42f"><td class="memSeparator" colspan="2"> </td></tr>
109 <h2 class="groupheader">Function Documentation</h2>
110 <a id="a782a05fde0f1c17e0c4c8f972a3f53c8"></a>
111 <h2 class="memtitle"><span class="permalink"><a href="#a782a05fde0f1c17e0c4c8f972a3f53c8">◆ </a></span>_on_call_static()</h2>
113 <div class="memitem">
114 <div class="memproto">
115 <table class="mlabels">
117 <td class="mlabels-left">
118 <table class="memname">
120 <td class="memname">static void _on_call_static </td>
122 <td class="paramtype">void * </td>
123 <td class="paramname"><em>closure</em>, </td>
126 <td class="paramkey"></td>
128 <td class="paramtype">const char * </td>
129 <td class="paramname"><em>api</em>, </td>
132 <td class="paramkey"></td>
134 <td class="paramtype">const char * </td>
135 <td class="paramname"><em>verb</em>, </td>
138 <td class="paramkey"></td>
140 <td class="paramtype">struct afb_wsj1_msg * </td>
141 <td class="paramname"><em>msg</em> </td>
150 <td class="mlabels-right">
151 <span class="mlabels"><span class="mlabel">static</span></span> </td>
154 </div><div class="memdoc">
156 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00064">64</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
157 <div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">/* LibHomeScreen is not called from other process */</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }</div></div><!-- fragment -->
160 <a id="a3df86185aa9453726556da201d95a6f9"></a>
161 <h2 class="memtitle"><span class="permalink"><a href="#a3df86185aa9453726556da201d95a6f9">◆ </a></span>_on_event_static()</h2>
163 <div class="memitem">
164 <div class="memproto">
165 <table class="mlabels">
167 <td class="mlabels-left">
168 <table class="memname">
170 <td class="memname">static void _on_event_static </td>
172 <td class="paramtype">void * </td>
173 <td class="paramname"><em>closure</em>, </td>
176 <td class="paramkey"></td>
178 <td class="paramtype">const char * </td>
179 <td class="paramname"><em>event</em>, </td>
182 <td class="paramkey"></td>
184 <td class="paramtype">struct afb_wsj1_msg * </td>
185 <td class="paramname"><em>msg</em> </td>
194 <td class="mlabels-right">
195 <span class="mlabels"><span class="mlabel">static</span></span> </td>
198 </div><div class="memdoc">
200 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00069">69</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
201 <div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">static_cast<</span><a class="code" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a>*<span class="keyword">></span>(closure)->on_event(NULL,<a class="code" href="../../df/d7d/structevent.html">event</a>,msg);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }</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>
202 <div class="ttc" id="class_lib_home_screen_html"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00032">libhomescreen.hpp:32</a></div></div>
203 </div><!-- fragment -->
206 <a id="a73c05b96c151e5e46c28585ccb143c1c"></a>
207 <h2 class="memtitle"><span class="permalink"><a href="#a73c05b96c151e5e46c28585ccb143c1c">◆ </a></span>_on_hangup_static()</h2>
209 <div class="memitem">
210 <div class="memproto">
211 <table class="mlabels">
213 <td class="mlabels-left">
214 <table class="memname">
216 <td class="memname">static void _on_hangup_static </td>
218 <td class="paramtype">void * </td>
219 <td class="paramname"><em>closure</em>, </td>
222 <td class="paramkey"></td>
224 <td class="paramtype">struct afb_wsj1 * </td>
225 <td class="paramname"><em>wsj</em> </td>
234 <td class="mlabels-right">
235 <span class="mlabels"><span class="mlabel">static</span></span> </td>
238 </div><div class="memdoc">
241 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00059">59</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
242 <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">static_cast<</span><a class="code" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a>*<span class="keyword">></span>(closure)->on_hangup(NULL,wsj);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }</div><div class="ttc" id="class_lib_home_screen_html"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00032">libhomescreen.hpp:32</a></div></div>
243 </div><!-- fragment -->
246 <a id="a7778933bffa862c63fa0a1b8219faa8b"></a>
247 <h2 class="memtitle"><span class="permalink"><a href="#a7778933bffa862c63fa0a1b8219faa8b">◆ </a></span>_on_reply_static()</h2>
249 <div class="memitem">
250 <div class="memproto">
251 <table class="mlabels">
253 <td class="mlabels-left">
254 <table class="memname">
256 <td class="memname">static void _on_reply_static </td>
258 <td class="paramtype">void * </td>
259 <td class="paramname"><em>closure</em>, </td>
262 <td class="paramkey"></td>
264 <td class="paramtype">struct afb_wsj1_msg * </td>
265 <td class="paramname"><em>msg</em> </td>
274 <td class="mlabels-right">
275 <span class="mlabels"><span class="mlabel">static</span></span> </td>
278 </div><div class="memdoc">
280 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00074">74</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
281 <div class="fragment"><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">static_cast<</span><a class="code" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a>*<span class="keyword">></span>(closure)->on_reply(NULL,msg);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div><div class="ttc" id="class_lib_home_screen_html"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00032">libhomescreen.hpp:32</a></div></div>
282 </div><!-- fragment -->
285 <a id="aa73353e1bf62c68b6b0aba7a1e4e275e"></a>
286 <h2 class="memtitle"><span class="permalink"><a href="#aa73353e1bf62c68b6b0aba7a1e4e275e">◆ </a></span>event_loop_run()</h2>
288 <div class="memitem">
289 <div class="memproto">
290 <table class="mlabels">
292 <td class="mlabels-left">
293 <table class="memname">
295 <td class="memname">static void* event_loop_run </td>
297 <td class="paramtype">void * </td>
298 <td class="paramname"><em>args</em></td><td>)</td>
303 <td class="mlabels-right">
304 <span class="mlabels"><span class="mlabel">static</span></span> </td>
307 </div><div class="memdoc">
309 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00201">201</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
310 <div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">struct </span>sd_event* loop = (<span class="keyword">struct </span>sd_event*)(args);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="../../df/d76/hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<span class="stringliteral">"libhomescreen"</span>,<span class="stringliteral">"start eventloop"</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">for</span>(;;)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  sd_event_run(loop, 30000000);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> }</div><div class="ttc" id="hmi-debug_8h_html_a0d26d8b8201011dade787236519711c0"><div class="ttname"><a href="../../df/d76/hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a></div><div class="ttdeci">#define HMI_DEBUG(prefix, args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d76/hmi-debug_8h_source.html#l00022">hmi-debug.h:22</a></div></div>
311 </div><!-- fragment -->
314 <a id="a7a2176c3d71fec0f09dcb2aa0866b17e"></a>
315 <h2 class="memtitle"><span class="permalink"><a href="#a7a2176c3d71fec0f09dcb2aa0866b17e">◆ </a></span>has_verb()</h2>
317 <div class="memitem">
318 <div class="memproto">
319 <table class="mlabels">
321 <td class="mlabels-left">
322 <table class="memname">
324 <td class="memname">static bool has_verb </td>
326 <td class="paramtype">const string & </td>
327 <td class="paramname"><em>verb</em></td><td>)</td>
332 <td class="mlabels-right">
333 <span class="mlabels"><span class="mlabel">static</span></span> </td>
336 </div><div class="memdoc">
338 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00518">518</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
339 <div class="fragment"><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="../../df/d76/hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<span class="stringliteral">"libhomescreen"</span>,<span class="stringliteral">"verb is %s"</span>, verb.c_str());</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">if</span>(find(<a class="code" href="../../de/dd0/class_lib_home_screen.html#a5593ff5ac78f6495ccb649904cf0ab08">LibHomeScreen::api_list</a>.begin(), <a class="code" href="../../de/dd0/class_lib_home_screen.html#a5593ff5ac78f6495ccb649904cf0ab08">LibHomeScreen::api_list</a>.end(), verb) != <a class="code" href="../../de/dd0/class_lib_home_screen.html#a5593ff5ac78f6495ccb649904cf0ab08">LibHomeScreen::api_list</a>.end())</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> }</div><div class="ttc" id="hmi-debug_8h_html_a0d26d8b8201011dade787236519711c0"><div class="ttname"><a href="../../df/d76/hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a></div><div class="ttdeci">#define HMI_DEBUG(prefix, args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d76/hmi-debug_8h_source.html#l00022">hmi-debug.h:22</a></div></div>
340 <div class="ttc" id="class_lib_home_screen_html_a5593ff5ac78f6495ccb649904cf0ab08"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a5593ff5ac78f6495ccb649904cf0ab08">LibHomeScreen::api_list</a></div><div class="ttdeci">static const std::vector< std::string > api_list</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00050">libhomescreen.hpp:50</a></div></div>
341 </div><!-- fragment -->
344 <h2 class="groupheader">Variable Documentation</h2>
345 <a id="a1e2d6e77dd8f0162f830058579eab42f"></a>
346 <h2 class="memtitle"><span class="permalink"><a href="#a1e2d6e77dd8f0162f830058579eab42f">◆ </a></span>API</h2>
348 <div class="memitem">
349 <div class="memproto">
350 <table class="mlabels">
352 <td class="mlabels-left">
353 <table class="memname">
355 <td class="memname">const char API[] = "homescreen"</td>
359 <td class="mlabels-right">
360 <span class="mlabels"><span class="mlabel">static</span></span> </td>
363 </div><div class="memdoc">
365 <p class="definition">Definition at line <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html#l00036">36</a> of file <a class="el" href="../../d0/d8a/libhomescreen_8cpp_source.html">libhomescreen.cpp</a>.</p>
369 </div><!-- contents -->
370 <!-- start footer part -->
371 <hr class="footer"/><address class="footer"><small>
372 Generated by  <a href="http://www.doxygen.org/index.html">
373 <img class="footer" src="../../doxygen.png" alt="doxygen"/>