lo.h   lo.h 
skipping to change at line 14 skipping to change at line 14
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* $Id: lo.h 80 2007-03-09 18:26:36Z nhumfrey $ * $Id$
*/ */
#ifndef LO_H #ifndef LO_H
#define LO_H #define LO_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/** /**
skipping to change at line 70 skipping to change at line 70
* example: osc.udp://localhost:4444/my/path/ * example: osc.udp://localhost:4444/my/path/
*/ */
lo_address lo_address_new_from_url(const char *url); lo_address lo_address_new_from_url(const char *url);
/** /**
* \brief Free the memory used by the lo_address object * \brief Free the memory used by the lo_address object
*/ */
void lo_address_free(lo_address t); void lo_address_free(lo_address t);
/** /**
* \brief 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.
*
* \param t An OSC address.
* \param ttl An integer specifying the scope of a multicast UDP message.
*/
void lo_address_set_ttl(lo_address t, int ttl);
/**
* \brief Get the Time-to-Live value for a given target address.
*
* \param t An OSC address.
* \return An integer specifying the scope of a multicast UDP message.
*/
int lo_address_get_ttl(lo_address t);
/**
* \brief Send a OSC formatted message to the address specified. * \brief Send a OSC formatted message to the address specified.
* *
* \param targ The target OSC address * \param targ The target OSC address
* \param path The OSC path the message will be delivered to * \param path The OSC path the message will be delivered to
* \param type The types of the data items in the message, types are define d in * \param type The types of the data items in the message, types are define d in
* lo_types_common.h * lo_types_common.h
* \param ... The data values to be transmitted. The types of the arguments * \param ... The data values to be transmitted. The types of the arguments
* passed here must agree with the types specified in the type parameter. * passed here must agree with the types specified in the type parameter.
* *
* example:<br> * example:<br>
skipping to change at line 163 skipping to change at line 183
* system, its number may be retreived with lo_server_thread_get_port() * system, its number may be retreived with lo_server_thread_get_port()
* so it can be passed to clients. Otherwise a decimal port number, service * so it can be passed to clients. Otherwise a decimal port number, service
* name or UNIX domain socket path may be passed. * name or UNIX domain socket path may be passed.
* \param err_h A function that will be called in the event of an error bei ng * \param err_h A function that will be called in the event of an error bei ng
* raised. The function prototype is defined in lo_types.h * raised. The function prototype is defined in lo_types.h
*/ */
lo_server_thread lo_server_thread_new(const char *port, lo_err_handler err_ h); lo_server_thread lo_server_thread_new(const char *port, lo_err_handler err_ h);
/** /**
* \brief Create a new server thread to handle incoming OSC * \brief 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.
*
* \param 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
* \param 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.
* \param err_h A function that will be called in the event of an error bei
ng
* raised. The function prototype is defined in lo_types.h
*/
lo_server_thread lo_server_thread_new_multicast(const char *group, const ch
ar *port,
lo_err_handler err_h);
/**
* \brief Create a new server thread to handle incoming OSC
* messages, specifying protocol. * messages, specifying protocol.
* *
* Server threads take care of the message reception and dispatch by * Server threads take care of the message reception and dispatch by
* transparently creating a systme thread to handle incoming messages. * transparently creating a systme thread to handle incoming messages.
* Use this if you do not want to handle the threading yourself. * Use this if you do not want to handle the threading yourself.
* *
* \param port If NULL is passed then an unused port will be chosen by the * \param port If NULL is passed then an unused port will be chosen by the
* system, its number may be retreived with lo_server_thread_get_port() * system, its number may be retreived with lo_server_thread_get_port()
* so it can be passed to clients. Otherwise a decimal port number, service * so it can be passed to clients. Otherwise a decimal port number, service
* name or UNIX domain socket path may be passed. * name or UNIX domain socket path may be passed.
 End of changes. 3 change blocks. 
1 lines changed or deleted 43 lines changed or added


 lo_endian.h   lo_endian.h 
skipping to change at line 14 skipping to change at line 14
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* $Id: lo_endian.h.in 40 2005-04-25 21:46:47Z xovo $ * $Id$
*/ */
#ifndef LO_ENDIAN_H #ifndef LO_ENDIAN_H
#define LO_ENDIAN_H #define LO_ENDIAN_H
#include <sys/types.h> #include <sys/types.h>
#include <stdint.h> #include <stdint.h>
#ifdef WIN32 #ifdef WIN32
#include <winsock2.h> #include <winsock2.h>
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 lo_errors.h   lo_errors.h 
skipping to change at line 14 skipping to change at line 14
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* $Id: lo_errors.h 23 2004-11-17 17:34:46Z theno23 $ * $Id$
*/ */
#ifndef LO_ERRORS_H #ifndef LO_ERRORS_H
#define LO_ERRORS_H #define LO_ERRORS_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#define LO_ENOPATH 9901 #define LO_ENOPATH 9901
#define LO_ENOTYPE 9902 #define LO_ENOTYPE 9902
#define LO_UNKNOWNPROTO 9903 #define LO_UNKNOWNPROTO 9903
#define LO_NOPORT 9904 #define LO_NOPORT 9904
#define LO_TOOBIG 9905 #define LO_TOOBIG 9905
#define LO_INT_ERR 9906 #define LO_INT_ERR 9906
#define LO_EALLOC 9907
#define LO_EINVALIDPATH 9908
#define LO_EINVALIDTYPE 9909
#define LO_EBADTYPE 9910
#define LO_ESIZE 9911
#define LO_EINVALIDARG 9912
#define LO_ETERM 9913
#define LO_EPAD 9914
#define LO_EINVALIDBUND 9915
#define LO_EINVALIDTIME 9916
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 2 change blocks. 
1 lines changed or deleted 11 lines changed or added


 lo_lowlevel.h   lo_lowlevel.h 
