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
|