Menu

Tree [c1a51b] master 0.32 /
 History

HTTPS access


File Date Author Commit
 .github 2024-01-12 Johannes Lorenz Johannes Lorenz [516277] CMake: enable testing
 build 2020-04-15 Stephen Sinclair Stephen Sinclair [928fda] Updated Android build script.
 cmake 2024-02-07 Nicolas Bats Nicolas Bats [7abb04] Update CMakeLists.txt
 doc 2024-02-16 Stephen Sinclair Stephen Sinclair [8a1cc7] Add use of doxygen-awesome-css look for docs.
 examples 2020-08-30 Stephen Sinclair Stephen Sinclair [efea90] Add support for pattern matching in method names.
 lo 2024-01-12 Jean-Michaël Celerier Jean-Michaël Celerier [9efdb8] [cpp] Fix that del_method did not actually dele...
 src 2024-01-12 Johannes Lorenz Johannes Lorenz [eff21b] Various Windows fixes
 .gitignore 2016-02-11 Patric Schmitz Patric Schmitz [df4491] use / prefix in gitignore to denote toplevel paths
 AUTHORS 2024-02-16 Stephen Sinclair Stephen Sinclair [c1a51b] Release 0.32.
 COPYING 2008-09-04 radarsat1 radarsat1 [1b865a] With permission of all authors, the license of ...
 ChangeLog 2024-02-16 Stephen Sinclair Stephen Sinclair [c1a51b] Release 0.32.
 INSTALL 2004-08-07 theno23 theno23 [e68bc5] Initial revision
 Makefile.am 2017-08-11 Stephen Sinclair Stephen Sinclair [965c62] Add CMake files to make dist target.
 NEWS 2024-02-16 Stephen Sinclair Stephen Sinclair [c1a51b] Release 0.32.
 README.md 2024-02-16 Stephen Sinclair Stephen Sinclair [e67753] Update links in README.
 TODO 2017-08-11 Stephen Sinclair Stephen Sinclair [901c6f] Update version to 0.29 and update LO_SO_VERSION...
 autogen.sh 2013-08-19 Stephen Sinclair Stephen Sinclair [aa9068] Add an option '--no-configure' to autogen.sh.
 configure.ac 2024-02-16 Stephen Sinclair Stephen Sinclair [c1a51b] Release 0.32.
 liblo.pc.in 2012-03-05 radarsat1 radarsat1 [6dc09d] Don't add "-lpthread" to dependencies unless it...

Read Me

liblo

liblo is a lightweight library that provides an easy to use implementation of
the OSC protocol. For more information about the OSC protocol, please see:

The official liblo homepage is here:

liblo is portable to most UNIX systems (including OS X) and
Windows. It is released under the GNU Lesser General Public Licence
(LGPL) v2.1 or later. See COPYING for details.

Building

To build and install liblo, read INSTALL in the main liblo directory.
liblo is configured as a dynamically-linked library. To use liblo in a
new application, after

configure

you should install liblo with

make install

so that the liblo library can be located by your application.

To build with MS Visual Studio on Windows, please use CMake as
described next. See build/README.md for more details.

Building with CMake

If you prefer the CMake build system, support has been added. Instead
of the configure step listed in the previous section, create a build
directory and initialize CMake:

mkdir ~/build/liblo
cmake ~/source/liblo/cmake <more options..>
make

Examples

See examples for example source code for a simple client and two
servers:

  • example_server.c uses lo_server_thread_start() to create a liblo server in an separate thread.

  • nonblocking_server_example.c uses select() to wait for either console input or OSC messages, all in a single thread.

  • example_client.c uses liblo to send OSC messages to a server.

These examples will work without installing liblo. This is
accomplished by a shell script. For example, examples/client_example
is a shell script that runs the "real" program
examples/.libs/example_client. Because of this indirection, you
cannot run example_client with a debugger.

Debugging

To debug applications using liblo, one option is to include all the
liblo source code in the application rather than linking with the
liblo library. For more information about this, please see the
(libtool manual)[1]

To compile liblo with debugging flags, use,

./configure --enable-debug

IPv6 NOTICE

liblo was written to support both IPv4 and IPv6, however it has caused
various problems along the way because most of the currently available
OSC applications like Pd and SuperCollider don't listen on IPv6
sockets. IPv6 is currently disabled by default, but you can enable it
using

./configure --enable-ipv6