annotate trunk/external/oscpack/README @ 706:f8e90b5d85fd tip

Delete CARFAC code from this repository. It has been moved to https://github.com/google/carfac Please email me with your github username to get access. I've also created a new mailing list to discuss CARFAC development: https://groups.google.com/forum/#!forum/carfac-dev
author ronw@google.com
date Thu, 18 Jul 2013 20:56:51 +0000
parents 4b37b53105a3
children
rev   line source
tomwalters@570 1 oscpack -- Open Sound Control packet manipulation library
tomwalters@570 2 http://www.audiomulch.com/~rossb/code/oscpack
tomwalters@570 3
tomwalters@570 4 Copyright (c) 2004-2005 Ross Bencina <rossb@audiomulch.com>
tomwalters@570 5
tomwalters@570 6 A simple C++ library for packing and unpacking OSC packets.
tomwalters@570 7
tomwalters@570 8
tomwalters@570 9 Oscpack is simply a set of C++ classes for packing and unpacking OSC packets.
tomwalters@570 10 Oscpack includes a minimal set of UDP networking classes for windows and posix
tomwalters@570 11 which are sufficient for writing many OSC applications and servers, but you are
tomwalters@570 12 encouraged to use another networking framework if it better suits your needs.
tomwalters@570 13 Oscpack is not an OSC application framework, it doesn't include infrastructure for
tomwalters@570 14 constructing or routing OSC namespaces, just classes for easily constructing,
tomwalters@570 15 sending, receiving and parsing OSC packets. The library should also be easy to use
tomwalters@570 16 for other transport methods (eg serial).
tomwalters@570 17
tomwalters@570 18 The key goals of the oscpack library are:
tomwalters@570 19
tomwalters@570 20 - to be a simple and complete implementation of OSC
tomwalters@570 21 - to be portable to a wide variety of platforms
tomwalters@570 22 - to allow easy development of robust OSC applications
tomwalters@570 23 (for example it should be impossible to crash a server
tomwalters@570 24 by sending it malformed packets, and difficult to
tomwalters@570 25 create malformed packets.)
tomwalters@570 26
tomwalters@570 27 Here's a summary of the key files:
tomwalters@570 28
tomwalters@570 29 osc/OscReceivedElements -- classes for parsing a packet
tomwalters@570 30 osc/OscPrintRecievedElements -- iostream << operators for printing packet elements
tomwalters@570 31 osc/OscOutboundPacket -- a class for packing messages into a packet
tomwalters@570 32 osc/OscPacketListener -- base class for listening to OSC packets on a UdpSocket
tomwalters@570 33 tests/OscUnitTests -- unit test program for the OSC modules
tomwalters@570 34 tests/OscSendTests -- examples of how to send messages
tomwalters@570 35 tests/OscReceiveTest -- example of how to receive the messages sent by OSCSendTests
tomwalters@570 36 examples/OscDump -- a program that prints received OSC packets
tomwalters@570 37
tomwalters@570 38
tomwalters@570 39
tomwalters@570 40 Building
tomwalters@570 41 --------
tomwalters@570 42
tomwalters@570 43 In general the idea is that you will embed this source code in your projects as you
tomwalters@570 44 see fit. The Makefile has an install rule for building a shared library and
tomwalters@570 45 installing headers in usr/local.
tomwalters@570 46
tomwalters@570 47 The Makefile works for Linux and MaxOS X except that if you are on a big endian
tomwalters@570 48 machine such as PowerPC Macintosh you need to edit the line which sets the
tomwalters@570 49 endianness to OSC_HOST_BIG_ENDIAN (see the makefile comment for details) or it won't
tomwalters@570 50 work. If you want to build and install liboscpack as a library on OS X you also need
tomwalters@570 51 to edit the $(LIBFILENAME) rule by commenting out the Linux case and uncommenting
tomwalters@570 52 the OS X case since OS X uses different gcc flags for shared libraries.
tomwalters@570 53
tomwalters@570 54 On Windows there is a batch file for doing a simple test build with MinGW gcc called
tomwalters@570 55 make.MinGW32.bat. This will build the test executables and oscdump in ./bin and run
tomwalters@570 56 the unit tests.
tomwalters@570 57
tomwalters@570 58 --
tomwalters@570 59
tomwalters@570 60
tomwalters@570 61 If you fix anything or write a set of TCP send/recieve classes
tomwalters@570 62 please consider sending me a patch. Thanks :)
tomwalters@570 63
tomwalters@570 64 For more information about Open Sound Control, see:
tomwalters@570 65 http://www.cnmat.berkeley.edu/OpenSoundControl/
tomwalters@570 66
tomwalters@570 67
tomwalters@570 68 Thanks to Till Bovermann for helping with POSIX networking code and
tomwalters@570 69 Mac compatibility, and to Martin Kaltenbrunner and the rest of the
tomwalters@570 70 reacTable team for giving me a reason to finish this library. Thanks
tomwalters@570 71 to Merlijn Blaauw for reviewing the interfaces. Thanks to Xavier Oliver
tomwalters@570 72 for additional help with Linux builds and POSIX implementation details.
tomwalters@570 73
tomwalters@570 74 Portions developed at the Music Technology Group, Audiovisual Institute,
tomwalters@570 75 University Pompeu Fabra, Barcelona, during my stay as a visiting
tomwalters@570 76 researcher, November 2004 - September 2005.
tomwalters@570 77
tomwalters@570 78 See the file LICENSE for information about distributing and using this code.
tomwalters@570 79
tomwalters@570 80