Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 2996af6cd7d4ee5653db1697d3e5d4cc > files > 37

liblo-devel-0.26-1.fc14.x86_64.rpm

<!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"/>
<title>liblo: Low-level OSC API</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>Low-level OSC API</h1>  </div>
</div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef long double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga0062385786b0375d4b6954ba1fb8d52b">lo_hires</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type used to represent numerical values in conversions between OSC types.  <a href="#ga0062385786b0375d4b6954ba1fb8d52b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga175a13c6d81adf5c346cdca9bbdcf225">lo_send_message</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> targ, const char *path, <a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> msg)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a lo_message object to target targ.  <a href="#ga175a13c6d81adf5c346cdca9bbdcf225"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga9d1aa7c1ee1ce60fe0cf7e3f1e5a6822">lo_send_message_from</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> targ, <a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> serv, const char *path, <a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> msg)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a lo_message object to target targ from address of serv.  <a href="#ga9d1aa7c1ee1ce60fe0cf7e3f1e5a6822"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gad1138d0f777693ae0321e3da65aee53e">lo_send_bundle</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> targ, <a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a> b)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a lo_bundle object to address targ.  <a href="#gad1138d0f777693ae0321e3da65aee53e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gab5de220b7d6d7c2bf6b0ca4316a54b7a">lo_send_bundle_from</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> targ, <a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> serv, <a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a> b)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a lo_bundle object to address targ from address of serv.  <a href="#gab5de220b7d6d7c2bf6b0ca4316a54b7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga2cce2e97452e3e9d6b5d3af33bb1d153">lo_message_new</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new lo_message object.  <a href="#ga2cce2e97452e3e9d6b5d3af33bb1d153"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga93d3687e77ae20167b82830c917a3e50">lo_message_free</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free memory allocated by <a class="el" href="group__liblolowlevel.html#ga2cce2e97452e3e9d6b5d3af33bb1d153" title="Create a new lo_message object.">lo_message_new()</a> and any subsequent <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149">lo_message_add_int32</a> lo_message_add*() calls.  <a href="#ga93d3687e77ae20167b82830c917a3e50"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga4e7a6d91a06e795ded9676d089abea24">lo_message_add</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, const char *types,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a number of arguments to a message.  <a href="#ga4e7a6d91a06e795ded9676d089abea24"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga9cd98b0c6ad5468692fd0b1936bd093f">lo_message_add_varargs</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, const char *types, va_list ap)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a varargs list to a message.  <a href="#ga9cd98b0c6ad5468692fd0b1936bd093f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149">lo_message_add_int32</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, int32_t a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message.  <a href="#ga7c9df1bd975a32fb6c8105e6fe327149"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga42815097ea691fd1ec0798beca7f8e5e">lo_message_add_float</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, float a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#ga42815097ea691fd1ec0798beca7f8e5e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga4ff414b1b3d87454668dfd728b830888">lo_message_add_string</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, const char *a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#ga4ff414b1b3d87454668dfd728b830888"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gac0ae2fc81d2a48fe63b0803637997fd4">lo_message_add_blob</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, <a class="el" href="lo__types_8h.html#a8e780f8c09e3e4dd737fe249f11d16fc">lo_blob</a> a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#gac0ae2fc81d2a48fe63b0803637997fd4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga282ef81387abab0ce18f7479a4a817b5">lo_message_add_int64</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, int64_t a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#ga282ef81387abab0ce18f7479a4a817b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga03f8eafa4ba598c545f30e17b23d1c89">lo_message_add_timetag</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, <a class="el" href="structlo__timetag.html">lo_timetag</a> a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#ga03f8eafa4ba598c545f30e17b23d1c89"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gadd3a8441ad5a749c43694e77594cf47b">lo_message_add_double</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, double a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#gadd3a8441ad5a749c43694e77594cf47b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga90e4dab46ecaabab4e34214429d622a7">lo_message_add_symbol</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, const char *a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#ga90e4dab46ecaabab4e34214429d622a7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gab2423db077dea59c4049103819d2810b">lo_message_add_char</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, char a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#gab2423db077dea59c4049103819d2810b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaaea6ac25787de608199a988dc214f32e">lo_message_add_midi</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, uint8_t a[4])</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#gaaea6ac25787de608199a988dc214f32e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga9da3df4838126910171a8e45ea34e9ec">lo_message_add_true</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#ga9da3df4838126910171a8e45ea34e9ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga1c8a136e87e3d2befeb466e0a8a5a4ad">lo_message_add_false</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#ga1c8a136e87e3d2befeb466e0a8a5a4ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gabd3cd7f86137ae1a180e33c3bc5c9644">lo_message_add_nil</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#gabd3cd7f86137ae1a180e33c3bc5c9644"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga4cbd7d3834a67446b15f53acf316a72a">lo_message_add_infinitum</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details.  <a href="#ga4cbd7d3834a67446b15f53acf316a72a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga1f4e07e4f8b67edc98f4b300412a3dbb">lo_message_get_source</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the source (lo_address) of an incoming message.  <a href="#ga1f4e07e4f8b67edc98f4b300412a3dbb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structlo__timetag.html">lo_timetag</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga164e068064afa94454eb6515b9b1748d">lo_message_get_timestamp</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the timestamp (<a class="el" href="structlo__timetag.html" title="A structure to store OSC TimeTag values.">lo_timetag</a> *) of a bundled incoming message.  <a href="#ga164e068064afa94454eb6515b9b1748d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gad3c1a312fd90bb4c35a4c1fac2d0b25d">lo_message_get_types</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the message type tag string.  <a href="#gad3c1a312fd90bb4c35a4c1fac2d0b25d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga5b391362eda2c6019011f3db55049db3">lo_message_get_argc</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the message argument count.  <a href="#ga5b391362eda2c6019011f3db55049db3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionlo__arg.html">lo_arg</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gab28b48cdbefb60eb7e57557ae9d23171">lo_message_get_argv</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the message arguments. Do not free the returned data.  <a href="#gab28b48cdbefb60eb7e57557ae9d23171"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga0855039d071b7031727213272857c27e">lo_message_length</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, const char *path)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the length of a message in bytes.  <a href="#ga0855039d071b7031727213272857c27e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga5a14045edea33d63792e9a4c82e13b02">lo_message_serialise</a> (<a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m, const char *path, void *to, size_t *size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialise the lo_message object to an area of memory and return a pointer to the serialised form. Opposite of <a class="el" href="group__liblolowlevel.html#ga2f4644b2a1aae0d0eee456fe93ac158e" title="Deserialise a raw OSC message and return a new lo_message object. Opposite of lo_message_serialise()...">lo_message_deserialise()</a>.  <a href="#ga5a14045edea33d63792e9a4c82e13b02"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga2f4644b2a1aae0d0eee456fe93ac158e">lo_message_deserialise</a> (void *data, size_t size, int *result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deserialise a raw OSC message and return a new lo_message object. Opposite of <a class="el" href="group__liblolowlevel.html#ga5a14045edea33d63792e9a4c82e13b02" title="Serialise the lo_message object to an area of memory and return a pointer to the serialised form...">lo_message_serialise()</a>.  <a href="#ga2f4644b2a1aae0d0eee456fe93ac158e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga9e96445401c94c3751de27f8db1a0b50">lo_server_dispatch_data</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s, void *data, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dispatch a raw block of memory containing an OSC message.  <a href="#ga9e96445401c94c3751de27f8db1a0b50"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga7dbaa4a6dfc9d7369cfbca195809be3c">lo_address_get_hostname</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the hostname of a lo_address object.  <a href="#ga7dbaa4a6dfc9d7369cfbca195809be3c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga75bc15ab78de049c0e0d7e24a0d6d0c1">lo_address_get_port</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the port/service name of a lo_address object.  <a href="#ga75bc15ab78de049c0e0d7e24a0d6d0c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaaae09ebb4cf42e92504fe9aa7e7b2184">lo_address_get_protocol</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the protocol of a lo_address object.  <a href="#gaaae09ebb4cf42e92504fe9aa7e7b2184"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga85d7101e9e3a3339544445b539e3a5d2">lo_address_get_url</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a URL representing an OSC address.  <a href="#ga85d7101e9e3a3339544445b539e3a5d2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gacd72097b92411db148844d89071fd281">lo_address_set_ttl</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> t, int ttl)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the Time-to-Live value for a given target address.  <a href="#gacd72097b92411db148844d89071fd281"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga3652ba694ba3c153dc96917e7321131c">lo_address_get_ttl</a> (<a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> t)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the Time-to-Live value for a given target address.  <a href="#ga3652ba694ba3c153dc96917e7321131c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga330a4a4e6227b185b3ec6219ff3e2859">lo_bundle_new</a> (<a class="el" href="structlo__timetag.html">lo_timetag</a> tt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new bundle object.  <a href="#ga330a4a4e6227b185b3ec6219ff3e2859"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga1cc5e2eb20ce567a694f343764e25bb7">lo_bundle_add_message</a> (<a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a> b, const char *path, <a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> m)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds an OSC message to an existing bundle.  <a href="#ga1cc5e2eb20ce567a694f343764e25bb7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaa105f1c5b97a16beabdb6b4ab7af2b46">lo_bundle_length</a> (<a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a> b)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the length of a bundle in bytes.  <a href="#gaa105f1c5b97a16beabdb6b4ab7af2b46"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaea61bc73c281efe4e2f95456e4d0f9f5">lo_bundle_serialise</a> (<a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a> b, void *to, size_t *size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialise the bundle object to an area of memory and return a pointer to the serialised form.  <a href="#gaea61bc73c281efe4e2f95456e4d0f9f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga2ba37901788d863d08a2b7d6ca4250e6">lo_bundle_free</a> (<a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a> b)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees the memory taken by a bundle object.  <a href="#ga2ba37901788d863d08a2b7d6ca4250e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga2773611a57270837fff398b716fa8459">lo_bundle_free_messages</a> (<a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a> b)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees the memory taken by a bundle object and messages in the bundle.  <a href="#ga2773611a57270837fff398b716fa8459"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gace222e42c35d0256f115e00b84e8f853">lo_is_numerical_type</a> (<a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a> a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the type specified has a numerical value, such as LO_INT32, LO_FLOAT etc.  <a href="#gace222e42c35d0256f115e00b84e8f853"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaeb9f59d9f7bf8d50f21809e44889eee7">lo_is_string_type</a> (<a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a> a)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the type specified has a textual value, such as LO_STRING or LO_SYMBOL.  <a href="#gaeb9f59d9f7bf8d50f21809e44889eee7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaf85d7a54ab80e1b2a3d17c4cfef38402">lo_coerce</a> (<a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a> type_to, <a class="el" href="unionlo__arg.html">lo_arg</a> *to, <a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a> type_from, <a class="el" href="unionlo__arg.html">lo_arg</a> *from)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attempt to convert one OSC type to another.  <a href="#gaf85d7a54ab80e1b2a3d17c4cfef38402"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__liblolowlevel.html#ga0062385786b0375d4b6954ba1fb8d52b">lo_hires</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gafb7036664581480c9f2e898e57704c1b">lo_hires_val</a> (<a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a> type, <a class="el" href="unionlo__arg.html">lo_arg</a> *p)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the numerical value of the given argument with the maximum native system precision.  <a href="#gafb7036664581480c9f2e898e57704c1b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga78cfb23346e44465695293d4393447ae">lo_server_new</a> (const char *port, <a class="el" href="lo__types_8h.html#aa5d2e4aa0ff9d4459fcc76e7ed5839fc">lo_err_handler</a> err_h)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new server instance.  <a href="#ga78cfb23346e44465695293d4393447ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga4afa474b11ed0d4511857ae79c56aaa1">lo_server_new_with_proto</a> (const char *port, int proto, <a class="el" href="lo__types_8h.html#aa5d2e4aa0ff9d4459fcc76e7ed5839fc">lo_err_handler</a> err_h)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new server instance, specifying protocol.  <a href="#ga4afa474b11ed0d4511857ae79c56aaa1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga849f4517a29ad850069cf8f2976a9284">lo_server_new_multicast</a> (const char *group, const char *port, <a class="el" href="lo__types_8h.html#aa5d2e4aa0ff9d4459fcc76e7ed5839fc">lo_err_handler</a> err_h)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new server instance, and join a UDP multicast group.  <a href="#ga849f4517a29ad850069cf8f2976a9284"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gad3dc9193e1eef0d71a4b046242b64216">lo_server_free</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free up memory used by the lo_server object.  <a href="#gad3dc9193e1eef0d71a4b046242b64216"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga33cdcfbab89d58f82175386a76698822">lo_server_wait</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s, int timeout)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for an OSC message to be received.  <a href="#ga33cdcfbab89d58f82175386a76698822"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga784a257252d05cc0e7210f4691f0661b">lo_server_recv_noblock</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s, int timeout)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Look for an OSC message waiting to be received.  <a href="#ga784a257252d05cc0e7210f4691f0661b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaebef3611d24e4b5f60f16cce76a9e271">lo_server_recv</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Block, waiting for an OSC message to be received.  <a href="#gaebef3611d24e4b5f60f16cce76a9e271"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="lo__types_8h.html#a66faedf5da13231d8c0166870477dce5">lo_method</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga0c183cabaac67eb9aad3265ae1efa580">lo_server_add_method</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s, const char *path, const char *typespec, <a class="el" href="lo__types_8h.html#a3b1c86c0925d05e13b5438ce8fe80a6c">lo_method_handler</a> h, void *user_data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add an OSC method to the specifed server.  <a href="#ga0c183cabaac67eb9aad3265ae1efa580"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaf834a6d62de7dcceaede62325e74c763">lo_server_del_method</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s, const char *path, const char *typespec)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete an OSC method from the specifed server.  <a href="#gaf834a6d62de7dcceaede62325e74c763"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gae11ca5a5b4ec2943d5a04642ba5052ae">lo_server_get_socket_fd</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the file descriptor of the server socket.  <a href="#gae11ca5a5b4ec2943d5a04642ba5052ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga532ef6e1b8675b23e65dd19eeb648c1d">lo_server_get_port</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the port number that the server has bound to.  <a href="#ga532ef6e1b8675b23e65dd19eeb648c1d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gab40a599fe8440512b18479dac333e89f">lo_server_get_protocol</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the protocol that the server is using.  <a href="#gab40a599fe8440512b18479dac333e89f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga33df48c641833d330a8ba6704caf4977">lo_server_get_url</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an OSC URL that can be used to contact the server.  <a href="#ga33df48c641833d330a8ba6704caf4977"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga04feb1063c3f4df6fec41405b28dd99a">lo_server_events_pending</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if there are scheduled events (eg. from bundles) waiting to be dispatched by the server.  <a href="#ga04feb1063c3f4df6fec41405b28dd99a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga750076fdd75e2a7d3e442f6bd5968fb9">lo_server_next_event_delay</a> (<a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the time in seconds until the next scheduled event.  <a href="#ga750076fdd75e2a7d3e442f6bd5968fb9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga58266d3085b73fc4dc5e1913de810b22">lo_url_get_protocol</a> (const char *url)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the protocol portion of an OSC URL, eg. udp, tcp.  <a href="#ga58266d3085b73fc4dc5e1913de810b22"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga0550cc91417b530c26a360b10072a3cb">lo_url_get_protocol_id</a> (const char *url)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the protocol ID of an OSC URL.  <a href="#ga0550cc91417b530c26a360b10072a3cb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gab1b7df7061a0b2cd0db31d3fca1b399b">lo_url_get_hostname</a> (const char *url)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the hostname portion of an OSC URL.  <a href="#gab1b7df7061a0b2cd0db31d3fca1b399b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga488fb8e96fb86320590c1a8ca389593d">lo_url_get_port</a> (const char *url)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the port portion of an OSC URL.  <a href="#ga488fb8e96fb86320590c1a8ca389593d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga617d046cc702a2c5ab8539659381ef18">lo_url_get_path</a> (const char *url)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the path portion of an OSC URL.  <a href="#ga617d046cc702a2c5ab8539659381ef18"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gae62aa870bad161e4507f6338820ac243">lo_strsize</a> (const char *s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function to calculate the amount of OSC message space required by a C char *.  <a href="#gae62aa870bad161e4507f6338820ac243"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga2315f71c3832c365bce25d9b21726043">lo_blobsize</a> (<a class="el" href="lo__types_8h.html#a8e780f8c09e3e4dd737fe249f11d16fc">lo_blob</a> b)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function to calculate the amount of OSC message space required by a lo_blob object.  <a href="#ga2315f71c3832c365bce25d9b21726043"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gac26f3d15dbd23f34d4f9e4f6f0b81bbb">lo_pattern_match</a> (const char *str, const char *p)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test a string against an OSC pattern glob.  <a href="#gac26f3d15dbd23f34d4f9e4f6f0b81bbb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga9937fce1bfce695b01cd3289ead8b919">lo_timetag_diff</a> (<a class="el" href="structlo__timetag.html">lo_timetag</a> a, <a class="el" href="structlo__timetag.html">lo_timetag</a> b)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the time difference between two timetags.  <a href="#ga9937fce1bfce695b01cd3289ead8b919"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gad687e21ed611e68748e962502ae63d8e">lo_timetag_now</a> (<a class="el" href="structlo__timetag.html">lo_timetag</a> *t)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a timetag for the current time.  <a href="#gad687e21ed611e68748e962502ae63d8e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gaf793bbd32346a91d7d680d91ae68d1bd">lo_arg_size</a> (<a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a> type, void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the storage size, in bytes, of the given argument.  <a href="#gaf793bbd32346a91d7d680d91ae68d1bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gad38872ce4270bbfed9d62a655a4facab">lo_get_path</a> (void *data, ssize_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a raw OSC message, return the message path.  <a href="#gad38872ce4270bbfed9d62a655a4facab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#ga29fc246595334f29d97d11b0186b17bd">lo_arg_host_endian</a> (<a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a> type, void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert the specified argument to host byte order where necessary.  <a href="#ga29fc246595334f29d97d11b0186b17bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__liblolowlevel.html#gad775da1d9ef1feaf1b76077143dc3e96">lo_arg_network_endian</a> (<a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a> type, void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert the specified argument to network byte order where necessary.  <a href="#gad775da1d9ef1feaf1b76077143dc3e96"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Use these functions if you require more precise control over OSC message contruction or handling that what is provided in the high-level functions described in liblo. </p>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga0062385786b0375d4b6954ba1fb8d52b"></a><!-- doxytag: member="lo_lowlevel.h::lo_hires" ref="ga0062385786b0375d4b6954ba1fb8d52b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef long double <a class="el" href="group__liblolowlevel.html#ga0062385786b0375d4b6954ba1fb8d52b">lo_hires</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Type used to represent numerical values in conversions between OSC types. </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga7dbaa4a6dfc9d7369cfbca195809be3c"></a><!-- doxytag: member="lo_lowlevel.h::lo_address_get_hostname" ref="ga7dbaa4a6dfc9d7369cfbca195809be3c" args="(lo_address a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* lo_address_get_hostname </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>a</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the hostname of a lo_address object. </p>
<p>Returned value must not be modified or free'd. Value will be a dotted quad, colon'd IPV6 address, or resolvable name. </p>