skipping to change at line 14 skipping to change at line 14
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* $Id: lo_lowlevel.h 70 2006-03-29 20:45:57Z nhumfrey $ * $Id$
*/ */
#ifndef LO_LOWLEVEL_H #ifndef LO_LOWLEVEL_H
#define LO_LOWLEVEL_H #define LO_LOWLEVEL_H
#include "lo/lo_osc_types.h" #include "lo/lo_osc_types.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <stdarg.h>
#include <stdint.h> #include <stdint.h>
#include "lo/lo_types.h" #include "lo/lo_types.h"
#include "lo/lo_errors.h" #include "lo/lo_errors.h"
/** /**
* \defgroup liblolowlevel Low-level OSC API * \defgroup liblolowlevel Low-level OSC API
* *
* Use these functions if you require more precices control over OSC messag e * Use these functions if you require more precices control over OSC messag e
* contruction or handling that what is provided in the high-level function s * contruction or handling that what is provided in the high-level function s
skipping to change at line 104 skipping to change at line 105
*/ */
lo_message lo_message_new(); lo_message lo_message_new();
/** /**
* \brief Free memory allocated by lo_message_new and any subsequent * \brief Free memory allocated by lo_message_new and any subsequent
* lo_message_add*() calls. * lo_message_add*() calls.
*/ */
void lo_message_free(lo_message m); void lo_message_free(lo_message m);
/** /**
* \brief Append a number of arguments to a message.
*
* The data will be added in OSC byteorder (bigendian).
*
* \param m The message to be extended.
* \param types The types of the data items in the message, types are defin
ed in
* lo_types_common.h
* \param ... The data values to be transmitted. The types of the arguments
* passed here must agree with the types specified in the type parameter.
*
* \return Less than 0 on failure, 0 on success.
*/
int lo_message_add(lo_message m, const char *types, ...);
/** \brief the real message_add function (don't call directly) */
int lo_message_add_internal(lo_message m, const char *file, const int line
,
const char *types, ...);
/**
* \brief Append a varargs list to a message.
*
* The data will be added in OSC byteorder (bigendian).
* IMPORTANT: args list must be terminated with LO_ARGS_END, or this call w
ill
* fail. This is used to do simple error checking on the sizes of paramete
rs
* passed.
*
* \param m The message to be extended.
* \param types The types of the data items in the message, types are defin
ed in
* lo_types_common.h
* \param ap The va_list created by a C function declared with an
* ellipsis (...) argument, and pre-initialised with
* "va_start(ap)". The types of the arguments passed here must agree
* with the types specified in the type parameter.
*
* \return Less than 0 on failure, 0 on success.
*/
int lo_message_add_varargs(lo_message m, const char *types, va_list ap);
/** \brief the real message_add_varargs function (don't call directly) */
int lo_message_add_varargs_internal(lo_message m, const char *types, va_lis
t ap,
const char *file, const int line);
/**
* \brief Append a data item and typechar of the specified type to a messag e. * \brief Append a data item and typechar of the specified type to a messag e.
* *
* The data will be added in OSC byteorder (bigendian). * The data will be added in OSC byteorder (bigendian).
* *
* \param m The message to be extended. * \param m The message to be extended.
* \param a The data item. * \param a The data item.
*/ */
void lo_message_add_int32(lo_message m, int32_t a); void lo_message_add_int32(lo_message m, int32_t a);
/** /**
skipping to change at line 199 skipping to change at line 243
void lo_message_add_infinitum(lo_message m); void lo_message_add_infinitum(lo_message m);
/** /**
* \brief Returns the source (lo_address) of an incoming message. * \brief Returns the source (lo_address) of an incoming message.
* *
* Returns NULL if the message is outgoing. Do not free the returned addres s. * Returns NULL if the message is outgoing. Do not free the returned addres s.
*/ */
lo_address lo_message_get_source(lo_message m); lo_address lo_message_get_source(lo_message m);
/** /**
* \brief Return the message type tag string.
*
* The result is valid until further data is added with lo_message_add*().
*/
char *lo_message_get_types(lo_message m);
/**
* \brief Return the message argument count.
*
* The result is valid until further data is added with lo_message_add*().
*/
int lo_message_get_argc(lo_message m);
/**
* \brief Return the message arguments. Do not free the returned data.
*
* The result is valid until further data is added with lo_message_add*().
*/
lo_arg **lo_message_get_argv(lo_message m);
/**
* \brief Return the length of a message in bytes. * \brief Return the length of a message in bytes.
* *
* \param m The message to be sized * \param m The message to be sized
* \param path The path the message will be sent to * \param path The path the message will be sent to
*/ */
size_t lo_message_length(lo_message m, const char *path); size_t lo_message_length(lo_message m, const char *path);
/** /**
* \brief Serialise the message object to an area of memory and return a * \brief Serialise the lo_message object to an area of memory and return
* pointer to the serialised form. a
* pointer to the serialised form. Opposite of lo_message_deserialise().
* *
* \param m The mesaage to be serialised * \param m The message to be serialised
* \param path The path the message will be sent to * \param path The path the message will be sent to
* \param to The address to serialise to, memory will be allocated if to is * \param to The address to serialise to, memory will be allocated if to is
* NULL. * NULL.
* \param size If this pointer is non-NULL the size of the memory area * \param size If this pointer is non-NULL the size of the memory area
* will be written here * will be written here
* *
* The returned form is suitable to be sent over a low level OSC transport, * The returned form is suitable to be sent over a low level OSC transport,
* having the correct endianess and bit-packed structure. * having the correct endianess and bit-packed structure.
*/ */
void *lo_message_serialise(lo_message m, const char *path, void *to, void *lo_message_serialise(lo_message m, const char *path, void *to,
size_t *size); size_t *size);
/** /**
* \brief Deserialise a raw OSC message and return a new lo_message object
.
* Opposite of lo_message_serialise().
*
* \param data Pointer to the raw OSC message data in network transmission
form
* (network byte order where appropriate).
* \param size The size of data in bytes
* \param result If this pointer is non-NULL, the result or error code will
* be written here.
*
* Returns a new lo_message, or NULL if deserialisation fails.
* Use lo_message_free() to free the resulting object.
*/
lo_message lo_message_deserialise(void *data, size_t size, int *result);
/**
* \brief Return the hostname of a lo_address object * \brief Return the hostname of a lo_address object
* *
* Returned value most not be modified or free'd. Value will be a dotted qu ad, * Returned value most not be modified or free'd. Value will be a dotted qu ad,
* colon'd IPV6 address, or resolvable name. * colon'd IPV6 address, or resolvable name.
*/ */
const char *lo_address_get_hostname(lo_address a); const char *lo_address_get_hostname(lo_address a);
/** /**
* \brief Return the port/service name of a lo_address object * \brief Return the port/service name of a lo_address object
* *
skipping to change at line 254 skipping to change at line 334
int lo_address_get_protocol(lo_address a); int lo_address_get_protocol(lo_address a);
/** /**
* \brief Return a URL representing an OSC address * \brief Return a URL representing an OSC address
* *
* Returned value must be free'd. * Returned value must be free'd.
*/ */
char *lo_address_get_url(lo_address a); char *lo_address_get_url(lo_address a);
/** /**
* \brief 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.
*
* \param t An OSC address.
* \param ttl An integer specifying the scope of a multicast UDP message.
*/
void lo_address_set_ttl(lo_address t, int ttl);
/**
* \brief Get the Time-to-Live value for a given target address.
*
* \param t An OSC address.
* \return An integer specifying the scope of a multicast UDP message.
*/
int lo_address_get_ttl(lo_address t);
/**
* \brief Create a new bundle object. * \brief Create a new bundle object.
* *
* OSC Bundles ecapsulate one or more OSC messages and may include a timest amp * OSC Bundles ecapsulate one or more OSC messages and may include a timest amp
* indicating when the bundle should be dispatched. * indicating when the bundle should be dispatched.
* *
* \param tt The timestamp when the bundle should be handled by the receive r. * \param tt The timestamp when the bundle should be handled by the receive r.
* Pass LO_TT_IMMEDIATE if you want the receiving server to dispa tch * Pass LO_TT_IMMEDIATE if you want the receiving server to dispa tch
* the bundle as soon as it receives it. * the bundle as soon as it receives it.
*/ */
lo_bundle lo_bundle_new(lo_timetag tt); lo_bundle lo_bundle_new(lo_timetag tt);
skipping to change at line 299 skipping to change at line 399
* \param size If this pointer is non-NULL the size of the memory area * \param size If this pointer is non-NULL the size of the memory area
* will be written here * will be written here
* *
* The returned form is suitable to be sent over a low level OSC transport, * The returned form is suitable to be sent over a low level OSC transport,
* having the correct endianess and bit-packed structure. * having the correct endianess and bit-packed structure.
*/ */
void *lo_bundle_serialise(lo_bundle b, void *to, size_t *size); void *lo_bundle_serialise(lo_bundle b, void *to, size_t *size);
/** /**
* \brief Frees the memory taken by a bundle object. * \brief Frees the memory taken by a bundle object.
*
* \param b The bundle to be freed.
*/ */
void lo_bundle_free(lo_bundle b); void lo_bundle_free(lo_bundle b);
/** /**
* \brief Frees the memory taken by a bundle object and messages in the bu
ndle.
*
* \param b The bundle, which may contain messages, to be freed.
*/
void lo_bundle_free_messages(lo_bundle b);
/**
* \brief return true if the type specified has a numerical value, such as * \brief return true if the type specified has a numerical value, such as
* LO_INT32, LO_FLOAT etc. * LO_INT32, LO_FLOAT etc.
* *
* \param a The type to be tested. * \param a The type to be tested.
*/ */
int lo_is_numerical_type(lo_type a); int lo_is_numerical_type(lo_type a);
/** /**
* \brief return true if the type specified has a textual value, such as * \brief return true if the type specified has a textual value, such as
* LO_STRING or LO_SYMBOL. * LO_STRING or LO_SYMBOL.
skipping to change at line 343 skipping to change at line 452
*/ */
int lo_coerce(lo_type type_to, lo_arg *to, lo_type type_from, lo_arg *from) ; int lo_coerce(lo_type type_to, lo_arg *to, lo_type type_from, lo_arg *from) ;
/** /**
* \brief return the numerical value of the given argument with the * \brief return the numerical value of the given argument with the
* maximum native system precision. * maximum native system precision.
*/ */
lo_hires lo_hires_val(lo_type type, lo_arg *p); lo_hires lo_hires_val(lo_type type, lo_arg *p);
/** /**
* \brief Return the storage size, in bytes, of the given argument.
*/
size_t lo_arg_size(lo_type type, void *data);
/**
* \brief Convert the speficed argument to host endianness where neccesary.
*
* \param type The OSC type of the data item (eg. LO_FLOAT).
* \param data A pointer to the data item to be converted. It is change
* in-place.
*/
void lo_arg_host_endian(lo_type type, void *data);
/**
* \brief Create a new server instance. * \brief Create a new server instance.
* *
* lo_servers block until they receive OSC messages. if you want non-blocki ng * lo_servers block until they receive OSC messages. if you want non-blocki ng
* behaviour see the lo_server_thread_* functions. * behaviour see the lo_server_thread_* functions.
* *
* \param port If NULL is passed then an unused UDP port will be chosen by the * \param port If NULL is passed then an unused UDP port will be chosen by the
* system, its number may be retreived with lo_server_thread_get_port() * system, its number may be retreived with lo_server_thread_get_port()
* so it can be passed to clients. Otherwise a decimal port number, service * so it can be passed to clients. Otherwise a decimal port number, service
* name or UNIX domain socket path may be passed. * name or UNIX domain socket path may be passed.
* \param err_h An error callback function that will be called if there is an * \param err_h An error callback function that will be called if there is an
skipping to change at line 390 skipping to change at line 485
* If using UNIX domain sockets then a socket path should be passed here. * If using UNIX domain sockets then a socket path should be passed here.
* \param proto The protocol to use, should be one of LO_UDP, LO_TCP or LO_ UNIX. * \param proto The protocol to use, should be one of LO_UDP, LO_TCP or LO_ UNIX.
* \param err_h An error callback function that will be called if there is an * \param err_h An error callback function that will be called if there is an
* error in messge reception or server creation. Pass NULL if you do not wa nt * error in messge reception or server creation. Pass NULL if you do not wa nt
* error handling. * error handling.
*/ */
lo_server lo_server_new_with_proto(const char *port, int proto, lo_server lo_server_new_with_proto(const char *port, int proto,
lo_err_handler err_h); lo_err_handler err_h);
/** /**
* \brief Create a new server instance, and join a UDP multicast group.
*
* \param 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
* \param port If using UDP then NULL may be passed to find an unused port.
* Otherwise a decimal port number or service name or may be passed.
* If using UNIX domain sockets then a socket path should be passed here.
* \param err_h An error callback function that will be called if there is
an
* error in messge reception or server creation. Pass NULL if you do not wa
nt
* error handling.
*/
lo_server lo_server_new_multicast(const char *group, const char *port,
lo_err_handler err_h);
/**
* \brief Free up memory used by the lo_server object * \brief Free up memory used by the lo_server object
*/ */
void lo_server_free(lo_server s); void lo_server_free(lo_server s);
/** /**
* \brief Look for an OSC message waiting to be received * \brief Look for an OSC message waiting to be received
* *
* \param s The server to wait for connections on. * \param s The server to wait for connections on.
* \param timeout A timeout in milliseconds to wait for the incoming packet . * \param timeout A timeout in milliseconds to wait for the incoming packet .
* a value of 0 will return immediatly. * a value of 0 will return immediatly.
 End of changes. 12 change blocks. 
18 lines changed or deleted 141 lines changed or added


 lo_macros.h   lo_macros.h 
skipping to change at line 14 skipping to change at line 14
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* $Id: lo_macros.h 75 2007-03-08 19:01:44Z nhumfrey $ * $Id$
*/ */
#ifndef LO_MACROS_H #ifndef LO_MACROS_H
#define LO_MACROS_H #define LO_MACROS_H
/* macros that have to be defined after function signatures */ /* macros that have to be defined after function signatures */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
skipping to change at line 41 skipping to change at line 41
*/ */
#define LO_DEFAULT 0x0 #define LO_DEFAULT 0x0
#define LO_UDP 0x1 #define LO_UDP 0x1
#define LO_UNIX 0x2 #define LO_UNIX 0x2
#define LO_TCP 0x4 #define LO_TCP 0x4
/* an internal value, ignored in transmission but check against LO_MARKER i n the /* an internal value, ignored in transmission but check against LO_MARKER i n the
* argument list. Used to do primitive bounds checking */ * argument list. Used to do primitive bounds checking */
#define LO_MARKER_A 0xdeadbeef #define LO_MARKER_A 0xdeadbeef
#define LO_MARKER_B 0xf00baa23 #define LO_MARKER_B 0xf00baa23
#define LO_ARGS_END LO_MARKER_A, LO_MARKER_B
#define lo_message_add(msg, types...) \
lo_message_add_internal(msg, __FILE__, __LINE__, types, \
LO_MARKER_A, LO_MARKER_B)
#define lo_message_add_varargs(msg, types, list) \
lo_message_add_varargs_internal(msg, types, list, __FILE__, __LINE_
_)
#define lo_send(targ, path, types...) \ #define lo_send(targ, path, types...) \
lo_send_internal(targ, __FILE__, __LINE__, path, types, \ lo_send_internal(targ, __FILE__, __LINE__, path, types, \
LO_MARKER_A, LO_MARKER_B) LO_MARKER_A, LO_MARKER_B)
#define lo_send_timestamped(targ, ts, path, types...) \ #define lo_send_timestamped(targ, ts, path, types...) \
lo_send_timestamped_internal(targ, __FILE__, __LINE__, ts, path, \ lo_send_timestamped_internal(targ, __FILE__, __LINE__, ts, path, \
types, LO_MARKER_A, LO_MARKER_B) types, LO_MARKER_A, LO_MARKER_B)
#define lo_send_from(targ, from, ts, path, types...) \ #define lo_send_from(targ, from, ts, path, types...) \
 End of changes. 2 change blocks. 
