Data Structures | |
struct | lo_timetag |
A structure to store OSC TimeTag values. More... | |
union | lo_arg |
Union used to read values from incoming messages. More... | |
Defines | |
#define | LO_TT_IMMEDIATE ((lo_timetag){0U,1U}) |
A timetag constant representing "now". | |
Enumerations | |
enum | lo_type { LO_INT32 = 'i', LO_FLOAT = 'f', LO_STRING = 's', LO_BLOB = 'b', LO_INT64 = 'h', LO_TIMETAG = 't', LO_DOUBLE = 'd', LO_SYMBOL = 'S', LO_CHAR = 'c', LO_MIDI = 'm', LO_TRUE = 'T', LO_FALSE = 'F', LO_NIL = 'N', LO_INFINITUM = 'I' } |
An enumeration of the OSC types liblo can send and receive. More... | |
Functions | |
lo_address | lo_address_new (const char *host, const char *port) |
Declare an OSC destination, given IP address and port number. Same as lo_address_new_with_proto(), but using UDP. | |
lo_address | lo_address_new_with_proto (int proto, const char *host, const char *port) |
Declare an OSC destination, given IP address and port number, specifying protocol. | |
lo_address | lo_address_new_from_url (const char *url) |
Create a lo_address object from an OSC URL. | |
void | lo_address_free (lo_address t) |
Free the memory used by the lo_address object. | |
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_send (lo_address targ, const char *path, const char *type,...) |
Send a OSC formatted message to the address specified. | |
int | lo_send_from (lo_address targ, lo_server from, lo_timetag ts, const char *path, const char *type,...) |
Send a OSC formatted message to the address specified, from the same socket as the specificied server. | |
int | lo_send_timestamped (lo_address targ, lo_timetag ts, const char *path, const char *type,...) |
Send a OSC formatted message to the address specified, scheduled to be dispatch at some time in the future. | |
int | lo_address_errno (lo_address a) |
Return the error number from the last failed lo_send() or lo_address_new() call. | |
const char * | lo_address_errstr (lo_address a) |
Return the error string from the last failed lo_send() or lo_address_new() call. | |
lo_server_thread | lo_server_thread_new (const char *port, lo_err_handler err_h) |
Create a new server thread to handle incoming OSC messages. | |
lo_server_thread | lo_server_thread_new_multicast (const char *group, const char *port, lo_err_handler err_h) |
Create a new server thread to handle incoming OSC messages, and join a UDP multicast group. | |
lo_server_thread | lo_server_thread_new_with_proto (const char *port, int proto, lo_err_handler err_h) |
Create a new server thread to handle incoming OSC messages, specifying protocol. | |
void | lo_server_thread_free (lo_server_thread st) |
Free memory taken by a server thread. | |
lo_method | lo_server_thread_add_method (lo_server_thread st, const char *path, const char *typespec, lo_method_handler h, void *user_data) |
Add an OSC method to the specifed server thread. | |
void | lo_server_thread_del_method (lo_server_thread st, const char *path, const char *typespec) |
Delete an OSC method from the specifed server thread. | |
int | lo_server_thread_start (lo_server_thread st) |
Start the server thread. | |
int | lo_server_thread_stop (lo_server_thread st) |
Stop the server thread. | |
int | lo_server_thread_get_port (lo_server_thread st) |
Return the port number that the server thread has bound to. | |
char * | lo_server_thread_get_url (lo_server_thread st) |
Return a URL describing the address of the server thread. | |
lo_server | lo_server_thread_get_server (lo_server_thread st) |
Return the lo_server for a lo_server_thread. | |
int | lo_server_thread_events_pending (lo_server_thread st) |
Return true if there are scheduled events (eg. from bundles) waiting to be dispatched by the thread. | |
lo_blob | lo_blob_new (int32_t size, const void *data) |
Create a new OSC blob type. | |
void | lo_blob_free (lo_blob b) |
Free the memory taken by a blob. | |
uint32_t | lo_blob_datasize (lo_blob b) |
Return the amount of valid data in a lo_blob object. | |
void * | lo_blob_dataptr (lo_blob b) |
Return a pointer to the start of the blob data to allow contents to be changed. |
#define LO_TT_IMMEDIATE ((lo_timetag){0U,1U}) |
A timetag constant representing "now".
enum lo_type |
An enumeration of the OSC types liblo can send and receive.
The value of the enumeration is the typechar used to tag messages and to specify arguments with lo_send().
LO_INT32 | 32 bit signed integer. |
LO_FLOAT | 32 bit IEEE-754 float. |
LO_STRING | Standard C, NULL terminated string. |
LO_BLOB | OSC binary blob type. Accessed using the lo_blob_*() functions. |
LO_INT64 | 64 bit signed integer. |
LO_TIMETAG | OSC TimeTag type, represented by the lo_timetag structure. |
LO_DOUBLE | 64 bit IEEE-754 double. |
LO_SYMBOL | Standard C, NULL terminated, string. Used in systems which distinguish strings and symbols. |
LO_CHAR | Standard C, 8 bit, char variable. |
LO_MIDI | A 4 byte MIDI packet. |
LO_TRUE | Sybol representing the value True. |
LO_FALSE | Sybol representing the value False. |
LO_NIL | Sybol representing the value Nil. |
LO_INFINITUM | Sybol representing the value Infinitum. |
int lo_address_errno | ( | lo_address | a | ) |
Return the error number from the last failed lo_send() or lo_address_new() call.
const char* lo_address_errstr | ( | lo_address | a | ) |
Return the error string from the last failed lo_send() or lo_address_new() call.
void lo_address_free | ( | lo_address | t | ) |
Free the memory used by the lo_address object.
int lo_address_get_ttl | ( | lo_address | t | ) |
Get the Time-to-Live value for a given target address.
t | An OSC address. |
lo_address lo_address_new | ( | const char * | host, | |
const char * | port | |||
) |
Declare an OSC destination, given IP address and port number. Same as lo_address_new_with_proto(), but using UDP.
host | An IP address or number, or NULL for the local machine. | |
port | a decimal port number or service name. |
Note: if you wish to receive replies from the target of this address, you must first create a lo_server_thread or lo_server object which will receive the replies. The last lo_server(_thread) object creted will be the receiver.
lo_address lo_address_new_from_url | ( | const char * | url | ) |
Create a lo_address object from an OSC URL.
example: "osc.udp://localhost:4444/my/path/"
lo_address lo_address_new_with_proto | ( | int | proto, | |
const char * | host, | |||
const char * | port | |||
) |
Declare an OSC destination, given IP address and port number, specifying protocol.
proto | The protocol to use, must be one of LO_UDP, LO_TCP or LO_UNIX. | |
host | An IP address or number, or NULL for the local machine. | |
port | a decimal port number or service name. |
Note: if you wish to receive replies from the target of this address, you must first create a lo_server_thread or lo_server object which will receive the replies. The last lo_server(_thread) object creted will be the receiver.
void lo_address_set_ttl | ( | lo_address | t, | |
int | ttl | |||
) |
Set the Time-to-Live value for a given target address.
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.
t | An OSC address. | |
ttl | An integer specifying the scope of a multicast UDP message. |
void* lo_blob_dataptr | ( | lo_blob | b | ) |
Return a pointer to the start of the blob data to allow contents to be changed.
uint32_t lo_blob_datasize | ( | lo_blob | b | ) |
Return the amount of valid data in a lo_blob object.
If you want to know the storage size, use lo_arg_size().
void lo_blob_free | ( | lo_blob | b | ) |
Free the memory taken by a blob.
lo_blob lo_blob_new | ( | int32_t | size, | |
const void * | data | |||
) |
Create a new OSC blob type.
size | The amount of space to allocate in the blob structure. | |
data | The data that will be used to initialise the blob, should be size bytes long. |
int lo_send | ( | lo_address | targ, | |
const char * | path, | |||
const char * | type, | |||
... | ||||
) |
Send a OSC formatted message to the address specified.
targ | The target OSC address | |
path | The OSC path the message will be delivered to | |
type | The types of the data items in the message, types are defined in lo_osc_types.h | |
... | The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter. |
lo_send(t, "/foo/bar", "ff", 0.1f, 23.0f);
int lo_send_from | ( | lo_address | targ, | |
lo_server | from, | |||
lo_timetag | ts, | |||
const char * | path, | |||
const char * | type, | |||
... | ||||
) |
Send a OSC formatted message to the address specified, from the same socket as the specificied server.
targ | The target OSC address | |
from | The server to send message from (can be NULL to use new socket) | |
ts | The OSC timetag timestamp at which the message will be processed (can be LO_TT_IMMEDIATE if you don't want to attach a timetag) | |
path | The OSC path the message will be delivered to | |
type | The types of the data items in the message, types are defined in lo_osc_types.h | |
... | The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter. |
serv = lo_server_new(NULL, err); lo_server_add_method(serv, "/reply", "ss", reply_handler, NULL); lo_send_from(t, serv, LO_TT_IMMEDIATE, "/foo/bar", "ff", 0.1f, 23.0f);
int lo_send_timestamped | ( | lo_address | targ, | |
lo_timetag | ts, | |||
const char * | path, | |||
const char * | type, | |||
... | ||||
) |
Send a OSC formatted message to the address specified, scheduled to be dispatch at some time in the future.
targ | The target OSC address | |
ts | The OSC timetag timestamp at which the message will be processed | |
path | The OSC path the message will be delivered to | |
type | The types of the data items in the message, types are defined in lo_osc_types.h | |
... | The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter. |
lo_timetag now;<br> lo_timetag_now(&now);<br> lo_send_timestamped(t, now, "/foo/bar", "ff", 0.1f, 23.0f);
lo_method lo_server_thread_add_method | ( | lo_server_thread | st, | |
const char * | path, | |||
const char * | typespec, | |||
lo_method_handler | h, | |||
void * | user_data | |||
) |
Add an OSC method to the specifed server thread.
st | The server thread the method is to be added to. | |
path | The OSC path to register the method to. If NULL is passed the method will match all paths. | |
typespec | 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. | |
h | The method handler callback function that will be called it a matching message is received | |
user_data | A value that will be passed to the callback function, h, when its invoked matching from this method. |
void lo_server_thread_del_method | ( | lo_server_thread | st, | |
const char * | path, | |||
const char * | typespec | |||
) |
Delete an OSC method from the specifed server thread.
st | The server thread the method is to be removed from. | |
path | The OSC path of the method to delete. If NULL is passed the method will match the generic handler. | |
typespec | The typespec the method accepts. |
int lo_server_thread_events_pending | ( | lo_server_thread | st | ) |
Return true if there are scheduled events (eg. from bundles) waiting to be dispatched by the thread.
void lo_server_thread_free | ( | lo_server_thread | st | ) |
Free memory taken by a server thread.
Frees the memory, and, if currently running will stop the associated thread.
int lo_server_thread_get_port | ( | lo_server_thread | st | ) |
Return the port number that the server thread has bound to.
lo_server lo_server_thread_get_server | ( | lo_server_thread | st | ) |
Return the lo_server for a lo_server_thread.
This function is useful for passing a thread's lo_server to lo_send_from().
char* lo_server_thread_get_url | ( | lo_server_thread | st | ) |
Return a URL describing the address of the server thread.
Return value must be free()'d to reclaim memory.
lo_server_thread lo_server_thread_new | ( | const char * | port, | |
lo_err_handler | err_h | |||
) |
Create a new server thread to handle incoming OSC messages.
Server threads take care of the message reception and dispatch by transparently creating a system thread to handle incoming messages. Use this if you do not want to handle the threading yourself.
port | If NULL is passed then an unused port will be chosen by the system, its number may be retrieved with lo_server_thread_get_port() so it can be passed to clients. Otherwise a decimal port number, service name or UNIX domain socket path may be passed. | |
err_h | A function that will be called in the event of an error being raised. The function prototype is defined in lo_types.h |
lo_server_thread lo_server_thread_new_multicast | ( | const char * | group, | |
const char * | port, | |||
lo_err_handler | err_h | |||
) |
Create a new server thread to handle incoming OSC messages, and join a UDP multicast group.
Server threads take care of the message reception and dispatch by transparently creating a system thread to handle incoming messages. Use this if you do not want to handle the threading yourself.
group | The multicast group to join. See documentation on IP multicast for the acceptable address range; e.g., http://tldp.org/HOWTO/Multicast-HOWTO-2.html | |
port | If NULL is passed then an unused port will be chosen by the system, its number may be retrieved with lo_server_thread_get_port() so it can be passed to clients. Otherwise a decimal port number, service name or UNIX domain socket path may be passed. | |
err_h | A function that will be called in the event of an error being raised. The function prototype is defined in lo_types.h |
lo_server_thread lo_server_thread_new_with_proto | ( | const char * | port, | |
int | proto, | |||
lo_err_handler | err_h | |||
) |
Create a new server thread to handle incoming OSC messages, specifying protocol.
Server threads take care of the message reception and dispatch by transparently creating a system thread to handle incoming messages. Use this if you do not want to handle the threading yourself.
port | If NULL is passed then an unused port will be chosen by the system, its number may be retrieved with lo_server_thread_get_port() so it can be passed to clients. Otherwise a decimal port number, service name or UNIX domain socket path may be passed. | |
proto | The protocol to use, should be one of LO_UDP, LO_TCP or LO_UNIX. | |
err_h | A function that will be called in the event of an error being raised. The function prototype is defined in lo_types.h |
int lo_server_thread_start | ( | lo_server_thread | st | ) |
Start the server thread.
st | the server thread to start. |
int lo_server_thread_stop | ( | lo_server_thread | st | ) |
Stop the server thread.
st | the server thread to start. |