</div>
</div>
<a class="anchor" id="ga75bc15ab78de049c0e0d7e24a0d6d0c1"></a><!-- doxytag: member="lo_lowlevel.h::lo_address_get_port" ref="ga75bc15ab78de049c0e0d7e24a0d6d0c1" args="(lo_address a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* lo_address_get_port </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>a</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the port/service name of a lo_address object. </p>
<p>Returned value must not be modified or free'd. Value will be a service name or ASCII representation of the port number. </p>

</div>
</div>
<a class="anchor" id="gaaae09ebb4cf42e92504fe9aa7e7b2184"></a><!-- doxytag: member="lo_lowlevel.h::lo_address_get_protocol" ref="gaaae09ebb4cf42e92504fe9aa7e7b2184" args="(lo_address a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_address_get_protocol </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>a</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the protocol of a lo_address object. </p>
<p>Returned value will be one of LO_UDP, LO_TCP or LO_UNIX. </p>

</div>
</div>
<a class="anchor" id="ga3652ba694ba3c153dc96917e7321131c"></a><!-- doxytag: member="lo_lowlevel.h::lo_address_get_ttl" ref="ga3652ba694ba3c153dc96917e7321131c" args="(lo_address t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_address_get_ttl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>t</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the Time-to-Live value for a given target address. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>An OSC address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>An integer specifying the scope of a multicast UDP message. </dd></dl>

