<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Sound Manager: LibSoundmanager Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">Sound Manager </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); </script> <div id="main-nav"></div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('class_lib_soundmanager.html','');}); </script> <div id="doc-content"> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <div class="title">LibSoundmanager Class Reference</div> </div> </div><!--header--> <div class="contents"> <p><code>#include <<a class="el" href="libsoundmanager_8hpp_source.html">libsoundmanager.hpp</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a289a9d6ff8be95ae78660f239d962d79"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a289a9d6ff8be95ae78660f239d962d79">LibSoundmanager</a> (const int port, const std::string &token)</td></tr> <tr class="separator:a289a9d6ff8be95ae78660f239d962d79"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abf861908e3d6d85d2b3c08683b08f934"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#abf861908e3d6d85d2b3c08683b08f934">~LibSoundmanager</a> ()</td></tr> <tr class="separator:abf861908e3d6d85d2b3c08683b08f934"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a560edf9ae3b1e367ad4cbb31c7021d74"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a560edf9ae3b1e367ad4cbb31c7021d74">register_callback</a> (void(*event_cb)(const std::string &<a class="el" href="structevent.html">event</a>, struct json_object *event_contents), void(*reply_cb)(struct json_object *reply_contents))</td></tr> <tr class="separator:a560edf9ae3b1e367ad4cbb31c7021d74"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abe71d3531e7888f47185a601b284e729"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#abe71d3531e7888f47185a601b284e729">run_eventloop</a> ()</td></tr> <tr class="separator:abe71d3531e7888f47185a601b284e729"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1fe952a4dabbab6126cc23e36c79c773"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a1fe952a4dabbab6126cc23e36c79c773">call</a> (const std::string &verb, struct json_object *arg)</td></tr> <tr class="separator:a1fe952a4dabbab6126cc23e36c79c773"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae5b83ce661b1d785de2518ca10113956"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#ae5b83ce661b1d785de2518ca10113956">call_sync</a> (const std::string &verb, struct json_object *arg, struct json_object *ret)</td></tr> <tr class="separator:ae5b83ce661b1d785de2518ca10113956"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9cd7c5470cb135f9b1aa56d790c7e91e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a9cd7c5470cb135f9b1aa56d790c7e91e">subscribe</a> (const std::string &event_name)</td></tr> <tr class="separator:a9cd7c5470cb135f9b1aa56d790c7e91e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a21060844aa7efad6473b6104546afb06"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a21060844aa7efad6473b6104546afb06">unsubscribe</a> (const std::string &event_name)</td></tr> <tr class="separator:a21060844aa7efad6473b6104546afb06"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a71a8165cb15c7815aa95a8955f5cd7f6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a71a8165cb15c7815aa95a8955f5cd7f6">on_hangup</a> (void *closure, struct afb_wsj1 *wsj)</td></tr> <tr class="separator:a71a8165cb15c7815aa95a8955f5cd7f6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3ba2255cb1d29c77c4c6a2267949eda0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a3ba2255cb1d29c77c4c6a2267949eda0">on_call</a> (void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg)</td></tr> <tr class="separator:a3ba2255cb1d29c77c4c6a2267949eda0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a86ef62e7847cd20e9cafbc1f6c017b3e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a86ef62e7847cd20e9cafbc1f6c017b3e">on_event</a> (void *closure, const char *<a class="el" href="structevent.html">event</a>, struct afb_wsj1_msg *msg)</td></tr> <tr class="separator:a86ef62e7847cd20e9cafbc1f6c017b3e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a69b4f10e509605a570cc52c795bc9d51"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lib_soundmanager.html#a69b4f10e509605a570cc52c795bc9d51">on_reply</a> (void *closure, struct afb_wsj1_msg *msg)</td></tr> <tr class="separator:a69b4f10e509605a570cc52c795bc9d51"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8hpp_source.html#l00062">62</a> of file <a class="el" href="libsoundmanager_8hpp_source.html">libsoundmanager.hpp</a>.</p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="a289a9d6ff8be95ae78660f239d962d79"></a> <h2 class="memtitle"><span class="permalink"><a href="#a289a9d6ff8be95ae78660f239d962d79">◆ </a></span>LibSoundmanager()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">LibSoundmanager::LibSoundmanager </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"><em>port</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>token</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="abf861908e3d6d85d2b3c08683b08f934"></a> <h2 class="memtitle"><span class="permalink"><a href="#abf861908e3d6d85d2b3c08683b08f934">◆ </a></span>~LibSoundmanager()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">LibSoundmanager::~LibSoundmanager </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00093">93</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="a1fe952a4dabbab6126cc23e36c79c773"></a> <h2 class="memtitle"><span class="permalink"><a href="#a1fe952a4dabbab6126cc23e36c79c773">◆ </a></span>call()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int LibSoundmanager::call </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>verb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct json_object * </td> <td class="paramname"><em>arg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>This function calls the API of Audio Manager via WebSocket</p> <h4>Parameters</h4> <ul> <li>verb [in] : This argument should be specified to the API name (e.g. "connect")</li> <li>arg [in] : This argument should be specified to the argument of API. And this argument expects JSON object</li> </ul> <h4>Rreturn</h4> <ul> <li>Returns 0 on success or -1 in case of error.</li> </ul> <h4>Note</h4> <p>To call Audio Manager's APIs, the application should set its function name, arguments to JSON format. </p> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00217">217</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="ae5b83ce661b1d785de2518ca10113956"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae5b83ce661b1d785de2518ca10113956">◆ </a></span>call_sync()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int LibSoundmanager::call_sync </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>verb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct json_object * </td> <td class="paramname"><em>arg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct json_object * </td> <td class="paramname"><em>ret</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00236">236</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="a3ba2255cb1d29c77c4c6a2267949eda0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3ba2255cb1d29c77c4c6a2267949eda0">◆ </a></span>on_call()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void LibSoundmanager::on_call </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"><em>closure</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>api</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>verb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct afb_wsj1_msg * </td> <td class="paramname"><em>msg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00347">347</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="a86ef62e7847cd20e9cafbc1f6c017b3e"></a> <h2 class="memtitle"><span class="permalink"><a href="#a86ef62e7847cd20e9cafbc1f6c017b3e">◆ </a></span>on_event()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void LibSoundmanager::on_event </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"><em>closure</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>event</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct afb_wsj1_msg * </td> <td class="paramname"><em>msg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00358">358</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="a71a8165cb15c7815aa95a8955f5cd7f6"></a> <h2 class="memtitle"><span class="permalink"><a href="#a71a8165cb15c7815aa95a8955f5cd7f6">◆ </a></span>on_hangup()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void LibSoundmanager::on_hangup </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"><em>closure</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct afb_wsj1 * </td> <td class="paramname"><em>wsj</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00342">342</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="a69b4f10e509605a570cc52c795bc9d51"></a> <h2 class="memtitle"><span class="permalink"><a href="#a69b4f10e509605a570cc52c795bc9d51">◆ </a></span>on_reply()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void LibSoundmanager::on_reply </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"><em>closure</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct afb_wsj1_msg * </td> <td class="paramname"><em>msg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00369">369</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="a560edf9ae3b1e367ad4cbb31c7021d74"></a> <h2 class="memtitle"><span class="permalink"><a href="#a560edf9ae3b1e367ad4cbb31c7021d74">◆ </a></span>register_callback()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void LibSoundmanager::register_callback </td> <td>(</td> <td class="paramtype">void(*)(const std::string &<a class="el" href="structevent.html">event</a>, struct json_object *event_contents) </td> <td class="paramname"><em>event_cb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void(*)(struct json_object *reply_contents) </td> <td class="paramname"><em>reply_cb</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>This function register callback function for reply/event message from sound manager</p> <h4>Parameters</h4> <ul> <li>event_cb [in] : This argument should be specified to the callback for subscribed event</li> <li>reply_cb [in] : This argument should be specified to the reply callback for call function</li> </ul> <h4>Rreturn</h4> <ul> <li>Returns 0 on success or -1 in case of error.</li> </ul> <h4>Note</h4> <p>Event callback is invoked by sound manager for event you subscribed. If you would like to get event, please call subscribe function before/after this function </p> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00119">119</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="abe71d3531e7888f47185a601b284e729"></a> <h2 class="memtitle"><span class="permalink"><a href="#abe71d3531e7888f47185a601b284e729">◆ </a></span>run_eventloop()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int LibSoundmanager::run_eventloop </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function start receiving the reply/event message from sound manager</p> <h4>Parameters</h4> <p>Nothing </p><h4>Rreturn</h4> <ul> <li>Returns thread_id on success or -1 in case of error.</li> </ul> <h4>Note</h4> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00182">182</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="a9cd7c5470cb135f9b1aa56d790c7e91e"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9cd7c5470cb135f9b1aa56d790c7e91e">◆ </a></span>subscribe()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int LibSoundmanager::subscribe </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>event_name</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Register callback function for each event</p> <h4>Parameters</h4> <ul> <li>event_name [in] : This argument should be specified to the event name</li> </ul> <h4>Rreturn</h4> <ul> <li>Returns 0 on success or -1 in case of error.</li> </ul> <h4>Note</h4> <p>This function enables to get an event to your callback function. Regarding the list of event name, please refer to CommandSender API and RountingSender API. </p> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00255">255</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <a id="a21060844aa7efad6473b6104546afb06"></a> <h2 class="memtitle"><span class="permalink"><a href="#a21060844aa7efad6473b6104546afb06">◆ </a></span>unsubscribe()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int LibSoundmanager::unsubscribe </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>event_name</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Unregister callback function for each event</p> <h4>Parameters</h4> <ul> <li>event_name [in] : This argument should be specified to the event name</li> </ul> <h4>Rreturn</h4> <ul> <li>Returns 0 on success or -1 in case of error.</li> </ul> <h4>Note</h4> <p>This function disables to get an event to your callback function. </p> <p class="definition">Definition at line <a class="el" href="libsoundmanager_8cpp_source.html#l00284">284</a> of file <a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li>SoundManagerBinding/include/libsoundmanager/<a class="el" href="libsoundmanager_8hpp_source.html">libsoundmanager.hpp</a></li> <li>SoundManagerBinding/libsoundmanager/<a class="el" href="libsoundmanager_8cpp_source.html">libsoundmanager.cpp</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="class_lib_soundmanager.html">LibSoundmanager</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li> </ul> </div> </body> </html>