1 lines changed or deleted 10 lines changed or added


 lo_osc_types.h   lo_osc_types.h 
skipping to change at line 14 skipping to change at line 14
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* $Id: lo_osc_types.h 60 2005-12-13 21:31:04Z nhumfrey $ * $Id$
*/ */
#ifndef LO_OSC_TYPES_H #ifndef LO_OSC_TYPES_H
#define LO_OSC_TYPES_H #define LO_OSC_TYPES_H
#include <stdint.h> #include <stdint.h>
/** /**
* \addtogroup liblo * \addtogroup liblo
* @{ * @{
*/ */
/** /**
* \brief A structure to store OSC TimeTag values. * \brief A structure to store OSC TimeTag values.
*/ */
typedef struct { typedef struct {
/** The number of seconds since Jan 1st 1900 in the UTC timezone. */ /** The number of seconds since Jan 1st 1900 in the UTC timezone. */
uint32_t sec; uint32_t sec;
/** The fractions of a second offset from obove, expressed as 1/2^32 nds /** The fractions of a second offset from above, expressed as 1/2^32 nds
* of a second */ * of a second */
uint32_t frac; uint32_t frac;
} lo_timetag; } lo_timetag;
/** /**
* \brief An enumeration of the OSC types liblo can send and receive. * \brief 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 * The value of the enumeration is the typechar used to tag messages and to
* specify arguemnts with lo_send(). * specify arguemnts with lo_send().
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 lo_throw.h   lo_throw.h 
skipping to change at line 14 skipping to change at line 14
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* $Id: lo_throw.h 2 2004-08-07 22:20:58Z theno23 $ * $Id$
*/ */
#ifndef LO_THROW_H #ifndef LO_THROW_H
#define LO_THROW_H #define LO_THROW_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
void lo_throw(lo_server s, int errnum, const char *message, const char *pat h); void lo_throw(lo_server s, int errnum, const char *message, const char *pat h);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 lo_types.h   lo_types.h 
skipping to change at line 14 skipping to change at line 14
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* $Id: lo_types.h 40 2005-04-25 21:46:47Z xovo $ * $Id$
*/ */
#ifndef LO_TYPES_H #ifndef LO_TYPES_H
#define LO_TYPES_H #define LO_TYPES_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifdef WIN32 #ifdef WIN32
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/