lo_lowlevel.h File Reference

Go to the source code of this file.

## Data Structures

struct | lo_server_config
| A configuration struct for initializing lo_server using lo_server_new_from_config(). More...

## Typedefs

typedef long double | lo_hires
| Type used to represent numerical values in conversions between OSC types.

## Enumerations

enum | lo_slip_encoding
| Used with lo_address_set_stream_slip() to specify whether sent messages should be encoded with SLIP, and whether the encoding should be single- or double-ENDed. More...

## 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 (void)
| Create a new lo_message object.
void | lo_message_incref (lo_message m)
| Add one to a message's reference count.
lo_message | lo_message_clone (lo_message m)
| Create a new lo_message object by cloning an already existing one.
void | lo_message_free (lo_message m)
| Free memory allocated by lo_message_new() and any subsequent lo_message_add_int32 lo_message_add*() calls.
int | lo_message_add (lo_message m, const char *types,...)
| Append a number of arguments to a message.
int | lo_message_add_varargs (lo_message m, const char *types, va_list ap)
| Append a varargs list to a message.
int | lo_message_add_int32 (lo_message m, int32_t a)
| Append a data item and typechar of the specified type to a message.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
int | 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.
lo_timetag | lo_message_get_timestamp (lo_message m)
| Returns the timestamp (lo_timetag *) of a bundled incoming message.
char * | lo_message_get_types (lo_message m)
| Return the message type tag string.
int | lo_message_get_argc (lo_message m)
| Return the message argument count.
lo_arg ** | lo_message_get_argv (lo_message m)
| Return the message arguments. Do not free the returned data.
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 lo_message object to an area of memory and return a pointer to the serialised form. Opposite of lo_message_deserialise().
lo_message | lo_message_deserialise (void *data, size_t size, int *result)
| Deserialise a raw OSC message and return a new lo_message object. Opposite of lo_message_serialise().
int | lo_server_dispatch_data (lo_server s, void *data, size_t size)
| Dispatch a raw block of memory containing an OSC message.
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.
void | lo_address_set_ttl (lo_address t, int ttl)
| Set the Time-to-Live value for a given target address.
int | lo_address_get_ttl (lo_address t)
| Get the Time-to-Live value for a given target address.
int | lo_address_set_iface (lo_address t, const char *iface, const char *ip)
| Set the network interface to use for a given target address.
const char * | lo_address_get_iface (lo_address t)
| Get the name of the network interface assigned to an OSC address.
int | lo_address_set_tcp_nodelay (lo_address t, int enable)
| Set the TCP_NODELAY flag on outgoing TCP connections.
int | lo_address_set_stream_slip (lo_address t, lo_slip_encoding encoding)
| Set outgoing stream connections (e.g., TCP) to be transmitted using the SLIP packetizing protocol.
lo_bundle | lo_bundle_new (lo_timetag tt)
| Create a new bundle object.
void | lo_bundle_incref (lo_bundle b)
| Add one to a bundle's reference count.
int | lo_bundle_add_message (lo_bundle b, const char *path, lo_message m)
| Adds an OSC message to an existing bundle.
int | lo_bundle_add_bundle (lo_bundle b, lo_bundle n)
| Adds an OSC bundle to an existing bundle.
size_t | lo_bundle_length (lo_bundle b)
| Return the length of a bundle in bytes.
unsigned int | lo_bundle_count (lo_bundle b)
| Return the number of top-level elements in a bundle.
lo_element_type | lo_bundle_get_type (lo_bundle b, int index)
| Gets the element type contained within a bundle.
lo_bundle | lo_bundle_get_bundle (lo_bundle b, int index)
| Gets a nested bundle contained within a bundle.
lo_message | lo_bundle_get_message (lo_bundle b, int index, const char **path)
| Gets a message contained within a bundle.
lo_timetag | lo_bundle_get_timestamp (lo_bundle b)
| Get the timestamp associated with a bundle.
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.
void | lo_bundle_free_recursive (lo_bundle b)
| Frees the memory taken by a bundle object and its messages and nested bundles recursively.
void | lo_bundle_free_messages (lo_bundle b)
| Obsolete, use lo_bundle_free_recursive instead.
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.
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.
lo_server | lo_server_new_multicast (const char *group, const char *port, lo_err_handler err_h)
| Create a new server instance, and join a UDP multicast group.
lo_server | lo_server_new_multicast_iface (const char *group, const char *port, const char *iface, const char *ip, lo_err_handler err_h)
| Create a new server instance, and join a UDP multicast group, optionally specifying which network interface to use. Note that usually only one of iface or ip are specified.
lo_server | lo_server_new_from_url (const char *url, lo_err_handler err_h)
| Create a new server instance, taking port and the optional multicast group IP from an URL string.
lo_server | lo_server_new_from_config (lo_server_config *config)
| Create a new server instance, using a configuration struct.
int | lo_server_enable_coercion (lo_server server, int enable)
| Enables or disables type coercion during message dispatch.
void | lo_server_free (lo_server s)
| Free up memory used by the lo_server object.
int | lo_server_wait (lo_server s, int timeout)
| Wait for an OSC message to be received.
int | lo_servers_wait (lo_server *s, int *status, int num_servers, int timeout)
| Wait on multiple servers for an OSC message to be received.
int | lo_server_recv_noblock (lo_server s, int timeout)
| Look for an OSC message waiting to be received.
int | lo_servers_recv_noblock (lo_server *s, int *recvd, int num_servers, int timeout)
| Look for an OSC message waiting to be received on multiple servers.
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, const 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 specified server.
int | lo_server_del_lo_method (lo_server s, lo_method m)
| Delete a specific OSC method from the specified server.
int | lo_server_add_bundle_handlers (lo_server s, lo_bundle_start_handler sh, lo_bundle_end_handler eh, void *user_data)
| Add bundle notification handlers to the specified 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_enable_queue (lo_server s, int queue_enabled, int dispatch_remaining)