</div>
</div>
<a class="anchor" id="ga85d7101e9e3a3339544445b539e3a5d2"></a><!-- doxytag: member="lo_lowlevel.h::lo_address_get_url" ref="ga85d7101e9e3a3339544445b539e3a5d2" args="(lo_address a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lo_address_get_url </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>a</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return a URL representing an OSC address. </p>
<p>Returned value must be free'd. </p>

</div>
</div>
<a class="anchor" id="gacd72097b92411db148844d89071fd281"></a><!-- doxytag: member="lo_lowlevel.h::lo_address_set_ttl" ref="gacd72097b92411db148844d89071fd281" args="(lo_address t, int ttl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_address_set_ttl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>ttl</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the Time-to-Live value for a given target address. </p>
<p>This is required for sending multicast UDP messages. A value of 1 (the usual case) keeps the message within the subnet, while 255 means a global, unrestricted scope.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>An OSC address. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ttl</em>&nbsp;</td><td>An integer specifying the scope of a multicast UDP message. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga29fc246595334f29d97d11b0186b17bd"></a><!-- doxytag: member="lo_lowlevel.h::lo_arg_host_endian" ref="ga29fc246595334f29d97d11b0186b17bd" args="(lo_type type, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_arg_host_endian </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert the specified argument to host byte order where necessary. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>The OSC type of the data item (eg. LO_FLOAT). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>A pointer to the data item to be converted. It is changed in-place. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad775da1d9ef1feaf1b76077143dc3e96"></a><!-- doxytag: member="lo_lowlevel.h::lo_arg_network_endian" ref="gad775da1d9ef1feaf1b76077143dc3e96" args="(lo_type type, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_arg_network_endian </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert the specified argument to network byte order where necessary. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>The OSC type of the data item (eg. LO_FLOAT). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>A pointer to the data item to be converted. It is changed in-place. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf793bbd32346a91d7d680d91ae68d1bd"></a><!-- doxytag: member="lo_lowlevel.h::lo_arg_size" ref="gaf793bbd32346a91d7d680d91ae68d1bd" args="(lo_type type, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t lo_arg_size </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the storage size, in bytes, of the given argument. </p>

</div>
</div>
<a class="anchor" id="ga2315f71c3832c365bce25d9b21726043"></a><!-- doxytag: member="lo_lowlevel.h::lo_blobsize" ref="ga2315f71c3832c365bce25d9b21726043" args="(lo_blob b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t lo_blobsize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a8e780f8c09e3e4dd737fe249f11d16fc">lo_blob</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A function to calculate the amount of OSC message space required by a lo_blob object. </p>
<p>Returns the storage size in bytes, which will always be a multiple of four. </p>

</div>
</div>
<a class="anchor" id="ga1cc5e2eb20ce567a694f343764e25bb7"></a><!-- doxytag: member="lo_lowlevel.h::lo_bundle_add_message" ref="ga1cc5e2eb20ce567a694f343764e25bb7" args="(lo_bundle b, const char *path, lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_bundle_add_message </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a>&nbsp;</td>
          <td class="paramname"> <em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds an OSC message to an existing bundle. </p>
<p>The message passed is appended to the list of messages in the bundle to be dispatched to 'path'.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, less than 0 otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="ga2ba37901788d863d08a2b7d6ca4250e6"></a><!-- doxytag: member="lo_lowlevel.h::lo_bundle_free" ref="ga2ba37901788d863d08a2b7d6ca4250e6" args="(lo_bundle b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_bundle_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Frees the memory taken by a bundle object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The bundle to be freed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2773611a57270837fff398b716fa8459"></a><!-- doxytag: member="lo_lowlevel.h::lo_bundle_free_messages" ref="ga2773611a57270837fff398b716fa8459" args="(lo_bundle b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_bundle_free_messages </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Frees the memory taken by a bundle object and messages in the bundle. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The bundle, which may contain messages, to be freed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa105f1c5b97a16beabdb6b4ab7af2b46"></a><!-- doxytag: member="lo_lowlevel.h::lo_bundle_length" ref="gaa105f1c5b97a16beabdb6b4ab7af2b46" args="(lo_bundle b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t lo_bundle_length </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the length of a bundle in bytes. </p>
<p>Includes the marker and typetage length.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The bundle to be sized </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga330a4a4e6227b185b3ec6219ff3e2859"></a><!-- doxytag: member="lo_lowlevel.h::lo_bundle_new" ref="ga330a4a4e6227b185b3ec6219ff3e2859" args="(lo_timetag tt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a> lo_bundle_new </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlo__timetag.html">lo_timetag</a>&nbsp;</td>
          <td class="paramname"> <em>tt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new bundle object. </p>
<p>OSC Bundles encapsulate one or more OSC messages and may include a timestamp indicating when the bundle should be dispatched.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tt</em>&nbsp;</td><td>The timestamp when the bundle should be handled by the receiver. Pass LO_TT_IMMEDIATE if you want the receiving server to dispatch the bundle as soon as it receives it. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaea61bc73c281efe4e2f95456e4d0f9f5"></a><!-- doxytag: member="lo_lowlevel.h::lo_bundle_serialise" ref="gaea61bc73c281efe4e2f95456e4d0f9f5" args="(lo_bundle b, void *to, size_t *size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* lo_bundle_serialise </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a>&nbsp;</td>
          <td class="paramname"> <em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Serialise the bundle object to an area of memory and return a pointer to the serialised form. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The bundle to be serialised </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>The address to serialise to, memory will be allocated if to is NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>If this pointer is non-NULL the size of the memory area will be written here</td></tr>
  </table>
  </dd>
</dl>
<p>The returned form is suitable to be sent over a low level OSC transport, having the correct endianess and bit-packed structure. </p>

</div>
</div>
<a class="anchor" id="gaf85d7a54ab80e1b2a3d17c4cfef38402"></a><!-- doxytag: member="lo_lowlevel.h::lo_coerce" ref="gaf85d7a54ab80e1b2a3d17c4cfef38402" args="(lo_type type_to, lo_arg *to, lo_type type_from, lo_arg *from)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_coerce </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a>&nbsp;</td>
          <td class="paramname"> <em>type_to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionlo__arg.html">lo_arg</a> *&nbsp;</td>
          <td class="paramname"> <em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a>&nbsp;</td>
          <td class="paramname"> <em>type_from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionlo__arg.html">lo_arg</a> *&nbsp;</td>
          <td class="paramname"> <em>from</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Attempt to convert one OSC type to another. </p>
<p>Numerical types (eg LO_INT32, LO_FLOAT etc.) may be converted to other numerical types and string types (LO_STRING and LO_SYMBOL) may be converted to the other type. This is done automatically if a received message matches the path, but not the exact types, and is coercible (ie. all numerical types in numerical positions).</p>
<p>On failure no translation occurs and false is returned.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type_to</em>&nbsp;</td><td>The type of the destination variable. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>A pointer to the destination variable. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_from</em>&nbsp;</td><td>The type of the source variable. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td>A pointer to the source variable. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad38872ce4270bbfed9d62a655a4facab"></a><!-- doxytag: member="lo_lowlevel.h::lo_get_path" ref="gad38872ce4270bbfed9d62a655a4facab" args="(void *data, ssize_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lo_get_path </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssize_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Given a raw OSC message, return the message path. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>A pointer to the raw OSC message data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size of data in bytes (total buffer bytes).</td></tr>
  </table>
  </dd>
</dl>
<p>Returns the message path or NULL if an error occurs. Do not free() the returned pointer. </p>

</div>
</div>
<a class="anchor" id="gafb7036664581480c9f2e898e57704c1b"></a><!-- doxytag: member="lo_lowlevel.h::lo_hires_val" ref="gafb7036664581480c9f2e898e57704c1b" args="(lo_type type, lo_arg *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__liblolowlevel.html#ga0062385786b0375d4b6954ba1fb8d52b">lo_hires</a> lo_hires_val </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionlo__arg.html">lo_arg</a> *&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the numerical value of the given argument with the maximum native system precision. </p>

</div>
</div>
<a class="anchor" id="gace222e42c35d0256f115e00b84e8f853"></a><!-- doxytag: member="lo_lowlevel.h::lo_is_numerical_type" ref="gace222e42c35d0256f115e00b84e8f853" args="(lo_type a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_is_numerical_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a>&nbsp;</td>
          <td class="paramname"> <em>a</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if the type specified has a numerical value, such as LO_INT32, LO_FLOAT etc. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The type to be tested. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaeb9f59d9f7bf8d50f21809e44889eee7"></a><!-- doxytag: member="lo_lowlevel.h::lo_is_string_type" ref="gaeb9f59d9f7bf8d50f21809e44889eee7" args="(lo_type a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_is_string_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__liblo.html#ga11838c576b0197c255ce805fd7434736">lo_type</a>&nbsp;</td>
          <td class="paramname"> <em>a</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if the type specified has a textual value, such as LO_STRING or LO_SYMBOL. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The type to be tested. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga4e7a6d91a06e795ded9676d089abea24"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add" ref="ga4e7a6d91a06e795ded9676d089abea24" args="(lo_message m, const char *types,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>types</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a number of arguments to a message. </p>
<p>The data will be added in OSC byteorder (bigendian).</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>The message to be extended. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>types</em>&nbsp;</td><td>The types of the data items in the message, types are defined in lo_types_common.h </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="gac0ae2fc81d2a48fe63b0803637997fd4"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_blob" ref="gac0ae2fc81d2a48fe63b0803637997fd4" args="(lo_message m, lo_blob a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_blob </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a8e780f8c09e3e4dd737fe249f11d16fc">lo_blob</a>&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="gab2423db077dea59c4049103819d2810b"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_char" ref="gab2423db077dea59c4049103819d2810b" args="(lo_message m, char a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_char </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="gadd3a8441ad5a749c43694e77594cf47b"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_double" ref="gadd3a8441ad5a749c43694e77594cf47b" args="(lo_message m, double a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_double </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga1c8a136e87e3d2befeb466e0a8a5a4ad"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_false" ref="ga1c8a136e87e3d2befeb466e0a8a5a4ad" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_false </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga42815097ea691fd1ec0798beca7f8e5e"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_float" ref="ga42815097ea691fd1ec0798beca7f8e5e" args="(lo_message m, float a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_float </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga4cbd7d3834a67446b15f53acf316a72a"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_infinitum" ref="ga4cbd7d3834a67446b15f53acf316a72a" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_infinitum </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7c9df1bd975a32fb6c8105e6fe327149"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_int32" ref="ga7c9df1bd975a32fb6c8105e6fe327149" args="(lo_message m, int32_t a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_int32 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. </p>
<p>The data will be added in OSC byteorder (bigendian).</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>The message to be extended. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The data item.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga282ef81387abab0ce18f7479a4a817b5"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_int64" ref="ga282ef81387abab0ce18f7479a4a817b5" args="(lo_message m, int64_t a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_int64 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="gaaea6ac25787de608199a988dc214f32e"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_midi" ref="gaaea6ac25787de608199a988dc214f32e" args="(lo_message m, uint8_t a[4])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_midi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>a</em>[4]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="gabd3cd7f86137ae1a180e33c3bc5c9644"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_nil" ref="gabd3cd7f86137ae1a180e33c3bc5c9644" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_nil </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga4ff414b1b3d87454668dfd728b830888"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_string" ref="ga4ff414b1b3d87454668dfd728b830888" args="(lo_message m, const char *a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga90e4dab46ecaabab4e34214429d622a7"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_symbol" ref="ga90e4dab46ecaabab4e34214429d622a7" args="(lo_message m, const char *a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_symbol </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga03f8eafa4ba598c545f30e17b23d1c89"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_timetag" ref="ga03f8eafa4ba598c545f30e17b23d1c89" args="(lo_message m, lo_timetag a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_timetag </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structlo__timetag.html">lo_timetag</a>&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga9da3df4838126910171a8e45ea34e9ec"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_true" ref="ga9da3df4838126910171a8e45ea34e9ec" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_true </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a data item and typechar of the specified type to a message. See <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149" title="Append a data item and typechar of the specified type to a message.">lo_message_add_int32()</a> for details. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga9cd98b0c6ad5468692fd0b1936bd093f"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_add_varargs" ref="ga9cd98b0c6ad5468692fd0b1936bd093f" args="(lo_message m, const char *types, va_list ap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_add_varargs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>types</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&nbsp;</td>
          <td class="paramname"> <em>ap</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a varargs list to a message. </p>
<p>The data will be added in OSC byteorder (bigendian). IMPORTANT: args list must be terminated with LO_ARGS_END, or this call will fail. This is used to do simple error checking on the sizes of parameters passed.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>The message to be extended. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>types</em>&nbsp;</td><td>The types of the data items in the message, types are defined in lo_types_common.h </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ap</em>&nbsp;</td><td>The va_list created by a C function declared with an ellipsis (...) argument, and pre-initialised with "va_start(ap)". The types of the arguments passed here must agree with the types specified in the type parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Less than 0 on failure, 0 on success. </dd></dl>

</div>
</div>
<a class="anchor" id="ga2f4644b2a1aae0d0eee456fe93ac158e"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_deserialise" ref="ga2f4644b2a1aae0d0eee456fe93ac158e" args="(void *data, size_t size, int *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> lo_message_deserialise </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Deserialise a raw OSC message and return a new lo_message object. Opposite of <a class="el" href="group__liblolowlevel.html#ga5a14045edea33d63792e9a4c82e13b02" title="Serialise the lo_message object to an area of memory and return a pointer to the serialised form...">lo_message_serialise()</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Pointer to the raw OSC message data in network transmission form (network byte order where appropriate). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size of data in bytes </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>If this pointer is non-NULL, the result or error code will be written here.</td></tr>
  </table>
  </dd>
</dl>
<p>Returns a new lo_message, or NULL if deserialisation fails. Use <a class="el" href="group__liblolowlevel.html#ga93d3687e77ae20167b82830c917a3e50" title="Free memory allocated by lo_message_new() and any subsequent lo_message_add_int32 lo_message_add*() c...">lo_message_free()</a> to free the resulting object. </p>

</div>
</div>
<a class="anchor" id="ga93d3687e77ae20167b82830c917a3e50"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_free" ref="ga93d3687e77ae20167b82830c917a3e50" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_message_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free memory allocated by <a class="el" href="group__liblolowlevel.html#ga2cce2e97452e3e9d6b5d3af33bb1d153" title="Create a new lo_message object.">lo_message_new()</a> and any subsequent <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149">lo_message_add_int32</a> lo_message_add*() calls. </p>

</div>
</div>
<a class="anchor" id="ga5b391362eda2c6019011f3db55049db3"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_get_argc" ref="ga5b391362eda2c6019011f3db55049db3" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_message_get_argc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the message argument count. </p>
<p>The result is valid until further data is added with lo_message_add*(). </p>

</div>
</div>
<a class="anchor" id="gab28b48cdbefb60eb7e57557ae9d23171"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_get_argv" ref="gab28b48cdbefb60eb7e57557ae9d23171" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unionlo__arg.html">lo_arg</a>** lo_message_get_argv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the message arguments. Do not free the returned data. </p>
<p>The result is valid until further data is added with lo_message_add*(). </p>

</div>
</div>
<a class="anchor" id="ga1f4e07e4f8b67edc98f4b300412a3dbb"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_get_source" ref="ga1f4e07e4f8b67edc98f4b300412a3dbb" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a> lo_message_get_source </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the source (lo_address) of an incoming message. </p>
<p>Returns NULL if the message is outgoing. Do not free the returned address. </p>

</div>
</div>
<a class="anchor" id="ga164e068064afa94454eb6515b9b1748d"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_get_timestamp" ref="ga164e068064afa94454eb6515b9b1748d" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structlo__timetag.html">lo_timetag</a> lo_message_get_timestamp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the timestamp (<a class="el" href="structlo__timetag.html" title="A structure to store OSC TimeTag values.">lo_timetag</a> *) of a bundled incoming message. </p>
<p>Returns LO_TT_IMMEDIATE if the message is outgoing, or did not arrive contained in a bundle. Do not free the returned timetag. </p>

</div>
</div>
<a class="anchor" id="gad3c1a312fd90bb4c35a4c1fac2d0b25d"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_get_types" ref="gad3c1a312fd90bb4c35a4c1fac2d0b25d" args="(lo_message m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lo_message_get_types </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the message type tag string. </p>
<p>The result is valid until further data is added with lo_message_add*(). </p>

</div>
</div>
<a class="anchor" id="ga0855039d071b7031727213272857c27e"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_length" ref="ga0855039d071b7031727213272857c27e" args="(lo_message m, const char *path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t lo_message_length </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the length of a message in bytes. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>The message to be sized </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>The path the message will be sent to </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2cce2e97452e3e9d6b5d3af33bb1d153"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_new" ref="ga2cce2e97452e3e9d6b5d3af33bb1d153" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a> lo_message_new </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new lo_message object. </p>

</div>
</div>
<a class="anchor" id="ga5a14045edea33d63792e9a4c82e13b02"></a><!-- doxytag: member="lo_lowlevel.h::lo_message_serialise" ref="ga5a14045edea33d63792e9a4c82e13b02" args="(lo_message m, const char *path, void *to, size_t *size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* lo_message_serialise </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Serialise the lo_message object to an area of memory and return a pointer to the serialised form. Opposite of <a class="el" href="group__liblolowlevel.html#ga2f4644b2a1aae0d0eee456fe93ac158e" title="Deserialise a raw OSC message and return a new lo_message object. Opposite of lo_message_serialise()...">lo_message_deserialise()</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>The message to be serialised </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>The path the message will be sent to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>The address to serialise to, memory will be allocated if to is NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>If this pointer is non-NULL the size of the memory area will be written here</td></tr>
  </table>
  </dd>
</dl>
<p>The returned form is suitable to be sent over a low level OSC transport, having the correct endianess and bit-packed structure. </p>

</div>
</div>
<a class="anchor" id="gac26f3d15dbd23f34d4f9e4f6f0b81bbb"></a><!-- doxytag: member="lo_lowlevel.h::lo_pattern_match" ref="gac26f3d15dbd23f34d4f9e4f6f0b81bbb" args="(const char *str, const char *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_pattern_match </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test a string against an OSC pattern glob. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>The string to test </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pattern to test against </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad1138d0f777693ae0321e3da65aee53e"></a><!-- doxytag: member="lo_lowlevel.h::lo_send_bundle" ref="gad1138d0f777693ae0321e3da65aee53e" args="(lo_address targ, lo_bundle b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_send_bundle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>targ</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a lo_bundle object to address targ. </p>
<p>Bundles are constructed with the <a class="el" href="group__liblolowlevel.html#ga330a4a4e6227b185b3ec6219ff3e2859" title="Create a new bundle object.">lo_bundle_new()</a> and <a class="el" href="group__liblolowlevel.html#ga1cc5e2eb20ce567a694f343764e25bb7" title="Adds an OSC message to an existing bundle.">lo_bundle_add_message()</a> functions. </p>

</div>
</div>
<a class="anchor" id="gab5de220b7d6d7c2bf6b0ca4316a54b7a"></a><!-- doxytag: member="lo_lowlevel.h::lo_send_bundle_from" ref="gab5de220b7d6d7c2bf6b0ca4316a54b7a" args="(lo_address targ, lo_server serv, lo_bundle b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_send_bundle_from </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>targ</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>serv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a96254950ad34e9cfbf8a6613fc74025b">lo_bundle</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a lo_bundle object to address targ from address of serv. </p>
<p>Bundles are constructed with the <a class="el" href="group__liblolowlevel.html#ga330a4a4e6227b185b3ec6219ff3e2859" title="Create a new bundle object.">lo_bundle_new()</a> and <a class="el" href="group__liblolowlevel.html#ga1cc5e2eb20ce567a694f343764e25bb7" title="Adds an OSC message to an existing bundle.">lo_bundle_add_message()</a> functions.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>targ</em>&nbsp;</td><td>The address to send the bundle to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>serv</em>&nbsp;</td><td>The server socket to send the bundle from (can be NULL to use new socket) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The bundle itself </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga175a13c6d81adf5c346cdca9bbdcf225"></a><!-- doxytag: member="lo_lowlevel.h::lo_send_message" ref="ga175a13c6d81adf5c346cdca9bbdcf225" args="(lo_address targ, const char *path, lo_message msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_send_message </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>targ</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>msg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a lo_message object to target targ. </p>
<p>This is slightly more efficient than <a class="el" href="group__liblo.html#gafa4253874f97c2c16254ac57d2b7c987" title="Send a OSC formatted message to the address specified.">lo_send()</a> if you want to send a lot of similar messages. The messages are constructed with the <a class="el" href="group__liblolowlevel.html#ga2cce2e97452e3e9d6b5d3af33bb1d153" title="Create a new lo_message object.">lo_message_new()</a> and <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149">lo_message_add*()</a> functions. </p>

</div>
</div>
<a class="anchor" id="ga9d1aa7c1ee1ce60fe0cf7e3f1e5a6822"></a><!-- doxytag: member="lo_lowlevel.h::lo_send_message_from" ref="ga9d1aa7c1ee1ce60fe0cf7e3f1e5a6822" args="(lo_address targ, lo_server serv, const char *path, lo_message msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_send_message_from </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#abf9b53223467de596b89e1377b0f3f3d">lo_address</a>&nbsp;</td>
          <td class="paramname"> <em>targ</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>serv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#ad126083c98d941f00eb72d1690b38d63">lo_message</a>&nbsp;</td>
          <td class="paramname"> <em>msg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a lo_message object to target targ from address of serv. </p>
<p>This is slightly more efficient than <a class="el" href="group__liblo.html#gafa4253874f97c2c16254ac57d2b7c987" title="Send a OSC formatted message to the address specified.">lo_send()</a> if you want to send a lot of similar messages. The messages are constructed with the <a class="el" href="group__liblolowlevel.html#ga2cce2e97452e3e9d6b5d3af33bb1d153" title="Create a new lo_message object.">lo_message_new()</a> and <a class="el" href="group__liblolowlevel.html#ga7c9df1bd975a32fb6c8105e6fe327149">lo_message_add*()</a> functions.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>targ</em>&nbsp;</td><td>The address to send the message to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>serv</em>&nbsp;</td><td>The server socket to send the message from (can be NULL to use new socket) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>The path to send the message to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>The bundle itself </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0c183cabaac67eb9aad3265ae1efa580"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_add_method" ref="ga0c183cabaac67eb9aad3265ae1efa580" args="(lo_server s, const char *path, const char *typespec, lo_method_handler h, void *user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lo__types_8h.html#a66faedf5da13231d8c0166870477dce5">lo_method</a> lo_server_add_method </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>typespec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a3b1c86c0925d05e13b5438ce8fe80a6c">lo_method_handler</a>&nbsp;</td>
          <td class="paramname"> <em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add an OSC method to the specifed server. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>The server the method is to be added to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>The OSC path to register the method to. If NULL is passed the method will match all paths. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>typespec</em>&nbsp;</td><td>The typespec the method accepts. Incoming messages with similar typespecs (e.g. ones with numerical types in the same position) will be coerced to the typespec given here. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>The method handler callback function that will be called if a matching message is received </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>A value that will be passed to the callback function, h, when its invoked matching from this method. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf834a6d62de7dcceaede62325e74c763"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_del_method" ref="gaf834a6d62de7dcceaede62325e74c763" args="(lo_server s, const char *path, const char *typespec)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_server_del_method </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>typespec</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete an OSC method from the specifed server. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>The server the method is to be removed from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>The OSC path of the method to delete. If NULL is passed the method will match the generic handler. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>typespec</em>&nbsp;</td><td>The typespec the method accepts. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9e96445401c94c3751de27f8db1a0b50"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_dispatch_data" ref="ga9e96445401c94c3751de27f8db1a0b50" args="(lo_server s, void *data, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_server_dispatch_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dispatch a raw block of memory containing an OSC message. </p>
<p>This is useful when a raw block of memory is available that is structured as OSC, and you wish to use liblo to dispatch the message to a handler function as if it had been received over the network.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>The lo_server to use for dispatching. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Pointer to the raw OSC message data in network transmission form (network byte order where appropriate). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size of data in bytes</td></tr>
  </table>
  </dd>
</dl>
<p>Returns the number of bytes used if successful, or less than 0 otherwise. </p>

</div>
</div>
<a class="anchor" id="ga04feb1063c3f4df6fec41405b28dd99a"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_events_pending" ref="ga04feb1063c3f4df6fec41405b28dd99a" args="(lo_server s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_server_events_pending </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if there are scheduled events (eg. from bundles) waiting to be dispatched by the server. </p>

</div>
</div>
<a class="anchor" id="gad3dc9193e1eef0d71a4b046242b64216"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_free" ref="gad3dc9193e1eef0d71a4b046242b64216" args="(lo_server s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_server_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free up memory used by the lo_server object. </p>

</div>
</div>
<a class="anchor" id="ga532ef6e1b8675b23e65dd19eeb648c1d"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_get_port" ref="ga532ef6e1b8675b23e65dd19eeb648c1d" args="(lo_server s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_server_get_port </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the port number that the server has bound to. </p>
<p>Useful when NULL is passed for the port number and you wish to know how to address the server. </p>

</div>
</div>
<a class="anchor" id="gab40a599fe8440512b18479dac333e89f"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_get_protocol" ref="gab40a599fe8440512b18479dac333e89f" args="(lo_server s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_server_get_protocol </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the protocol that the server is using. </p>
<p>Returned value will be one of LO_UDP, LO_TCP or LO_UNIX. </p>

</div>
</div>
<a class="anchor" id="gae11ca5a5b4ec2943d5a04642ba5052ae"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_get_socket_fd" ref="gae11ca5a5b4ec2943d5a04642ba5052ae" args="(lo_server s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_server_get_socket_fd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the file descriptor of the server socket. </p>
<p>If the server protocol supports exposing the server's underlying receive mechanism for monitoring with select() or poll(), this function returns the file descriptor needed, otherwise, it returns -1.</p>
<p>WARNING: when using this function beware that not all OSC packets that are received are dispatched immediately. <a class="el" href="group__liblolowlevel.html#ga04feb1063c3f4df6fec41405b28dd99a" title="Return true if there are scheduled events (eg. from bundles) waiting to be dispatched by the server...">lo_server_events_pending()</a> and <a class="el" href="group__liblolowlevel.html#ga750076fdd75e2a7d3e442f6bd5968fb9" title="Return the time in seconds until the next scheduled event.">lo_server_next_event_delay()</a> can be used to tell if there are pending events and how long before you should attempt to receive them. </p>

</div>
</div>
<a class="anchor" id="ga33df48c641833d330a8ba6704caf4977"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_get_url" ref="ga33df48c641833d330a8ba6704caf4977" args="(lo_server s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lo_server_get_url </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return an OSC URL that can be used to contact the server. </p>
<p>The return value should be free()'d when it is no longer needed. </p>

</div>
</div>
<a class="anchor" id="ga78cfb23346e44465695293d4393447ae"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_new" ref="ga78cfb23346e44465695293d4393447ae" args="(const char *port, lo_err_handler err_h)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> lo_server_new </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#aa5d2e4aa0ff9d4459fcc76e7ed5839fc">lo_err_handler</a>&nbsp;</td>
          <td class="paramname"> <em>err_h</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new server instance. </p>
<p>Using <a class="el" href="group__liblolowlevel.html#gaebef3611d24e4b5f60f16cce76a9e271" title="Block, waiting for an OSC message to be received.">lo_server_recv()</a>, lo_servers block until they receive OSC messages. If you want non-blocking behaviour see <a class="el" href="group__liblolowlevel.html#ga784a257252d05cc0e7210f4691f0661b" title="Look for an OSC message waiting to be received.">lo_server_recv_noblock()</a> or the <a class="el" href="group__liblo.html#gabe3e0c31189adfd7624de6c507b610ba">lo_server_thread_*</a> functions.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>If NULL is passed then an unused UDP port will be chosen by the system, its number may be retrieved with <a class="el" href="group__liblo.html#ga22f4b18eeac41490647ab9fe2333f933" title="Return the port number that the server thread has bound to.">lo_server_thread_get_port()</a> so it can be passed to clients. Otherwise a decimal port number, service name or UNIX domain socket path may be passed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>err_h</em>&nbsp;</td><td>An error callback function that will be called if there is an error in messge reception or server creation. Pass NULL if you do not want error handling. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga849f4517a29ad850069cf8f2976a9284"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_new_multicast" ref="ga849f4517a29ad850069cf8f2976a9284" args="(const char *group, const char *port, lo_err_handler err_h)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> lo_server_new_multicast </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#aa5d2e4aa0ff9d4459fcc76e7ed5839fc">lo_err_handler</a>&nbsp;</td>
          <td class="paramname"> <em>err_h</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new server instance, and join a UDP multicast group. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>group</em>&nbsp;</td><td>The multicast group to join. See documentation on IP multicast for the acceptable address range; e.g., <a href="http://tldp.org/HOWTO/Multicast-HOWTO-2.html">http://tldp.org/HOWTO/Multicast-HOWTO-2.html</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>If using UDP then NULL may be passed to find an unused port. Otherwise a decimal port number or service name or may be passed. If using UNIX domain sockets then a socket path should be passed here. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>err_h</em>&nbsp;</td><td>An error callback function that will be called if there is an error in messge reception or server creation. Pass NULL if you do not want error handling. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga4afa474b11ed0d4511857ae79c56aaa1"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_new_with_proto" ref="ga4afa474b11ed0d4511857ae79c56aaa1" args="(const char *port, int proto, lo_err_handler err_h)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a> lo_server_new_with_proto </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>proto</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#aa5d2e4aa0ff9d4459fcc76e7ed5839fc">lo_err_handler</a>&nbsp;</td>
          <td class="paramname"> <em>err_h</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new server instance, specifying protocol. </p>
<p>Using <a class="el" href="group__liblolowlevel.html#gaebef3611d24e4b5f60f16cce76a9e271" title="Block, waiting for an OSC message to be received.">lo_server_recv()</a>, lo_servers block until they receive OSC messages. If you want non-blocking behaviour see <a class="el" href="group__liblolowlevel.html#ga784a257252d05cc0e7210f4691f0661b" title="Look for an OSC message waiting to be received.">lo_server_recv_noblock()</a> or the <a class="el" href="group__liblo.html#gabe3e0c31189adfd7624de6c507b610ba">lo_server_thread_*</a> functions.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>If using UDP then NULL may be passed to find an unused port. Otherwise a decimal port number orservice name or may be passed. If using UNIX domain sockets then a socket path should be passed here. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>proto</em>&nbsp;</td><td>The protocol to use, should be one of LO_UDP, LO_TCP or LO_UNIX. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>err_h</em>&nbsp;</td><td>An error callback function that will be called if there is an error in messge reception or server creation. Pass NULL if you do not want error handling. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga750076fdd75e2a7d3e442f6bd5968fb9"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_next_event_delay" ref="ga750076fdd75e2a7d3e442f6bd5968fb9" args="(lo_server s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double lo_server_next_event_delay </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the time in seconds until the next scheduled event. </p>
<p>If the delay is greater than 100 seconds then it will return 100.0. </p>

</div>
</div>
<a class="anchor" id="gaebef3611d24e4b5f60f16cce76a9e271"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_recv" ref="gaebef3611d24e4b5f60f16cce76a9e271" args="(lo_server s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_server_recv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Block, waiting for an OSC message to be received. </p>
<p>The return value is the number of bytes in the received message. The message will be dispatched to a matching method if one is found. </p>

</div>
</div>
<a class="anchor" id="ga784a257252d05cc0e7210f4691f0661b"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_recv_noblock" ref="ga784a257252d05cc0e7210f4691f0661b" args="(lo_server s, int timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_server_recv_noblock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Look for an OSC message waiting to be received. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>The server to wait for connections on. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>timeout</em>&nbsp;</td><td>A timeout in milliseconds to wait for the incoming packet. a value of 0 will return immediately.</td></tr>
  </table>
  </dd>
</dl>
<p>The return value is the number of bytes in the received message or 0 if there is no message. The message will be dispatched to a matching method if one is found. </p>

</div>
</div>
<a class="anchor" id="ga33cdcfbab89d58f82175386a76698822"></a><!-- doxytag: member="lo_lowlevel.h::lo_server_wait" ref="ga33cdcfbab89d58f82175386a76698822" args="(lo_server s, int timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_server_wait </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="lo__types_8h.html#a59067bf50cf8abb4371da6f03c9036c9">lo_server</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Wait for an OSC message to be received. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>The server to wait for connections on. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>timeout</em>&nbsp;</td><td>A timeout in milliseconds to wait for the incoming packet. a value of 0 will return immediately.</td></tr>
  </table>
  </dd>
</dl>
<p>The return value is 1 if there is a message waiting or 0 if there is no message. If there is a message waiting you can now call <a class="el" href="group__liblolowlevel.html#gaebef3611d24e4b5f60f16cce76a9e271" title="Block, waiting for an OSC message to be received.">lo_server_recv()</a> to receive that message. </p>

</div>
</div>
<a class="anchor" id="gae62aa870bad161e4507f6338820ac243"></a><!-- doxytag: member="lo_lowlevel.h::lo_strsize" ref="gae62aa870bad161e4507f6338820ac243" args="(const char *s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_strsize </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A function to calculate the amount of OSC message space required by a C char *. </p>
<p>Returns the storage size in bytes, which will always be a multiple of four. </p>

</div>
</div>
<a class="anchor" id="ga9937fce1bfce695b01cd3289ead8b919"></a><!-- doxytag: member="lo_lowlevel.h::lo_timetag_diff" ref="ga9937fce1bfce695b01cd3289ead8b919" args="(lo_timetag a, lo_timetag b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double lo_timetag_diff </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlo__timetag.html">lo_timetag</a>&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structlo__timetag.html">lo_timetag</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find the time difference between two timetags. </p>
<p>Returns a - b in seconds. </p>

</div>
</div>
<a class="anchor" id="gad687e21ed611e68748e962502ae63d8e"></a><!-- doxytag: member="lo_lowlevel.h::lo_timetag_now" ref="gad687e21ed611e68748e962502ae63d8e" args="(lo_timetag *t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lo_timetag_now </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlo__timetag.html">lo_timetag</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return a timetag for the current time. </p>
<p>On exit the timetag pointed to by t is filled with the OSC representation of this instant in time. </p>

</div>
</div>
<a class="anchor" id="gab1b7df7061a0b2cd0db31d3fca1b399b"></a><!-- doxytag: member="lo_lowlevel.h::lo_url_get_hostname" ref="gab1b7df7061a0b2cd0db31d3fca1b399b" args="(const char *url)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lo_url_get_hostname </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>url</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the hostname portion of an OSC URL. </p>
<p>The return value should be free()'d when it is no longer needed. </p>

</div>
</div>
<a class="anchor" id="ga617d046cc702a2c5ab8539659381ef18"></a><!-- doxytag: member="lo_lowlevel.h::lo_url_get_path" ref="ga617d046cc702a2c5ab8539659381ef18" args="(const char *url)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lo_url_get_path </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>url</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the path portion of an OSC URL. </p>
<p>The return value should be free()'d when it is no longer needed. </p>

</div>
</div>
<a class="anchor" id="ga488fb8e96fb86320590c1a8ca389593d"></a><!-- doxytag: member="lo_lowlevel.h::lo_url_get_port" ref="ga488fb8e96fb86320590c1a8ca389593d" args="(const char *url)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lo_url_get_port </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>url</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the port portion of an OSC URL. </p>
<p>The return value should be free()'d when it is no longer needed. </p>

</div>
</div>
<a class="anchor" id="ga58266d3085b73fc4dc5e1913de810b22"></a><!-- doxytag: member="lo_lowlevel.h::lo_url_get_protocol" ref="ga58266d3085b73fc4dc5e1913de810b22" args="(const char *url)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lo_url_get_protocol </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>url</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the protocol portion of an OSC URL, eg. udp, tcp. </p>
<p>This library uses OSC URLs of the form: osc.prot://hostname:port/path if the prot part is missing, UDP is assumed.</p>
<p>The return value should be free()'d when it is no longer needed. </p>

</div>
</div>
<a class="anchor" id="ga0550cc91417b530c26a360b10072a3cb"></a><!-- doxytag: member="lo_lowlevel.h::lo_url_get_protocol_id" ref="ga0550cc91417b530c26a360b10072a3cb" args="(const char *url)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lo_url_get_protocol_id </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>url</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the protocol ID of an OSC URL. </p>
<p>This library uses OSC URLs of the form: osc.prot://hostname:port/path if the prot part is missing, UDP is assumed. Returned value will be one of LO_UDP, LO_TCP, LO_UNIX or -1.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>An integer specifying the protocol. Return -1 when the protocol is not supported by liblo. </dd></dl>

</div>
</div>
</div>
<hr size="1"><address style="text-align: right;"><small>
Generated for liblo by <a href="http://www.doxygen.org/
index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a>
1.7.1</small></address>
</body>
</html>