# lo_lowlevel.h File Reference

## Typedefs
typedef long double | lo_hires
| Type used to represent numerical values in conversions between OSC types.
## Functions
int | lo_send_message (lo_address targ, const char *path, lo_message msg)
| send a lo_message object to target targ
int | lo_send_message_from (lo_address targ, lo_server serv, const char *path, lo_message msg)
| send a lo_message object to target targ from address of serv
int | lo_send_bundle (lo_address targ, lo_bundle b)
| send a lo_bundle object to address targ
int | lo_send_bundle_from (lo_address targ, lo_server serv, lo_bundle b)
| send a lo_bundle object to address targ from address of serv
lo_message | lo_message_new ()
| Create a new lo_message object.
void | lo_message_free (lo_message m)
| Free memory allocated by lo_message_new and any subsequent lo_message_add*() calls.
void | lo_message_add_int32 (lo_message m, int32_t a)
| Append a data item and typechar of the specified type to a message.
void | lo_message_add_float (lo_message m, float a)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_string (lo_message m, const char *a)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_blob (lo_message m, lo_blob a)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_int64 (lo_message m, int64_t a)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_timetag (lo_message m, lo_timetag a)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_double (lo_message m, double a)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_symbol (lo_message m, const char *a)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_char (lo_message m, char a)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_midi (lo_message m, uint8_t a[4])
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_true (lo_message m)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_false (lo_message m)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_nil (lo_message m)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
void | lo_message_add_infinitum (lo_message m)
| Append a data item and typechar of the specified type to a message. See lo_message_add_int32() for details.
lo_address | lo_message_get_source (lo_message m)
| Returns the source (lo_address) of an incoming message.
size_t | lo_message_length (lo_message m, const char *path)
| Return the length of a message in bytes.
void * | lo_message_serialise (lo_message m, const char *path, void *to, size_t *size)
| Serialise the message object to an area of memory and return a pointer to the serialised form.
const char * | lo_address_get_hostname (lo_address a)
| Return the hostname of a lo_address object.
const char * | lo_address_get_port (lo_address a)
| Return the port/service name of a lo_address object.
int | lo_address_get_protocol (lo_address a)
| Return the protocol of a lo_address object.
char * | lo_address_get_url (lo_address a)
| Return a URL representing an OSC address.
lo_bundle | lo_bundle_new (lo_timetag tt)
| Create a new bundle object.
void | lo_bundle_add_message (lo_bundle b, const char *path, lo_message m)
| Adds an OSC message to an existing bundle.
size_t | lo_bundle_length (lo_bundle b)
| Return the length of a bundle in bytes.
void * | lo_bundle_serialise (lo_bundle b, void *to, size_t *size)
| Serialise the bundle object to an area of memory and return a pointer to the serialised form.
void | lo_bundle_free (lo_bundle b)
| Frees the memory taken by a bundle object.
int | lo_is_numerical_type (lo_type a)
| return true if the type specified has a numerical value, such as LO_INT32, LO_FLOAT etc.
int | lo_is_string_type (lo_type a)
| return true if the type specified has a textual value, such as LO_STRING or LO_SYMBOL.
int | lo_coerce (lo_type type_to, lo_arg *to, lo_type type_from, lo_arg *from)
| attempt to convert one OSC type to another.
lo_hires | lo_hires_val (lo_type type, lo_arg *p)
| return the numerical value of the given argument with the maximum native system precision.
size_t | lo_arg_size (lo_type type, void *data)
| Return the storage size, in bytes, of the given argument.
void | lo_arg_host_endian (lo_type type, void *data)
| Convert the speficed argument to host endianness where neccesary.
lo_server | lo_server_new (const char *port, lo_err_handler err_h)
| Create a new server instance.
lo_server | lo_server_new_with_proto (const char *port, int proto, lo_err_handler err_h)
| Create a new server instance, specifying protocol.
void | lo_server_free (lo_server s)
| Free up memory used by the lo_server object.
int | lo_server_recv_noblock (lo_server s, int timeout)
| Look for an OSC message waiting to be received.
int | lo_server_recv (lo_server s)
| Block, waiting for an OSC message to be received.
lo_method | lo_server_add_method (lo_server s, const char *path, const char *typespec, lo_method_handler h, void *user_data)
| Add an OSC method to the specifed server.
void | lo_server_del_method (lo_server s, const char *path, const char *typespec)
| Delete an OSC method from the specifed server.
int | lo_server_get_socket_fd (lo_server s)
| Return the file descriptor of the server socket.
int | lo_server_get_port (lo_server s)
| Return the port number that the server has bound to.
int | lo_server_get_protocol (lo_server s)
| Return the protocol that the server is using.
char * | lo_server_get_url (lo_server s)
| Return an OSC URL that can be used to contact the server.
int | lo_server_events_pending (lo_server s)
| Return true if there are scheduled events (eg. from bundles) waiting to be dispatched by the server.
double | lo_server_next_event_delay (lo_server s)
| Return the time in seconds until the next scheduled event.
char * | lo_url_get_protocol (const char *url)
| Return the protocol portion of an OSC URL, eg. udp, tcp.
char * | lo_url_get_hostname (const char *url)
| Return the hostname portion of an OSC URL.
char * | lo_url_get_port (const char *url)
| Return the port portion of an OSC URL.
char * | lo_url_get_path (const char *url)
| Return the path portion of an OSC URL.
int | lo_strsize (const char *s)
| A function to calculate the amount of OSC message space required by a C char *.
uint32_t | lo_blobsize (lo_blob b)
| A function to calculate the amount of OSC message space required by a lo_blob object.
int | lo_pattern_match (const char *str, const char *p)
| Test a string against an OSC pattern glob.
int | lo_send_internal (lo_address t, const char *file, const int line, const char *path, const char *types,...)
| the real send function (don't call directly)
int | lo_send_timestamped_internal (lo_address t, const char *file, const int line, lo_timetag ts, const char *path, const char *types,...)
| the real send_timestamped function (don't call directly)
int | lo_send_from_internal (lo_address targ, lo_server from, const char *file, const int line, const lo_timetag ts, const char *path, const char *types,...)
| the real lo_send_from function (don't call directly)
double | lo_timetag_diff (lo_timetag a, lo_timetag b)
| Find the time difference between two timetags.
void | lo_timetag_now (lo_timetag *t)
| Return a timetag for the current time.
void | lo_bundle_pp (lo_bundle b)
void | lo_message_pp (lo_message m)
void | lo_arg_pp (lo_type type, void *data)
void | lo_server_pp (lo_server s)
void | lo_method_pp (lo_method m)
void | lo_method_pp_prefix (lo_method m, const char *p)
void | lo_server_thread_pp (lo_server_thread st)