lo_lowlevel.h(3)

NAME
lo_lowlevel.h

SYNOPSIS

  Data Structures
struct lo_server_config
A configuration struct for initializing lo_server using lo_server_new_from_config().

  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.

  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.
int lo_message_decref (lo_message m)
Subtract one from 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.
void lo_message_clear (lo_message m)
Clear elements from a lo_message but do not free allocated memory.
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_set_timestamp (lo_bundle b, lo_timetag t)
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_clear (lo_bundle b)
Clear elements from a lo_bundle but do not free allocated memory.
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.

Author

Generated automatically by Doxygen for liblo from the source code.