| 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_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 | |
|