Toggle event queue. If queueing is enabled, timetagged messages that are sent in advance of the current time will be put on an internal queue, and they will be dispatched at the indicated time. By default, queueing is enabled. Use this function to disable it, if it is desired to have a server process messages immediately. In that case, use lo_message_get_timestamp() to get the message timestamp from within a method handler.

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.
int | lo_server_max_msg_size (lo_server s, int req_size)
| Set the maximum message size accepted by a server.
char * | lo_url_get_protocol (const char *url)
| Return the protocol portion of an OSC URL, eg. udp, tcp.
int | lo_url_get_protocol_id (const char *url)
| Return the protocol ID of an OSC URL.
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_string_contains_pattern (const char *str)
| Test if a string contains any OSC pattern characters.
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.
size_t | lo_arg_size (lo_type type, void *data)
| Return the storage size, in bytes, of the given argument.
char * | lo_get_path (void *data, ssize_t size)
| Given a raw OSC message, return the message path.
void | lo_arg_host_endian (lo_type type, void *data)
| Convert the specified argument to host byte order where necessary.
void | lo_arg_network_endian (lo_type type, void *data)
| Convert the specified argument to network byte order where necessary.
void | lo_bundle_pp (lo_bundle b)
| Pretty-print a lo_bundle object.
void | lo_message_pp (lo_message m)
| Pretty-print a lo_message object.
void | lo_arg_pp (lo_type type, void *data)
| Pretty-print a set of typed arguments.
void | lo_server_pp (lo_server s)
| Pretty-print a lo_server object.
void | lo_method_pp (lo_method m)
| Pretty-print a lo_method object.
void | lo_method_pp_prefix (lo_method m, const char *p)
| Pretty-print a lo_method object, but prepend a given prefix to all field names.

## Detailed Description

The liblo headerfile defining the low-level API functions.

Definition in file lo_lowlevel.h.