liblo: lo_lowlevel.h Source File

liblo 0.36

lo_lowlevel.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2014 Steve Harris et al. (see AUTHORS)
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public License
6 * as published by the Free Software Foundation; either version 2.1
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
13 *
14 * $Id$
15 */
16
17#ifndef LO_LOWLEVEL_H
18#define LO_LOWLEVEL_H
19
20#include "lo/lo_osc_types.h"
21
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31#include <stdarg.h>
32#include <sys/types.h>
33#ifdef _MSC_VER
34#include <BaseTsd.h>
35typedef SSIZE_T ssize_t;
36#endif
37#include <stdint.h>
38
39
40#include "lo/lo_types.h"
41#include "lo/lo_errors.h"
42
51
56 typedef long double lo_hires;
57
58
69 typedef struct {
70 size_t size;
71 const char *group;
72 const char *port;
73 const char *iface;
74 const char *ip;
75 int proto;
76 lo_err_handler err_handler;
77 void *err_handler_context;
78} lo_server_config;
79
85 typedef enum {
86 LO_SLIP_NONE = 0,
87 LO_SLIP_SINGLE = 1,
88 LO_SLIP_DOUBLE = 2
89} lo_slip_encoding;
90
98 int lo_send_message(lo_address targ, const char *path, lo_message msg);
99
113 int lo_send_message_from(lo_address targ, lo_server serv,
114 const char *path, lo_message msg);
115
122 int lo_send_bundle(lo_address targ, lo_bundle b);
123
135 int lo_send_bundle_from(lo_address targ, lo_server serv, lo_bundle b);
136
140 lo_message lo_message_new(void);
141
150 void lo_message_incref(lo_message m);
151
160 int lo_message_decref(lo_message m);
161
165 lo_message lo_message_clone(lo_message m);
166
171 void lo_message_free(lo_message m);
172
176 void lo_message_clear(lo_message m);
177
191 int lo_message_add(lo_message m, const char *types, ...);
192
194int lo_message_add_internal(lo_message m, const char *file, const int line,
195 const char *types, ...);
196
215 int lo_message_add_varargs(lo_message m, const char *types, va_list ap);
216
218int lo_message_add_varargs_internal(lo_message m, const char *types, va_list ap,
219 const char *file, const int line);
220
231 int lo_message_add_int32(lo_message m, int32_t a);
232
239 int lo_message_add_float(lo_message m, float a);
240
247 int lo_message_add_string(lo_message m, const char *a);
248
255 int lo_message_add_blob(lo_message m, lo_blob a);
256
263 int lo_message_add_int64(lo_message m, int64_t a);
264
271 int lo_message_add_timetag(lo_message m, lo_timetag a);
272
279 int lo_message_add_double(lo_message m, double a);
280
287 int lo_message_add_symbol(lo_message m, const char *a);
288
295 int lo_message_add_char(lo_message m, char a);
296
303 int lo_message_add_midi(lo_message m, uint8_t a[4]);
304
311 int lo_message_add_true(lo_message m);
312
319 int lo_message_add_false(lo_message m);
320
327 int lo_message_add_nil(lo_message m);
328
335 int lo_message_add_infinitum(lo_message m);
336
345 lo_address lo_message_get_source(lo_message m);
346
353 lo_timetag lo_message_get_timestamp(lo_message m);
354
360 char *lo_message_get_types(lo_message m);
361
367 int lo_message_get_argc(lo_message m);
368
374 lo_arg **lo_message_get_argv(lo_message m);
375
382 size_t lo_message_length(lo_message m, const char *path);
383
398 void *lo_message_serialise(lo_message m, const char *path, void *to,
399 size_t *size);
400
414 lo_message lo_message_deserialise(void *data, size_t size, int *result);
415
431 int lo_server_dispatch_data(lo_server s, void *data, size_t size);
432
439 const char *lo_address_get_hostname(lo_address a);
440
447 const char *lo_address_get_port(lo_address a);
448
454 int lo_address_get_protocol(lo_address a);
455
461 char *lo_address_get_url(lo_address a);
462
473 void lo_address_set_ttl(lo_address t, int ttl);
474
481 int lo_address_get_ttl(lo_address t);
482
500 int lo_address_set_iface(lo_address t, const char *iface, const char *ip);
501
511 const char* lo_address_get_iface(lo_address t);
512
519 int lo_address_set_tcp_nodelay(lo_address t, int enable);
520
528 int lo_address_set_stream_slip(lo_address t, lo_slip_encoding encoding);
529
540 lo_bundle lo_bundle_new(lo_timetag tt);
541
550 void lo_bundle_incref(lo_bundle b);
551
560 int lo_bundle_add_message(lo_bundle b, const char *path, lo_message m);
561
570 int lo_bundle_add_bundle(lo_bundle b, lo_bundle n);
571
579 size_t lo_bundle_length(lo_bundle b);
580
586 unsigned int lo_bundle_count(lo_bundle b);
587
595 lo_element_type lo_bundle_get_type(lo_bundle b, int index);
596
604 lo_bundle lo_bundle_get_bundle(lo_bundle b, int index);
605
614 lo_message lo_bundle_get_message(lo_bundle b, int index,
615 const char **path);
616
624 lo_timetag lo_bundle_get_timestamp(lo_bundle b);
625
632 void lo_bundle_set_timestamp(lo_bundle b, lo_timetag t);
633
647 void *lo_bundle_serialise(lo_bundle b, void *to, size_t *size);
648
652 void lo_bundle_clear(lo_bundle b);
653
659 void lo_bundle_free(lo_bundle b);
660
666 void lo_bundle_free_recursive(lo_bundle b);
667
673 void lo_bundle_free_messages(lo_bundle b);
674
681 int lo_is_numerical_type(lo_type a);
682
689 int lo_is_string_type(lo_type a);
690
707 int lo_coerce(lo_type type_to, lo_arg *to, lo_type type_from, lo_arg *from);
708
713 lo_hires lo_hires_val(lo_type type, lo_arg *p);
714
731 lo_server lo_server_new(const char *port, lo_err_handler err_h);
732
749 lo_server lo_server_new_with_proto(const char *port, int proto,
750 lo_err_handler err_h);
751
764 lo_server lo_server_new_multicast(const char *group, const char *port,
765 lo_err_handler err_h);
766
785 lo_server lo_server_new_multicast_iface(const char *group, const char *port,
786 const char *iface, const char *ip,
787 lo_err_handler err_h);
788
799 lo_server lo_server_new_from_url(const char *url,
800 lo_err_handler err_h);
801
808 lo_server lo_server_new_from_config(lo_server_config *config);
809
816 int lo_server_enable_coercion(lo_server server, int enable);
817
821 void lo_server_free(lo_server s);
822
837 int lo_server_wait(lo_server s, int timeout);
838
854 int lo_servers_wait(lo_server *s, int *status, int num_servers, int timeout);
855
869 int lo_server_recv_noblock(lo_server s, int timeout);
870
884 int lo_servers_recv_noblock(lo_server *s, int *recvd, int num_servers,
885 int timeout);
886
900 int lo_server_recv(lo_server s);
901
917 lo_method lo_server_add_method(lo_server s, const char *path,
918 const char *typespec, lo_method_handler h,
919 const void *user_data);
920
929 void lo_server_del_method(lo_server s, const char *path,
930 const char *typespec);
931
940 int lo_server_del_lo_method(lo_server s, lo_method m);
941
953 int lo_server_add_bundle_handlers(lo_server s,
954 lo_bundle_start_handler sh,
955 lo_bundle_end_handler eh,
956 void *user_data);
957
970 int lo_server_get_socket_fd(lo_server s);
971
978 int lo_server_get_port(lo_server s);
979
985 int lo_server_get_protocol(lo_server s);
986
992 char *lo_server_get_url(lo_server s);
993
1011 int lo_server_enable_queue(lo_server s, int queue_enabled,
1012 int dispatch_remaining);
1013
1018 int lo_server_events_pending(lo_server s);
1019
1025 double lo_server_next_event_delay(lo_server s);
1026
1045 int lo_server_max_msg_size(lo_server s, int req_size);
1046
1055 char *lo_url_get_protocol(const char *url);
1056
1068 int lo_url_get_protocol_id(const char *url);
1069
1075 char *lo_url_get_hostname(const char *url);
1076
1082 char *lo_url_get_port(const char *url);
1083
1089 char *lo_url_get_path(const char *url);
1090
1091/* utility functions */
1092
1099 int lo_strsize(const char *s);
1100
1107uint32_t lo_blobsize(lo_blob b);
1108
1116 int lo_pattern_match(const char *str, const char *p);
1117
1124 int lo_string_contains_pattern(const char *str);
1125
1127int lo_send_internal(lo_address t, const char *file, const int line,
1128 const char *path, const char *types, ...);
1130int lo_send_timestamped_internal(lo_address t, const char *file, const int line,
1131 lo_timetag ts, const char *path, const char *types, ...);
1133int lo_send_from_internal(lo_address targ, lo_server from, const char *file,
1134 const int line, const lo_timetag ts,
1135 const char *path, const char *types, ...);
1136
1137
1142 double lo_timetag_diff(lo_timetag a, lo_timetag b);
1143
1149 void lo_timetag_now(lo_timetag *t);
1150
1154 size_t lo_arg_size(lo_type type, void *data);
1155
1165 char *lo_get_path(void *data, ssize_t size);
1166
1174 void lo_arg_host_endian(lo_type type, void *data);
1175
1183 void lo_arg_network_endian(lo_type type, void *data);
1184
1186
1187/* prettyprinters */
1188
1196
1198 void lo_bundle_pp(lo_bundle b);
1199
1201 void lo_message_pp(lo_message m);
1202
1208 void lo_arg_pp(lo_type type, void *data);
1209
1211 void lo_server_pp(lo_server s);
1212
1214 void lo_method_pp(lo_method m);
1215
1218 void lo_method_pp_prefix(lo_method m, const char *p);
1219
1221
1222#ifdef __cplusplus
1223}
1224#endif
1225
1226#endif
lo_element_type
lo_element_type
An enumeration of bundle element types liblo can handle.
Definition lo_osc_types.h:48
lo_type
lo_type
An enumeration of the OSC types liblo can send and receive.
Definition lo_osc_types.h:61
lo_hires
long double lo_hires
Type used to represent numerical values in conversions between OSC types.
Definition lo_lowlevel.h:56
lo_message_serialise
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....
lo_message_add_timetag
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 de...
lo_server_events_pending
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.
lo_url_get_protocol_id
int lo_url_get_protocol_id(const char *url)
Return the protocol ID of an OSC URL.
lo_message_length
size_t lo_message_length(lo_message m, const char *path)
Return the length of a message in bytes.
lo_address_get_hostname
const char * lo_address_get_hostname(lo_address a)
Return the hostname of a lo_address object.
lo_server_new_from_config
lo_server lo_server_new_from_config(lo_server_config *config)
Create a new server instance, using a configuration struct.
lo_server_new_from_url
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_add_bundle_handlers
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.
lo_message_get_timestamp
lo_timetag lo_message_get_timestamp(lo_message m)
Returns the timestamp (lo_timetag *) of a bundled incoming message.
lo_send_message
int lo_send_message(lo_address targ, const char *path, lo_message msg)
Send a lo_message object to target targ.
lo_server_enable_coercion
int lo_server_enable_coercion(lo_server server, int enable)
Enables or disables type coercion during message dispatch.
lo_server_get_url
char * lo_server_get_url(lo_server s)
Return an OSC URL that can be used to contact the server.
lo_bundle_get_message
lo_message lo_bundle_get_message(lo_bundle b, int index, const char **path)
Gets a message contained within a bundle.
lo_message_add_false
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 de...
lo_bundle_add_message
int lo_bundle_add_message(lo_bundle b, const char *path, lo_message m)
Adds an OSC message to an existing bundle.
lo_message_new
lo_message lo_message_new(void)
Create a new lo_message object.
lo_message_get_source
lo_address lo_message_get_source(lo_message m)
Returns the source (lo_address) of an incoming message.
lo_blobsize
uint32_t lo_blobsize(lo_blob b)
A function to calculate the amount of OSC message space required by a lo_blob object.
lo_string_contains_pattern
int lo_string_contains_pattern(const char *str)
Test if a string contains any OSC pattern characters.
lo_bundle_free_messages
void lo_bundle_free_messages(lo_bundle b)
Obsolete, use lo_bundle_free_recursive instead.
lo_message_add_int64
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 de...
lo_message_get_types
char * lo_message_get_types(lo_message m)
Return the message type tag string.
lo_arg_host_endian
void lo_arg_host_endian(lo_type type, void *data)
Convert the specified argument to host byte order where necessary.
lo_servers_recv_noblock
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.
lo_bundle_free
void lo_bundle_free(lo_bundle b)
Frees the memory taken by a bundle object.
lo_bundle_clear
void lo_bundle_clear(lo_bundle b)
Clear elements from a lo_bundle but do not free allocated memory.
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().
lo_slip_encoding
lo_slip_encoding
Used with lo_address_set_stream_slip() to specify whether sent messages should be encoded with SLIP,...
Definition lo_lowlevel.h:85
lo_bundle_new
lo_bundle lo_bundle_new(lo_timetag tt)
Create a new bundle object.
lo_server_wait
int lo_server_wait(lo_server s, int timeout)
Wait for an OSC message to be received.
lo_address_get_ttl
int lo_address_get_ttl(lo_address t)
Get the Time-to-Live value for a given target address.
lo_message_decref
int lo_message_decref(lo_message m)
Subtract one from a message's reference count.
lo_server_enable_queue
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 curre...
lo_message_add_float
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 de...
lo_bundle_set_timestamp
void lo_bundle_set_timestamp(lo_bundle b, lo_timetag t)
Get the timestamp associated with a bundle.
lo_server_new_with_proto
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_message_add_infinitum
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 de...
lo_message_add
int lo_message_add(lo_message m, const char *types,...)
Append a number of arguments to a message.
lo_message_add_string
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 de...
lo_server_get_port
int lo_server_get_port(lo_server s)
Return the port number that the server has bound to.
lo_server_add_method
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.
lo_message_get_argc
int lo_message_get_argc(lo_message m)
Return the message argument count.
lo_message_get_argv
lo_arg ** lo_message_get_argv(lo_message m)
Return the message arguments. Do not free the returned data.
lo_address_set_iface
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.
lo_server_next_event_delay
double lo_server_next_event_delay(lo_server s)
Return the time in seconds until the next scheduled event.
lo_server_recv_noblock
int lo_server_recv_noblock(lo_server s, int timeout)
Look for an OSC message waiting to be received.
lo_server_new
lo_server lo_server_new(const char *port, lo_err_handler err_h)
Create a new server instance.
lo_bundle_count
unsigned int lo_bundle_count(lo_bundle b)
Return the number of top-level elements in a bundle.
lo_message_add_int32
int lo_message_add_int32(lo_message m, int32_t a)
Append a data item and typechar of the specified type to a message.
lo_address_set_stream_slip
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_server_new_multicast
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_bundle_get_type
lo_element_type lo_bundle_get_type(lo_bundle b, int index)
Gets the element type contained within a bundle.
lo_message_clone
lo_message lo_message_clone(lo_message m)
Create a new lo_message object by cloning an already existing one.
lo_bundle_free_recursive
void lo_bundle_free_recursive(lo_bundle b)
Frees the memory taken by a bundle object and its messages and nested bundles recursively.
lo_message_add_symbol
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 de...
lo_address_get_iface
const char * lo_address_get_iface(lo_address t)
Get the name of the network interface assigned to an OSC address.
lo_message_free
void lo_message_free(lo_message m)
Free memory allocated by lo_message_new() and any subsequent lo_message_add_int32 lo_message_add*() c...
lo_server_max_msg_size
int lo_server_max_msg_size(lo_server s, int req_size)
Set the maximum message size accepted by a server.
lo_url_get_hostname
char * lo_url_get_hostname(const char *url)
Return the hostname portion of an OSC URL.
lo_timetag_diff
double lo_timetag_diff(lo_timetag a, lo_timetag b)
Find the time difference between two timetags.
lo_message_add_varargs
int lo_message_add_varargs(lo_message m, const char *types, va_list ap)
Append a varargs list to a message.
lo_send_message_from
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.
lo_address_set_tcp_nodelay
int lo_address_set_tcp_nodelay(lo_address t, int enable)
Set the TCP_NODELAY flag on outgoing TCP connections.
lo_message_add_true
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 de...
lo_server_dispatch_data
int lo_server_dispatch_data(lo_server s, void *data, size_t size)
Dispatch a raw block of memory containing an OSC message.
lo_bundle_length
size_t lo_bundle_length(lo_bundle b)
Return the length of a bundle in bytes.
lo_servers_wait
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.
lo_address_get_protocol
int lo_address_get_protocol(lo_address a)
Return the protocol of a lo_address object.
lo_message_add_midi
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 de...
lo_bundle_get_bundle
lo_bundle lo_bundle_get_bundle(lo_bundle b, int index)
Gets a nested bundle contained within a bundle.
lo_message_add_char
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 de...
lo_server_get_protocol
int lo_server_get_protocol(lo_server s)
Return the protocol that the server is using.
lo_send_bundle_from
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_server_del_lo_method
int lo_server_del_lo_method(lo_server s, lo_method m)
Delete a specific OSC method from the specified server.
lo_message_add_nil
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 de...
lo_message_add_blob
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 de...
lo_pattern_match
int lo_pattern_match(const char *str, const char *p)
Test a string against an OSC pattern glob.
lo_address_get_port
const char * lo_address_get_port(lo_address a)
Return the port/service name of a lo_address object.
lo_message_clear
void lo_message_clear(lo_message m)
Clear elements from a lo_message but do not free allocated memory.
lo_address_set_ttl
void lo_address_set_ttl(lo_address t, int ttl)
Set the Time-to-Live value for a given target address.
lo_is_numerical_type
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.
lo_address_get_url
char * lo_address_get_url(lo_address a)
Return a URL representing an OSC address.
lo_send_bundle
int lo_send_bundle(lo_address targ, lo_bundle b)
Send a lo_bundle object to address targ.
lo_get_path
char * lo_get_path(void *data, ssize_t size)
Given a raw OSC message, return the message path.
lo_bundle_add_bundle
int lo_bundle_add_bundle(lo_bundle b, lo_bundle n)
Adds an OSC bundle to an existing bundle.
lo_server_free
void lo_server_free(lo_server s)
Free up memory used by the lo_server object.
lo_timetag_now
void lo_timetag_now(lo_timetag *t)
Return a timetag for the current time.
lo_arg_network_endian
void lo_arg_network_endian(lo_type type, void *data)
Convert the specified argument to network byte order where necessary.
lo_url_get_protocol
char * lo_url_get_protocol(const char *url)
Return the protocol portion of an OSC URL, eg. udp, tcp.
lo_message_add_double
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 de...
lo_server_new_multicast_iface
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 int...
lo_server_get_socket_fd
int lo_server_get_socket_fd(lo_server s)
Return the file descriptor of the server socket.
lo_message_incref
void lo_message_incref(lo_message m)
Add one to a message's reference count.
lo_strsize
int lo_strsize(const char *s)
A function to calculate the amount of OSC message space required by a C char *.
lo_is_string_type
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.
lo_server_recv
int lo_server_recv(lo_server s)
Block, waiting for an OSC message to be received.
lo_url_get_port
char * lo_url_get_port(const char *url)
Return the port portion of an OSC URL.
lo_bundle_get_timestamp
lo_timetag lo_bundle_get_timestamp(lo_bundle b)
Get the timestamp associated with a bundle.
lo_bundle_incref
void lo_bundle_incref(lo_bundle b)
Add one to a bundle's reference count.
lo_arg_size
size_t lo_arg_size(lo_type type, void *data)
Return the storage size, in bytes, of the given argument.
lo_bundle_serialise
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.
lo_server_del_method
void lo_server_del_method(lo_server s, const char *path, const char *typespec)
Delete an OSC method from the specified server.
lo_coerce
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_url_get_path
char * lo_url_get_path(const char *url)
Return the path portion of an OSC URL.
lo_hires_val
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_arg_pp
void lo_arg_pp(lo_type type, void *data)
Pretty-print a set of typed arguments.
lo_method_pp_prefix
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.
lo_method_pp
void lo_method_pp(lo_method m)
Pretty-print a lo_method object.
lo_server_pp
void lo_server_pp(lo_server s)
Pretty-print a lo_server object.
lo_message_pp
void lo_message_pp(lo_message m)
Pretty-print a lo_message object.
lo_bundle_pp
void lo_bundle_pp(lo_bundle b)
Pretty-print a lo_bundle object.
lo_osc_types.h
lo_types.h
lo_server
struct lo_server_ * lo_server
An object representing an instance of an OSC server.
Definition lo_types.h:85
lo_bundle_start_handler
int(* lo_bundle_start_handler)(lo_timetag time, void *user_data)
A callback function to receive notification of a bundle being dispatched by the server or server thre...
Definition lo_types.h:155
lo_address
struct lo_address_ * lo_address
A reference to an OSC service.
Definition lo_types.h:45
lo_message
struct lo_message_ * lo_message
A low-level object used to represent messages passed over OSC.
Definition lo_types.h:60
lo_method_handler
int(* lo_method_handler)(const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data)
A callback function to receive notification of matching message arriving in the server or server thre...
Definition lo_types.h:134
lo_blob
struct lo_blob_ * lo_blob
A object to store an opaque binary data object.
Definition lo_types.h:52
lo_err_handler
void(* lo_err_handler)(int num, const char *msg, const char *where)
A callback function to receive notification of an error in a server or server thread.
Definition lo_types.h:105
lo_bundle_end_handler
int(* lo_bundle_end_handler)(void *user_data)
A callback function to receive notification of a bundle dispatch being completed by the server or ser...
Definition lo_types.h:166
lo_bundle
struct lo_bundle_ * lo_bundle
A low-level object used to represent bundles of messages passed over OSC.
Definition lo_types.h:69
lo_method
struct lo_method_ * lo_method
An object representing an method on a server.
Definition lo_types.h:77
lo_server_config
A configuration struct for initializing lo_server using lo_server_new_from_config().
Definition lo_lowlevel.h:69
lo_timetag
A structure to store OSC TimeTag values.
Definition lo_osc_types.h:35
lo_arg
Union used to read values from incoming messages.
Definition lo_osc_types.h:104