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