summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2015-12-31 03:34:08 +0100
committerDavid Runge <dave@sleepmap.de>2015-12-31 03:34:08 +0100
commit589e6c881bd2cf11e8615e9c1bf8cb4012293bad (patch)
tree407d617ed861a61d64e64f7d581052f90b10e981
parent6a713ba6966eee4cf7bb9fb9e1513918fc94b528 (diff)
downloadprocessing-sketchbook-589e6c881bd2cf11e8615e9c1bf8cb4012293bad.tar.gz
processing-sketchbook-589e6c881bd2cf11e8615e9c1bf8cb4012293bad.tar.bz2
processing-sketchbook-589e6c881bd2cf11e8615e9c1bf8cb4012293bad.tar.xz
processing-sketchbook-589e6c881bd2cf11e8615e9c1bf8cb4012293bad.zip
libraries/oscP5: Adding oscP5 library for OSC capabilities.
-rw-r--r--libraries/oscP5/examples/oscP5broadcastClient/oscP5broadcastClient.pde73
-rw-r--r--libraries/oscP5/examples/oscP5broadcastTester/oscP5broadcastTester.pde27
-rw-r--r--libraries/oscP5/examples/oscP5broadcaster/oscP5broadcaster.pde73
-rw-r--r--libraries/oscP5/examples/oscP5bundle/oscP5bundle.pde69
-rw-r--r--libraries/oscP5/examples/oscP5flush/oscP5flush.pde38
-rw-r--r--libraries/oscP5/examples/oscP5message/oscP5message.pde55
-rw-r--r--libraries/oscP5/examples/oscP5multicast/oscP5multicast.pde51
-rw-r--r--libraries/oscP5/examples/oscP5oscArgument/oscP5oscArgument.pde45
-rw-r--r--libraries/oscP5/examples/oscP5parsing/oscP5parsing.pde65
-rw-r--r--libraries/oscP5/examples/oscP5plug/oscP5plug.pde82
-rw-r--r--libraries/oscP5/examples/oscP5properties/oscP5properties.pde72
-rw-r--r--libraries/oscP5/examples/oscP5sendReceive/oscP5sendReceive.pde51
-rw-r--r--libraries/oscP5/examples/oscP5tcp/oscP5tcp.pde59
-rw-r--r--libraries/oscP5/library.properties44
-rw-r--r--libraries/oscP5/library/oscP5.jarbin0 -> 52021 bytes
-rw-r--r--libraries/oscP5/reference/allclasses-frame.html99
-rw-r--r--libraries/oscP5/reference/allclasses-noframe.html99
-rw-r--r--libraries/oscP5/reference/constant-values.html446
-rw-r--r--libraries/oscP5/reference/deprecated-list.html229
-rw-r--r--libraries/oscP5/reference/help-doc.html217
-rw-r--r--libraries/oscP5/reference/index-all.html1692
-rw-r--r--libraries/oscP5/reference/index.html39
-rw-r--r--libraries/oscP5/reference/netP5/AbstractMulticast.html560
-rw-r--r--libraries/oscP5/reference/netP5/AbstractTcpClient.html869
-rw-r--r--libraries/oscP5/reference/netP5/AbstractTcpServer.html675
-rw-r--r--libraries/oscP5/reference/netP5/AbstractUdpClient.html408
-rw-r--r--libraries/oscP5/reference/netP5/AbstractUdpServer.html440
-rw-r--r--libraries/oscP5/reference/netP5/Bytes.html906
-rw-r--r--libraries/oscP5/reference/netP5/Logger.html613
-rw-r--r--libraries/oscP5/reference/netP5/Multicast.html428
-rw-r--r--libraries/oscP5/reference/netP5/NetAddress.html422
-rw-r--r--libraries/oscP5/reference/netP5/NetAddressList.html460
-rw-r--r--libraries/oscP5/reference/netP5/NetInfo.html334
-rw-r--r--libraries/oscP5/reference/netP5/NetListener.html223
-rw-r--r--libraries/oscP5/reference/netP5/NetMessage.html386
-rw-r--r--libraries/oscP5/reference/netP5/NetP5.html274
-rw-r--r--libraries/oscP5/reference/netP5/NetStatus.html434
-rw-r--r--libraries/oscP5/reference/netP5/StringUtils.html1008
-rw-r--r--libraries/oscP5/reference/netP5/TcpClient.html473
-rw-r--r--libraries/oscP5/reference/netP5/TcpPacket.html311
-rw-r--r--libraries/oscP5/reference/netP5/TcpPacketListener.html247
-rw-r--r--libraries/oscP5/reference/netP5/TcpServer.html463
-rw-r--r--libraries/oscP5/reference/netP5/UdpClient.html266
-rw-r--r--libraries/oscP5/reference/netP5/UdpPacketListener.html213
-rw-r--r--libraries/oscP5/reference/netP5/UdpServer.html411
-rw-r--r--libraries/oscP5/reference/netP5/package-frame.html85
-rw-r--r--libraries/oscP5/reference/netP5/package-summary.html255
-rw-r--r--libraries/oscP5/reference/netP5/package-tree.html172
-rw-r--r--libraries/oscP5/reference/oscP5/OscArgument.html1160
-rw-r--r--libraries/oscP5/reference/oscP5/OscBundle.html765
-rw-r--r--libraries/oscP5/reference/oscP5/OscEventListener.html223
-rw-r--r--libraries/oscP5/reference/oscP5/OscIn.html434
-rw-r--r--libraries/oscP5/reference/oscP5/OscMessage.html1447
-rw-r--r--libraries/oscP5/reference/oscP5/OscNetManager.html760
-rw-r--r--libraries/oscP5/reference/oscP5/OscP5.html1807
-rw-r--r--libraries/oscP5/reference/oscP5/OscPacket.html357
-rw-r--r--libraries/oscP5/reference/oscP5/OscPatcher.html192
-rw-r--r--libraries/oscP5/reference/oscP5/OscPlug.html393
-rw-r--r--libraries/oscP5/reference/oscP5/OscProperties.html799
-rw-r--r--libraries/oscP5/reference/oscP5/OscStatus.html448
-rw-r--r--libraries/oscP5/reference/oscP5/package-frame.html63
-rw-r--r--libraries/oscP5/reference/oscP5/package-summary.html211
-rw-r--r--libraries/oscP5/reference/oscP5/package-tree.html164
-rw-r--r--libraries/oscP5/reference/overview-frame.html44
-rw-r--r--libraries/oscP5/reference/overview-summary.html158
-rw-r--r--libraries/oscP5/reference/overview-tree.html179
-rw-r--r--libraries/oscP5/reference/package-list2
-rw-r--r--libraries/oscP5/reference/resources/inherit.gifbin0 -> 57 bytes
-rw-r--r--libraries/oscP5/reference/stylesheet.css310
-rw-r--r--libraries/oscP5/src/netP5/AbstractMulticast.java337
-rw-r--r--libraries/oscP5/src/netP5/AbstractTcpClient.java491
-rw-r--r--libraries/oscP5/src/netP5/AbstractTcpServer.java317
-rw-r--r--libraries/oscP5/src/netP5/AbstractUdpClient.java199
-rw-r--r--libraries/oscP5/src/netP5/AbstractUdpServer.java271
-rw-r--r--libraries/oscP5/src/netP5/Bytes.java470
-rw-r--r--libraries/oscP5/src/netP5/Logger.java153
-rw-r--r--libraries/oscP5/src/netP5/Multicast.java116
-rw-r--r--libraries/oscP5/src/netP5/NetAddress.java130
-rw-r--r--libraries/oscP5/src/netP5/NetAddressList.java169
-rw-r--r--libraries/oscP5/src/netP5/NetInfo.java154
-rw-r--r--libraries/oscP5/src/netP5/NetListener.java34
-rw-r--r--libraries/oscP5/src/netP5/NetMessage.java148
-rw-r--r--libraries/oscP5/src/netP5/NetP5.java55
-rw-r--r--libraries/oscP5/src/netP5/NetPlug.java222
-rw-r--r--libraries/oscP5/src/netP5/NetStatus.java65
-rw-r--r--libraries/oscP5/src/netP5/StringUtils.java705
-rw-r--r--libraries/oscP5/src/netP5/TcpClient.java214
-rw-r--r--libraries/oscP5/src/netP5/TcpPacket.java67
-rw-r--r--libraries/oscP5/src/netP5/TcpPacketListener.java38
-rw-r--r--libraries/oscP5/src/netP5/TcpServer.java177
-rw-r--r--libraries/oscP5/src/netP5/UdpClient.java49
-rw-r--r--libraries/oscP5/src/netP5/UdpPacketListener.java41
-rw-r--r--libraries/oscP5/src/netP5/UdpServer.java151
-rw-r--r--libraries/oscP5/src/oscP5/OscArgument.java228
-rw-r--r--libraries/oscP5/src/oscP5/OscBundle.java189
-rw-r--r--libraries/oscP5/src/oscP5/OscEventListener.java37
-rw-r--r--libraries/oscP5/src/oscP5/OscIn.java89
-rw-r--r--libraries/oscP5/src/oscP5/OscMessage.java764
-rw-r--r--libraries/oscP5/src/oscP5/OscNetManager.java386
-rw-r--r--libraries/oscP5/src/oscP5/OscP5.java991
-rw-r--r--libraries/oscP5/src/oscP5/OscPacket.java143
-rw-r--r--libraries/oscP5/src/oscP5/OscPatcher.java245
-rw-r--r--libraries/oscP5/src/oscP5/OscPlug.java258
-rw-r--r--libraries/oscP5/src/oscP5/OscProperties.java319
-rw-r--r--libraries/oscP5/src/oscP5/OscStatus.java63
105 files changed, 33362 insertions, 0 deletions
diff --git a/libraries/oscP5/examples/oscP5broadcastClient/oscP5broadcastClient.pde b/libraries/oscP5/examples/oscP5broadcastClient/oscP5broadcastClient.pde
new file mode 100644
index 0000000..56fb843
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5broadcastClient/oscP5broadcastClient.pde
@@ -0,0 +1,73 @@
+/**
+ * oscP5broadcastClient by andreas schlegel
+ * an osc broadcast client.
+ * an example for broadcast server is located in the oscP5broadcaster exmaple.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+
+OscP5 oscP5;
+
+/* a NetAddress contains the ip address and port number of a remote location in the network. */
+NetAddress myBroadcastLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+
+ /* create a new instance of oscP5.
+ * 12000 is the port number you are listening for incoming osc messages.
+ */
+ oscP5 = new OscP5(this,12000);
+
+ /* create a new NetAddress. a NetAddress is used when sending osc messages
+ * with the oscP5.send method.
+ */
+
+ /* the address of the osc broadcast server */
+ myBroadcastLocation = new NetAddress("127.0.0.1",32000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new OscMessage with an address pattern, in this case /test. */
+ OscMessage myOscMessage = new OscMessage("/test");
+ /* add a value (an integer) to the OscMessage */
+ myOscMessage.add(100);
+ /* send the OscMessage to a remote location specified in myNetAddress */
+ oscP5.send(myOscMessage, myBroadcastLocation);
+}
+
+
+void keyPressed() {
+ OscMessage m;
+ switch(key) {
+ case('c'):
+ /* connect to the broadcaster */
+ m = new OscMessage("/server/connect",new Object[0]);
+ oscP5.flush(m,myBroadcastLocation);
+ break;
+ case('d'):
+ /* disconnect from the broadcaster */
+ m = new OscMessage("/server/disconnect",new Object[0]);
+ oscP5.flush(m,myBroadcastLocation);
+ break;
+
+ }
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* get and print the address pattern and the typetag of the received OscMessage */
+ println("### received an osc message with addrpattern "+theOscMessage.addrPattern()+" and typetag "+theOscMessage.typetag());
+ theOscMessage.print();
+}
diff --git a/libraries/oscP5/examples/oscP5broadcastTester/oscP5broadcastTester.pde b/libraries/oscP5/examples/oscP5broadcastTester/oscP5broadcastTester.pde
new file mode 100644
index 0000000..440e7cd
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5broadcastTester/oscP5broadcastTester.pde
@@ -0,0 +1,27 @@
+import controlP5.*;
+
+
+ControlP5 controlP5;
+
+int myColorBackground = color(0,0,0);
+
+int knobValue = 100;
+
+void setup() {
+ size(400,400);
+ smooth();
+ controlP5 = new ControlP5(this);
+ controlP5.addKnob("knob",100,200,128,100,160,40);
+ controlP5.addKnob("knobValue",0,255,128,100,240,40);
+}
+
+void draw() {
+ background(myColorBackground);
+ fill(knobValue);
+ rect(0,0,width,100);
+}
+
+void knob(int theColor) {
+ myColorBackground = color(theColor);
+ println("a knob event. setting background to "+theColor);
+}
diff --git a/libraries/oscP5/examples/oscP5broadcaster/oscP5broadcaster.pde b/libraries/oscP5/examples/oscP5broadcaster/oscP5broadcaster.pde
new file mode 100644
index 0000000..1cbd638
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5broadcaster/oscP5broadcaster.pde
@@ -0,0 +1,73 @@
+/**
+ * oscP5broadcaster by andreas schlegel
+ * an osc broadcast server.
+ * osc clients can connect to the server by sending a connect and
+ * disconnect osc message as defined below to the server.
+ * incoming messages at the server will then be broadcasted to
+ * all connected clients.
+ * an example for a client is located in the oscP5broadcastClient exmaple.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddressList myNetAddressList = new NetAddressList();
+/* listeningPort is the port the server is listening for incoming messages */
+int myListeningPort = 32000;
+/* the broadcast port is the port the clients should listen for incoming messages from the server*/
+int myBroadcastPort = 12000;
+
+String myConnectPattern = "/server/connect";
+String myDisconnectPattern = "/server/disconnect";
+
+
+void setup() {
+ oscP5 = new OscP5(this, myListeningPort);
+ frameRate(25);
+}
+
+void draw() {
+ background(0);
+}
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if the address pattern fits any of our patterns */
+ if (theOscMessage.addrPattern().equals(myConnectPattern)) {
+ connect(theOscMessage.netAddress().address());
+ }
+ else if (theOscMessage.addrPattern().equals(myDisconnectPattern)) {
+ disconnect(theOscMessage.netAddress().address());
+ }
+ /**
+ * if pattern matching was not successful, then broadcast the incoming
+ * message to all addresses in the netAddresList.
+ */
+ else {
+ oscP5.send(theOscMessage, myNetAddressList);
+ }
+}
+
+
+ private void connect(String theIPaddress) {
+ if (!myNetAddressList.contains(theIPaddress, myBroadcastPort)) {
+ myNetAddressList.add(new NetAddress(theIPaddress, myBroadcastPort));
+ println("### adding "+theIPaddress+" to the list.");
+ } else {
+ println("### "+theIPaddress+" is already connected.");
+ }
+ println("### currently there are "+myNetAddressList.list().size()+" remote locations connected.");
+ }
+
+
+
+private void disconnect(String theIPaddress) {
+if (myNetAddressList.contains(theIPaddress, myBroadcastPort)) {
+ myNetAddressList.remove(theIPaddress, myBroadcastPort);
+ println("### removing "+theIPaddress+" from the list.");
+ } else {
+ println("### "+theIPaddress+" is not connected.");
+ }
+ println("### currently there are "+myNetAddressList.list().size());
+ }
diff --git a/libraries/oscP5/examples/oscP5bundle/oscP5bundle.pde b/libraries/oscP5/examples/oscP5bundle/oscP5bundle.pde
new file mode 100644
index 0000000..a747db2
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5bundle/oscP5bundle.pde
@@ -0,0 +1,69 @@
+/**
+ * oscP5bundle by andreas schlegel
+ * an osc broadcast server.
+ * example shows how to create and send osc bundles.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create an osc bundle */
+ OscBundle myBundle = new OscBundle();
+
+ /* createa new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+ myMessage.add("abc");
+
+ /* add an osc message to the osc bundle */
+ myBundle.add(myMessage);
+
+ /* reset and clear the myMessage object for refill. */
+ myMessage.clear();
+
+ /* refill the osc message object again */
+ myMessage.setAddrPattern("/test2");
+ myMessage.add("defg");
+ myBundle.add(myMessage);
+
+ myBundle.setTimetag(myBundle.now() + 10000);
+ /* send the osc bundle, containing 2 osc messages, to a remote location. */
+ oscP5.send(myBundle, myRemoteLocation);
+}
+
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ print(" typetag: "+theOscMessage.typetag());
+ println(" timetag: "+theOscMessage.timetag());
+}
diff --git a/libraries/oscP5/examples/oscP5flush/oscP5flush.pde b/libraries/oscP5/examples/oscP5flush/oscP5flush.pde
new file mode 100644
index 0000000..e6e8147
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5flush/oscP5flush.pde
@@ -0,0 +1,38 @@
+ /**
+ * oscP5flush by andreas schlegel
+ * example shows how to send osc messages without having to instantiate an oscP5 object.
+ * this can be useful if you are not listening for incoming messages and you
+ * want to avoid to have the additional oscP5 thread running listening for incoming
+ * message (which you wont need if you are only sending messages).
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+
+NetAddress myRemoteLocation;
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* set up a remote location */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new OscMessage with an address pattern, in this case /test. */
+ OscMessage myOscMessage = new OscMessage("/test");
+
+ /* add a value (an integer) to the OscMessage */
+ myOscMessage.add(100);
+
+ /* send the OscMessage to the remote location.
+ */
+ OscP5.flush(myOscMessage,myRemoteLocation);
+}
diff --git a/libraries/oscP5/examples/oscP5message/oscP5message.pde b/libraries/oscP5/examples/oscP5message/oscP5message.pde
new file mode 100644
index 0000000..b19f38f
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5message/oscP5message.pde
@@ -0,0 +1,55 @@
+/**
+ * oscP5message by andreas schlegel
+ * example shows how to create osc messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+void mousePressed() {
+ /* in the following different ways of creating osc messages are shown by example */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+ myMessage.add(new byte[] {0x00, 0x01, 0x10, 0x20}); /* add a byte blob to the osc message */
+ myMessage.add(new int[] {1,2,3,4}); /* add an int array to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ println(" typetag: "+theOscMessage.typetag());
+}
diff --git a/libraries/oscP5/examples/oscP5multicast/oscP5multicast.pde b/libraries/oscP5/examples/oscP5multicast/oscP5multicast.pde
new file mode 100644
index 0000000..26d6dc1
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5multicast/oscP5multicast.pde
@@ -0,0 +1,51 @@
+/**
+ * oscP5multicast by andreas schlegel
+ * example shows how to send osc via a multicast socket.
+ * what is a multicast? http://en.wikipedia.org/wiki/Multicast
+ * ip multicast ranges and uses:
+ * 224.0.0.0 - 224.0.0.255 Reserved for special Òwell-knownÓ multicast addresses.
+ * 224.0.1.0 - 238.255.255.255 Globally-scoped (Internet-wide) multicast addresses.
+ * 239.0.0.0 - 239.255.255.255 Administratively-scoped (local) multicast addresses.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* create a new instance of oscP5 using a multicast socket. */
+ oscP5 = new OscP5(this,"239.0.0.1",7777);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new OscMessage with an address pattern, in this case /test. */
+ OscMessage myOscMessage = new OscMessage("/test");
+
+ /* add a value (an integer) to the OscMessage */
+ myOscMessage.add(100);
+
+ /* send the OscMessage to the multicast group.
+ * the multicast group netAddress is the default netAddress, therefore
+ * you dont need to specify a NetAddress to send the osc message.
+ */
+ oscP5.send(myOscMessage);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ println(" typetag: "+theOscMessage.typetag());
+}
diff --git a/libraries/oscP5/examples/oscP5oscArgument/oscP5oscArgument.pde b/libraries/oscP5/examples/oscP5oscArgument/oscP5oscArgument.pde
new file mode 100644
index 0000000..dd67ff0
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5oscArgument/oscP5oscArgument.pde
@@ -0,0 +1,45 @@
+/**
+ * oscP5oscArgument by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an alternative way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+ /* send an OSC message to this sketch */
+ oscP5.send("/test",new Object[] {new Integer("1"), new Float(2.0),"test string."}, myRemoteLocation);
+
+}
+
+void draw() {
+ background(0);
+}
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue(); // get the first osc argument
+ float secondValue = theOscMessage.get(1).floatValue(); // get the second osc argument
+ String thirdValue = theOscMessage.get(2).stringValue(); // get the third osc argument
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+
+ theOscMessage.addrPattern()+" typetag "+ theOscMessage.typetag());
+}
diff --git a/libraries/oscP5/examples/oscP5parsing/oscP5parsing.pde b/libraries/oscP5/examples/oscP5parsing/oscP5parsing.pde
new file mode 100644
index 0000000..abb035d
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5parsing/oscP5parsing.pde
@@ -0,0 +1,65 @@
+/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
diff --git a/libraries/oscP5/examples/oscP5plug/oscP5plug.pde b/libraries/oscP5/examples/oscP5plug/oscP5plug.pde
new file mode 100644
index 0000000..5b72973
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5plug/oscP5plug.pde
@@ -0,0 +1,82 @@
+/**
+ * oscP5plug by andreas schlegel
+ * example shows how to use the plug service with oscP5.
+ * the concept of the plug service is, that you can
+ * register methods in your sketch to which incoming
+ * osc messages will be forwareded automatically without
+ * having to parse them in the oscEvent method.
+ * that a look at the example below to get an understanding
+ * of how plug works.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+
+ /* osc plug service
+ * osc messages with a specific address pattern can be automatically
+ * forwarded to a specific method of an object. in this example
+ * a message with address pattern /test will be forwarded to a method
+ * test(). below the method test takes 2 arguments - 2 ints. therefore each
+ * message with address pattern /test and typetag ii will be forwarded to
+ * the method test(int theA, int theB)
+ */
+ oscP5.plug(this,"test","/test");
+}
+
+
+public void test(int theA, int theB) {
+ println("### plug event method. received a message /test.");
+ println(" 2 ints received: "+theA+", "+theB);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* createan osc message with address pattern /test */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(456); /* add a second int to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* with theOscMessage.isPlugged() you check if the osc message has already been
+ * forwarded to a plugged method. if theOscMessage.isPlugged()==true, it has already
+ * been forwared to another method in your sketch. theOscMessage.isPlugged() can
+ * be used for double posting but is not required.
+ */
+ if(theOscMessage.isPlugged()==false) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ println("### received an osc message.");
+ println("### addrpattern\t"+theOscMessage.addrPattern());
+ println("### typetag\t"+theOscMessage.typetag());
+ }
+}
diff --git a/libraries/oscP5/examples/oscP5properties/oscP5properties.pde b/libraries/oscP5/examples/oscP5properties/oscP5properties.pde
new file mode 100644
index 0000000..a0756fe
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5properties/oscP5properties.pde
@@ -0,0 +1,72 @@
+/**
+ * oscP5properities by andreas schlegel
+ * example shows how to use osc properties.
+ * if you need more specific settings for your osc session,
+ * osc properties serves your needs.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+
+ /* create a new osc properties object */
+ OscProperties properties = new OscProperties();
+
+ /* set a default NetAddress. sending osc messages with no NetAddress parameter
+ * in oscP5.send() will be sent to the default NetAddress.
+ */
+ properties.setRemoteAddress("127.0.0.1",12000);
+
+ /* the port number you are listening for incoming osc packets. */
+ properties.setListeningPort(12000);
+
+
+ /* Send Receive Same Port is an option where the sending and receiving port are the same.
+ * this is sometimes necessary for example when sending osc packets to supercolider server.
+ * while both port numbers are the same, the receiver can simply send an osc packet back to
+ * the host and port the message came from.
+ */
+ properties.setSRSP(OscProperties.ON);
+
+ /* set the datagram byte buffer size. this can be useful when you send/receive
+ * huge amounts of data, but keep in mind, that UDP is limited to 64k
+ */
+ properties.setDatagramSize(1024);
+
+ /* initialize oscP5 with our osc properties */
+ oscP5 = new OscP5(this,properties);
+
+ /* print your osc properties */
+ println(properties.toString());
+}
+
+
+
+void mousePressed() {
+ /* create a new osc message with address pattern /test */
+ OscMessage myMessage = new OscMessage("/test");
+ myMessage.add(200);
+
+ /* send the osc message to the default netAddress, set in the OscProperties above.*/
+ oscP5.send(myMessage);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ println(" typetag: "+theOscMessage.typetag());
+}
diff --git a/libraries/oscP5/examples/oscP5sendReceive/oscP5sendReceive.pde b/libraries/oscP5/examples/oscP5sendReceive/oscP5sendReceive.pde
new file mode 100644
index 0000000..0159a63
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5sendReceive/oscP5sendReceive.pde
@@ -0,0 +1,51 @@
+/**
+ * oscP5sendreceive by andreas schlegel
+ * example shows how to send and receive osc messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+void mousePressed() {
+ /* in the following different ways of creating osc messages are shown by example */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ println(" typetag: "+theOscMessage.typetag());
+}
diff --git a/libraries/oscP5/examples/oscP5tcp/oscP5tcp.pde b/libraries/oscP5/examples/oscP5tcp/oscP5tcp.pde
new file mode 100644
index 0000000..90ee312
--- /dev/null
+++ b/libraries/oscP5/examples/oscP5tcp/oscP5tcp.pde
@@ -0,0 +1,59 @@
+/**
+ * oscP5tcp by andreas schlegel
+ * example shows how to use the TCP protocol with oscP5.
+ * what is TCP? http://en.wikipedia.org/wiki/Transmission_Control_Protocol
+ * in this example both, a server and a client are used. typically
+ * this doesnt make sense as you usually wouldnt communicate with yourself
+ * over a network. therefore this example is only to make it easier to
+ * explain the concept of using tcp with oscP5.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+
+OscP5 oscP5tcpServer;
+
+OscP5 oscP5tcpClient;
+
+NetAddress myServerAddress;
+
+void setup() {
+ /* create an oscP5 instance using TCP listening @ port 11000 */
+ oscP5tcpServer = new OscP5(this, 11000, OscP5.TCP);
+
+ /* create an oscP5 instance using TCP.
+ * the remote address is 127.0.0.1 @ port 11000 = the server from above
+ */
+ oscP5tcpClient = new OscP5(this, "127.0.0.1", 11000, OscP5.TCP);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* the tcp client sends a message to the server it is connected to.*/
+ oscP5tcpClient.send("/test", new Object[] {new Integer(1)});
+}
+
+
+void keyPressed() {
+ /* check how many clients are connected to the server. */
+ println(oscP5tcpServer.tcpServer().getClients().length);
+}
+
+void oscEvent(OscMessage theMessage) {
+ /* in this example, both the server and the client share this oscEvent method */
+ System.out.println("### got a message " + theMessage);
+ if(theMessage.checkAddrPattern("/test")) {
+ /* message was send from the tcp client */
+ OscMessage m = new OscMessage("/response");
+ m.add("server response: got it");
+ /* server responds to the client's message */
+ oscP5tcpServer.send(m,theMessage.tcpConnection());
+ }
+}
diff --git a/libraries/oscP5/library.properties b/libraries/oscP5/library.properties
new file mode 100644
index 0000000..5206422
--- /dev/null
+++ b/libraries/oscP5/library.properties
@@ -0,0 +1,44 @@
+# UTF-8 supported.
+
+# The name of your library as you want it formatted
+name = oscP5
+
+# List of authors. Links can be provided using the syntax [author name](url)
+authorList = [Andreas Schlegel](http://www.sojamo.de/)
+
+# A website for your library
+url = http://www.sojamo.de/libraries/oscp5
+
+# The category of your library, must be one (or many) of the following:
+# "3D" "Animation" "Compilations" "Data"
+# "Fabrication" "Geometry" "GUI" "Hardware"
+# "I/O" "Language" "Math" "Simulation"
+# "Sound" "Utilities" "Typography" "Video & Vision"
+#
+# If a value other than those listed is used, your library will listed as "Other."
+category = Data
+
+# A short sentence (fragment) to summarize the library's function. This will be
+# shown from inside the PDE when the library is being installed. Avoid repeating
+# the name of your library here. Also, avoid saying anything redundant like
+# mentioning that its a library.
+sentence = An Open Sound Control (OSC) implementation.
+
+# Additional information suitable for the Processing website. The value of
+# 'sentence' always will be prepended, so you should start by writing the
+# second sentence here. If your library only works on certain operating systems,
+# mention it here.
+paragraph = The UDP, TCP, Multicast protocols are supported and can be used for client/server communication independently from OSC as well.
+
+# Links in the 'sentence' and 'paragraph' attributes can be inserted using the
+# same syntax as for authors. That is, [here is a link to Processing](http://processing.org/)
+
+
+# A version number that increments once with each release. This
+# is used to compare different versions of the same library, and
+# check if an update is available. You should think of it as a
+# counter, counting the total number of releases you've had.
+version = 99 # This must be parsable as an int
+
+# The version as the user will see it. If blank, the version attribute will be used here
+prettyVersion = 0.9.9 # This is treated as a String \ No newline at end of file
diff --git a/libraries/oscP5/library/oscP5.jar b/libraries/oscP5/library/oscP5.jar
new file mode 100644
index 0000000..28fe7bd
--- /dev/null
+++ b/libraries/oscP5/library/oscP5.jar
Binary files differ
diff --git a/libraries/oscP5/reference/allclasses-frame.html b/libraries/oscP5/reference/allclasses-frame.html
new file mode 100644
index 0000000..092fd03
--- /dev/null
+++ b/libraries/oscP5/reference/allclasses-frame.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+All Classes (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="netP5/AbstractMulticast.html" title="class in netP5" target="classFrame">AbstractMulticast</A>
+<BR>
+<A HREF="netP5/AbstractTcpClient.html" title="class in netP5" target="classFrame">AbstractTcpClient</A>
+<BR>
+<A HREF="netP5/AbstractTcpServer.html" title="class in netP5" target="classFrame">AbstractTcpServer</A>
+<BR>
+<A HREF="netP5/AbstractUdpClient.html" title="class in netP5" target="classFrame">AbstractUdpClient</A>
+<BR>
+<A HREF="netP5/AbstractUdpServer.html" title="class in netP5" target="classFrame">AbstractUdpServer</A>
+<BR>
+<A HREF="netP5/Bytes.html" title="class in netP5" target="classFrame">Bytes</A>
+<BR>
+<A HREF="netP5/Logger.html" title="class in netP5" target="classFrame">Logger</A>
+<BR>
+<A HREF="netP5/Multicast.html" title="class in netP5" target="classFrame">Multicast</A>
+<BR>
+<A HREF="netP5/NetAddress.html" title="class in netP5" target="classFrame">NetAddress</A>
+<BR>
+<A HREF="netP5/NetAddressList.html" title="class in netP5" target="classFrame">NetAddressList</A>
+<BR>
+<A HREF="netP5/NetInfo.html" title="class in netP5" target="classFrame">NetInfo</A>
+<BR>
+<A HREF="netP5/NetListener.html" title="interface in netP5" target="classFrame"><I>NetListener</I></A>
+<BR>
+<A HREF="netP5/NetMessage.html" title="class in netP5" target="classFrame">NetMessage</A>
+<BR>
+<A HREF="netP5/NetP5.html" title="interface in netP5" target="classFrame"><I>NetP5</I></A>
+<BR>
+<A HREF="netP5/NetStatus.html" title="class in netP5" target="classFrame">NetStatus</A>
+<BR>
+<A HREF="oscP5/OscArgument.html" title="class in oscP5" target="classFrame">OscArgument</A>
+<BR>
+<A HREF="oscP5/OscBundle.html" title="class in oscP5" target="classFrame">OscBundle</A>
+<BR>
+<A HREF="oscP5/OscEventListener.html" title="interface in oscP5" target="classFrame"><I>OscEventListener</I></A>
+<BR>
+<A HREF="oscP5/OscIn.html" title="class in oscP5" target="classFrame">OscIn</A>
+<BR>
+<A HREF="oscP5/OscMessage.html" title="class in oscP5" target="classFrame">OscMessage</A>
+<BR>
+<A HREF="oscP5/OscNetManager.html" title="class in oscP5" target="classFrame">OscNetManager</A>
+<BR>
+<A HREF="oscP5/OscP5.html" title="class in oscP5" target="classFrame">OscP5</A>
+<BR>
+<A HREF="oscP5/OscPacket.html" title="class in oscP5" target="classFrame">OscPacket</A>
+<BR>
+<A HREF="oscP5/OscPatcher.html" title="class in oscP5" target="classFrame">OscPatcher</A>
+<BR>
+<A HREF="oscP5/OscPlug.html" title="class in oscP5" target="classFrame">OscPlug</A>
+<BR>
+<A HREF="oscP5/OscProperties.html" title="class in oscP5" target="classFrame">OscProperties</A>
+<BR>
+<A HREF="oscP5/OscStatus.html" title="class in oscP5" target="classFrame">OscStatus</A>
+<BR>
+<A HREF="netP5/StringUtils.html" title="class in netP5" target="classFrame">StringUtils</A>
+<BR>
+<A HREF="netP5/TcpClient.html" title="class in netP5" target="classFrame">TcpClient</A>
+<BR>
+<A HREF="netP5/TcpPacket.html" title="class in netP5" target="classFrame">TcpPacket</A>
+<BR>
+<A HREF="netP5/TcpPacketListener.html" title="interface in netP5" target="classFrame"><I>TcpPacketListener</I></A>
+<BR>
+<A HREF="netP5/TcpServer.html" title="class in netP5" target="classFrame">TcpServer</A>
+<BR>
+<A HREF="netP5/UdpClient.html" title="class in netP5" target="classFrame">UdpClient</A>
+<BR>
+<A HREF="netP5/UdpPacketListener.html" title="interface in netP5" target="classFrame"><I>UdpPacketListener</I></A>
+<BR>
+<A HREF="netP5/UdpServer.html" title="class in netP5" target="classFrame">UdpServer</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/allclasses-noframe.html b/libraries/oscP5/reference/allclasses-noframe.html
new file mode 100644
index 0000000..c2a3e53
--- /dev/null
+++ b/libraries/oscP5/reference/allclasses-noframe.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+All Classes (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<BR>
+<A HREF="netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<BR>
+<A HREF="netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<BR>
+<A HREF="netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<BR>
+<A HREF="netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<BR>
+<A HREF="netP5/Bytes.html" title="class in netP5">Bytes</A>
+<BR>
+<A HREF="netP5/Logger.html" title="class in netP5">Logger</A>
+<BR>
+<A HREF="netP5/Multicast.html" title="class in netP5">Multicast</A>
+<BR>
+<A HREF="netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<BR>
+<A HREF="netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<BR>
+<A HREF="netP5/NetInfo.html" title="class in netP5">NetInfo</A>
+<BR>
+<A HREF="netP5/NetListener.html" title="interface in netP5"><I>NetListener</I></A>
+<BR>
+<A HREF="netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<BR>
+<A HREF="netP5/NetP5.html" title="interface in netP5"><I>NetP5</I></A>
+<BR>
+<A HREF="netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<BR>
+<A HREF="oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<BR>
+<A HREF="oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<BR>
+<A HREF="oscP5/OscEventListener.html" title="interface in oscP5"><I>OscEventListener</I></A>
+<BR>
+<A HREF="oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<BR>
+<A HREF="oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<BR>
+<A HREF="oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<BR>
+<A HREF="oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<BR>
+<A HREF="oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>
+<BR>
+<A HREF="oscP5/OscPatcher.html" title="class in oscP5">OscPatcher</A>
+<BR>
+<A HREF="oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<BR>
+<A HREF="oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<BR>
+<A HREF="oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<BR>
+<A HREF="netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<BR>
+<A HREF="netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<BR>
+<A HREF="netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>
+<BR>
+<A HREF="netP5/TcpPacketListener.html" title="interface in netP5"><I>TcpPacketListener</I></A>
+<BR>
+<A HREF="netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<BR>
+<A HREF="netP5/UdpClient.html" title="class in netP5">UdpClient</A>
+<BR>
+<A HREF="netP5/UdpPacketListener.html" title="interface in netP5"><I>UdpPacketListener</I></A>
+<BR>
+<A HREF="netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/constant-values.html b/libraries/oscP5/reference/constant-values.html
new file mode 100644
index 0000000..e505a0b
--- /dev/null
+++ b/libraries/oscP5/reference/constant-values.html
@@ -0,0 +1,446 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Constant Field Values (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Constant Field Values (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#netP5">netP5.*</A>
+<LI><A HREF="#oscP5">oscP5.*</A>
+</UL>
+
+<A NAME="netP5"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+netP5.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">netP5.<A HREF="netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.AbstractTcpClient.MODE_NEWLINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/AbstractTcpClient.html#MODE_NEWLINE">MODE_NEWLINE</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.AbstractTcpClient.MODE_READLINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/AbstractTcpClient.html#MODE_READLINE">MODE_READLINE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.AbstractTcpClient.MODE_STREAM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/AbstractTcpClient.html#MODE_STREAM">MODE_STREAM</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.AbstractTcpClient.MODE_TERMINATED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/AbstractTcpClient.html#MODE_TERMINATED">MODE_TERMINATED</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">netP5.<A HREF="netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.AbstractTcpServer.MODE_NEWLINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/AbstractTcpServer.html#MODE_NEWLINE">MODE_NEWLINE</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.AbstractTcpServer.MODE_READLINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/AbstractTcpServer.html#MODE_READLINE">MODE_READLINE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.AbstractTcpServer.MODE_STREAM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/AbstractTcpServer.html#MODE_STREAM">MODE_STREAM</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.AbstractTcpServer.MODE_TERMINATED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/AbstractTcpServer.html#MODE_TERMINATED">MODE_TERMINATED</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">netP5.<A HREF="netP5/Logger.html" title="class in netP5">Logger</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.Logger.ALL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/Logger.html#ALL">ALL</A></CODE></TD>
+<TD ALIGN="right"><CODE>5</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.Logger.DEBUG"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/Logger.html#DEBUG">DEBUG</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.Logger.ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/Logger.html#ERROR">ERROR</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.Logger.INFO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/Logger.html#INFO">INFO</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.Logger.OFF"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/Logger.html#OFF">OFF</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.Logger.ON"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/Logger.html#ON">ON</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.Logger.PROCESS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/Logger.html#PROCESS">PROCESS</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.Logger.WARNING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/Logger.html#WARNING">WARNING</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">netP5.<A HREF="netP5/NetP5.html" title="interface in netP5">NetP5</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.NetP5.DEBUG"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;boolean</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/NetP5.html#DEBUG">DEBUG</A></CODE></TD>
+<TD ALIGN="right"><CODE>true</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.NetP5.MULTICAST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/NetP5.html#MULTICAST">MULTICAST</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.NetP5.TCP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/NetP5.html#TCP">TCP</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.NetP5.UDP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/NetP5.html#UDP">UDP</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="netP5.NetP5.VERSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="netP5/NetP5.html#VERSION">VERSION</A></CODE></TD>
+<TD ALIGN="right"><CODE>"0.9.9"</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="oscP5"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+oscP5.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">oscP5.<A HREF="oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscNetManager.NONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscNetManager.html#NONE">NONE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">oscP5.<A HREF="oscP5/OscP5.html" title="class in oscP5">OscP5</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscP5.MULTICAST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscP5.html#MULTICAST">MULTICAST</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscP5.OFF"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;boolean</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscP5.html#OFF">OFF</A></CODE></TD>
+<TD ALIGN="right"><CODE>false</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscP5.ON"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;boolean</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscP5.html#ON">ON</A></CODE></TD>
+<TD ALIGN="right"><CODE>true</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscP5.TCP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscP5.html#TCP">TCP</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscP5.UDP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscP5.html#UDP">UDP</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscP5.VERSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscP5.html#VERSION">VERSION</A></CODE></TD>
+<TD ALIGN="right"><CODE>"0.9.9"</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">oscP5.<A HREF="oscP5/OscProperties.html" title="class in oscP5">OscProperties</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscProperties.MULTICAST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscProperties.html#MULTICAST">MULTICAST</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscProperties.OFF"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;boolean</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscProperties.html#OFF">OFF</A></CODE></TD>
+<TD ALIGN="right"><CODE>false</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscProperties.ON"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;boolean</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscProperties.html#ON">ON</A></CODE></TD>
+<TD ALIGN="right"><CODE>true</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscProperties.TCP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscProperties.html#TCP">TCP</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="oscP5.OscProperties.UDP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="oscP5/OscProperties.html#UDP">UDP</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/deprecated-list.html b/libraries/oscP5/reference/deprecated-list.html
new file mode 100644
index 0000000..1493777
--- /dev/null
+++ b/libraries/oscP5/reference/deprecated-list.html
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Deprecated List (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Deprecated List (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#class">Deprecated Classes</A>
+<LI><A HREF="#method">Deprecated Methods</A>
+<LI><A HREF="#constructor">Deprecated Constructors</A>
+</UL>
+
+<A NAME="class"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Deprecated Classes</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscIn.html" title="class in oscP5">oscP5.OscIn</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="method"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Deprecated Methods</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscP5.html#disconnectFromTEMP()">oscP5.OscP5.disconnectFromTEMP()</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscP5.html#flush(byte[], java.lang.String, int)">oscP5.OscP5.flush(byte[], String, int)</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscP5.html#flush(oscP5.OscMessage, java.lang.String, int)">oscP5.OscP5.flush(OscMessage, String, int)</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="netP5/AbstractTcpClient.html#netaddress()">netP5.AbstractTcpClient.netaddress()</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscPacket.html#netaddress()">oscP5.OscPacket.netaddress()</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscP5.html#newBundle()">oscP5.OscP5.newBundle()</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscP5.html#newMsg(java.lang.String)">oscP5.OscP5.newMsg(String)</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscP5.html#send(oscP5.OscPacket, java.lang.String, int)">oscP5.OscP5.send(OscPacket, String, int)</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="constructor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Deprecated Constructors</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscP5.html#OscP5(java.lang.Object, java.lang.String, int)">oscP5.OscP5(Object, String, int)</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="oscP5/OscP5.html#OscP5(java.lang.Object, java.lang.String, int, int, java.lang.String)">oscP5.OscP5(Object, String, int, int, String)</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I></I>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/help-doc.html b/libraries/oscP5/reference/help-doc.html
new file mode 100644
index 0000000..e23a628
--- /dev/null
+++ b/libraries/oscP5/reference/help-doc.html
@@ -0,0 +1,217 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+API Help (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="API Help (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Overview</H3>
+<BLOCKQUOTE>
+
+<P>
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
+<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Annotation Type</H3>
+<BLOCKQUOTE>
+
+<P>
+Each annotation type has its own separate page with the following sections:<UL>
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
+</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Enum</H3>
+<BLOCKQUOTE>
+
+<P>
+Each enum has its own separate page with the following sections:<UL>
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
+</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames. All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<H3>
+Constant Field Values</H3>
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/index-all.html b/libraries/oscP5/reference/index-all.html
new file mode 100644
index 0000000..17407d9
--- /dev/null
+++ b/libraries/oscP5/reference/index-all.html
@@ -0,0 +1,1692 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Index (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Index (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <HR>
+<A NAME="_A_"><!-- --></A><H2>
+<B>A</B></H2>
+<DL>
+<DT><A HREF="./netP5/AbstractMulticast.html" title="class in netP5"><B>AbstractMulticast</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/AbstractMulticast.html#AbstractMulticast(netP5.UdpPacketListener, java.lang.String, int, int)"><B>AbstractMulticast(UdpPacketListener, String, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractMulticast.html#AbstractMulticast(netP5.UdpPacketListener, java.lang.String, int)"><B>AbstractMulticast(UdpPacketListener, String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html" title="class in netP5"><B>AbstractTcpClient</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/AbstractTcpClient.html#AbstractTcpClient(netP5.TcpPacketListener, java.lang.String, int)"><B>AbstractTcpClient(TcpPacketListener, String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#AbstractTcpClient(java.lang.String, int)"><B>AbstractTcpClient(String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#AbstractTcpClient(netP5.TcpPacketListener, java.lang.String, int, int)"><B>AbstractTcpClient(TcpPacketListener, String, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#AbstractTcpClient(java.lang.String, int, int)"><B>AbstractTcpClient(String, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#AbstractTcpClient(netP5.AbstractTcpServer, java.net.Socket, netP5.TcpPacketListener, int, int)"><B>AbstractTcpClient(AbstractTcpServer, Socket, TcpPacketListener, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpServer.html" title="class in netP5"><B>AbstractTcpServer</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/AbstractTcpServer.html#AbstractTcpServer(int, int)"><B>AbstractTcpServer(int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpServer.html#AbstractTcpServer(netP5.TcpPacketListener, int, int)"><B>AbstractTcpServer(TcpPacketListener, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractUdpClient.html" title="class in netP5"><B>AbstractUdpClient</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/AbstractUdpClient.html#AbstractUdpClient()"><B>AbstractUdpClient()</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractUdpClient.html#AbstractUdpClient(java.lang.String, int)"><B>AbstractUdpClient(String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractUdpServer.html" title="class in netP5"><B>AbstractUdpServer</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/AbstractUdpServer.html#AbstractUdpServer(netP5.UdpPacketListener, int, int)"><B>AbstractUdpServer(UdpPacketListener, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>create a new UdpServer
+<DT><A HREF="./netP5/NetAddressList.html#add(netP5.NetAddress)"><B>add(NetAddress)</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddressList.html#add(java.lang.String, int)"><B>add(String, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscBundle.html#add(oscP5.OscMessage)"><B>add(OscMessage)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>add an osc message to the osc bundle.
+<DT><A HREF="./oscP5/OscMessage.html#add()"><B>add()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>add values to an osc message.
+<DT><A HREF="./oscP5/OscMessage.html#add(int)"><B>add(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(java.lang.String)"><B>add(String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(float)"><B>add(float)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(double)"><B>add(double)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(boolean)"><B>add(boolean)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(java.lang.Boolean)"><B>add(Boolean)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(java.lang.Integer)"><B>add(Integer)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(java.lang.Float)"><B>add(Float)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(java.lang.Double)"><B>add(Double)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(java.lang.Character)"><B>add(Character)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(char)"><B>add(char)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(int, int, int, int)"><B>add(int, int, int, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(int[])"><B>add(int[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(char[])"><B>add(char[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(float[])"><B>add(float[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(java.lang.String[])"><B>add(String[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(byte[])"><B>add(byte[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#add(java.lang.Object[])"><B>add(Object[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#addArguments(java.lang.Object[])"><B>addArguments(Object[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>add a list of arguments to an exisiting set of arguments.
+<DT><A HREF="./netP5/Multicast.html#addListener(netP5.NetListener)"><B>addListener(NetListener)</B></A> -
+Method in class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#addListener(netP5.NetListener)"><B>addListener(NetListener)</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpServer.html#addListener(netP5.NetListener)"><B>addListener(NetListener)</B></A> -
+Method in class netP5.<A HREF="./netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<DD>add a listener to the udp server.
+<DT><A HREF="./oscP5/OscP5.html#addListener(oscP5.OscEventListener)"><B>addListener(OscEventListener)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddress.html#address()"><B>address()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>returns the remote ip address as string
+<DT><A HREF="./netP5/NetMessage.html#address()"><B>address()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPacket.html#address()"><B>address()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#addrInt()"><B>addrInt()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>returns the address pattern of the osc message as int.
+<DT><A HREF="./oscP5/OscMessage.html#addrPattern()"><B>addrPattern()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#addTcpListener(netP5.TcpPacketListener)"><B>addTcpListener(TcpPacketListener)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#addUdpListener(netP5.UdpPacketListener)"><B>addUdpListener(UdpPacketListener)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#ALL"><B>ALL</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#append(byte[], byte[])"><B>append(byte[], byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#append(byte[], byte[], byte[])"><B>append(byte[], byte[], byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#areEqual(byte[], byte[])"><B>areEqual(byte[], byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#arguments()"><B>arguments()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#arrayToString(java.lang.String[])"><B>arrayToString(String[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#arrayToString(java.lang.String[], int, int)"><B>arrayToString(String[], int, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_B_"><!-- --></A><H2>
+<B>B</B></H2>
+<DL>
+<DT><A HREF="./netP5/AbstractTcpServer.html#ban(java.lang.String)"><B>ban(String)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>ban an IP address from the server.
+<DT><A HREF="./oscP5/OscArgument.html#blobValue()"><B>blobValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the byte array (blob) of the osc argument.
+<DT><A HREF="./oscP5/OscArgument.html#booleanValue()"><B>booleanValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the boolean value of the osc argument.
+<DT><A HREF="./netP5/Bytes.html" title="class in netP5"><B>Bytes</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/Bytes.html#Bytes()"><B>Bytes()</B></A> -
+Constructor for class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscArgument.html#bytesValue()"><B>bytesValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the byte array of the osc argument.
+</DL>
+<HR>
+<A NAME="_C_"><!-- --></A><H2>
+<B>C</B></H2>
+<DL>
+<DT><A HREF="./netP5/StringUtils.html#centerJustify(java.lang.String, int)"><B>centerJustify(String, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Creates a string of the given width with the given string left justified
+ (padded by an appropriate number of spaces in front and after it).
+<DT><A HREF="./oscP5/OscArgument.html#charValue()"><B>charValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the char value of the osc argument.
+<DT><A HREF="./oscP5/OscMessage.html#checkAddrPattern(java.lang.String)"><B>checkAddrPattern(String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>check if an address pattern equals a specific address pattern
+ you are looking for.
+<DT><A HREF="./oscP5/OscPlug.html#checkMethod(oscP5.OscMessage, boolean)"><B>checkMethod(OscMessage, boolean)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPlug.html#checkType(java.lang.String)"><B>checkType(String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#checkTypetag(java.lang.String)"><B>checkTypetag(String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscBundle.html#clear()"><B>clear()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>clear and reset the osc bundle for reusing.
+<DT><A HREF="./oscP5/OscMessage.html#clear()"><B>clear()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>clear and reset an OscMessage for reuse.
+<DT><A HREF="./oscP5/OscMessage.html#clearArguments()"><B>clearArguments()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>clears the arguments in a message,
+ but keeps the address the address pattern.
+<DT><A HREF="./netP5/NetStatus.html#CLIENT_CLOSED"><B>CLIENT_CLOSED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#CLIENT_CLOSED"><B>CLIENT_CLOSED</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractMulticast.html#close()"><B>close()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#connect(netP5.NetAddress, java.lang.String, java.lang.String[])"><B>connect(NetAddress, String, String[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html#CONNECTION_CLOSED"><B>CONNECTION_CLOSED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#CONNECTION_CLOSED"><B>CONNECTION_CLOSED</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html#CONNECTION_FAILED"><B>CONNECTION_FAILED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#CONNECTION_FAILED"><B>CONNECTION_FAILED</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html#CONNECTION_REFUSED"><B>CONNECTION_REFUSED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#CONNECTION_REFUSED"><B>CONNECTION_REFUSED</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html#CONNECTION_TERMINATED"><B>CONNECTION_TERMINATED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#CONNECTION_TERMINATED"><B>CONNECTION_TERMINATED</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddressList.html#contains(netP5.NetAddress)"><B>contains(NetAddress)</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddressList.html#contains(java.lang.String, int)"><B>contains(String, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#copy(byte[], int)"><B>copy(byte[], int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#copy(byte[], int, int)"><B>copy(byte[], int, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_D_"><!-- --></A><H2>
+<B>D</B></H2>
+<DL>
+<DT><A HREF="./oscP5/OscProperties.html#datagramSize()"><B>datagramSize()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>returns the current size of the datagram bytebuffer.
+<DT><A HREF="./netP5/Logger.html#DEBUG"><B>DEBUG</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetP5.html#DEBUG"><B>DEBUG</B></A> -
+Static variable in interface netP5.<A HREF="./netP5/NetP5.html" title="interface in netP5">NetP5</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html#DEFAULT"><B>DEFAULT</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#DEFAULT"><B>DEFAULT</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#disconnect(netP5.NetAddress)"><B>disconnect(NetAddress)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#disconnectFromTEMP()"><B>disconnectFromTEMP()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./netP5/AbstractMulticast.html#dispose()"><B>dispose()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>dispose the multicastSocket.
+<DT><A HREF="./netP5/AbstractTcpClient.html#dispose()"><B>dispose()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>stop and dispose a tcp client.
+<DT><A HREF="./netP5/AbstractTcpServer.html#dispose()"><B>dispose()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>kill the server.
+<DT><A HREF="./netP5/AbstractUdpServer.html#dispose()"><B>dispose()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>stop the UDP server, clean up and delete its reference.
+<DT><A HREF="./oscP5/OscP5.html#dispose()"><B>dispose()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscArgument.html#doubleValue()"><B>doubleValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the double value of the osc argument.
+<DT><A HREF="./netP5/StringUtils.html#duplicate(java.lang.String, int)"><B>duplicate(String, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Returns a String with the source String copied the specified number of
+ times.
+</DL>
+<HR>
+<A NAME="_E_"><!-- --></A><H2>
+<B>E</B></H2>
+<DL>
+<DT><A HREF="./netP5/AbstractTcpClient.html#equals(netP5.NetAddress)"><B>equals(NetAddress)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#equals(netP5.TcpClient)"><B>equals(TcpClient)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#ERROR"><B>ERROR</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html#ERROR"><B>ERROR</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#ERROR"><B>ERROR</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#eventMethod()"><B>eventMethod()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#explode(java.lang.String[], int[])"><B>explode(String[], int[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Splits every String in an array at the specified lengths.
+<DT><A HREF="./netP5/StringUtils.html#explode(java.lang.String, int[])"><B>explode(String, int[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Splits a string at the specified lengths and returns an array of Strings.
+<DT><A HREF="./netP5/StringUtils.html#explode(java.lang.String)"><B>explode(String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Splits a string into an array with a space as delimiter.
+<DT><A HREF="./netP5/StringUtils.html#explode(java.lang.String, java.lang.String)"><B>explode(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Splits a string into an array with the specified delimiter.
+</DL>
+<HR>
+<A NAME="_F_"><!-- --></A><H2>
+<B>F</B></H2>
+<DL>
+<DT><A HREF="./netP5/Logger.html#flags"><B>flags</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscArgument.html#floatValue()"><B>floatValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the float value of the osc argument.
+<DT><A HREF="./oscP5/OscP5.html#flush(oscP5.OscMessage, netP5.NetAddress)"><B>flush(OscMessage, NetAddress)</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>a static method to send an OscMessage straight out of the box without having to instantiate
+ oscP5.
+<DT><A HREF="./oscP5/OscP5.html#flush(oscP5.OscPacket, netP5.NetAddress)"><B>flush(OscPacket, NetAddress)</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#flush(java.lang.String, java.lang.Object[], netP5.NetAddress)"><B>flush(String, Object[], NetAddress)</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#flush(byte[], netP5.NetAddress)"><B>flush(byte[], NetAddress)</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#flush(byte[], java.lang.String, int)"><B>flush(byte[], String, int)</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#flush(oscP5.OscMessage, java.lang.String, int)"><B>flush(OscMessage, String, int)</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+</DL>
+<HR>
+<A NAME="_G_"><!-- --></A><H2>
+<B>G</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetAddressList.html#get(java.lang.String, int)"><B>get(String, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddressList.html#get(int)"><B>get(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#get(int)"><B>get(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>get a value at a specific position in the osc message.
+<DT><A HREF="./oscP5/OscMessage.html#getAddrPatternAsBytes()"><B>getAddrPatternAsBytes()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#getAsString(java.lang.Object[])"><B>getAsString(Object[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>converts an object array into a String that is formated like a list
+<DT><A HREF="./netP5/Bytes.html#getAsString(byte[])"><B>getAsString(byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getBlob(int)"><B>getBlob(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getBoolean(int)"><B>getBoolean(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./oscP5/OscBundle.html#getBytes()"><B>getBytes()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#getBytes()"><B>getBytes()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPacket.html#getBytes()"><B>getBytes()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getChar(int)"><B>getChar(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./netP5/AbstractTcpServer.html#getClient(int)"><B>getClient(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>get a client at a specific position the client list.
+<DT><A HREF="./netP5/AbstractTcpServer.html#getClients()"><B>getClients()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>get a list of all connected clients.
+<DT><A HREF="./netP5/NetMessage.html#getData()"><B>getData()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>get the data of the message as bytes.
+<DT><A HREF="./netP5/TcpPacket.html#getData()"><B>getData()</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetMessage.html#getDatagramPacket()"><B>getDatagramPacket()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getDataList()"><B>getDataList()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;this is only for christian's and jens' table communication with vvvv.
+<DT><A HREF="./netP5/StringUtils.html#getFloat(java.lang.String)"><B>getFloat(String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getFloat(int)"><B>getFloat(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./netP5/NetInfo.html#getHostAddress()"><B>getHostAddress()</B></A> -
+Static method in class netP5.<A HREF="./netP5/NetInfo.html" title="class in netP5">NetInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#getInt(java.lang.String)"><B>getInt(String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getInt(int)"><B>getInt(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./netP5/Multicast.html#getListener(int)"><B>getListener(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#getListener(int)"><B>getListener(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpServer.html#getListener(int)"><B>getListener(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Multicast.html#getListeners()"><B>getListeners()</B></A> -
+Method in class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#getListeners()"><B>getListeners()</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpServer.html#getListeners()"><B>getListeners()</B></A> -
+Method in class netP5.<A HREF="./netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscBundle.html#getMessage(int)"><B>getMessage(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>request an osc message inside the osc bundle array,
+<DT><A HREF="./oscP5/OscPlug.html#getMethod()"><B>getMethod()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getMidi(int)"><B>getMidi(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getMidiBytes(int)"><B>getMidiBytes(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./oscP5/OscPlug.html#getObject()"><B>getObject()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#getStackTrace(java.lang.Throwable)"><B>getStackTrace(Throwable)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Prints the stacktrace to a buffer and returns the buffer as a String.
+<DT><A HREF="./netP5/AbstractTcpClient.html#getString()"><B>getString()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetMessage.html#getString()"><B>getString()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>get the data the message as string.
+<DT><A HREF="./netP5/TcpPacket.html#getString()"><B>getString()</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscIn.html#getString(int)"><B>getString(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#getStringBuffer()"><B>getStringBuffer()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpPacket.html#getStringBuffer()"><B>getStringBuffer()</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpPacket.html#getTcpConnection()"><B>getTcpConnection()</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetMessage.html#getTcpPacket()"><B>getTcpPacket()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#getTime()"><B>getTime()</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#getTypetagAsBytes()"><B>getTypetagAsBytes()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_H_"><!-- --></A><H2>
+<B>H</B></H2>
+<DL>
+<DT><A HREF="./netP5/AbstractTcpClient.html#handleInput()"><B>handleInput()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpServer.html#handleInput(netP5.TcpPacket, int)"><B>handleInput(TcpPacket, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#handleInput()"><B>handleInput()</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#handleInput(netP5.TcpPacket, int)"><B>handleInput(TcpPacket, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#handleStatus(int)"><B>handleStatus(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#handleStatus(int)"><B>handleStatus(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_I_"><!-- --></A><H2>
+<B>I</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetStatus.html#id()"><B>id()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#id()"><B>id()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#implode(java.lang.Object[], java.lang.String)"><B>implode(Object[], String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Combines an array to a string, using the specified delimiter.
+<DT><A HREF="./netP5/StringUtils.html#implode(java.lang.Object[])"><B>implode(Object[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Combines an array to a string, using a comma and a space as delimiter.
+<DT><A HREF="./netP5/NetAddress.html#inetaddress()"><B>inetaddress()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetMessage.html#inetAddress()"><B>inetAddress()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#INFO"><B>INFO</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscArgument.html#intValue()"><B>intValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the int value of the osc argument.
+<DT><A HREF="./oscP5/OscP5.html#ip()"><B>ip()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#isBroadcast()"><B>isBroadcast()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#isEmpty(java.lang.String)"><B>isEmpty(String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Checks if a String is empty or null.
+<DT><A HREF="./oscP5/OscMessage.html#isPlugged()"><B>isPlugged()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddress.html#isvalid()"><B>isvalid()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>check if the netAddress is valid.
+</DL>
+<HR>
+<A NAME="_L_"><!-- --></A><H2>
+<B>L</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetInfo.html#lan()"><B>lan()</B></A> -
+Static method in class netP5.<A HREF="./netP5/NetInfo.html" title="class in netP5">NetInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#left(java.lang.String, java.lang.String)"><B>left(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Returns the substring to the left of the specified substring in the
+ specified String, starting from the left.
+<DT><A HREF="./netP5/StringUtils.html#leftBack(java.lang.String, java.lang.String)"><B>leftBack(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Returns the substring to the left of the specified substring in the
+ specified String, starting from the right.
+<DT><A HREF="./netP5/StringUtils.html#leftJustify(java.lang.String, int)"><B>leftJustify(String, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Creates a string of the given width with the given string left justified
+ (followed by an appropriate number of spaces).
+<DT><A HREF="./netP5/NetAddressList.html#list()"><B>list()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#listener()"><B>listener()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#listeners()"><B>listeners()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#listeners()"><B>listeners()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#listeningPort()"><B>listeningPort()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>returns the port number currently used to receive osc packets.
+<DT><A HREF="./netP5/Logger.html" title="class in netP5"><B>Logger</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/Logger.html#Logger()"><B>Logger()</B></A> -
+Constructor for class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscArgument.html#longValue()"><B>longValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the long value of the osc argument.
+<DT><A HREF="./netP5/AbstractMulticast.html#loopback()"><B>loopback()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>get the current loopback mode.
+</DL>
+<HR>
+<A NAME="_M_"><!-- --></A><H2>
+<B>M</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetInfo.html#main(java.lang.String[])"><B>main(String[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/NetInfo.html" title="class in netP5">NetInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#makeBlob(byte[])"><B>makeBlob(byte[])</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#merge(byte[], byte[], int, int, int)"><B>merge(byte[], byte[], int, int, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#merge(byte[], byte[], int)"><B>merge(byte[], byte[], int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#merge(byte[], byte[])"><B>merge(byte[], byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#merge(byte[], byte[], int, int)"><B>merge(byte[], byte[], int, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPlug.html#method"><B>method</B></A> -
+Variable in class oscP5.<A HREF="./oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#middle(java.lang.String, java.lang.String, java.lang.String)"><B>middle(String, String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Returns the substring between two substrings.
+<DT><A HREF="./netP5/StringUtils.html#middle(java.lang.String, int, int)"><B>middle(String, int, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Returns a substring of a String, starting from specified index and with
+ specified length.
+<DT><A HREF="./oscP5/OscArgument.html#midiValue()"><B>midiValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#mode()"><B>mode()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>get the mode of the terminator.
+<DT><A HREF="./netP5/AbstractTcpClient.html#MODE_NEWLINE"><B>MODE_NEWLINE</B></A> -
+Static variable in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>terminator is newline.
+<DT><A HREF="./netP5/AbstractTcpServer.html#MODE_NEWLINE"><B>MODE_NEWLINE</B></A> -
+Static variable in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#MODE_READLINE"><B>MODE_READLINE</B></A> -
+Static variable in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>terminator is readline.
+<DT><A HREF="./netP5/AbstractTcpServer.html#MODE_READLINE"><B>MODE_READLINE</B></A> -
+Static variable in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#MODE_STREAM"><B>MODE_STREAM</B></A> -
+Static variable in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>no terminator required, packets are sent via
+ a tcp stream.
+<DT><A HREF="./netP5/AbstractTcpServer.html#MODE_STREAM"><B>MODE_STREAM</B></A> -
+Static variable in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#MODE_TERMINATED"><B>MODE_TERMINATED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>terminator is terminated, by default this is character '\0'
+ and can be set with setTerminator
+<DT><A HREF="./netP5/AbstractTcpServer.html#MODE_TERMINATED"><B>MODE_TERMINATED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Multicast.html" title="class in netP5"><B>Multicast</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>Multicast is a method of forwarding IP datagrams to a group of interested receivers.<DT><A HREF="./netP5/Multicast.html#Multicast(java.lang.Object, java.lang.String, int, int)"><B>Multicast(Object, String, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>create a new instance of Multicast.
+<DT><A HREF="./netP5/Multicast.html#Multicast(java.lang.Object, java.lang.String, int)"><B>Multicast(Object, String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Multicast.html#Multicast(netP5.UdpPacketListener, java.lang.String, int, int)"><B>Multicast(UdpPacketListener, String, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Multicast.html#Multicast(netP5.UdpPacketListener, java.lang.String, int)"><B>Multicast(UdpPacketListener, String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetP5.html#MULTICAST"><B>MULTICAST</B></A> -
+Static variable in interface netP5.<A HREF="./netP5/NetP5.html" title="interface in netP5">NetP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#MULTICAST"><B>MULTICAST</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>a static variable used when creating an oscP5 instance with a sepcified network protocol.
+<DT><A HREF="./oscP5/OscProperties.html#MULTICAST"><B>MULTICAST</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_N_"><!-- --></A><H2>
+<B>N</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetAddress.html#name"><B>name</B></A> -
+Variable in class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#name()"><B>name()</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#netAddress()"><B>netAddress()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#netaddress()"><B>netaddress()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./netP5/NetAddress.html" title="class in netP5"><B>NetAddress</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>NetAddress is an Object that contains an inetaddress
+ of an remote internet address, consisting of an
+ ip address and a port number.<DT><A HREF="./netP5/NetAddress.html#NetAddress(java.lang.String, int)"><B>NetAddress(String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddress.html#NetAddress(netP5.NetAddress)"><B>NetAddress(NetAddress)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddress.html#NetAddress(java.net.InetAddress, int)"><B>NetAddress(InetAddress, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPacket.html#netAddress()"><B>netAddress()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPacket.html#netaddress()"><B>netaddress()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./netP5/NetAddressList.html" title="class in netP5"><B>NetAddressList</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>NetAddressList is an arraylist of netaddresses.<DT><A HREF="./netP5/NetAddressList.html#NetAddressList()"><B>NetAddressList()</B></A> -
+Constructor for class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetListener.html#netEvent(netP5.NetMessage)"><B>netEvent(NetMessage)</B></A> -
+Method in interface netP5.<A HREF="./netP5/NetListener.html" title="interface in netP5">NetListener</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetInfo.html" title="class in netP5"><B>NetInfo</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>some description<DT><A HREF="./netP5/NetInfo.html#NetInfo()"><B>NetInfo()</B></A> -
+Constructor for class netP5.<A HREF="./netP5/NetInfo.html" title="class in netP5">NetInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#netInfo()"><B>netInfo()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>netinfo() returns an instance of a NetInfo Object from which you can get LAN and WAN
+ information.
+<DT><A HREF="./netP5/NetListener.html" title="interface in netP5"><B>NetListener</B></A> - Interface in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/NetMessage.html" title="class in netP5"><B>NetMessage</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/package-summary.html"><B>netP5</B></A> - package netP5<DD>&nbsp;<DT><A HREF="./netP5/NetP5.html" title="interface in netP5"><B>NetP5</B></A> - Interface in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/NetListener.html#netStatus(netP5.NetStatus)"><B>netStatus(NetStatus)</B></A> -
+Method in interface netP5.<A HREF="./netP5/NetListener.html" title="interface in netP5">NetListener</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html" title="class in netP5"><B>NetStatus</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/NetStatus.html#NetStatus(int)"><B>NetStatus(int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#networkProtocol()"><B>networkProtocol()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>returns the network protocol being used to transmit osc packets.
+<DT><A HREF="./oscP5/OscP5.html#newBundle()"><B>newBundle()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#newMsg(java.lang.String)"><B>newMsg(String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#NONE"><B>NONE</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscBundle.html#now()"><B>now()</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>returns the current time in milliseconds.
+</DL>
+<HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="./netP5/Logger.html#OFF"><B>OFF</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#OFF"><B>OFF</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#OFF"><B>OFF</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#ON"><B>ON</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#ON"><B>ON</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#ON"><B>ON</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscArgument.html" title="class in oscP5"><B>OscArgument</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>an osc argument contains one value of values from a received osc message.<DT><A HREF="./oscP5/OscArgument.html#OscArgument()"><B>OscArgument()</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscBundle.html" title="class in oscP5"><B>OscBundle</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>Osc Bundles are collections of Osc Messages.<DT><A HREF="./oscP5/OscBundle.html#OscBundle()"><B>OscBundle()</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>instantiate a new OscBundle object.
+<DT><A HREF="./oscP5/OscEventListener.html#oscEvent(oscP5.OscMessage)"><B>oscEvent(OscMessage)</B></A> -
+Method in interface oscP5.<A HREF="./oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscEventListener.html" title="interface in oscP5"><B>OscEventListener</B></A> - Interface in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>&nbsp;<DT><A HREF="./oscP5/OscIn.html" title="class in oscP5"><B>OscIn</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD><B>Deprecated.</B>&nbsp;<DT><A HREF="./oscP5/OscIn.html#OscIn(oscP5.OscMessage)"><B>OscIn(OscMessage)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscIn.html" title="class in oscP5">OscIn</A>
+<DD><B>Deprecated.</B>&nbsp;&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html" title="class in oscP5"><B>OscMessage</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>An OSC message consists of an OSC Address Pattern, an OSC Type Tag String
+ and the OSC arguments.<DT><A HREF="./oscP5/OscMessage.html#OscMessage(oscP5.OscMessage)"><B>OscMessage(OscMessage)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#OscMessage(java.lang.String)"><B>OscMessage(String)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#OscMessage(int)"><B>OscMessage(int)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#OscMessage(java.lang.String, java.lang.Object[])"><B>OscMessage(String, Object[])</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#OscMessage(int, java.lang.Object[])"><B>OscMessage(int, Object[])</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html" title="class in oscP5"><B>OscNetManager</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>&nbsp;<DT><A HREF="./oscP5/OscNetManager.html#OscNetManager()"><B>OscNetManager()</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/package-summary.html"><B>oscP5</B></A> - package oscP5<DD>&nbsp;<DT><A HREF="./oscP5/OscP5.html" title="class in oscP5"><B>OscP5</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>TODO add better error message handling for oscEvents, see this post
+ http://forum.processing.org/topic/oscp5-major-problems-with-error-handling# 25080000000811163<DT><A HREF="./oscP5/OscP5.html#OscP5(java.lang.Object, oscP5.OscProperties)"><B>OscP5(Object, OscProperties)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#OscP5(java.lang.Object, java.lang.String, int, int)"><B>OscP5(Object, String, int, int)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#OscP5(java.lang.Object, int, int)"><B>OscP5(Object, int, int)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#OscP5(java.lang.Object, int)"><B>OscP5(Object, int)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#OscP5(java.lang.Object, java.lang.String, int, int, java.lang.String)"><B>OscP5(Object, String, int, int, String)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#OscP5(java.lang.Object, java.lang.String, int)"><B>OscP5(Object, String, int)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#OSCP5_CLOSED"><B>OSCP5_CLOSED</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPacket.html" title="class in oscP5"><B>OscPacket</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>&nbsp;<DT><A HREF="./oscP5/OscPacket.html#OscPacket()"><B>OscPacket()</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPatcher.html" title="class in oscP5"><B>OscPatcher</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>&nbsp;<DT><A HREF="./oscP5/OscPlug.html" title="class in oscP5"><B>OscPlug</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>&nbsp;<DT><A HREF="./oscP5/OscPlug.html#OscPlug()"><B>OscPlug()</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html" title="class in oscP5"><B>OscProperties</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>osc properties are used to start oscP5 with more specific settings.<DT><A HREF="./oscP5/OscProperties.html#OscProperties(oscP5.OscEventListener)"><B>OscProperties(OscEventListener)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#OscProperties()"><B>OscProperties()</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>create a new OscProperties Object.
+<DT><A HREF="./oscP5/OscEventListener.html#oscStatus(oscP5.OscStatus)"><B>oscStatus(OscStatus)</B></A> -
+Method in interface oscP5.<A HREF="./oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html" title="class in oscP5"><B>OscStatus</B></A> - Class in <A HREF="./oscP5/package-summary.html">oscP5</A><DD>&nbsp;<DT><A HREF="./oscP5/OscStatus.html#OscStatus(int)"><B>OscStatus(int)</B></A> -
+Constructor for class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_P_"><!-- --></A><H2>
+<B>P</B></H2>
+<DL>
+<DT><A HREF="./oscP5/OscP5.html#plug(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)"><B>plug(Object, String, String, String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>osc messages can be automatically forwarded to a specific method of an object.
+<DT><A HREF="./oscP5/OscP5.html#plug(java.lang.Object, java.lang.String, java.lang.String)"><B>plug(Object, String, String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPlug.html#plug(java.lang.Object, java.lang.String, java.lang.String)"><B>plug(Object, String, String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPlug.html#plug(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)"><B>plug(Object, String, String, String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPlug.html" title="class in oscP5">OscPlug</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddress.html#port()"><B>port()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>returns the remote port number
+<DT><A HREF="./netP5/NetMessage.html#port()"><B>port()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>get the port the net message was received at.
+<DT><A HREF="./oscP5/OscPacket.html#port()"><B>port()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#print(java.lang.String)"><B>print(String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetInfo.html#print()"><B>print()</B></A> -
+Static method in class netP5.<A HREF="./netP5/NetInfo.html" title="class in netP5">NetInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#print()"><B>print()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#printBytes(byte[])"><B>printBytes(byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#printBytes(byte[])"><B>printBytes(byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#printData()"><B>printData()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#printDebug(java.lang.String, java.lang.String)"><B>printDebug(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#printError(java.lang.String, java.lang.String)"><B>printError(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#printInfo(java.lang.String, java.lang.String)"><B>printInfo(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#println(java.lang.String)"><B>println(String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#printProcess(java.lang.String, java.lang.String)"><B>printProcess(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#printWarning(java.lang.String, java.lang.String)"><B>printWarning(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpServer.html#process(netP5.TcpPacket, int)"><B>process(TcpPacket, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#PROCESS"><B>PROCESS</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Multicast.html#process(java.net.DatagramPacket, int)"><B>process(DatagramPacket, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpPacketListener.html#process(netP5.TcpPacket, int)"><B>process(TcpPacket, int)</B></A> -
+Method in interface netP5.<A HREF="./netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpPacketListener.html#process(java.net.DatagramPacket, int)"><B>process(DatagramPacket, int)</B></A> -
+Method in interface netP5.<A HREF="./netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpServer.html#process(java.net.DatagramPacket, int)"><B>process(DatagramPacket, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#process(java.net.DatagramPacket, int)"><B>process(DatagramPacket, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#process(netP5.TcpPacket, int)"><B>process(TcpPacket, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#process(java.net.DatagramPacket, int)"><B>process(DatagramPacket, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>incoming osc messages from an udp socket are parsed, processed and forwarded to the parent.
+<DT><A HREF="./oscP5/OscP5.html#process(netP5.TcpPacket, int)"><B>process(TcpPacket, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#properties()"><B>properties()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>returns the current properties of oscP5.
+<DT><A HREF="./netP5/NetMessage.html#protocol()"><B>protocol()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>get the protocol type the message was sent over.
+</DL>
+<HR>
+<A NAME="_R_"><!-- --></A><H2>
+<B>R</B></H2>
+<DL>
+<DT><A HREF="./netP5/AbstractTcpClient.html#reconnect()"><B>reconnect()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>when a TCP connection is lost, reconnect to the server with reconnect().
+<DT><A HREF="./oscP5/OscProperties.html#remoteAddress()"><B>remoteAddress()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>returns a NetAddress of the remote host you are sending
+ osc packets to.
+<DT><A HREF="./netP5/AbstractTcpServer.html#remove(netP5.AbstractTcpClient)"><B>remove(AbstractTcpClient)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>remove a TcpClient from the server's client list.
+<DT><A HREF="./netP5/NetAddressList.html#remove(java.lang.String, int)"><B>remove(String, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddressList.html#remove(netP5.NetAddress)"><B>remove(NetAddress)</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#remove(java.lang.String, char)"><B>remove(String, char)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Removes all instances of a character in a String.
+<DT><A HREF="./netP5/StringUtils.html#remove(java.lang.String, java.lang.String)"><B>remove(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Removes all instances of a substring in a String.
+<DT><A HREF="./netP5/StringUtils.html#remove(java.lang.String, java.lang.String[])"><B>remove(String, String[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Removes all instances of substrings in a String.
+<DT><A HREF="./netP5/TcpPacketListener.html#remove(netP5.AbstractTcpClient)"><B>remove(AbstractTcpClient)</B></A> -
+Method in interface netP5.<A HREF="./netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscBundle.html#remove(int)"><B>remove(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>remove an OscMessage from an OscBundle.
+<DT><A HREF="./oscP5/OscBundle.html#remove(oscP5.OscMessage)"><B>remove(OscMessage)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#remove(netP5.AbstractTcpClient)"><B>remove(AbstractTcpClient)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#remove(netP5.AbstractTcpClient)"><B>remove(AbstractTcpClient)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#removeDuplicates(java.lang.String, java.lang.String)"><B>removeDuplicates(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Removes duplicates of a substring in a String.
+<DT><A HREF="./netP5/Multicast.html#removeListener(netP5.NetListener)"><B>removeListener(NetListener)</B></A> -
+Method in class netP5.<A HREF="./netP5/Multicast.html" title="class in netP5">Multicast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#removeListener(netP5.NetListener)"><B>removeListener(NetListener)</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpServer.html#removeListener(netP5.NetListener)"><B>removeListener(NetListener)</B></A> -
+Method in class netP5.<A HREF="./netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#removeListener(oscP5.OscEventListener)"><B>removeListener(OscEventListener)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#removeTcpListener(netP5.TcpPacketListener)"><B>removeTcpListener(TcpPacketListener)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#removeUdpListener(netP5.UdpPacketListener)"><B>removeUdpListener(UdpPacketListener)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/StringUtils.html#replace(java.lang.String, java.lang.String, java.lang.String)"><B>replace(String, String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Replaces substrings in a string.
+<DT><A HREF="./netP5/StringUtils.html#replace(java.lang.String, java.lang.String[], java.lang.String)"><B>replace(String, String[], String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Replaces several substrings in a string.
+<DT><A HREF="./netP5/StringUtils.html#right(java.lang.String, java.lang.String)"><B>right(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Returns the substring to the right of the specified substring in the
+ specified String, starting from the left.
+<DT><A HREF="./netP5/StringUtils.html#rightBack(java.lang.String, java.lang.String)"><B>rightBack(String, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Returns the substring to the right of the specified substring in the
+ specified String, starting from the right.
+<DT><A HREF="./netP5/StringUtils.html#rightJustify(java.lang.String, int)"><B>rightJustify(String, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Creates a string of the given width with the given string right justified
+ (with an appropriate number of spaces before it).
+<DT><A HREF="./netP5/AbstractMulticast.html#run()"><B>run()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#run()"><B>run()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpServer.html#run()"><B>run()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractUdpServer.html#run()"><B>run()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="./netP5/AbstractMulticast.html#send(java.lang.String)"><B>send(String)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>send a string to the multicast address.
+<DT><A HREF="./netP5/AbstractMulticast.html#send(byte[])"><B>send(byte[])</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>send a byte array to the mulitcast address.
+<DT><A HREF="./netP5/AbstractTcpClient.html#send(byte[])"><B>send(byte[])</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#send(byte[][])"><B>send(byte[][])</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#send(java.lang.String)"><B>send(String)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpServer.html#send(java.lang.String)"><B>send(String)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>send a string to the connected client(s).
+<DT><A HREF="./netP5/AbstractTcpServer.html#send(byte[])"><B>send(byte[])</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>send a byte array to the connected client(s).
+<DT><A HREF="./netP5/AbstractUdpClient.html#send(java.lang.String)"><B>send(String)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>send a string using UDP to an already specified RemoteAddress.
+<DT><A HREF="./netP5/AbstractUdpClient.html#send(byte[])"><B>send(byte[])</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>send a byte array using UDP to an already specified RemoteAddress.
+<DT><A HREF="./netP5/AbstractUdpClient.html#send(byte[], netP5.NetAddress)"><B>send(byte[], NetAddress)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>send a byte array to the dedicated remoteAddress.
+<DT><A HREF="./netP5/AbstractUdpClient.html#send(byte[], java.lang.String, int)"><B>send(byte[], String, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>send a byte array to the dedicated remoteAddress.
+<DT><A HREF="./netP5/AbstractUdpClient.html#send(java.net.DatagramPacket)"><B>send(DatagramPacket)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractUdpClient.html#send(byte[], java.net.InetAddress, int)"><B>send(byte[], InetAddress, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>send a byte array to the dedicated remoteAddress.
+<DT><A HREF="./netP5/AbstractUdpServer.html#send(byte[])"><B>send(byte[])</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>send a byte array to a previously defined remoteAddress.
+<DT><A HREF="./netP5/AbstractUdpServer.html#send(byte[], java.lang.String, int)"><B>send(byte[], String, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>send a byte array to a dedicated remoteAddress.
+<DT><A HREF="./netP5/AbstractUdpServer.html#send(java.net.DatagramPacket)"><B>send(DatagramPacket)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractUdpServer.html#send(byte[], java.net.InetAddress, int)"><B>send(byte[], InetAddress, int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>send a byte array to a dedicated remoteAddress.
+<DT><A HREF="./oscP5/OscNetManager.html#send(oscP5.OscPacket)"><B>send(OscPacket)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#send(java.net.DatagramPacket)"><B>send(DatagramPacket)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#send(oscP5.OscPacket, java.lang.String, int)"><B>send(OscPacket, String, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#send(oscP5.OscPacket, netP5.NetAddressList)"><B>send(OscPacket, NetAddressList)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#send(oscP5.OscPacket, netP5.NetAddress)"><B>send(OscPacket, NetAddress)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#send(java.lang.String, java.lang.Object[])"><B>send(String, Object[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#send(java.lang.String, java.lang.Object[], java.lang.String, int)"><B>send(String, Object[], String, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#send(java.lang.String, java.lang.Object[], netP5.NetAddressList)"><B>send(String, Object[], NetAddressList)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#send(java.lang.String, java.lang.Object[], netP5.NetAddress)"><B>send(String, Object[], NetAddress)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#send(oscP5.OscPacket, netP5.NetAddress)"><B>send(OscPacket, NetAddress)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>you can send osc packets in many different ways.
+<DT><A HREF="./oscP5/OscP5.html#send(oscP5.OscPacket)"><B>send(OscPacket)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#send(oscP5.OscPacket, netP5.NetAddressList)"><B>send(OscPacket, NetAddressList)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#send(java.lang.String, java.lang.Object[])"><B>send(String, Object[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#send(java.lang.String, java.lang.Object[], netP5.NetAddressList)"><B>send(String, Object[], NetAddressList)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#send(java.lang.String, java.lang.Object[], netP5.NetAddress)"><B>send(String, Object[], NetAddress)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#send(java.lang.String, java.lang.Object[], java.lang.String, int)"><B>send(String, Object[], String, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#send(oscP5.OscPacket, netP5.TcpClient)"><B>send(OscPacket, TcpClient)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>send to tcp client
+<DT><A HREF="./oscP5/OscP5.html#send(java.lang.String, java.lang.Object[], netP5.TcpClient)"><B>send(String, Object[], TcpClient)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#send(oscP5.OscPacket, java.lang.String, int)"><B>send(OscPacket, String, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html#SEND_FAILED"><B>SEND_FAILED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#SEND_FAILED"><B>SEND_FAILED</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#sendStatus()"><B>sendStatus()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetStatus.html#SERVER_CLOSED"><B>SERVER_CLOSED</B></A> -
+Static variable in class netP5.<A HREF="./netP5/NetStatus.html" title="class in netP5">NetStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscStatus.html#SERVER_CLOSED"><B>SERVER_CLOSED</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpClient.html#serverport()"><B>serverport()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>get the server port.
+<DT><A HREF="./netP5/Logger.html#set(int, int)"><B>set(int, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddressList.html#set(netP5.NetAddress[])"><B>set(NetAddress[])</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#set(int, java.lang.Object)"><B>set(int, Object)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>TODO
+ set should enable the programmer to set values
+ of an existing osc message.
+<DT><A HREF="./oscP5/OscMessage.html#setAddrPattern(java.lang.String)"><B>setAddrPattern(String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>set the address pattern of an osc message.
+<DT><A HREF="./oscP5/OscMessage.html#setAddrPattern(int)"><B>setAddrPattern(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#setArguments(java.lang.Object[])"><B>setArguments(Object[])</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>set the arguments of the osc message using an object array.
+<DT><A HREF="./netP5/AbstractMulticast.html#setDatagramSize(int)"><B>setDatagramSize(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>set the buffer size of the datagrams received by the multicast socket.
+<DT><A HREF="./oscP5/OscProperties.html#setDatagramSize(int)"><B>setDatagramSize(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>set the size of the datagrampacket byte buffer.
+<DT><A HREF="./oscP5/OscProperties.html#setEventMethod(java.lang.String)"><B>setEventMethod(String)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>set the name of the default event method.
+<DT><A HREF="./oscP5/OscProperties.html#setListeningPort(int)"><B>setListeningPort(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>set port number you are listening for incoming osc packets.
+<DT><A HREF="./oscP5/OscP5.html#setLogStatus(int, int)"><B>setLogStatus(int, int)</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>oscP5 has a logging mechanism which prints out processes, warnings and errors into the
+ console window.
+<DT><A HREF="./oscP5/OscP5.html#setLogStatus(int)"><B>setLogStatus(int)</B></A> -
+Static method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractMulticast.html#setLoopback(boolean)"><B>setLoopback(boolean)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>Disable/Enable local loopback of multicast datagrams.
+<DT><A HREF="./netP5/TcpClient.html#setName(java.lang.String)"><B>setName(String)</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#setNetworkProtocol(int)"><B>setNetworkProtocol(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>set the network protocol over which osc messages are transmitted.
+<DT><A HREF="./oscP5/OscProperties.html#setRemoteAddress(java.lang.String, int)"><B>setRemoteAddress(String, int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>set the remote host address.
+<DT><A HREF="./oscP5/OscProperties.html#setRemoteAddress(netP5.NetAddress)"><B>setRemoteAddress(NetAddress)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>set the remote host address.
+<DT><A HREF="./oscP5/OscProperties.html#setSRSP(boolean)"><B>setSRSP(boolean)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>SRSP stand for Send and Receive on Same Port.
+<DT><A HREF="./netP5/AbstractTcpClient.html#setTerminator(char)"><B>setTerminator(char)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>to parse an incomming tcp message, a terminator character is required to
+ determine the end of the message so that it can be parsed and forwarded.
+<DT><A HREF="./oscP5/OscBundle.html#setTimetag(long)"><B>setTimetag(long)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>set the timetag of an osc bundle.
+<DT><A HREF="./netP5/AbstractMulticast.html#setTimeToLive(int)"><B>setTimeToLive(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>Set the default time-to-live for multicast packets
+ sent out on this MulticastSocket in order to control the scope
+ of the multicasts.
+<DT><A HREF="./oscP5/OscNetManager.html#setTimeToLive(int)"><B>setTimeToLive(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#setTimeToLive(int)"><B>setTimeToLive(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>set timeToLive of a multicast packet.
+<DT><A HREF="./netP5/AbstractTcpServer.html#size()"><B>size()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>get the number of connected clients.
+<DT><A HREF="./netP5/NetAddressList.html#size()"><B>size()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscBundle.html#size()"><B>size()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>get the size of the osc bundle array which contains the osc messages.
+<DT><A HREF="./netP5/StringUtils.html#slice(int, java.lang.String[])"><B>slice(int, String[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractMulticast.html#socket()"><B>socket()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>get the running multicast socket.
+<DT><A HREF="./netP5/AbstractTcpClient.html#socket()"><B>socket()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>
+<DD>get the instance of the socket.
+<DT><A HREF="./netP5/AbstractTcpServer.html#socket()"><B>socket()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>get the server socket object.
+<DT><A HREF="./netP5/AbstractUdpClient.html#socket()"><B>socket()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A>
+<DD>get the datagram socket of the UDP client.
+<DT><A HREF="./netP5/AbstractUdpServer.html#socket()"><B>socket()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>get the datagram socket of the UDP server.
+<DT><A HREF="./netP5/StringUtils.html#spaces(int)"><B>spaces(int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Returns a String with the specified number of spaces.
+<DT><A HREF="./oscP5/OscProperties.html#srsp()"><B>srsp()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>you can send and receive at the same port while on a udp con
+<DT><A HREF="./netP5/AbstractMulticast.html#start()"><B>start()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractUdpServer.html#start()"><B>start()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#start(oscP5.OscProperties)"><B>start(OscProperties)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpPacketListener.html#status(int)"><B>status(int)</B></A> -
+Method in interface netP5.<A HREF="./netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#status(int)"><B>status(int)</B></A> -
+Method in class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#status(int)"><B>status(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#status(int)"><B>status(int)</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#stop()"><B>stop()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>stop oscP5 and close open Sockets.
+<DT><A HREF="./netP5/StringUtils.html" title="class in netP5"><B>StringUtils</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./oscP5/OscArgument.html#stringValue()"><B>stringValue()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>get the String value of the osc argument.
+<DT><A HREF="./netP5/StringUtils.html#switchCase(java.lang.String)"><B>switchCase(String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Switches the case of the supplied String.
+<DT><A HREF="./netP5/StringUtils.html#switchCase(char)"><B>switchCase(char)</B></A> -
+Static method in class netP5.<A HREF="./netP5/StringUtils.html" title="class in netP5">StringUtils</A>
+<DD>Switches the case of the supplied character.
+</DL>
+<HR>
+<A NAME="_T_"><!-- --></A><H2>
+<B>T</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetP5.html#TCP"><B>TCP</B></A> -
+Static variable in interface netP5.<A HREF="./netP5/NetP5.html" title="interface in netP5">NetP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#TCP"><B>TCP</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>a static variable used when creating an oscP5 instance with a sepcified network protocol.
+<DT><A HREF="./oscP5/OscProperties.html#TCP"><B>TCP</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html" title="class in netP5"><B>TcpClient</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/TcpClient.html#TcpClient(java.lang.Object, java.lang.String, int)"><B>TcpClient(Object, String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#TcpClient(java.lang.Object, java.lang.String, int, int)"><B>TcpClient(Object, String, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#TcpClient(netP5.TcpPacketListener, java.lang.String, int, int)"><B>TcpClient(TcpPacketListener, String, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#TcpClient(java.lang.Object, netP5.NetAddress)"><B>TcpClient(Object, NetAddress)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#TcpClient(netP5.NetAddress)"><B>TcpClient(NetAddress)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#TcpClient(java.lang.String, int)"><B>TcpClient(String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpClient.html#TcpClient(netP5.AbstractTcpServer, java.net.Socket, netP5.TcpPacketListener, int, int)"><B>TcpClient(AbstractTcpServer, Socket, TcpPacketListener, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpClient.html" title="class in netP5">TcpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#tcpClient()"><B>tcpClient()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#tcpClient()"><B>tcpClient()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>return the instance of the running TCP client if in TCP mode.
+<DT><A HREF="./netP5/NetMessage.html#tcpConnection()"><B>tcpConnection()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetMessage.html" title="class in netP5">NetMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscPacket.html#tcpConnection()"><B>tcpConnection()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>
+<DD>when in TCP mode, tcpConnection() returns the instance of the TcpClient that has sent the OscMessage.
+<DT><A HREF="./netP5/TcpPacket.html" title="class in netP5"><B>TcpPacket</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/TcpPacket.html#TcpPacket(netP5.TcpClient, java.lang.StringBuffer, byte[])"><B>TcpPacket(TcpClient, StringBuffer, byte[])</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpPacketListener.html" title="interface in netP5"><B>TcpPacketListener</B></A> - Interface in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/TcpServer.html" title="class in netP5"><B>TcpServer</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/TcpServer.html#TcpServer(int)"><B>TcpServer(int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#TcpServer(java.lang.Object, int)"><B>TcpServer(Object, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#TcpServer(java.lang.Object, int, int)"><B>TcpServer(Object, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#TcpServer(int, int)"><B>TcpServer(int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/TcpServer.html#TcpServer(netP5.TcpPacketListener, int, int)"><B>TcpServer(TcpPacketListener, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/TcpServer.html" title="class in netP5">TcpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscNetManager.html#tcpServer()"><B>tcpServer()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#tcpServer()"><B>tcpServer()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>return the instance of the running TCP server if in TCP mode.
+<DT><A HREF="./oscP5/OscBundle.html#timetag()"><B>timetag()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>
+<DD>returns a timetag as byte array.
+<DT><A HREF="./oscP5/OscMessage.html#timetag()"><B>timetag()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>get the timetag of an osc message.
+<DT><A HREF="./netP5/AbstractMulticast.html#timeToLive()"><B>timeToLive()</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A>
+<DD>get the current time to live value.
+<DT><A HREF="./netP5/Bytes.html#toByteArray(java.io.InputStream)"><B>toByteArray(InputStream)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toBytes(int)"><B>toBytes(int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toBytes(int, byte[])"><B>toBytes(int, byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toBytes(long)"><B>toBytes(long)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toBytes(long, byte[])"><B>toBytes(long, byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toDouble(byte[])"><B>toDouble(byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toFile(java.io.InputStream, java.io.File)"><B>toFile(InputStream, File)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toFloat(byte[])"><B>toFloat(byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toInt(byte[])"><B>toInt(byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toIntBigEndian(java.io.InputStream)"><B>toIntBigEndian(InputStream)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toIntLittleEndian(java.io.InputStream)"><B>toIntLittleEndian(InputStream)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toLong(byte[])"><B>toLong(byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toStream(java.io.OutputStream, int)"><B>toStream(OutputStream, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toStream(java.io.OutputStream, java.lang.String)"><B>toStream(OutputStream, String)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toStream(java.io.OutputStream, byte[])"><B>toStream(OutputStream, byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toStream(java.io.OutputStream, java.io.File)"><B>toStream(OutputStream, File)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toString(byte[], int, int)"><B>toString(byte[], int, int)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toString(byte[])"><B>toString(byte[])</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Bytes.html#toString(java.io.InputStream)"><B>toString(InputStream)</B></A> -
+Static method in class netP5.<A HREF="./netP5/Bytes.html" title="class in netP5">Bytes</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/NetAddress.html#toString()"><B>toString()</B></A> -
+Method in class netP5.<A HREF="./netP5/NetAddress.html" title="class in netP5">NetAddress</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscArgument.html#toString()"><B>toString()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscArgument.html" title="class in oscP5">OscArgument</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscMessage.html#toString()"><B>toString()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscProperties.html#toString()"><B>toString()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>prints out the current osc properties settings.
+<DT><A HREF="./oscP5/OscMessage.html#typetag()"><B>typetag()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>
+<DD>returns the typetag of the osc message.
+</DL>
+<HR>
+<A NAME="_U_"><!-- --></A><H2>
+<B>U</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetP5.html#UDP"><B>UDP</B></A> -
+Static variable in interface netP5.<A HREF="./netP5/NetP5.html" title="interface in netP5">NetP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#UDP"><B>UDP</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>a static variable used when creating an oscP5 instance with a sepcified network protocol.
+<DT><A HREF="./oscP5/OscProperties.html#UDP"><B>UDP</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpClient.html" title="class in netP5"><B>UdpClient</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/UdpClient.html#UdpClient()"><B>UdpClient()</B></A> -
+Constructor for class netP5.<A HREF="./netP5/UdpClient.html" title="class in netP5">UdpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpClient.html#UdpClient(java.lang.String, int)"><B>UdpClient(String, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/UdpClient.html" title="class in netP5">UdpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpClient.html#UdpClient(netP5.NetAddress)"><B>UdpClient(NetAddress)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/UdpClient.html" title="class in netP5">UdpClient</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpPacketListener.html" title="interface in netP5"><B>UdpPacketListener</B></A> - Interface in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/UdpServer.html" title="class in netP5"><B>UdpServer</B></A> - Class in <A HREF="./netP5/package-summary.html">netP5</A><DD>&nbsp;<DT><A HREF="./netP5/UdpServer.html#UdpServer(java.lang.Object, int, int)"><B>UdpServer(Object, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<DD>new UDP server.
+<DT><A HREF="./netP5/UdpServer.html#UdpServer(java.lang.Object, int)"><B>UdpServer(Object, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/UdpServer.html#UdpServer(netP5.UdpPacketListener, int, int)"><B>UdpServer(UdpPacketListener, int, int)</B></A> -
+Constructor for class netP5.<A HREF="./netP5/UdpServer.html" title="class in netP5">UdpServer</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/AbstractTcpServer.html#unBan(java.lang.String)"><B>unBan(String)</B></A> -
+Method in class netP5.<A HREF="./netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>
+<DD>remove the ban for an IP address.
+</DL>
+<HR>
+<A NAME="_V_"><!-- --></A><H2>
+<B>V</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetP5.html#VERSION"><B>VERSION</B></A> -
+Static variable in interface netP5.<A HREF="./netP5/NetP5.html" title="interface in netP5">NetP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#VERSION"><B>VERSION</B></A> -
+Static variable in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>&nbsp;
+<DT><A HREF="./oscP5/OscP5.html#version()"><B>version()</B></A> -
+Method in class oscP5.<A HREF="./oscP5/OscP5.html" title="class in oscP5">OscP5</A>
+<DD>get the current version of oscP5.
+</DL>
+<HR>
+<A NAME="_W_"><!-- --></A><H2>
+<B>W</B></H2>
+<DL>
+<DT><A HREF="./netP5/NetInfo.html#wan()"><B>wan()</B></A> -
+Static method in class netP5.<A HREF="./netP5/NetInfo.html" title="class in netP5">NetInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./netP5/Logger.html#WARNING"><B>WARNING</B></A> -
+Static variable in class netP5.<A HREF="./netP5/Logger.html" title="class in netP5">Logger</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A>
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/index.html b/libraries/oscP5/reference/index.html
new file mode 100644
index 0000000..41a7d02
--- /dev/null
+++ b/libraries/oscP5/reference/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Sun Dec 23 14:34:38 SGT 2012-->
+<TITLE>
+Javadocs: oscP5
+</TITLE>
+<SCRIPT type="text/javascript">
+ targetPage = "" + window.location.search;
+ if (targetPage != "" && targetPage != "undefined")
+ targetPage = targetPage.substring(1);
+ if (targetPage.indexOf(":") != -1)
+ targetPage = "undefined";
+ function loadFrames() {
+ if (targetPage != "" && targetPage != "undefined")
+ top.classFrame.location = top.targetPage;
+ }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/AbstractMulticast.html b/libraries/oscP5/reference/netP5/AbstractMulticast.html
new file mode 100644
index 0000000..7de48fc
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/AbstractMulticast.html
@@ -0,0 +1,560 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+AbstractMulticast (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="AbstractMulticast (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractMulticast.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractMulticast.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class AbstractMulticast</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.AbstractMulticast</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../netP5/Multicast.html" title="class in netP5">Multicast</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>AbstractMulticast</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#AbstractMulticast(netP5.UdpPacketListener, java.lang.String, int)">AbstractMulticast</A></B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theDatagramListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#AbstractMulticast(netP5.UdpPacketListener, java.lang.String, int, int)">AbstractMulticast</A></B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theDatagramListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#dispose()">dispose</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dispose the multicastSocket.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#loopback()">loopback</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the current loopback mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#run()">run</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#send(byte[])">send</A></B>(byte[]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array to the mulitcast address.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#send(java.lang.String)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a string to the multicast address.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#setDatagramSize(int)">setDatagramSize</A></B>(int&nbsp;theDatagramSize)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the buffer size of the datagrams received by the multicast socket.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#setLoopback(boolean)">setLoopback</A></B>(boolean&nbsp;theFlag)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disable/Enable local loopback of multicast datagrams.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#setTimeToLive(int)">setTimeToLive</A></B>(int&nbsp;theTTL)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the default time-to-live for multicast packets
+ sent out on this MulticastSocket in order to control the scope
+ of the multicasts.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/net/MulticastSocket.html?is-external=true" title="class or interface in java.net">MulticastSocket</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#socket()">socket</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the running multicast socket.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#start()">start</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractMulticast.html#timeToLive()">timeToLive</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the current time to live value.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AbstractMulticast(netP5.UdpPacketListener, java.lang.String, int, int)"><!-- --></A><H3>
+AbstractMulticast</H3>
+<PRE>
+public <B>AbstractMulticast</B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theDatagramListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theDatagramListener</CODE> - UdpPacketListener<DD><CODE>theMulticastAddress</CODE> - String<DD><CODE>thePort</CODE> - int<DD><CODE>theBufferSize</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="AbstractMulticast(netP5.UdpPacketListener, java.lang.String, int)"><!-- --></A><H3>
+AbstractMulticast</H3>
+<PRE>
+public <B>AbstractMulticast</B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theDatagramListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theDatagramListener</CODE> - UdpPacketListener<DD><CODE>theMulticastAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="socket()"><!-- --></A><H3>
+socket</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/net/MulticastSocket.html?is-external=true" title="class or interface in java.net">MulticastSocket</A> <B>socket</B>()</PRE>
+<DL>
+<DD>get the running multicast socket.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>MulticastSocket</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDatagramSize(int)"><!-- --></A><H3>
+setDatagramSize</H3>
+<PRE>
+public void <B>setDatagramSize</B>(int&nbsp;theDatagramSize)</PRE>
+<DL>
+<DD>set the buffer size of the datagrams received by the multicast socket.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theDatagramSize</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="start()"><!-- --></A><H3>
+start</H3>
+<PRE>
+public void <B>start</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="run()"><!-- --></A><H3>
+run</H3>
+<PRE>
+public void <B>run</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true#run()" title="class or interface in java.lang">run</A></CODE> in interface <CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dispose()"><!-- --></A><H3>
+dispose</H3>
+<PRE>
+public void <B>dispose</B>()</PRE>
+<DL>
+<DD>dispose the multicastSocket.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTimeToLive(int)"><!-- --></A><H3>
+setTimeToLive</H3>
+<PRE>
+public boolean <B>setTimeToLive</B>(int&nbsp;theTTL)</PRE>
+<DL>
+<DD>Set the default time-to-live for multicast packets
+ sent out on this MulticastSocket in order to control the scope
+ of the multicasts. theTTL must be in the range 0 <= ttl <= 255
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theTTL</CODE> - int
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="timeToLive()"><!-- --></A><H3>
+timeToLive</H3>
+<PRE>
+public int <B>timeToLive</B>()</PRE>
+<DL>
+<DD>get the current time to live value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLoopback(boolean)"><!-- --></A><H3>
+setLoopback</H3>
+<PRE>
+public void <B>setLoopback</B>(boolean&nbsp;theFlag)</PRE>
+<DL>
+<DD>Disable/Enable local loopback of multicast datagrams.
+ The option is used by the platform's networking code as a
+ hint for setting whether multicast data will be
+ looped back to the local socket.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theFlag</CODE> - boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="loopback()"><!-- --></A><H3>
+loopback</H3>
+<PRE>
+public boolean <B>loopback</B>()</PRE>
+<DL>
+<DD>get the current loopback mode. messages loop back to the local address
+ if the loopback is set to false. set loopback to false to prevent messages
+ to loop back to your local address.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</PRE>
+<DL>
+<DD>send a string to the multicast address.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theString</CODE> - String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[])"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes)</PRE>
+<DL>
+<DD>send a byte array to the mulitcast address.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBytes</CODE> - byte[]</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractMulticast.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractMulticast.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/AbstractTcpClient.html b/libraries/oscP5/reference/netP5/AbstractTcpClient.html
new file mode 100644
index 0000000..afc5010
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/AbstractTcpClient.html
@@ -0,0 +1,869 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+AbstractTcpClient (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="AbstractTcpClient (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractMulticast.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractTcpClient.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractTcpClient.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class AbstractTcpClient</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.AbstractTcpClient</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>AbstractTcpClient</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#MODE_NEWLINE">MODE_NEWLINE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;terminator is newline.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#MODE_READLINE">MODE_READLINE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;terminator is readline.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#MODE_STREAM">MODE_STREAM</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no terminator required, packets are sent via
+ a tcp stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#MODE_TERMINATED">MODE_TERMINATED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;terminator is terminated, by default this is character '\0'
+ and can be set with setTerminator</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#AbstractTcpClient(netP5.AbstractTcpServer, java.net.Socket, netP5.TcpPacketListener, int, int)">AbstractTcpClient</A></B>(<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>&nbsp;theTcpServer,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</A>&nbsp;theSocket,
+ <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ int&nbsp;theServerPort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#AbstractTcpClient(java.lang.String, int)">AbstractTcpClient</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#AbstractTcpClient(java.lang.String, int, int)">AbstractTcpClient</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#AbstractTcpClient(netP5.TcpPacketListener, java.lang.String, int)">AbstractTcpClient</A></B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#AbstractTcpClient(netP5.TcpPacketListener, java.lang.String, int, int)">AbstractTcpClient</A></B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#dispose()">dispose</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop and dispose a tcp client.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#equals(netP5.NetAddress)">equals</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#equals(netP5.TcpClient)">equals</A></B>(<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>&nbsp;theClient)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#getString()">getString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#getStringBuffer()">getStringBuffer</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#handleInput()">handleInput</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#handleStatus(int)">handleStatus</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#listener()">listener</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#mode()">mode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the mode of the terminator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#netaddress()">netaddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#netAddress()">netAddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#reconnect()">reconnect</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when a TCP connection is lost, reconnect to the server with reconnect().</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#run()">run</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#send(byte[])">send</A></B>(byte[]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#send(byte[][])">send</A></B>(byte[][]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#send(java.lang.String)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#serverport()">serverport</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the server port.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#setTerminator(char)">setTerminator</A></B>(char&nbsp;theTerminator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to parse an incomming tcp message, a terminator character is required to
+ determine the end of the message so that it can be parsed and forwarded.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpClient.html#socket()">socket</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the instance of the socket.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="MODE_READLINE"><!-- --></A><H3>
+MODE_READLINE</H3>
+<PRE>
+public static final int <B>MODE_READLINE</B></PRE>
+<DL>
+<DD>terminator is readline.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.AbstractTcpClient.MODE_READLINE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MODE_TERMINATED"><!-- --></A><H3>
+MODE_TERMINATED</H3>
+<PRE>
+public static final int <B>MODE_TERMINATED</B></PRE>
+<DL>
+<DD>terminator is terminated, by default this is character '\0'
+ and can be set with setTerminator
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.AbstractTcpClient.MODE_TERMINATED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MODE_NEWLINE"><!-- --></A><H3>
+MODE_NEWLINE</H3>
+<PRE>
+public static final int <B>MODE_NEWLINE</B></PRE>
+<DL>
+<DD>terminator is newline.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.AbstractTcpClient.MODE_NEWLINE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MODE_STREAM"><!-- --></A><H3>
+MODE_STREAM</H3>
+<PRE>
+public static final int <B>MODE_STREAM</B></PRE>
+<DL>
+<DD>no terminator required, packets are sent via
+ a tcp stream.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.AbstractTcpClient.MODE_STREAM">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AbstractTcpClient(netP5.TcpPacketListener, java.lang.String, int)"><!-- --></A><H3>
+AbstractTcpClient</H3>
+<PRE>
+public <B>AbstractTcpClient</B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theTcpPacketListener</CODE> - TcpPacketListener<DD><CODE>theHost</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="AbstractTcpClient(java.lang.String, int)"><!-- --></A><H3>
+AbstractTcpClient</H3>
+<PRE>
+public <B>AbstractTcpClient</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theHost</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="AbstractTcpClient(netP5.TcpPacketListener, java.lang.String, int, int)"><!-- --></A><H3>
+AbstractTcpClient</H3>
+<PRE>
+public <B>AbstractTcpClient</B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theTcpPacketListener</CODE> - TcpPacketListener<DD><CODE>theHost</CODE> - String<DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="AbstractTcpClient(java.lang.String, int, int)"><!-- --></A><H3>
+AbstractTcpClient</H3>
+<PRE>
+public <B>AbstractTcpClient</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theHost</CODE> - String<DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="AbstractTcpClient(netP5.AbstractTcpServer, java.net.Socket, netP5.TcpPacketListener, int, int)"><!-- --></A><H3>
+AbstractTcpClient</H3>
+<PRE>
+public <B>AbstractTcpClient</B>(<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>&nbsp;theTcpServer,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</A>&nbsp;theSocket,
+ <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ int&nbsp;theServerPort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theTcpServer</CODE> - AbstractTcpServer<DD><CODE>theSocket</CODE> - Socket<DD><CODE>theTcpPacketListener</CODE> - TcpPacketListener<DD><CODE>theServerPort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="reconnect()"><!-- --></A><H3>
+reconnect</H3>
+<PRE>
+public void <B>reconnect</B>()</PRE>
+<DL>
+<DD>when a TCP connection is lost, reconnect to the server with reconnect().
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTerminator(char)"><!-- --></A><H3>
+setTerminator</H3>
+<PRE>
+public void <B>setTerminator</B>(char&nbsp;theTerminator)</PRE>
+<DL>
+<DD>to parse an incomming tcp message, a terminator character is required to
+ determine the end of the message so that it can be parsed and forwarded.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theTerminator</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dispose()"><!-- --></A><H3>
+dispose</H3>
+<PRE>
+public void <B>dispose</B>()</PRE>
+<DL>
+<DD>stop and dispose a tcp client.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="run()"><!-- --></A><H3>
+run</H3>
+<PRE>
+public void <B>run</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true#run()" title="class or interface in java.lang">run</A></CODE> in interface <CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleInput()"><!-- --></A><H3>
+handleInput</H3>
+<PRE>
+public abstract void <B>handleInput</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleStatus(int)"><!-- --></A><H3>
+handleStatus</H3>
+<PRE>
+public abstract void <B>handleStatus</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="listener()"><!-- --></A><H3>
+listener</H3>
+<PRE>
+public <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A> <B>listener</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="serverport()"><!-- --></A><H3>
+serverport</H3>
+<PRE>
+public int <B>serverport</B>()</PRE>
+<DL>
+<DD>get the server port.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="socket()"><!-- --></A><H3>
+socket</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</A> <B>socket</B>()</PRE>
+<DL>
+<DD>get the instance of the socket. more info at java.net.Socket
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mode()"><!-- --></A><H3>
+mode</H3>
+<PRE>
+public int <B>mode</B>()</PRE>
+<DL>
+<DD>get the mode of the terminator.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getString()"><!-- --></A><H3>
+getString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStringBuffer()"><!-- --></A><H3>
+getStringBuffer</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A> <B>getStringBuffer</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[])"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[][])"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[][]&nbsp;theBytes)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="netAddress()"><!-- --></A><H3>
+netAddress</H3>
+<PRE>
+public <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A> <B>netAddress</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="netaddress()"><!-- --></A><H3>
+netaddress</H3>
+<PRE>
+public <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A> <B>netaddress</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(netP5.NetAddress)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theNetAddress</CODE> - NetAddress
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(netP5.TcpClient)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>&nbsp;theClient)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractMulticast.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractTcpClient.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractTcpClient.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/AbstractTcpServer.html b/libraries/oscP5/reference/netP5/AbstractTcpServer.html
new file mode 100644
index 0000000..cd55883
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/AbstractTcpServer.html
@@ -0,0 +1,675 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+AbstractTcpServer (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="AbstractTcpServer (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/AbstractUdpClient.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractTcpServer.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractTcpServer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class AbstractTcpServer</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.AbstractTcpServer</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>, <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../netP5/TcpServer.html" title="class in netP5">TcpServer</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>AbstractTcpServer</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>, <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#MODE_NEWLINE">MODE_NEWLINE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#MODE_READLINE">MODE_READLINE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#MODE_STREAM">MODE_STREAM</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#MODE_TERMINATED">MODE_TERMINATED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#AbstractTcpServer(int, int)">AbstractTcpServer</A></B>(int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#AbstractTcpServer(netP5.TcpPacketListener, int, int)">AbstractTcpServer</A></B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#ban(java.lang.String)">ban</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIP)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ban an IP address from the server.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#dispose()">dispose</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kill the server.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#getClient(int)">getClient</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get a client at a specific position the client list.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#getClients()">getClients</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get a list of all connected clients.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#handleInput(netP5.TcpPacket, int)">handleInput</A></B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#process(netP5.TcpPacket, int)">process</A></B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#remove(netP5.AbstractTcpClient)">remove</A></B>(<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>&nbsp;theTcpClient)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove a TcpClient from the server's client list.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#run()">run</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#send(byte[])">send</A></B>(byte[]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array to the connected client(s).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#send(java.lang.String)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a string to the connected client(s).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#size()">size</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the number of connected clients.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/net/ServerSocket.html?is-external=true" title="class or interface in java.net">ServerSocket</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#socket()">socket</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the server socket object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractTcpServer.html#unBan(java.lang.String)">unBan</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIP)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove the ban for an IP address.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_netP5.TcpPacketListener"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface netP5.<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../netP5/TcpPacketListener.html#status(int)">status</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="MODE_READLINE"><!-- --></A><H3>
+MODE_READLINE</H3>
+<PRE>
+public static final int <B>MODE_READLINE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.AbstractTcpServer.MODE_READLINE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MODE_TERMINATED"><!-- --></A><H3>
+MODE_TERMINATED</H3>
+<PRE>
+public static final int <B>MODE_TERMINATED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.AbstractTcpServer.MODE_TERMINATED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MODE_NEWLINE"><!-- --></A><H3>
+MODE_NEWLINE</H3>
+<PRE>
+public static final int <B>MODE_NEWLINE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.AbstractTcpServer.MODE_NEWLINE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MODE_STREAM"><!-- --></A><H3>
+MODE_STREAM</H3>
+<PRE>
+public static final int <B>MODE_STREAM</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.AbstractTcpServer.MODE_STREAM">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AbstractTcpServer(int, int)"><!-- --></A><H3>
+AbstractTcpServer</H3>
+<PRE>
+public <B>AbstractTcpServer</B>(int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="AbstractTcpServer(netP5.TcpPacketListener, int, int)"><!-- --></A><H3>
+AbstractTcpServer</H3>
+<PRE>
+public <B>AbstractTcpServer</B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theTcpPacketListener</CODE> - TcpPacketListener<DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ban(java.lang.String)"><!-- --></A><H3>
+ban</H3>
+<PRE>
+public void <B>ban</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIP)</PRE>
+<DL>
+<DD>ban an IP address from the server.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIP</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unBan(java.lang.String)"><!-- --></A><H3>
+unBan</H3>
+<PRE>
+public void <B>unBan</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIP)</PRE>
+<DL>
+<DD>remove the ban for an IP address.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIP</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="socket()"><!-- --></A><H3>
+socket</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/net/ServerSocket.html?is-external=true" title="class or interface in java.net">ServerSocket</A> <B>socket</B>()</PRE>
+<DL>
+<DD>get the server socket object. more at java.net.ServerSocket
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="run()"><!-- --></A><H3>
+run</H3>
+<PRE>
+public void <B>run</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true#run()" title="class or interface in java.lang">run</A></CODE> in interface <CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</PRE>
+<DL>
+<DD>send a string to the connected client(s).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theString</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[])"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes)</PRE>
+<DL>
+<DD>send a byte array to the connected client(s).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBytes</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dispose()"><!-- --></A><H3>
+dispose</H3>
+<PRE>
+public void <B>dispose</B>()</PRE>
+<DL>
+<DD>kill the server.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD>get the number of connected clients.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getClients()"><!-- --></A><H3>
+getClients</H3>
+<PRE>
+public <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>[] <B>getClients</B>()</PRE>
+<DL>
+<DD>get a list of all connected clients. an array of type TcpClient[]
+ will be returned.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getClient(int)"><!-- --></A><H3>
+getClient</H3>
+<PRE>
+public <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A> <B>getClient</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD>get a client at a specific position the client list.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> -
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="process(netP5.TcpPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+public void <B>process</B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/TcpPacketListener.html#process(netP5.TcpPacket, int)">process</A></CODE> in interface <CODE><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - TcpPacket<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleInput(netP5.TcpPacket, int)"><!-- --></A><H3>
+handleInput</H3>
+<PRE>
+public abstract void <B>handleInput</B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - TcpPacket<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(netP5.AbstractTcpClient)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>&nbsp;theTcpClient)</PRE>
+<DL>
+<DD>remove a TcpClient from the server's client list.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/TcpPacketListener.html#remove(netP5.AbstractTcpClient)">remove</A></CODE> in interface <CODE><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theTcpClient</CODE> - TCPClientAbstract</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/AbstractUdpClient.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractTcpServer.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractTcpServer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/AbstractUdpClient.html b/libraries/oscP5/reference/netP5/AbstractUdpClient.html
new file mode 100644
index 0000000..44efe19
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/AbstractUdpClient.html
@@ -0,0 +1,408 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+AbstractUdpClient (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="AbstractUdpClient (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/AbstractUdpServer.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractUdpClient.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractUdpClient.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class AbstractUdpClient</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.AbstractUdpClient</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../netP5/UdpClient.html" title="class in netP5">UdpClient</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>AbstractUdpClient</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#AbstractUdpClient()">AbstractUdpClient</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#AbstractUdpClient(java.lang.String, int)">AbstractUdpClient</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddr,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#send(byte[])">send</A></B>(byte[]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array using UDP to an already specified RemoteAddress.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#send(byte[], java.net.InetAddress, int)">send</A></B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array to the dedicated remoteAddress.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#send(byte[], netP5.NetAddress)">send</A></B>(byte[]&nbsp;theBytes,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array to the dedicated remoteAddress.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#send(byte[], java.lang.String, int)">send</A></B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array to the dedicated remoteAddress.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#send(java.net.DatagramPacket)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#send(java.lang.String)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a string using UDP to an already specified RemoteAddress.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramSocket.html?is-external=true" title="class or interface in java.net">DatagramSocket</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpClient.html#socket()">socket</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the datagram socket of the UDP client.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AbstractUdpClient()"><!-- --></A><H3>
+AbstractUdpClient</H3>
+<PRE>
+public <B>AbstractUdpClient</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="AbstractUdpClient(java.lang.String, int)"><!-- --></A><H3>
+AbstractUdpClient</H3>
+<PRE>
+public <B>AbstractUdpClient</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddr,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theAddr</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="socket()"><!-- --></A><H3>
+socket</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramSocket.html?is-external=true" title="class or interface in java.net">DatagramSocket</A> <B>socket</B>()</PRE>
+<DL>
+<DD>get the datagram socket of the UDP client. more info at java.net.DatagramSocket
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>DatagramSocket</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</PRE>
+<DL>
+<DD>send a string using UDP to an already specified RemoteAddress.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theString</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[])"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes)</PRE>
+<DL>
+<DD>send a byte array using UDP to an already specified RemoteAddress.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBytes</CODE> - byte[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[], netP5.NetAddress)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD>send a byte array to the dedicated remoteAddress.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBytes</CODE> - <DD><CODE>theNetAddress</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[], java.lang.String, int)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD>send a byte array to the dedicated remoteAddress.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.net.DatagramPacket)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - DatagramPacket</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[], java.net.InetAddress, int)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD>send a byte array to the dedicated remoteAddress.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBytes</CODE> - byte[]<DD><CODE>theAddress</CODE> - InetAddress<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/AbstractUdpServer.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractUdpClient.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractUdpClient.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/AbstractUdpServer.html b/libraries/oscP5/reference/netP5/AbstractUdpServer.html
new file mode 100644
index 0000000..927c9cb
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/AbstractUdpServer.html
@@ -0,0 +1,440 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+AbstractUdpServer (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="AbstractUdpServer (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractUdpClient.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/Bytes.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractUdpServer.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractUdpServer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class AbstractUdpServer</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.AbstractUdpServer</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../netP5/UdpServer.html" title="class in netP5">UdpServer</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>AbstractUdpServer</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#AbstractUdpServer(netP5.UdpPacketListener, int, int)">AbstractUdpServer</A></B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theListener,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create a new UdpServer</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#dispose()">dispose</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop the UDP server, clean up and delete its reference.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#run()">run</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#send(byte[])">send</A></B>(byte[]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array to a previously defined remoteAddress.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#send(byte[], java.net.InetAddress, int)">send</A></B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array to a dedicated remoteAddress.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#send(byte[], java.lang.String, int)">send</A></B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send a byte array to a dedicated remoteAddress.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#send(java.net.DatagramPacket)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramSocket.html?is-external=true" title="class or interface in java.net">DatagramSocket</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#socket()">socket</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the datagram socket of the UDP server.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/AbstractUdpServer.html#start()">start</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AbstractUdpServer(netP5.UdpPacketListener, int, int)"><!-- --></A><H3>
+AbstractUdpServer</H3>
+<PRE>
+public <B>AbstractUdpServer</B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theListener,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</PRE>
+<DL>
+<DD>create a new UdpServer
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - UdpPacketListener<DD><CODE>thePort</CODE> - int<DD><CODE>theBufferSize</CODE> - int</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="socket()"><!-- --></A><H3>
+socket</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramSocket.html?is-external=true" title="class or interface in java.net">DatagramSocket</A> <B>socket</B>()</PRE>
+<DL>
+<DD>get the datagram socket of the UDP server.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>DatagramSocket</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="start()"><!-- --></A><H3>
+start</H3>
+<PRE>
+public void <B>start</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="run()"><!-- --></A><H3>
+run</H3>
+<PRE>
+public void <B>run</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true#run()" title="class or interface in java.lang">run</A></CODE> in interface <CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dispose()"><!-- --></A><H3>
+dispose</H3>
+<PRE>
+public void <B>dispose</B>()</PRE>
+<DL>
+<DD>stop the UDP server, clean up and delete its reference.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[])"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes)</PRE>
+<DL>
+<DD>send a byte array to a previously defined remoteAddress.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBytes</CODE> - byte[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[], java.lang.String, int)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD>send a byte array to a dedicated remoteAddress.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.net.DatagramPacket)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - DatagramPacket</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(byte[], java.net.InetAddress, int)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD>send a byte array to a dedicated remoteAddress.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBytes</CODE> - byte[]<DD><CODE>theAddress</CODE> - InetAddress<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractUdpClient.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/Bytes.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/AbstractUdpServer.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="AbstractUdpServer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/Bytes.html b/libraries/oscP5/reference/netP5/Bytes.html
new file mode 100644
index 0000000..e3bdca7
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/Bytes.html
@@ -0,0 +1,906 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Bytes (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Bytes (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractUdpServer.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/Logger.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/Bytes.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="Bytes.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class Bytes</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.Bytes</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Bytes</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/Bytes.html#Bytes()">Bytes</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#append(byte[], byte[])">append</A></B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#append(byte[], byte[], byte[])">append</A></B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1,
+ byte[]&nbsp;abyte2)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#areEqual(byte[], byte[])">areEqual</A></B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#copy(byte[], int)">copy</A></B>(byte[]&nbsp;abyte0,
+ int&nbsp;i)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#copy(byte[], int, int)">copy</A></B>(byte[]&nbsp;abyte0,
+ int&nbsp;i,
+ int&nbsp;j)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#getAsString(byte[])">getAsString</A></B>(byte[]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#getAsString(java.lang.Object[])">getAsString</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;converts an object array into a String that is formated like a list</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#merge(byte[], byte[])">merge</A></B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#merge(byte[], byte[], int)">merge</A></B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1,
+ int&nbsp;i)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#merge(byte[], byte[], int, int)">merge</A></B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1,
+ int&nbsp;i,
+ int&nbsp;j)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#merge(byte[], byte[], int, int, int)">merge</A></B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1,
+ int&nbsp;i,
+ int&nbsp;j,
+ int&nbsp;k)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#printBytes(byte[])">printBytes</A></B>(byte[]&nbsp;byteArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toByteArray(java.io.InputStream)">toByteArray</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;ins)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toBytes(int)">toBytes</A></B>(int&nbsp;i)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toBytes(int, byte[])">toBytes</A></B>(int&nbsp;i,
+ byte[]&nbsp;abyte0)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toBytes(long)">toBytes</A></B>(long&nbsp;l)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toBytes(long, byte[])">toBytes</A></B>(long&nbsp;l,
+ byte[]&nbsp;abyte0)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toDouble(byte[])">toDouble</A></B>(byte[]&nbsp;abyte0)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toFile(java.io.InputStream, java.io.File)">toFile</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;ins,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A>&nbsp;file)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toFloat(byte[])">toFloat</A></B>(byte[]&nbsp;abyte0)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toInt(byte[])">toInt</A></B>(byte[]&nbsp;abyte0)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toIntBigEndian(java.io.InputStream)">toIntBigEndian</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;theInputStream)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toIntLittleEndian(java.io.InputStream)">toIntLittleEndian</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;theInputStream)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toLong(byte[])">toLong</A></B>(byte[]&nbsp;abyte0)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toStream(java.io.OutputStream, byte[])">toStream</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;os,
+ byte[]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toStream(java.io.OutputStream, java.io.File)">toStream</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;os,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A>&nbsp;file)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toStream(java.io.OutputStream, int)">toStream</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;os,
+ int&nbsp;i)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toStream(java.io.OutputStream, java.lang.String)">toStream</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;os,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toString(byte[])">toString</A></B>(byte[]&nbsp;abyte0)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toString(byte[], int, int)">toString</A></B>(byte[]&nbsp;abyte0,
+ int&nbsp;i,
+ int&nbsp;j)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Bytes.html#toString(java.io.InputStream)">toString</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;ins)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Bytes()"><!-- --></A><H3>
+Bytes</H3>
+<PRE>
+public <B>Bytes</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getAsString(java.lang.Object[])"><!-- --></A><H3>
+getAsString</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getAsString</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theObject)</PRE>
+<DL>
+<DD>converts an object array into a String that is formated like a list
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theObject</CODE> - Object[]
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAsString(byte[])"><!-- --></A><H3>
+getAsString</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getAsString</B>(byte[]&nbsp;theBytes)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toInt(byte[])"><!-- --></A><H3>
+toInt</H3>
+<PRE>
+public static int <B>toInt</B>(byte[]&nbsp;abyte0)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLong(byte[])"><!-- --></A><H3>
+toLong</H3>
+<PRE>
+public static long <B>toLong</B>(byte[]&nbsp;abyte0)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toFloat(byte[])"><!-- --></A><H3>
+toFloat</H3>
+<PRE>
+public static float <B>toFloat</B>(byte[]&nbsp;abyte0)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toDouble(byte[])"><!-- --></A><H3>
+toDouble</H3>
+<PRE>
+public static double <B>toDouble</B>(byte[]&nbsp;abyte0)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toBytes(int)"><!-- --></A><H3>
+toBytes</H3>
+<PRE>
+public static byte[] <B>toBytes</B>(int&nbsp;i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toBytes(int, byte[])"><!-- --></A><H3>
+toBytes</H3>
+<PRE>
+public static byte[] <B>toBytes</B>(int&nbsp;i,
+ byte[]&nbsp;abyte0)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toBytes(long)"><!-- --></A><H3>
+toBytes</H3>
+<PRE>
+public static byte[] <B>toBytes</B>(long&nbsp;l)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toBytes(long, byte[])"><!-- --></A><H3>
+toBytes</H3>
+<PRE>
+public static byte[] <B>toBytes</B>(long&nbsp;l,
+ byte[]&nbsp;abyte0)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="areEqual(byte[], byte[])"><!-- --></A><H3>
+areEqual</H3>
+<PRE>
+public static boolean <B>areEqual</B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="append(byte[], byte[])"><!-- --></A><H3>
+append</H3>
+<PRE>
+public static byte[] <B>append</B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="append(byte[], byte[], byte[])"><!-- --></A><H3>
+append</H3>
+<PRE>
+public static byte[] <B>append</B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1,
+ byte[]&nbsp;abyte2)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copy(byte[], int)"><!-- --></A><H3>
+copy</H3>
+<PRE>
+public static byte[] <B>copy</B>(byte[]&nbsp;abyte0,
+ int&nbsp;i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copy(byte[], int, int)"><!-- --></A><H3>
+copy</H3>
+<PRE>
+public static byte[] <B>copy</B>(byte[]&nbsp;abyte0,
+ int&nbsp;i,
+ int&nbsp;j)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="merge(byte[], byte[], int, int, int)"><!-- --></A><H3>
+merge</H3>
+<PRE>
+public static void <B>merge</B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1,
+ int&nbsp;i,
+ int&nbsp;j,
+ int&nbsp;k)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="merge(byte[], byte[], int)"><!-- --></A><H3>
+merge</H3>
+<PRE>
+public static void <B>merge</B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1,
+ int&nbsp;i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="merge(byte[], byte[])"><!-- --></A><H3>
+merge</H3>
+<PRE>
+public static void <B>merge</B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="merge(byte[], byte[], int, int)"><!-- --></A><H3>
+merge</H3>
+<PRE>
+public static void <B>merge</B>(byte[]&nbsp;abyte0,
+ byte[]&nbsp;abyte1,
+ int&nbsp;i,
+ int&nbsp;j)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString(byte[], int, int)"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>(byte[]&nbsp;abyte0,
+ int&nbsp;i,
+ int&nbsp;j)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString(byte[])"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>(byte[]&nbsp;abyte0)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printBytes(byte[])"><!-- --></A><H3>
+printBytes</H3>
+<PRE>
+public static void <B>printBytes</B>(byte[]&nbsp;byteArray)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toIntLittleEndian(java.io.InputStream)"><!-- --></A><H3>
+toIntLittleEndian</H3>
+<PRE>
+public static int <B>toIntLittleEndian</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;theInputStream)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toIntBigEndian(java.io.InputStream)"><!-- --></A><H3>
+toIntBigEndian</H3>
+<PRE>
+public static int <B>toIntBigEndian</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;theInputStream)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString(java.io.InputStream)"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;ins)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toStream(java.io.OutputStream, int)"><!-- --></A><H3>
+toStream</H3>
+<PRE>
+public static void <B>toStream</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;os,
+ int&nbsp;i)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toStream(java.io.OutputStream, java.lang.String)"><!-- --></A><H3>
+toStream</H3>
+<PRE>
+public static void <B>toStream</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;os,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toStream(java.io.OutputStream, byte[])"><!-- --></A><H3>
+toStream</H3>
+<PRE>
+public static void <B>toStream</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;os,
+ byte[]&nbsp;theBytes)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toByteArray(java.io.InputStream)"><!-- --></A><H3>
+toByteArray</H3>
+<PRE>
+public static byte[] <B>toByteArray</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;ins)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toFile(java.io.InputStream, java.io.File)"><!-- --></A><H3>
+toFile</H3>
+<PRE>
+public static void <B>toFile</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</A>&nbsp;ins,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A>&nbsp;file)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</A>,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</A></CODE>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toStream(java.io.OutputStream, java.io.File)"><!-- --></A><H3>
+toStream</H3>
+<PRE>
+public static void <B>toStream</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</A>&nbsp;os,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A>&nbsp;file)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</A>,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</A></CODE>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/AbstractUdpServer.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/Logger.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/Bytes.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="Bytes.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/Logger.html b/libraries/oscP5/reference/netP5/Logger.html
new file mode 100644
index 0000000..8719681
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/Logger.html
@@ -0,0 +1,613 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Logger (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Logger (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/Bytes.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/Multicast.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/Logger.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="Logger.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class Logger</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.Logger</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Logger</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#ALL">ALL</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#DEBUG">DEBUG</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#ERROR">ERROR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#flags">flags</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#INFO">INFO</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#OFF">OFF</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#ON">ON</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#PROCESS">PROCESS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#WARNING">WARNING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/Logger.html#Logger()">Logger</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#getTime()">getTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#print(java.lang.String)">print</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#printBytes(byte[])">printBytes</A></B>(byte[]&nbsp;byteArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#printDebug(java.lang.String, java.lang.String)">printDebug</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#printError(java.lang.String, java.lang.String)">printError</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#printInfo(java.lang.String, java.lang.String)">printInfo</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#println(java.lang.String)">println</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#printProcess(java.lang.String, java.lang.String)">printProcess</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#printWarning(java.lang.String, java.lang.String)">printWarning</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Logger.html#set(int, int)">set</A></B>(int&nbsp;theIndex,
+ int&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ON"><!-- --></A><H3>
+ON</H3>
+<PRE>
+public static final int <B>ON</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.Logger.ON">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OFF"><!-- --></A><H3>
+OFF</H3>
+<PRE>
+public static final int <B>OFF</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.Logger.OFF">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ERROR"><!-- --></A><H3>
+ERROR</H3>
+<PRE>
+public static final int <B>ERROR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.Logger.ERROR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="WARNING"><!-- --></A><H3>
+WARNING</H3>
+<PRE>
+public static final int <B>WARNING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.Logger.WARNING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PROCESS"><!-- --></A><H3>
+PROCESS</H3>
+<PRE>
+public static final int <B>PROCESS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.Logger.PROCESS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="INFO"><!-- --></A><H3>
+INFO</H3>
+<PRE>
+public static final int <B>INFO</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.Logger.INFO">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DEBUG"><!-- --></A><H3>
+DEBUG</H3>
+<PRE>
+public static final int <B>DEBUG</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.Logger.DEBUG">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ALL"><!-- --></A><H3>
+ALL</H3>
+<PRE>
+public static final int <B>ALL</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.Logger.ALL">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="flags"><!-- --></A><H3>
+flags</H3>
+<PRE>
+public static int[] <B>flags</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Logger()"><!-- --></A><H3>
+Logger</H3>
+<PRE>
+public <B>Logger</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="set(int, int)"><!-- --></A><H3>
+set</H3>
+<PRE>
+public static void <B>set</B>(int&nbsp;theIndex,
+ int&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printError(java.lang.String, java.lang.String)"><!-- --></A><H3>
+printError</H3>
+<PRE>
+public static void <B>printError</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printProcess(java.lang.String, java.lang.String)"><!-- --></A><H3>
+printProcess</H3>
+<PRE>
+public static void <B>printProcess</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printWarning(java.lang.String, java.lang.String)"><!-- --></A><H3>
+printWarning</H3>
+<PRE>
+public static void <B>printWarning</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printInfo(java.lang.String, java.lang.String)"><!-- --></A><H3>
+printInfo</H3>
+<PRE>
+public static void <B>printInfo</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printDebug(java.lang.String, java.lang.String)"><!-- --></A><H3>
+printDebug</H3>
+<PRE>
+public static void <B>printDebug</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theLocation,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.lang.String)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public static void <B>print</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="println(java.lang.String)"><!-- --></A><H3>
+println</H3>
+<PRE>
+public static void <B>println</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMsg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printBytes(byte[])"><!-- --></A><H3>
+printBytes</H3>
+<PRE>
+public static void <B>printBytes</B>(byte[]&nbsp;byteArray)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTime()"><!-- --></A><H3>
+getTime</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getTime</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/Bytes.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/Multicast.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/Logger.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="Logger.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/Multicast.html b/libraries/oscP5/reference/netP5/Multicast.html
new file mode 100644
index 0000000..ce735bc
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/Multicast.html
@@ -0,0 +1,428 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Multicast (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Multicast (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/Logger.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/Multicast.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="Multicast.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class Multicast</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../netP5/AbstractMulticast.html" title="class in netP5">netP5.AbstractMulticast</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.Multicast</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>, <A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>Multicast</B><DT>extends <A HREF="../netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A><DT>implements <A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></DL>
+</PRE>
+
+<P>
+Multicast is a method of forwarding IP datagrams to a group of interested receivers.
+ UDP is used as the transport portocol.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/Multicast.html#Multicast(java.lang.Object, java.lang.String, int)">Multicast</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/Multicast.html#Multicast(java.lang.Object, java.lang.String, int, int)">Multicast</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create a new instance of Multicast.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/Multicast.html#Multicast(netP5.UdpPacketListener, java.lang.String, int)">Multicast</A></B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theDatagramListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/Multicast.html#Multicast(netP5.UdpPacketListener, java.lang.String, int, int)">Multicast</A></B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theDatagramListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Multicast.html#addListener(netP5.NetListener)">addListener</A></B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Multicast.html#getListener(int)">getListener</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Multicast.html#getListeners()">getListeners</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Multicast.html#process(java.net.DatagramPacket, int)">process</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/Multicast.html#removeListener(netP5.NetListener)">removeListener</A></B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_netP5.AbstractMulticast"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class netP5.<A HREF="../netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../netP5/AbstractMulticast.html#close()">close</A>, <A HREF="../netP5/AbstractMulticast.html#dispose()">dispose</A>, <A HREF="../netP5/AbstractMulticast.html#loopback()">loopback</A>, <A HREF="../netP5/AbstractMulticast.html#run()">run</A>, <A HREF="../netP5/AbstractMulticast.html#send(byte[])">send</A>, <A HREF="../netP5/AbstractMulticast.html#send(java.lang.String)">send</A>, <A HREF="../netP5/AbstractMulticast.html#setDatagramSize(int)">setDatagramSize</A>, <A HREF="../netP5/AbstractMulticast.html#setLoopback(boolean)">setLoopback</A>, <A HREF="../netP5/AbstractMulticast.html#setTimeToLive(int)">setTimeToLive</A>, <A HREF="../netP5/AbstractMulticast.html#socket()">socket</A>, <A HREF="../netP5/AbstractMulticast.html#start()">start</A>, <A HREF="../netP5/AbstractMulticast.html#timeToLive()">timeToLive</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Multicast(java.lang.Object, java.lang.String, int, int)"><!-- --></A><H3>
+Multicast</H3>
+<PRE>
+public <B>Multicast</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</PRE>
+<DL>
+<DD>create a new instance of Multicast. the buffersize of the datagrams
+ is set to 1536 by default.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theObject</CODE> - Object<DD><CODE>theMulticastAddress</CODE> - String<DD><CODE>thePort</CODE> - int<DD><CODE>theBufferSize</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="Multicast(java.lang.Object, java.lang.String, int)"><!-- --></A><H3>
+Multicast</H3>
+<PRE>
+public <B>Multicast</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="Multicast(netP5.UdpPacketListener, java.lang.String, int, int)"><!-- --></A><H3>
+Multicast</H3>
+<PRE>
+public <B>Multicast</B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theDatagramListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="Multicast(netP5.UdpPacketListener, java.lang.String, int)"><!-- --></A><H3>
+Multicast</H3>
+<PRE>
+public <B>Multicast</B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theDatagramListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMulticastAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="process(java.net.DatagramPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+public void <B>process</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/UdpPacketListener.html#process(java.net.DatagramPacket, int)">process</A></CODE> in interface <CODE><A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - DatagramPacket<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addListener(netP5.NetListener)"><!-- --></A><H3>
+addListener</H3>
+<PRE>
+public void <B>addListener</B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeListener(netP5.NetListener)"><!-- --></A><H3>
+removeListener</H3>
+<PRE>
+public void <B>removeListener</B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListener(int)"><!-- --></A><H3>
+getListener</H3>
+<PRE>
+public <A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A> <B>getListener</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListeners()"><!-- --></A><H3>
+getListeners</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A> <B>getListeners</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/Logger.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/Multicast.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="Multicast.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/NetAddress.html b/libraries/oscP5/reference/netP5/NetAddress.html
new file mode 100644
index 0000000..ce4439f
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/NetAddress.html
@@ -0,0 +1,422 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+NetAddress (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="NetAddress (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/Multicast.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetAddressList.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetAddress.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetAddress.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class NetAddress</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.NetAddress</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>NetAddress</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+NetAddress is an Object that contains an inetaddress
+ of an remote internet address, consisting of an
+ ip address and a port number.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#name">name</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#NetAddress(java.net.InetAddress, int)">NetAddress</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A>&nbsp;theInetAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#NetAddress(netP5.NetAddress)">NetAddress</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#NetAddress(java.lang.String, int)">NetAddress</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#address()">address</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the remote ip address as string</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#inetaddress()">inetaddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#isvalid()">isvalid</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check if the netAddress is valid.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#port()">port</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the remote port number</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddress.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="name"><!-- --></A><H3>
+name</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>name</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NetAddress(java.lang.String, int)"><!-- --></A><H3>
+NetAddress</H3>
+<PRE>
+public <B>NetAddress</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="NetAddress(netP5.NetAddress)"><!-- --></A><H3>
+NetAddress</H3>
+<PRE>
+public <B>NetAddress</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="NetAddress(java.net.InetAddress, int)"><!-- --></A><H3>
+NetAddress</H3>
+<PRE>
+public <B>NetAddress</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A>&nbsp;theInetAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theInetAddress</CODE> - InetAddress<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="inetaddress()"><!-- --></A><H3>
+inetaddress</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A> <B>inetaddress</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>InetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="address()"><!-- --></A><H3>
+address</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>address</B>()</PRE>
+<DL>
+<DD>returns the remote ip address as string
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="port()"><!-- --></A><H3>
+port</H3>
+<PRE>
+public int <B>port</B>()</PRE>
+<DL>
+<DD>returns the remote port number
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isvalid()"><!-- --></A><H3>
+isvalid</H3>
+<PRE>
+public boolean <B>isvalid</B>()</PRE>
+<DL>
+<DD>check if the netAddress is valid. this is true if
+ the remote ip address was found.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/Multicast.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetAddressList.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetAddress.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetAddress.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/NetAddressList.html b/libraries/oscP5/reference/netP5/NetAddressList.html
new file mode 100644
index 0000000..c1b98bf
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/NetAddressList.html
@@ -0,0 +1,460 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+NetAddressList (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="NetAddressList (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetInfo.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetAddressList.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetAddressList.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class NetAddressList</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.NetAddressList</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>NetAddressList</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+NetAddressList is an arraylist of netaddresses.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#NetAddressList()">NetAddressList</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#add(netP5.NetAddress)">add</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#add(java.lang.String, int)">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#contains(netP5.NetAddress)">contains</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#contains(java.lang.String, int)">contains</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIPaddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#get(int)">get</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#get(java.lang.String, int)">get</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIPaddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#list()">list</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#remove(netP5.NetAddress)">remove</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#remove(java.lang.String, int)">remove</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#set(netP5.NetAddress[])">set</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>[]&nbsp;theList)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetAddressList.html#size()">size</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NetAddressList()"><!-- --></A><H3>
+NetAddressList</H3>
+<PRE>
+public <B>NetAddressList</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="add(netP5.NetAddress)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theNetAddress</CODE> - NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.String, int)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(java.lang.String, int)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(netP5.NetAddress)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theNetAddress</CODE> - NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="get(java.lang.String, int)"><!-- --></A><H3>
+get</H3>
+<PRE>
+public <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A> <B>get</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIPaddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(netP5.NetAddress)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theNetAddress</CODE> - NetAddress
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(java.lang.String, int)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIPaddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIPaddress</CODE> - String<DD><CODE>thePort</CODE> - int
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="set(netP5.NetAddress[])"><!-- --></A><H3>
+set</H3>
+<PRE>
+public void <B>set</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>[]&nbsp;theList)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theList</CODE> - NetAddress[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="list()"><!-- --></A><H3>
+list</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</A> <B>list</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>ArrayList</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="get(int)"><!-- --></A><H3>
+get</H3>
+<PRE>
+public <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A> <B>get</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - int
+<DT><B>Returns:</B><DD>NetAddress</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetInfo.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetAddressList.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetAddressList.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/NetInfo.html b/libraries/oscP5/reference/netP5/NetInfo.html
new file mode 100644
index 0000000..ec3af8e
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/NetInfo.html
@@ -0,0 +1,334 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+NetInfo (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="NetInfo (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetAddressList.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetListener.html" title="interface in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetInfo.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetInfo.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class NetInfo</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.NetInfo</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>NetInfo</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+some description
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/NetInfo.html#NetInfo()">NetInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetInfo.html#getHostAddress()">getHostAddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetInfo.html#lan()">lan</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetInfo.html#main(java.lang.String[])">main</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;args)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetInfo.html#print()">print</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetInfo.html#wan()">wan</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NetInfo()"><!-- --></A><H3>
+NetInfo</H3>
+<PRE>
+public <B>NetInfo</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="print()"><!-- --></A><H3>
+print</H3>
+<PRE>
+public static void <B>print</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getHostAddress()"><!-- --></A><H3>
+getHostAddress</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getHostAddress</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="lan()"><!-- --></A><H3>
+lan</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>lan</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="wan()"><!-- --></A><H3>
+wan</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>wan</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="main(java.lang.String[])"><!-- --></A><H3>
+main</H3>
+<PRE>
+public static void <B>main</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;args)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>args</CODE> - String[]</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetAddressList.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetListener.html" title="interface in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetInfo.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetInfo.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/NetListener.html b/libraries/oscP5/reference/netP5/NetListener.html
new file mode 100644
index 0000000..990e5a8
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/NetListener.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+NetListener (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="NetListener (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetInfo.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetMessage.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetListener.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetListener.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Interface NetListener</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>NetListener</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetListener.html#netEvent(netP5.NetMessage)">netEvent</A></B>(<A HREF="../netP5/NetMessage.html" title="class in netP5">NetMessage</A>&nbsp;theNetMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetListener.html#netStatus(netP5.NetStatus)">netStatus</A></B>(<A HREF="../netP5/NetStatus.html" title="class in netP5">NetStatus</A>&nbsp;theStatus)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="netEvent(netP5.NetMessage)"><!-- --></A><H3>
+netEvent</H3>
+<PRE>
+void <B>netEvent</B>(<A HREF="../netP5/NetMessage.html" title="class in netP5">NetMessage</A>&nbsp;theNetMessage)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="netStatus(netP5.NetStatus)"><!-- --></A><H3>
+netStatus</H3>
+<PRE>
+void <B>netStatus</B>(<A HREF="../netP5/NetStatus.html" title="class in netP5">NetStatus</A>&nbsp;theStatus)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetInfo.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetMessage.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetListener.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetListener.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/NetMessage.html b/libraries/oscP5/reference/netP5/NetMessage.html
new file mode 100644
index 0000000..adc6d8a
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/NetMessage.html
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+NetMessage (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="NetMessage (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetListener.html" title="interface in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetP5.html" title="interface in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetMessage.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetMessage.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class NetMessage</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.NetMessage</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>NetMessage</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#address()">address</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#getData()">getData</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the data of the message as bytes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#getDatagramPacket()">getDatagramPacket</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#getString()">getString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the data the message as string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#getTcpPacket()">getTcpPacket</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#inetAddress()">inetAddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#port()">port</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the port the net message was received at.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#protocol()">protocol</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the protocol type the message was sent over.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetMessage.html#tcpConnection()">tcpConnection</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getTcpPacket()"><!-- --></A><H3>
+getTcpPacket</H3>
+<PRE>
+public <A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A> <B>getTcpPacket</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDatagramPacket()"><!-- --></A><H3>
+getDatagramPacket</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A> <B>getDatagramPacket</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getData()"><!-- --></A><H3>
+getData</H3>
+<PRE>
+public byte[] <B>getData</B>()</PRE>
+<DL>
+<DD>get the data of the message as bytes.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getString()"><!-- --></A><H3>
+getString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getString</B>()</PRE>
+<DL>
+<DD>get the data the message as string.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="protocol()"><!-- --></A><H3>
+protocol</H3>
+<PRE>
+public int <B>protocol</B>()</PRE>
+<DL>
+<DD>get the protocol type the message was sent over.
+ NetP5.TCP or NetP5.UDP are possible.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="port()"><!-- --></A><H3>
+port</H3>
+<PRE>
+public int <B>port</B>()</PRE>
+<DL>
+<DD>get the port the net message was received at.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="tcpConnection()"><!-- --></A><H3>
+tcpConnection</H3>
+<PRE>
+public <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A> <B>tcpConnection</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="address()"><!-- --></A><H3>
+address</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>address</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="inetAddress()"><!-- --></A><H3>
+inetAddress</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</A> <B>inetAddress</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetListener.html" title="interface in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetP5.html" title="interface in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetMessage.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetMessage.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/NetP5.html b/libraries/oscP5/reference/netP5/NetP5.html
new file mode 100644
index 0000000..86219fa
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/NetP5.html
@@ -0,0 +1,274 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+NetP5 (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="NetP5 (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetMessage.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetStatus.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetP5.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetP5.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Interface NetP5</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>NetP5</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetP5.html#DEBUG">DEBUG</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetP5.html#MULTICAST">MULTICAST</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetP5.html#TCP">TCP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetP5.html#UDP">UDP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetP5.html#VERSION">VERSION</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="VERSION"><!-- --></A><H3>
+VERSION</H3>
+<PRE>
+static final <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>VERSION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.NetP5.VERSION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DEBUG"><!-- --></A><H3>
+DEBUG</H3>
+<PRE>
+static final boolean <B>DEBUG</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.NetP5.DEBUG">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="UDP"><!-- --></A><H3>
+UDP</H3>
+<PRE>
+static final int <B>UDP</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.NetP5.UDP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MULTICAST"><!-- --></A><H3>
+MULTICAST</H3>
+<PRE>
+static final int <B>MULTICAST</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.NetP5.MULTICAST">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TCP"><!-- --></A><H3>
+TCP</H3>
+<PRE>
+static final int <B>TCP</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#netP5.NetP5.TCP">Constant Field Values</A></DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetMessage.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/NetStatus.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetP5.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetP5.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/NetStatus.html b/libraries/oscP5/reference/netP5/NetStatus.html
new file mode 100644
index 0000000..7293687
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/NetStatus.html
@@ -0,0 +1,434 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+NetStatus (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="NetStatus (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetP5.html" title="interface in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/StringUtils.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetStatus.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetStatus.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class NetStatus</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.NetStatus</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>NetStatus</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#CLIENT_CLOSED">CLIENT_CLOSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#CONNECTION_CLOSED">CONNECTION_CLOSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#CONNECTION_FAILED">CONNECTION_FAILED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#CONNECTION_REFUSED">CONNECTION_REFUSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#CONNECTION_TERMINATED">CONNECTION_TERMINATED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#DEFAULT">DEFAULT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#ERROR">ERROR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#SEND_FAILED">SEND_FAILED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#SERVER_CLOSED">SERVER_CLOSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#NetStatus(int)">NetStatus</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/NetStatus.html#id()">id</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ERROR"><!-- --></A><H3>
+ERROR</H3>
+<PRE>
+public static int <B>ERROR</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="DEFAULT"><!-- --></A><H3>
+DEFAULT</H3>
+<PRE>
+public static int <B>DEFAULT</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CONNECTION_CLOSED"><!-- --></A><H3>
+CONNECTION_CLOSED</H3>
+<PRE>
+public static int <B>CONNECTION_CLOSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CONNECTION_REFUSED"><!-- --></A><H3>
+CONNECTION_REFUSED</H3>
+<PRE>
+public static int <B>CONNECTION_REFUSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CONNECTION_TERMINATED"><!-- --></A><H3>
+CONNECTION_TERMINATED</H3>
+<PRE>
+public static int <B>CONNECTION_TERMINATED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CONNECTION_FAILED"><!-- --></A><H3>
+CONNECTION_FAILED</H3>
+<PRE>
+public static int <B>CONNECTION_FAILED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="SERVER_CLOSED"><!-- --></A><H3>
+SERVER_CLOSED</H3>
+<PRE>
+public static int <B>SERVER_CLOSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CLIENT_CLOSED"><!-- --></A><H3>
+CLIENT_CLOSED</H3>
+<PRE>
+public static int <B>CLIENT_CLOSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="SEND_FAILED"><!-- --></A><H3>
+SEND_FAILED</H3>
+<PRE>
+public static int <B>SEND_FAILED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NetStatus(int)"><!-- --></A><H3>
+NetStatus</H3>
+<PRE>
+public <B>NetStatus</B>(int&nbsp;theIndex)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="id()"><!-- --></A><H3>
+id</H3>
+<PRE>
+public int <B>id</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetP5.html" title="interface in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/StringUtils.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/NetStatus.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="NetStatus.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/StringUtils.html b/libraries/oscP5/reference/netP5/StringUtils.html
new file mode 100644
index 0000000..5357371
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/StringUtils.html
@@ -0,0 +1,1008 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+StringUtils (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="StringUtils (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetStatus.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/StringUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="StringUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class StringUtils</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.StringUtils</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringUtils</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#arrayToString(java.lang.String[])">arrayToString</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#arrayToString(java.lang.String[], int, int)">arrayToString</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theArray,
+ int&nbsp;theStart,
+ int&nbsp;theEnd)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#centerJustify(java.lang.String, int)">centerJustify</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;length)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a string of the given width with the given string left justified
+ (padded by an appropriate number of spaces in front and after it).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#duplicate(java.lang.String, int)">duplicate</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;copies)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a String with the source String copied the specified number of
+ times.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#explode(java.lang.String)">explode</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Splits a string into an array with a space as delimiter.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#explode(java.lang.String[], int[])">explode</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;source,
+ int[]&nbsp;lengths)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Splits every String in an array at the specified lengths.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#explode(java.lang.String, int[])">explode</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int[]&nbsp;lengths)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Splits a string at the specified lengths and returns an array of Strings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#explode(java.lang.String, java.lang.String)">explode</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;delimiter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Splits a string into an array with the specified delimiter.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#getFloat(java.lang.String)">getFloat</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#getInt(java.lang.String)">getInt</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#getStackTrace(java.lang.Throwable)">getStackTrace</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A>&nbsp;t)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prints the stacktrace to a buffer and returns the buffer as a String.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#implode(java.lang.Object[])">implode</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;elements)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Combines an array to a string, using a comma and a space as delimiter.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#implode(java.lang.Object[], java.lang.String)">implode</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;elements,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;delimiter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Combines an array to a string, using the specified delimiter.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#isEmpty(java.lang.String)">isEmpty</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if a String is empty or null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#left(java.lang.String, java.lang.String)">left</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the substring to the left of the specified substring in the
+ specified String, starting from the left.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#leftBack(java.lang.String, java.lang.String)">leftBack</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the substring to the left of the specified substring in the
+ specified String, starting from the right.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#leftJustify(java.lang.String, int)">leftJustify</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;length)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a string of the given width with the given string left justified
+ (followed by an appropriate number of spaces).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#middle(java.lang.String, int, int)">middle</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;startIndex,
+ int&nbsp;length)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a substring of a String, starting from specified index and with
+ specified length.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#middle(java.lang.String, java.lang.String, java.lang.String)">middle</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;start,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;end)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the substring between two substrings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#remove(java.lang.String, char)">remove</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ char&nbsp;searchFor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all instances of a character in a String.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#remove(java.lang.String, java.lang.String)">remove</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all instances of a substring in a String.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#remove(java.lang.String, java.lang.String[])">remove</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;searchFor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all instances of substrings in a String.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#removeDuplicates(java.lang.String, java.lang.String)">removeDuplicates</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes duplicates of a substring in a String.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#replace(java.lang.String, java.lang.String[], java.lang.String)">replace</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;searchFor,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;replaceWith)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replaces several substrings in a string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#replace(java.lang.String, java.lang.String, java.lang.String)">replace</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;replaceWith)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replaces substrings in a string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#right(java.lang.String, java.lang.String)">right</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the substring to the right of the specified substring in the
+ specified String, starting from the left.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#rightBack(java.lang.String, java.lang.String)">rightBack</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the substring to the right of the specified substring in the
+ specified String, starting from the right.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#rightJustify(java.lang.String, int)">rightJustify</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;length)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a string of the given width with the given string right justified
+ (with an appropriate number of spaces before it).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#slice(int, java.lang.String[])">slice</A></B>(int&nbsp;theNum,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theStringArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#spaces(int)">spaces</A></B>(int&nbsp;length)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a String with the specified number of spaces.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;char</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#switchCase(char)">switchCase</A></B>(char&nbsp;source)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Switches the case of the supplied character.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/StringUtils.html#switchCase(java.lang.String)">switchCase</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Switches the case of the supplied String.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="right(java.lang.String, java.lang.String)"><!-- --></A><H3>
+right</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>right</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</PRE>
+<DL>
+<DD>Returns the substring to the right of the specified substring in the
+ specified String, starting from the left.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source String to search.<DD><CODE>searchFor</CODE> - the substring to search for in source.
+<DT><B>Returns:</B><DD>the substring that is to the right of searchFor in source.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rightBack(java.lang.String, java.lang.String)"><!-- --></A><H3>
+rightBack</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>rightBack</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</PRE>
+<DL>
+<DD>Returns the substring to the right of the specified substring in the
+ specified String, starting from the right.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source String to search.<DD><CODE>searchFor</CODE> - the substring to search for in source.
+<DT><B>Returns:</B><DD>the substring that is to the right of searchFor in source,
+ starting from the right.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="left(java.lang.String, java.lang.String)"><!-- --></A><H3>
+left</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>left</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</PRE>
+<DL>
+<DD>Returns the substring to the left of the specified substring in the
+ specified String, starting from the left.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source String to search.<DD><CODE>searchFor</CODE> - the substring to search for in source.
+<DT><B>Returns:</B><DD>the substring that is to the left of searchFor in source.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="leftBack(java.lang.String, java.lang.String)"><!-- --></A><H3>
+leftBack</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>leftBack</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</PRE>
+<DL>
+<DD>Returns the substring to the left of the specified substring in the
+ specified String, starting from the right.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source String to search.<DD><CODE>searchFor</CODE> - the substring to search for in source.
+<DT><B>Returns:</B><DD>the substring that is to the left of searchFor in source,
+ starting from the right.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="middle(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
+middle</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>middle</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;start,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;end)</PRE>
+<DL>
+<DD>Returns the substring between two substrings. I.e.
+ StringUtils.middle("This i a big challenge", "a", "challenge") returns "
+ big ".
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to search.<DD><CODE>start</CODE> - the String to the left to search for, from the left.<DD><CODE>end</CODE> - the String to the right to search for, from the right.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="middle(java.lang.String, int, int)"><!-- --></A><H3>
+middle</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>middle</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;startIndex,
+ int&nbsp;length)</PRE>
+<DL>
+<DD>Returns a substring of a String, starting from specified index and with
+ specified length. I. e. StringUtils.middle("This is a big challenge", 5,
+ 6) returns " is a "
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to get a substring from.<DD><CODE>startIndex</CODE> - the index in the source String to get the substring from.<DD><CODE>length</CODE> - the length of the substring to return.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="replace(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
+replace</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>replace</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;replaceWith)</PRE>
+<DL>
+<DD>Replaces substrings in a string.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source String to replace substrings in.<DD><CODE>searchFor</CODE> - the string to search for.<DD><CODE>replaceWith</CODE> - the string to replace all found searchFor-substrings with.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="replace(java.lang.String, java.lang.String[], java.lang.String)"><!-- --></A><H3>
+replace</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>replace</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;searchFor,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;replaceWith)</PRE>
+<DL>
+<DD>Replaces several substrings in a string.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source String to replace substrings in.<DD><CODE>searchFor</CODE> - the substrings to search for.<DD><CODE>replaceWith</CODE> - what to replace every searchFor with,</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="explode(java.lang.String[], int[])"><!-- --></A><H3>
+explode</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A> <B>explode</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;source,
+ int[]&nbsp;lengths)</PRE>
+<DL>
+<DD>Splits every String in an array at the specified lengths.
+
+ Example: <code><pre>
+ String source[] = { &quot;123a123b123c123d&quot;, &quot;Bla1bla2bla3bla4bla5bla6bla7&quot; };
+ int[] lengths = { 3, 1, 3, 1 };
+ Vector result = StringUtils.explode(source, lengths);
+ Object element = null;
+ String[] rowElements = null;
+ Enumeration enum = result.elements();
+ while (enum.hasMoreElements()) {
+ element = enum.nextElement();
+ if (element instanceof String[]) {
+ rowElements = (String[]) element;
+ for (int i = 0; i &lt; rowElements.length; i++) {
+ System.out.println(rowElements[i]);
+ }
+ }
+ }
+ </pre></code> The result that will be output: 123 a 123 b
+
+ Bla 1 bla 2
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Vector containing String arrays (the rows).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="explode(java.lang.String, int[])"><!-- --></A><H3>
+explode</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>explode</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int[]&nbsp;lengths)</PRE>
+<DL>
+<DD>Splits a string at the specified lengths and returns an array of Strings.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to split.
+<DT><B>Returns:</B><DD>an array of Strings with the same number of elements as the
+ number of elements in the lengths argument. The length of each
+ String element is specified by the correspondent lengths array
+ element.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">IndexOutOfBoundsException</A></CODE> - if any of the length´s are invalid.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="explode(java.lang.String)"><!-- --></A><H3>
+explode</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>explode</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source)</PRE>
+<DL>
+<DD>Splits a string into an array with a space as delimiter.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source String to explode.
+<DT><B>Returns:</B><DD>an array of strings that are made out of splitting the string at
+ the spaces.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="explode(java.lang.String, java.lang.String)"><!-- --></A><H3>
+explode</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>explode</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;delimiter)</PRE>
+<DL>
+<DD>Splits a string into an array with the specified delimiter. Original code
+ Copyright (C) 2001,2002 Stephen Ostermiller
+ http://ostermiller.org/utils/StringHelper.java.html
+
+ <p>
+ This method is meant to be similar to the split function in other
+ programming languages but it does not use regular expressions. Rather the
+ String is split on a single String literal. It is equivalent to the
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>s</CODE> - the String to explode.<DD><CODE>delimiter</CODE> - the delimiter where to split the string.
+<DT><B>Returns:</B><DD>an array of strings that are made out of splitting the string at
+ the specified delimiter.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</A></CODE> - if s is null.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="slice(int, java.lang.String[])"><!-- --></A><H3>
+slice</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>slice</B>(int&nbsp;theNum,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theStringArray)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="implode(java.lang.Object[], java.lang.String)"><!-- --></A><H3>
+implode</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>implode</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;elements,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;delimiter)</PRE>
+<DL>
+<DD>Combines an array to a string, using the specified delimiter.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>elements</CODE> - the array to combine to a single string.<DD><CODE>delimiter</CODE> - the delimiter to put between the combined elements.
+<DT><B>Returns:</B><DD>the array combined to a string.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="implode(java.lang.Object[])"><!-- --></A><H3>
+implode</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>implode</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;elements)</PRE>
+<DL>
+<DD>Combines an array to a string, using a comma and a space as delimiter.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>elements</CODE> - the array to combine to a single string.
+<DT><B>Returns:</B><DD>the array combined to a string.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(java.lang.String, char)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>remove</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ char&nbsp;searchFor)</PRE>
+<DL>
+<DD>Removes all instances of a character in a String.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to remove substring in.<DD><CODE>searchFor</CODE> - the character to remove.
+<DT><B>Returns:</B><DD>the replaced String.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(java.lang.String, java.lang.String)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>remove</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</PRE>
+<DL>
+<DD>Removes all instances of a substring in a String.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to remove substring in.<DD><CODE>searchFor</CODE> - the substring to remove.
+<DT><B>Returns:</B><DD>the replaced String.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(java.lang.String, java.lang.String[])"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>remove</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;searchFor)</PRE>
+<DL>
+<DD>Removes all instances of substrings in a String.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to remove substrings in.<DD><CODE>searchFor</CODE> - an array of substrings to remove from the source String.
+<DT><B>Returns:</B><DD>the replaced String.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeDuplicates(java.lang.String, java.lang.String)"><!-- --></A><H3>
+removeDuplicates</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>removeDuplicates</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;searchFor)</PRE>
+<DL>
+<DD>Removes duplicates of a substring in a String. Case sensitive.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to remove duplicates in.<DD><CODE>searchFor</CODE> - the substring that can only occur one at a time, several can
+ exist in the source though.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStackTrace(java.lang.Throwable)"><!-- --></A><H3>
+getStackTrace</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStackTrace</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A>&nbsp;t)
+ throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD>Prints the stacktrace to a buffer and returns the buffer as a String.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>t</CODE> - the Throwable you wnat to generate a stacktrace for.
+<DT><B>Returns:</B><DD>the stacktrace of the supplied Throwable.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEmpty(java.lang.String)"><!-- --></A><H3>
+isEmpty</H3>
+<PRE>
+public static boolean <B>isEmpty</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</PRE>
+<DL>
+<DD>Checks if a String is empty or null.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>s</CODE> - the String to test if it is empty or null.
+<DT><B>Returns:</B><DD>true if the String is null or empty ("").</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="leftJustify(java.lang.String, int)"><!-- --></A><H3>
+leftJustify</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>leftJustify</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;length)</PRE>
+<DL>
+<DD>Creates a string of the given width with the given string left justified
+ (followed by an appropriate number of spaces).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to justify<DD><CODE>length</CODE> - the length of the resulting String
+<DT><B>Returns:</B><DD>the source String padded with spaces to fill up the length. If
+ the source string is longer than the length argument, the source
+ String is returned.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rightJustify(java.lang.String, int)"><!-- --></A><H3>
+rightJustify</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>rightJustify</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;length)</PRE>
+<DL>
+<DD>Creates a string of the given width with the given string right justified
+ (with an appropriate number of spaces before it).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to justify<DD><CODE>length</CODE> - the length of the resulting String
+<DT><B>Returns:</B><DD>the source String padded with spaces to fill up the length. If
+ the source string is longer than the length argument, the source
+ String is returned.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="centerJustify(java.lang.String, int)"><!-- --></A><H3>
+centerJustify</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>centerJustify</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;length)</PRE>
+<DL>
+<DD>Creates a string of the given width with the given string left justified
+ (padded by an appropriate number of spaces in front and after it).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to justify<DD><CODE>length</CODE> - the length of the resulting String
+<DT><B>Returns:</B><DD>the source String padded with spaces to fill up the length. If
+ the source string is longer than the length argument, the source
+ String is returned.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="spaces(int)"><!-- --></A><H3>
+spaces</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>spaces</B>(int&nbsp;length)</PRE>
+<DL>
+<DD>Returns a String with the specified number of spaces.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>length</CODE> - the number of spaces to return.
+<DT><B>Returns:</B><DD>a String consisting of the specified number of spaces.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="duplicate(java.lang.String, int)"><!-- --></A><H3>
+duplicate</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>duplicate</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source,
+ int&nbsp;copies)</PRE>
+<DL>
+<DD>Returns a String with the source String copied the specified number of
+ times.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the source String to copy.<DD><CODE>length</CODE> - the number of copies of source to return.
+<DT><B>Returns:</B><DD>a String consisting of the specified source String copied the
+ specified number of times.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="switchCase(java.lang.String)"><!-- --></A><H3>
+switchCase</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>switchCase</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;source)</PRE>
+<DL>
+<DD>Switches the case of the supplied String. Any lower case characters will
+ be uppercase and vice versa.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the String to switch case of.
+<DT><B>Returns:</B><DD>the supplied String with switched case.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="switchCase(char)"><!-- --></A><H3>
+switchCase</H3>
+<PRE>
+public static char <B>switchCase</B>(char&nbsp;source)</PRE>
+<DL>
+<DD>Switches the case of the supplied character. A lower case character will
+ be uppercase and vice versa.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - the character to switch case of.
+<DT><B>Returns:</B><DD>the supplied character with switched case.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInt(java.lang.String)"><!-- --></A><H3>
+getInt</H3>
+<PRE>
+public static int <B>getInt</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFloat(java.lang.String)"><!-- --></A><H3>
+getFloat</H3>
+<PRE>
+public static float <B>getFloat</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theString)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="arrayToString(java.lang.String[])"><!-- --></A><H3>
+arrayToString</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>arrayToString</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theArray)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="arrayToString(java.lang.String[], int, int)"><!-- --></A><H3>
+arrayToString</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>arrayToString</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theArray,
+ int&nbsp;theStart,
+ int&nbsp;theEnd)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/NetStatus.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/StringUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="StringUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/TcpClient.html b/libraries/oscP5/reference/netP5/TcpClient.html
new file mode 100644
index 0000000..0781ef2
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/TcpClient.html
@@ -0,0 +1,473 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+TcpClient (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="TcpClient (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/StringUtils.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/TcpPacket.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/TcpClient.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="TcpClient.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_netP5.AbstractTcpClient">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class TcpClient</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">netP5.AbstractTcpClient</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.TcpClient</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>TcpClient</B><DT>extends <A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A></DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_netP5.AbstractTcpClient"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class netP5.<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../netP5/AbstractTcpClient.html#MODE_NEWLINE">MODE_NEWLINE</A>, <A HREF="../netP5/AbstractTcpClient.html#MODE_READLINE">MODE_READLINE</A>, <A HREF="../netP5/AbstractTcpClient.html#MODE_STREAM">MODE_STREAM</A>, <A HREF="../netP5/AbstractTcpClient.html#MODE_TERMINATED">MODE_TERMINATED</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#TcpClient(netP5.AbstractTcpServer, java.net.Socket, netP5.TcpPacketListener, int, int)">TcpClient</A></B>(<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>&nbsp;theTcpServer,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</A>&nbsp;theSocket,
+ <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ int&nbsp;theServerPort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#TcpClient(netP5.NetAddress)">TcpClient</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#TcpClient(java.lang.Object, netP5.NetAddress)">TcpClient</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#TcpClient(java.lang.Object, java.lang.String, int)">TcpClient</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#TcpClient(java.lang.Object, java.lang.String, int, int)">TcpClient</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#TcpClient(java.lang.String, int)">TcpClient</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#TcpClient(netP5.TcpPacketListener, java.lang.String, int, int)">TcpClient</A></B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theServerAddress,
+ int&nbsp;theServerPort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#handleInput()">handleInput</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#handleStatus(int)">handleStatus</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#name()">name</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpClient.html#setName(java.lang.String)">setName</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_netP5.AbstractTcpClient"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class netP5.<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../netP5/AbstractTcpClient.html#dispose()">dispose</A>, <A HREF="../netP5/AbstractTcpClient.html#equals(netP5.NetAddress)">equals</A>, <A HREF="../netP5/AbstractTcpClient.html#equals(netP5.TcpClient)">equals</A>, <A HREF="../netP5/AbstractTcpClient.html#getString()">getString</A>, <A HREF="../netP5/AbstractTcpClient.html#getStringBuffer()">getStringBuffer</A>, <A HREF="../netP5/AbstractTcpClient.html#listener()">listener</A>, <A HREF="../netP5/AbstractTcpClient.html#mode()">mode</A>, <A HREF="../netP5/AbstractTcpClient.html#netaddress()">netaddress</A>, <A HREF="../netP5/AbstractTcpClient.html#netAddress()">netAddress</A>, <A HREF="../netP5/AbstractTcpClient.html#reconnect()">reconnect</A>, <A HREF="../netP5/AbstractTcpClient.html#run()">run</A>, <A HREF="../netP5/AbstractTcpClient.html#send(byte[])">send</A>, <A HREF="../netP5/AbstractTcpClient.html#send(byte[][])">send</A>, <A HREF="../netP5/AbstractTcpClient.html#send(java.lang.String)">send</A>, <A HREF="../netP5/AbstractTcpClient.html#serverport()">serverport</A>, <A HREF="../netP5/AbstractTcpClient.html#setTerminator(char)">setTerminator</A>, <A HREF="../netP5/AbstractTcpClient.html#socket()">socket</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TcpClient(java.lang.Object, java.lang.String, int)"><!-- --></A><H3>
+TcpClient</H3>
+<PRE>
+public <B>TcpClient</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="TcpClient(java.lang.Object, java.lang.String, int, int)"><!-- --></A><H3>
+TcpClient</H3>
+<PRE>
+public <B>TcpClient</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theObject</CODE> - Object<DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="TcpClient(netP5.TcpPacketListener, java.lang.String, int, int)"><!-- --></A><H3>
+TcpClient</H3>
+<PRE>
+public <B>TcpClient</B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theListener,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theServerAddress,
+ int&nbsp;theServerPort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - TcpPacketListener<DD><CODE>theServerAddress</CODE> - String<DD><CODE>theServerPort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="TcpClient(java.lang.Object, netP5.NetAddress)"><!-- --></A><H3>
+TcpClient</H3>
+<PRE>
+public <B>TcpClient</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theNetAddress</CODE> - NetAddress</DL>
+</DL>
+<HR>
+
+<A NAME="TcpClient(netP5.NetAddress)"><!-- --></A><H3>
+TcpClient</H3>
+<PRE>
+public <B>TcpClient</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theNetAddress</CODE> - NetAddress</DL>
+</DL>
+<HR>
+
+<A NAME="TcpClient(java.lang.String, int)"><!-- --></A><H3>
+TcpClient</H3>
+<PRE>
+public <B>TcpClient</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="TcpClient(netP5.AbstractTcpServer, java.net.Socket, netP5.TcpPacketListener, int, int)"><!-- --></A><H3>
+TcpClient</H3>
+<PRE>
+public <B>TcpClient</B>(<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>&nbsp;theTcpServer,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</A>&nbsp;theSocket,
+ <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ int&nbsp;theServerPort,
+ int&nbsp;theMode)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="handleStatus(int)"><!-- --></A><H3>
+handleStatus</H3>
+<PRE>
+public void <B>handleStatus</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/AbstractTcpClient.html#handleStatus(int)">handleStatus</A></CODE> in class <CODE><A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="handleInput()"><!-- --></A><H3>
+handleInput</H3>
+<PRE>
+public void <B>handleInput</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/AbstractTcpClient.html#handleInput()">handleInput</A></CODE> in class <CODE><A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="name()"><!-- --></A><H3>
+name</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>name</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setName(java.lang.String)"><!-- --></A><H3>
+setName</H3>
+<PRE>
+public void <B>setName</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theName)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theName</CODE> - String</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/StringUtils.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/TcpPacket.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/TcpClient.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="TcpClient.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_netP5.AbstractTcpClient">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/TcpPacket.html b/libraries/oscP5/reference/netP5/TcpPacket.html
new file mode 100644
index 0000000..bab40ac
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/TcpPacket.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+TcpPacket (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="TcpPacket (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/TcpPacket.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="TcpPacket.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class TcpPacket</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.TcpPacket</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>TcpPacket</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpPacket.html#TcpPacket(netP5.TcpClient, java.lang.StringBuffer, byte[])">TcpPacket</A></B>(<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>&nbsp;theTcpClient,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A>&nbsp;theBuffer,
+ byte[]&nbsp;theBytes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpPacket.html#getData()">getData</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpPacket.html#getString()">getString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpPacket.html#getStringBuffer()">getStringBuffer</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpPacket.html#getTcpConnection()">getTcpConnection</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TcpPacket(netP5.TcpClient, java.lang.StringBuffer, byte[])"><!-- --></A><H3>
+TcpPacket</H3>
+<PRE>
+public <B>TcpPacket</B>(<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>&nbsp;theTcpClient,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A>&nbsp;theBuffer,
+ byte[]&nbsp;theBytes)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getTcpConnection()"><!-- --></A><H3>
+getTcpConnection</H3>
+<PRE>
+public <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A> <B>getTcpConnection</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getString()"><!-- --></A><H3>
+getString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStringBuffer()"><!-- --></A><H3>
+getStringBuffer</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</A> <B>getStringBuffer</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getData()"><!-- --></A><H3>
+getData</H3>
+<PRE>
+public byte[] <B>getData</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/TcpPacket.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="TcpPacket.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/TcpPacketListener.html b/libraries/oscP5/reference/netP5/TcpPacketListener.html
new file mode 100644
index 0000000..04cc6d2
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/TcpPacketListener.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+TcpPacketListener (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="TcpPacketListener (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/TcpPacket.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/TcpServer.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/TcpPacketListener.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="TcpPacketListener.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Interface TcpPacketListener</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A>, <A HREF="../oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>, <A HREF="../oscP5/OscP5.html" title="class in oscP5">OscP5</A>, <A HREF="../netP5/TcpServer.html" title="class in netP5">TcpServer</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>TcpPacketListener</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpPacketListener.html#process(netP5.TcpPacket, int)">process</A></B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;theTcpPacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpPacketListener.html#remove(netP5.AbstractTcpClient)">remove</A></B>(<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>&nbsp;theClient)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpPacketListener.html#status(int)">status</A></B>(int&nbsp;theStatus)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="process(netP5.TcpPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+void <B>process</B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;theTcpPacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(int)"><!-- --></A><H3>
+status</H3>
+<PRE>
+void <B>status</B>(int&nbsp;theStatus)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(netP5.AbstractTcpClient)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+void <B>remove</B>(<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>&nbsp;theClient)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/TcpPacket.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/TcpServer.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/TcpPacketListener.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="TcpPacketListener.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/TcpServer.html b/libraries/oscP5/reference/netP5/TcpServer.html
new file mode 100644
index 0000000..a79b380
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/TcpServer.html
@@ -0,0 +1,463 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+TcpServer (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="TcpServer (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/UdpClient.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/TcpServer.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="TcpServer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_netP5.AbstractTcpServer">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class TcpServer</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">netP5.AbstractTcpServer</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.TcpServer</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>, <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>TcpServer</B><DT>extends <A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A></DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_netP5.AbstractTcpServer"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class netP5.<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../netP5/AbstractTcpServer.html#MODE_NEWLINE">MODE_NEWLINE</A>, <A HREF="../netP5/AbstractTcpServer.html#MODE_READLINE">MODE_READLINE</A>, <A HREF="../netP5/AbstractTcpServer.html#MODE_STREAM">MODE_STREAM</A>, <A HREF="../netP5/AbstractTcpServer.html#MODE_TERMINATED">MODE_TERMINATED</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#TcpServer(int)">TcpServer</A></B>(int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#TcpServer(int, int)">TcpServer</A></B>(int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#TcpServer(java.lang.Object, int)">TcpServer</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#TcpServer(java.lang.Object, int, int)">TcpServer</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#TcpServer(netP5.TcpPacketListener, int, int)">TcpServer</A></B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#addListener(netP5.NetListener)">addListener</A></B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#getListener(int)">getListener</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#getListeners()">getListeners</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#handleInput(netP5.TcpPacket, int)">handleInput</A></B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#removeListener(netP5.NetListener)">removeListener</A></B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/TcpServer.html#status(int)">status</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_netP5.AbstractTcpServer"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class netP5.<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../netP5/AbstractTcpServer.html#ban(java.lang.String)">ban</A>, <A HREF="../netP5/AbstractTcpServer.html#dispose()">dispose</A>, <A HREF="../netP5/AbstractTcpServer.html#getClient(int)">getClient</A>, <A HREF="../netP5/AbstractTcpServer.html#getClients()">getClients</A>, <A HREF="../netP5/AbstractTcpServer.html#process(netP5.TcpPacket, int)">process</A>, <A HREF="../netP5/AbstractTcpServer.html#remove(netP5.AbstractTcpClient)">remove</A>, <A HREF="../netP5/AbstractTcpServer.html#run()">run</A>, <A HREF="../netP5/AbstractTcpServer.html#send(byte[])">send</A>, <A HREF="../netP5/AbstractTcpServer.html#send(java.lang.String)">send</A>, <A HREF="../netP5/AbstractTcpServer.html#size()">size</A>, <A HREF="../netP5/AbstractTcpServer.html#socket()">socket</A>, <A HREF="../netP5/AbstractTcpServer.html#unBan(java.lang.String)">unBan</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TcpServer(int)"><!-- --></A><H3>
+TcpServer</H3>
+<PRE>
+public <B>TcpServer</B>(int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>thePort</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="TcpServer(java.lang.Object, int)"><!-- --></A><H3>
+TcpServer</H3>
+<PRE>
+public <B>TcpServer</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theObject</CODE> - Object<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="TcpServer(java.lang.Object, int, int)"><!-- --></A><H3>
+TcpServer</H3>
+<PRE>
+public <B>TcpServer</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theObject</CODE> - Object<DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="TcpServer(int, int)"><!-- --></A><H3>
+TcpServer</H3>
+<PRE>
+public <B>TcpServer</B>(int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="TcpServer(netP5.TcpPacketListener, int, int)"><!-- --></A><H3>
+TcpServer</H3>
+<PRE>
+public <B>TcpServer</B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theTcpPacketListener,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theTcpPacketListener</CODE> - TcpPacketListener<DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="handleInput(netP5.TcpPacket, int)"><!-- --></A><H3>
+handleInput</H3>
+<PRE>
+public void <B>handleInput</B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/AbstractTcpServer.html#handleInput(netP5.TcpPacket, int)">handleInput</A></CODE> in class <CODE><A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - TcpPacket<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(int)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addListener(netP5.NetListener)"><!-- --></A><H3>
+addListener</H3>
+<PRE>
+public void <B>addListener</B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeListener(netP5.NetListener)"><!-- --></A><H3>
+removeListener</H3>
+<PRE>
+public void <B>removeListener</B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListener(int)"><!-- --></A><H3>
+getListener</H3>
+<PRE>
+public <A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A> <B>getListener</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListeners()"><!-- --></A><H3>
+getListeners</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A> <B>getListeners</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/UdpClient.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/TcpServer.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="TcpServer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_netP5.AbstractTcpServer">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/UdpClient.html b/libraries/oscP5/reference/netP5/UdpClient.html
new file mode 100644
index 0000000..7edd272
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/UdpClient.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+UdpClient (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="UdpClient (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/TcpServer.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/UdpClient.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="UdpClient.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_netP5.AbstractUdpClient">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class UdpClient</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../netP5/AbstractUdpClient.html" title="class in netP5">netP5.AbstractUdpClient</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.UdpClient</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>UdpClient</B><DT>extends <A HREF="../netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A></DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/UdpClient.html#UdpClient()">UdpClient</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/UdpClient.html#UdpClient(netP5.NetAddress)">UdpClient</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/UdpClient.html#UdpClient(java.lang.String, int)">UdpClient</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddr,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_netP5.AbstractUdpClient"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class netP5.<A HREF="../netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../netP5/AbstractUdpClient.html#send(byte[])">send</A>, <A HREF="../netP5/AbstractUdpClient.html#send(byte[], java.net.InetAddress, int)">send</A>, <A HREF="../netP5/AbstractUdpClient.html#send(byte[], netP5.NetAddress)">send</A>, <A HREF="../netP5/AbstractUdpClient.html#send(byte[], java.lang.String, int)">send</A>, <A HREF="../netP5/AbstractUdpClient.html#send(java.net.DatagramPacket)">send</A>, <A HREF="../netP5/AbstractUdpClient.html#send(java.lang.String)">send</A>, <A HREF="../netP5/AbstractUdpClient.html#socket()">socket</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UdpClient()"><!-- --></A><H3>
+UdpClient</H3>
+<PRE>
+public <B>UdpClient</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="UdpClient(java.lang.String, int)"><!-- --></A><H3>
+UdpClient</H3>
+<PRE>
+public <B>UdpClient</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddr,
+ int&nbsp;thePort)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="UdpClient(netP5.NetAddress)"><!-- --></A><H3>
+UdpClient</H3>
+<PRE>
+public <B>UdpClient</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/TcpServer.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/UdpClient.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="UdpClient.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_netP5.AbstractUdpClient">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/UdpPacketListener.html b/libraries/oscP5/reference/netP5/UdpPacketListener.html
new file mode 100644
index 0000000..9a70362
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/UdpPacketListener.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+UdpPacketListener (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="UdpPacketListener (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/UdpClient.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/UdpServer.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/UdpPacketListener.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="UdpPacketListener.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Interface UdpPacketListener</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../netP5/Multicast.html" title="class in netP5">Multicast</A>, <A HREF="../oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A>, <A HREF="../oscP5/OscP5.html" title="class in oscP5">OscP5</A>, <A HREF="../netP5/UdpServer.html" title="class in netP5">UdpServer</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>UdpPacketListener</B></DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/UdpPacketListener.html#process(java.net.DatagramPacket, int)">process</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;theDatagramPacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="process(java.net.DatagramPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+void <B>process</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;theDatagramPacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theDatagramPacket</CODE> - DatagramPacket</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/UdpClient.html" title="class in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../netP5/UdpServer.html" title="class in netP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/UdpPacketListener.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="UdpPacketListener.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/UdpServer.html b/libraries/oscP5/reference/netP5/UdpServer.html
new file mode 100644
index 0000000..700e9b7
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/UdpServer.html
@@ -0,0 +1,411 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+UdpServer (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="UdpServer (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/UdpServer.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="UdpServer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+netP5</FONT>
+<BR>
+Class UdpServer</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../netP5/AbstractUdpServer.html" title="class in netP5">netP5.AbstractUdpServer</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>netP5.UdpServer</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>, <A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>UdpServer</B><DT>extends <A HREF="../netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A><DT>implements <A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>andreas schlegel</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/UdpServer.html#UdpServer(java.lang.Object, int)">UdpServer</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/UdpServer.html#UdpServer(java.lang.Object, int, int)">UdpServer</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new UDP server.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../netP5/UdpServer.html#UdpServer(netP5.UdpPacketListener, int, int)">UdpServer</A></B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theListener,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/UdpServer.html#addListener(netP5.NetListener)">addListener</A></B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add a listener to the udp server.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/UdpServer.html#getListener(int)">getListener</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/UdpServer.html#getListeners()">getListeners</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/UdpServer.html#process(java.net.DatagramPacket, int)">process</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../netP5/UdpServer.html#removeListener(netP5.NetListener)">removeListener</A></B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_netP5.AbstractUdpServer"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class netP5.<A HREF="../netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../netP5/AbstractUdpServer.html#dispose()">dispose</A>, <A HREF="../netP5/AbstractUdpServer.html#run()">run</A>, <A HREF="../netP5/AbstractUdpServer.html#send(byte[])">send</A>, <A HREF="../netP5/AbstractUdpServer.html#send(byte[], java.net.InetAddress, int)">send</A>, <A HREF="../netP5/AbstractUdpServer.html#send(byte[], java.lang.String, int)">send</A>, <A HREF="../netP5/AbstractUdpServer.html#send(java.net.DatagramPacket)">send</A>, <A HREF="../netP5/AbstractUdpServer.html#socket()">socket</A>, <A HREF="../netP5/AbstractUdpServer.html#start()">start</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="UdpServer(java.lang.Object, int, int)"><!-- --></A><H3>
+UdpServer</H3>
+<PRE>
+public <B>UdpServer</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</PRE>
+<DL>
+<DD>new UDP server.
+ by default the buffersize of a udp packet is 1536 bytes. you can set
+ your own individual buffersize with the third parameter int in the constructor.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theObject</CODE> - Object<DD><CODE>thePort</CODE> - int<DD><CODE>theBufferSize</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="UdpServer(java.lang.Object, int)"><!-- --></A><H3>
+UdpServer</H3>
+<PRE>
+public <B>UdpServer</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ int&nbsp;thePort)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="UdpServer(netP5.UdpPacketListener, int, int)"><!-- --></A><H3>
+UdpServer</H3>
+<PRE>
+public <B>UdpServer</B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theListener,
+ int&nbsp;thePort,
+ int&nbsp;theBufferSize)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - <DD><CODE>thePort</CODE> - <DD><CODE>theBufferSize</CODE> - </DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="process(java.net.DatagramPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+public void <B>process</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/UdpPacketListener.html#process(java.net.DatagramPacket, int)">process</A></CODE> in interface <CODE><A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - DatagramPacket<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addListener(netP5.NetListener)"><!-- --></A><H3>
+addListener</H3>
+<PRE>
+public void <B>addListener</B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD>add a listener to the udp server. each incoming packet will be forwarded
+ to the listener.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeListener(netP5.NetListener)"><!-- --></A><H3>
+removeListener</H3>
+<PRE>
+public void <B>removeListener</B>(<A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListener(int)"><!-- --></A><H3>
+getListener</H3>
+<PRE>
+public <A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A> <B>getListener</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> -
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListeners()"><!-- --></A><H3>
+getListeners</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A> <B>getListeners</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/UdpServer.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="UdpServer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/package-frame.html b/libraries/oscP5/reference/netP5/package-frame.html
new file mode 100644
index 0000000..49c374e
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/package-frame.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+netP5 (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../netP5/package-summary.html" target="classFrame">netP5</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="NetListener.html" title="interface in netP5" target="classFrame"><I>NetListener</I></A>
+<BR>
+<A HREF="NetP5.html" title="interface in netP5" target="classFrame"><I>NetP5</I></A>
+<BR>
+<A HREF="TcpPacketListener.html" title="interface in netP5" target="classFrame"><I>TcpPacketListener</I></A>
+<BR>
+<A HREF="UdpPacketListener.html" title="interface in netP5" target="classFrame"><I>UdpPacketListener</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AbstractMulticast.html" title="class in netP5" target="classFrame">AbstractMulticast</A>
+<BR>
+<A HREF="AbstractTcpClient.html" title="class in netP5" target="classFrame">AbstractTcpClient</A>
+<BR>
+<A HREF="AbstractTcpServer.html" title="class in netP5" target="classFrame">AbstractTcpServer</A>
+<BR>
+<A HREF="AbstractUdpClient.html" title="class in netP5" target="classFrame">AbstractUdpClient</A>
+<BR>
+<A HREF="AbstractUdpServer.html" title="class in netP5" target="classFrame">AbstractUdpServer</A>
+<BR>
+<A HREF="Bytes.html" title="class in netP5" target="classFrame">Bytes</A>
+<BR>
+<A HREF="Logger.html" title="class in netP5" target="classFrame">Logger</A>
+<BR>
+<A HREF="Multicast.html" title="class in netP5" target="classFrame">Multicast</A>
+<BR>
+<A HREF="NetAddress.html" title="class in netP5" target="classFrame">NetAddress</A>
+<BR>
+<A HREF="NetAddressList.html" title="class in netP5" target="classFrame">NetAddressList</A>
+<BR>
+<A HREF="NetInfo.html" title="class in netP5" target="classFrame">NetInfo</A>
+<BR>
+<A HREF="NetMessage.html" title="class in netP5" target="classFrame">NetMessage</A>
+<BR>
+<A HREF="NetStatus.html" title="class in netP5" target="classFrame">NetStatus</A>
+<BR>
+<A HREF="StringUtils.html" title="class in netP5" target="classFrame">StringUtils</A>
+<BR>
+<A HREF="TcpClient.html" title="class in netP5" target="classFrame">TcpClient</A>
+<BR>
+<A HREF="TcpPacket.html" title="class in netP5" target="classFrame">TcpPacket</A>
+<BR>
+<A HREF="TcpServer.html" title="class in netP5" target="classFrame">TcpServer</A>
+<BR>
+<A HREF="UdpClient.html" title="class in netP5" target="classFrame">UdpClient</A>
+<BR>
+<A HREF="UdpServer.html" title="class in netP5" target="classFrame">UdpServer</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/package-summary.html b/libraries/oscP5/reference/netP5/package-summary.html
new file mode 100644
index 0000000..186e368
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/package-summary.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+netP5 (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="netP5 (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../oscP5/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package netP5
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/NetListener.html" title="interface in netP5">NetListener</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/NetP5.html" title="interface in netP5">NetP5</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/AbstractMulticast.html" title="class in netP5">AbstractMulticast</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/AbstractTcpServer.html" title="class in netP5">AbstractTcpServer</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/AbstractUdpClient.html" title="class in netP5">AbstractUdpClient</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/AbstractUdpServer.html" title="class in netP5">AbstractUdpServer</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/Bytes.html" title="class in netP5">Bytes</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/Logger.html" title="class in netP5">Logger</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/Multicast.html" title="class in netP5">Multicast</A></B></TD>
+<TD>Multicast is a method of forwarding IP datagrams to a group of interested receivers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A></B></TD>
+<TD>NetAddress is an Object that contains an inetaddress
+ of an remote internet address, consisting of an
+ ip address and a port number.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A></B></TD>
+<TD>NetAddressList is an arraylist of netaddresses.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/NetInfo.html" title="class in netP5">NetInfo</A></B></TD>
+<TD>some description</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/NetMessage.html" title="class in netP5">NetMessage</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/NetStatus.html" title="class in netP5">NetStatus</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/StringUtils.html" title="class in netP5">StringUtils</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/TcpServer.html" title="class in netP5">TcpServer</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/UdpClient.html" title="class in netP5">UdpClient</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../netP5/UdpServer.html" title="class in netP5">UdpServer</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../oscP5/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/netP5/package-tree.html b/libraries/oscP5/reference/netP5/package-tree.html
new file mode 100644
index 0000000..98492d1
--- /dev/null
+++ b/libraries/oscP5/reference/netP5/package-tree.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+netP5 Class Hierarchy (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="netP5 Class Hierarchy (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../oscP5/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package netP5
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/AbstractMulticast.html" title="class in netP5"><B>AbstractMulticast</B></A> (implements java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
+<UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/Multicast.html" title="class in netP5"><B>Multicast</B></A> (implements netP5.<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>)
+</UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5"><B>AbstractTcpClient</B></A> (implements java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
+<UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/TcpClient.html" title="class in netP5"><B>TcpClient</B></A></UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/AbstractTcpServer.html" title="class in netP5"><B>AbstractTcpServer</B></A> (implements java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>, netP5.<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>)
+<UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/TcpServer.html" title="class in netP5"><B>TcpServer</B></A></UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/AbstractUdpClient.html" title="class in netP5"><B>AbstractUdpClient</B></A><UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/UdpClient.html" title="class in netP5"><B>UdpClient</B></A></UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/AbstractUdpServer.html" title="class in netP5"><B>AbstractUdpServer</B></A> (implements java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
+<UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/UdpServer.html" title="class in netP5"><B>UdpServer</B></A> (implements netP5.<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>)
+</UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/Bytes.html" title="class in netP5"><B>Bytes</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/Logger.html" title="class in netP5"><B>Logger</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/NetAddress.html" title="class in netP5"><B>NetAddress</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/NetAddressList.html" title="class in netP5"><B>NetAddressList</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/NetInfo.html" title="class in netP5"><B>NetInfo</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/NetMessage.html" title="class in netP5"><B>NetMessage</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/NetStatus.html" title="class in netP5"><B>NetStatus</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/StringUtils.html" title="class in netP5"><B>StringUtils</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/TcpPacket.html" title="class in netP5"><B>TcpPacket</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">netP5.<A HREF="../netP5/NetListener.html" title="interface in netP5"><B>NetListener</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/NetP5.html" title="interface in netP5"><B>NetP5</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5"><B>TcpPacketListener</B></A><LI TYPE="circle">netP5.<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5"><B>UdpPacketListener</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../oscP5/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?netP5/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscArgument.html b/libraries/oscP5/reference/oscP5/OscArgument.html
new file mode 100644
index 0000000..9bcf998
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscArgument.html
@@ -0,0 +1,1160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscArgument (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscArgument (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../oscP5/OscBundle.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscArgument.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscArgument.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscArgument</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscArgument</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>OscArgument</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+an osc argument contains one value of values from a received osc message.
+ you can convert the value into the required format, e.g. from Object to int
+ theOscMessage.get(0).intValue();
+<P>
+
+<P>
+<DL>
+<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5oscArgument by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an alternative way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+ /* send an OSC message to this sketch */
+ oscP5.send("/test",new Object[] {new Integer("1"), new Float(2.0),"test string."}, myRemoteLocation);
+
+}
+
+void draw() {
+ background(0);
+}
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue(); // get the first osc argument
+ float secondValue = theOscMessage.get(1).floatValue(); // get the second osc argument
+ String thirdValue = theOscMessage.get(2).stringValue(); // get the third osc argument
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+
+ theOscMessage.addrPattern()+" typetag "+ theOscMessage.typetag());
+}
+</pre></dd></dl></div></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#OscArgument()">OscArgument</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#blobValue()">blobValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the byte array (blob) of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#booleanValue()">booleanValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the boolean value of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#bytesValue()">bytesValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the byte array of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;char</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#charValue()">charValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the char value of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#doubleValue()">doubleValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the double value of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#floatValue()">floatValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the float value of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#intValue()">intValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the int value of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#longValue()">longValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the long value of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#midiValue()">midiValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#stringValue()">stringValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the String value of the osc argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscArgument.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscArgument()"><!-- --></A><H3>
+OscArgument</H3>
+<PRE>
+public <B>OscArgument</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="intValue()"><!-- --></A><H3>
+intValue</H3>
+<PRE>
+public int <B>intValue</B>()</PRE>
+<DL>
+<DD>get the int value of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="charValue()"><!-- --></A><H3>
+charValue</H3>
+<PRE>
+public char <B>charValue</B>()</PRE>
+<DL>
+<DD>get the char value of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>char<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="floatValue()"><!-- --></A><H3>
+floatValue</H3>
+<PRE>
+public float <B>floatValue</B>()</PRE>
+<DL>
+<DD>get the float value of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>float<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="doubleValue()"><!-- --></A><H3>
+doubleValue</H3>
+<PRE>
+public double <B>doubleValue</B>()</PRE>
+<DL>
+<DD>get the double value of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>double<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="longValue()"><!-- --></A><H3>
+longValue</H3>
+<PRE>
+public long <B>longValue</B>()</PRE>
+<DL>
+<DD>get the long value of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>long<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="booleanValue()"><!-- --></A><H3>
+booleanValue</H3>
+<PRE>
+public boolean <B>booleanValue</B>()</PRE>
+<DL>
+<DD>get the boolean value of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>boolean<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stringValue()"><!-- --></A><H3>
+stringValue</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>stringValue</B>()</PRE>
+<DL>
+<DD>get the String value of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="bytesValue()"><!-- --></A><H3>
+bytesValue</H3>
+<PRE>
+public byte[] <B>bytesValue</B>()</PRE>
+<DL>
+<DD>get the byte array of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte[]<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="blobValue()"><!-- --></A><H3>
+blobValue</H3>
+<PRE>
+public byte[] <B>blobValue</B>()</PRE>
+<DL>
+<DD>get the byte array (blob) of the osc argument.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte[]<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="midiValue()"><!-- --></A><H3>
+midiValue</H3>
+<PRE>
+public int[] <B>midiValue</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int[]</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../oscP5/OscBundle.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscArgument.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscArgument.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscBundle.html b/libraries/oscP5/reference/oscP5/OscBundle.html
new file mode 100644
index 0000000..e3c10d9
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscBundle.html
@@ -0,0 +1,765 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscBundle (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscBundle (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscArgument.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscBundle.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscBundle.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscBundle</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../oscP5/OscPatcher.html" title="class in oscP5">oscP5.OscPatcher</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../oscP5/OscPacket.html" title="class in oscP5">oscP5.OscPacket</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscBundle</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>OscBundle</B><DT>extends <A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></DL>
+</PRE>
+
+<P>
+Osc Bundles are collections of Osc Messages. use bundles to send multiple
+ osc messages to one destination. the OscBundle timetag is supported for
+ sending but not for receiving yet.
+<P>
+
+<P>
+<DL>
+<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5bundle by andreas schlegel
+ * an osc broadcast server.
+ * example shows how to create and send osc bundles.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create an osc bundle */
+ OscBundle myBundle = new OscBundle();
+
+ /* createa new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+ myMessage.add("abc");
+
+ /* add an osc message to the osc bundle */
+ myBundle.add(myMessage);
+
+ /* reset and clear the myMessage object for refill. */
+ myMessage.clear();
+
+ /* refill the osc message object again */
+ myMessage.setAddrPattern("/test2");
+ myMessage.add("defg");
+ myBundle.add(myMessage);
+
+ myBundle.setTimetag(myBundle.now() + 10000);
+ /* send the osc bundle, containing 2 osc messages, to a remote location. */
+ oscP5.send(myBundle, myRemoteLocation);
+}
+
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ print(" typetag: "+theOscMessage.typetag());
+ println(" timetag: "+theOscMessage.timetag());
+}
+</pre></dd></dl></div></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#OscBundle()">OscBundle</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instantiate a new OscBundle object.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#add(oscP5.OscMessage)">add</A></B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add an osc message to the osc bundle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#clear()">clear</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clear and reset the osc bundle for reusing.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#getBytes()">getBytes</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#getMessage(int)">getMessage</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request an osc message inside the osc bundle array,</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#now()">now</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the current time in milliseconds.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#remove(int)">remove</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove an OscMessage from an OscBundle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#remove(oscP5.OscMessage)">remove</A></B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#setTimetag(long)">setTimetag</A></B>(long&nbsp;theTime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the timetag of an osc bundle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#size()">size</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the size of the osc bundle array which contains the osc messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscBundle.html#timetag()">timetag</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns a timetag as byte array.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_oscP5.OscPacket"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class oscP5.<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../oscP5/OscPacket.html#address()">address</A>, <A HREF="../oscP5/OscPacket.html#netaddress()">netaddress</A>, <A HREF="../oscP5/OscPacket.html#netAddress()">netAddress</A>, <A HREF="../oscP5/OscPacket.html#port()">port</A>, <A HREF="../oscP5/OscPacket.html#tcpConnection()">tcpConnection</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscBundle()"><!-- --></A><H3>
+OscBundle</H3>
+<PRE>
+public <B>OscBundle</B>()</PRE>
+<DL>
+<DD>instantiate a new OscBundle object.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="add(oscP5.OscMessage)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage)</PRE>
+<DL>
+<DD>add an osc message to the osc bundle.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theOscMessage</CODE> - OscMessage</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clear()"><!-- --></A><H3>
+clear</H3>
+<PRE>
+public void <B>clear</B>()</PRE>
+<DL>
+<DD>clear and reset the osc bundle for reusing.
+<P>
+<DD><DL>
+<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5bundle by andreas schlegel
+ * an osc broadcast server.
+ * example shows how to create and send osc bundles.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create an osc bundle */
+ OscBundle myBundle = new OscBundle();
+
+ /* createa new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+ myMessage.add("abc");
+
+ /* add an osc message to the osc bundle */
+ myBundle.add(myMessage);
+
+ /* reset and clear the myMessage object for refill. */
+ myMessage.clear();
+
+ /* refill the osc message object again */
+ myMessage.setAddrPattern("/test2");
+ myMessage.add("defg");
+ myBundle.add(myMessage);
+
+ myBundle.setTimetag(myBundle.now() + 10000);
+ /* send the osc bundle, containing 2 osc messages, to a remote location. */
+ oscP5.send(myBundle, myRemoteLocation);
+}
+
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ print(" typetag: "+theOscMessage.typetag());
+ println(" timetag: "+theOscMessage.timetag());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(int)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD>remove an OscMessage from an OscBundle.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(oscP5.OscMessage)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theOscMessage</CODE> - OscMessage</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMessage(int)"><!-- --></A><H3>
+getMessage</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>getMessage</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD>request an osc message inside the osc bundle array,
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - int
+<DT><B>Returns:</B><DD>OscMessage</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD>get the size of the osc bundle array which contains the osc messages.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5bundle by andreas schlegel
+ * an osc broadcast server.
+ * example shows how to create and send osc bundles.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create an osc bundle */
+ OscBundle myBundle = new OscBundle();
+
+ /* createa new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+ myMessage.add("abc");
+
+ /* add an osc message to the osc bundle */
+ myBundle.add(myMessage);
+
+ /* reset and clear the myMessage object for refill. */
+ myMessage.clear();
+
+ /* refill the osc message object again */
+ myMessage.setAddrPattern("/test2");
+ myMessage.add("defg");
+ myBundle.add(myMessage);
+
+ myBundle.setTimetag(myBundle.now() + 10000);
+ /* send the osc bundle, containing 2 osc messages, to a remote location. */
+ oscP5.send(myBundle, myRemoteLocation);
+}
+
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ print(" typetag: "+theOscMessage.typetag());
+ println(" timetag: "+theOscMessage.timetag());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTimetag(long)"><!-- --></A><H3>
+setTimetag</H3>
+<PRE>
+public void <B>setTimetag</B>(long&nbsp;theTime)</PRE>
+<DL>
+<DD>set the timetag of an osc bundle. timetags are used to synchronize events and
+ execute events at a given time in the future or immediately. timetags can
+ only be set for osc bundles, not for osc messages. oscP5 supports receiving
+ timetags, but does not queue messages for execution at a set time.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theTime</CODE> - long<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5bundle by andreas schlegel
+ * an osc broadcast server.
+ * example shows how to create and send osc bundles.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create an osc bundle */
+ OscBundle myBundle = new OscBundle();
+
+ /* createa new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+ myMessage.add("abc");
+
+ /* add an osc message to the osc bundle */
+ myBundle.add(myMessage);
+
+ /* reset and clear the myMessage object for refill. */
+ myMessage.clear();
+
+ /* refill the osc message object again */
+ myMessage.setAddrPattern("/test2");
+ myMessage.add("defg");
+ myBundle.add(myMessage);
+
+ myBundle.setTimetag(myBundle.now() + 10000);
+ /* send the osc bundle, containing 2 osc messages, to a remote location. */
+ oscP5.send(myBundle, myRemoteLocation);
+}
+
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ print(" typetag: "+theOscMessage.typetag());
+ println(" timetag: "+theOscMessage.timetag());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="now()"><!-- --></A><H3>
+now</H3>
+<PRE>
+public static long <B>now</B>()</PRE>
+<DL>
+<DD>returns the current time in milliseconds. use with setTimetag.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>long</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="timetag()"><!-- --></A><H3>
+timetag</H3>
+<PRE>
+public byte[] <B>timetag</B>()</PRE>
+<DL>
+<DD>returns a timetag as byte array.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBytes()"><!-- --></A><H3>
+getBytes</H3>
+<PRE>
+public byte[] <B>getBytes</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../oscP5/OscPacket.html#getBytes()">getBytes</A></CODE> in class <CODE><A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte[]</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscArgument.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscBundle.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscBundle.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscEventListener.html b/libraries/oscP5/reference/oscP5/OscEventListener.html
new file mode 100644
index 0000000..dac1c19
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscEventListener.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscEventListener (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscEventListener (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscBundle.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscIn.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscEventListener.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscEventListener.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Interface OscEventListener</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>OscEventListener</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscEventListener.html#oscEvent(oscP5.OscMessage)">oscEvent</A></B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscEventListener.html#oscStatus(oscP5.OscStatus)">oscStatus</A></B>(<A HREF="../oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>&nbsp;theStatus)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="oscEvent(oscP5.OscMessage)"><!-- --></A><H3>
+oscEvent</H3>
+<PRE>
+void <B>oscEvent</B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theMessage)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="oscStatus(oscP5.OscStatus)"><!-- --></A><H3>
+oscStatus</H3>
+<PRE>
+void <B>oscStatus</B>(<A HREF="../oscP5/OscStatus.html" title="class in oscP5">OscStatus</A>&nbsp;theStatus)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscBundle.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscIn.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscEventListener.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscEventListener.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscIn.html b/libraries/oscP5/reference/oscP5/OscIn.html
new file mode 100644
index 0000000..4a3eafb
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscIn.html
@@ -0,0 +1,434 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscIn (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscIn (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscIn.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscIn.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscIn</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../oscP5/OscPatcher.html" title="class in oscP5">oscP5.OscPatcher</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../oscP5/OscPacket.html" title="class in oscP5">oscP5.OscPacket</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../oscP5/OscMessage.html" title="class in oscP5">oscP5.OscMessage</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscIn</B>
+</PRE>
+<HR>
+<B>Deprecated.</B>
+<P>
+<DL>
+<DT><PRE><FONT SIZE="-1"><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</A>
+</FONT>public class <B>OscIn</B><DT>extends <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></DL>
+</PRE>
+
+<P>
+OscIn is deprecated. for compatibility with previous versions of oscP5 OscIn
+ is still available.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#OscIn(oscP5.OscMessage)">OscIn</A></B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getBlob(int)">getBlob</A></B>(int&nbsp;thePos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getBoolean(int)">getBoolean</A></B>(int&nbsp;thePos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;char</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getChar(int)">getChar</A></B>(int&nbsp;thePos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getDataList()">getDataList</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;this is only for christian's and jens' table communication with vvvv.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getFloat(int)">getFloat</A></B>(int&nbsp;thePos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getInt(int)">getInt</A></B>(int&nbsp;thePos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getMidi(int)">getMidi</A></B>(int&nbsp;thePos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getMidiBytes(int)">getMidiBytes</A></B>(int&nbsp;thePos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscIn.html#getString(int)">getString</A></B>(int&nbsp;thePos)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_oscP5.OscMessage"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class oscP5.<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../oscP5/OscMessage.html#add()">add</A>, <A HREF="../oscP5/OscMessage.html#add(boolean)">add</A>, <A HREF="../oscP5/OscMessage.html#add(java.lang.Boolean)">add</A>, <A HREF="../oscP5/OscMessage.html#add(byte[])">add</A>, <A HREF="../oscP5/OscMessage.html#add(char)">add</A>, <A HREF="../oscP5/OscMessage.html#add(char[])">add</A>, <A HREF="../oscP5/OscMessage.html#add(java.lang.Character)">add</A>, <A HREF="../oscP5/OscMessage.html#add(double)">add</A>, <A HREF="../oscP5/OscMessage.html#add(java.lang.Double)">add</A>, <A HREF="../oscP5/OscMessage.html#add(float)">add</A>, <A HREF="../oscP5/OscMessage.html#add(java.lang.Float)">add</A>, <A HREF="../oscP5/OscMessage.html#add(float[])">add</A>, <A HREF="../oscP5/OscMessage.html#add(int)">add</A>, <A HREF="../oscP5/OscMessage.html#add(int[])">add</A>, <A HREF="../oscP5/OscMessage.html#add(java.lang.Integer)">add</A>, <A HREF="../oscP5/OscMessage.html#add(int, int, int, int)">add</A>, <A HREF="../oscP5/OscMessage.html#add(java.lang.Object[])">add</A>, <A HREF="../oscP5/OscMessage.html#add(java.lang.String)">add</A>, <A HREF="../oscP5/OscMessage.html#add(java.lang.String[])">add</A>, <A HREF="../oscP5/OscMessage.html#addArguments(java.lang.Object[])">addArguments</A>, <A HREF="../oscP5/OscMessage.html#addrInt()">addrInt</A>, <A HREF="../oscP5/OscMessage.html#addrPattern()">addrPattern</A>, <A HREF="../oscP5/OscMessage.html#arguments()">arguments</A>, <A HREF="../oscP5/OscMessage.html#checkAddrPattern(java.lang.String)">checkAddrPattern</A>, <A HREF="../oscP5/OscMessage.html#checkTypetag(java.lang.String)">checkTypetag</A>, <A HREF="../oscP5/OscMessage.html#clear()">clear</A>, <A HREF="../oscP5/OscMessage.html#clearArguments()">clearArguments</A>, <A HREF="../oscP5/OscMessage.html#get(int)">get</A>, <A HREF="../oscP5/OscMessage.html#getAddrPatternAsBytes()">getAddrPatternAsBytes</A>, <A HREF="../oscP5/OscMessage.html#getBytes()">getBytes</A>, <A HREF="../oscP5/OscMessage.html#getTypetagAsBytes()">getTypetagAsBytes</A>, <A HREF="../oscP5/OscMessage.html#isPlugged()">isPlugged</A>, <A HREF="../oscP5/OscMessage.html#makeBlob(byte[])">makeBlob</A>, <A HREF="../oscP5/OscMessage.html#print()">print</A>, <A HREF="../oscP5/OscMessage.html#printData()">printData</A>, <A HREF="../oscP5/OscMessage.html#set(int, java.lang.Object)">set</A>, <A HREF="../oscP5/OscMessage.html#setAddrPattern(int)">setAddrPattern</A>, <A HREF="../oscP5/OscMessage.html#setAddrPattern(java.lang.String)">setAddrPattern</A>, <A HREF="../oscP5/OscMessage.html#setArguments(java.lang.Object[])">setArguments</A>, <A HREF="../oscP5/OscMessage.html#timetag()">timetag</A>, <A HREF="../oscP5/OscMessage.html#toString()">toString</A>, <A HREF="../oscP5/OscMessage.html#typetag()">typetag</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_oscP5.OscPacket"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class oscP5.<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../oscP5/OscPacket.html#address()">address</A>, <A HREF="../oscP5/OscPacket.html#netaddress()">netaddress</A>, <A HREF="../oscP5/OscPacket.html#netAddress()">netAddress</A>, <A HREF="../oscP5/OscPacket.html#port()">port</A>, <A HREF="../oscP5/OscPacket.html#tcpConnection()">tcpConnection</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscIn(oscP5.OscMessage)"><!-- --></A><H3>
+OscIn</H3>
+<PRE>
+public <B>OscIn</B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getInt(int)"><!-- --></A><H3>
+getInt</H3>
+<PRE>
+public int <B>getInt</B>(int&nbsp;thePos)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getChar(int)"><!-- --></A><H3>
+getChar</H3>
+<PRE>
+public char <B>getChar</B>(int&nbsp;thePos)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFloat(int)"><!-- --></A><H3>
+getFloat</H3>
+<PRE>
+public float <B>getFloat</B>(int&nbsp;thePos)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getString(int)"><!-- --></A><H3>
+getString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getString</B>(int&nbsp;thePos)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBlob(int)"><!-- --></A><H3>
+getBlob</H3>
+<PRE>
+public byte[] <B>getBlob</B>(int&nbsp;thePos)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMidiBytes(int)"><!-- --></A><H3>
+getMidiBytes</H3>
+<PRE>
+public int[] <B>getMidiBytes</B>(int&nbsp;thePos)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMidi(int)"><!-- --></A><H3>
+getMidi</H3>
+<PRE>
+public int[] <B>getMidi</B>(int&nbsp;thePos)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoolean(int)"><!-- --></A><H3>
+getBoolean</H3>
+<PRE>
+public boolean <B>getBoolean</B>(int&nbsp;thePos)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDataList()"><!-- --></A><H3>
+getDataList</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</A> <B>getDataList</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<DD>this is only for christian's and jens' table communication with vvvv.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>ArrayList</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscIn.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscIn.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscMessage.html b/libraries/oscP5/reference/oscP5/OscMessage.html
new file mode 100644
index 0000000..3bb21cb
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscMessage.html
@@ -0,0 +1,1447 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscMessage (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscMessage (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscIn.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscNetManager.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscMessage.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscMessage.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscMessage</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../oscP5/OscPatcher.html" title="class in oscP5">oscP5.OscPatcher</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../oscP5/OscPacket.html" title="class in oscP5">oscP5.OscPacket</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscMessage</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../oscP5/OscIn.html" title="class in oscP5">OscIn</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>OscMessage</B><DT>extends <A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></DL>
+</PRE>
+
+<P>
+An OSC message consists of an OSC Address Pattern, an OSC Type Tag String
+ and the OSC arguments.
+<P>
+
+<P>
+<DL>
+<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5sendreceive by andreas schlegel
+ * example shows how to send and receive osc messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+void mousePressed() {
+ /* in the following different ways of creating osc messages are shown by example */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ println(" typetag: "+theOscMessage.typetag());
+}
+</pre></dd></dl></div></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#OscMessage(int)">OscMessage</A></B>(int&nbsp;theAddrInt)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#OscMessage(int, java.lang.Object[])">OscMessage</A></B>(int&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#OscMessage(oscP5.OscMessage)">OscMessage</A></B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#OscMessage(java.lang.String)">OscMessage</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#OscMessage(java.lang.String, java.lang.Object[])">OscMessage</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add()">add</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add values to an osc message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(boolean)">add</A></B>(boolean&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(java.lang.Boolean)">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(byte[])">add</A></B>(byte[]&nbsp;theArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(char)">add</A></B>(char&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(char[])">add</A></B>(char[]&nbsp;theArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(java.lang.Character)">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang">Character</A>&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(double)">add</A></B>(double&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(java.lang.Double)">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</A>&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(float)">add</A></B>(float&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(java.lang.Float)">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</A>&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(float[])">add</A></B>(float[]&nbsp;theArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(int)">add</A></B>(int&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(int[])">add</A></B>(int[]&nbsp;theArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(java.lang.Integer)">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(int, int, int, int)">add</A></B>(int&nbsp;channel,
+ int&nbsp;status,
+ int&nbsp;value1,
+ int&nbsp;value2)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(java.lang.Object[])">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(java.lang.String)">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#add(java.lang.String[])">add</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#addArguments(java.lang.Object[])">addArguments</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add a list of arguments to an exisiting set of arguments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#addrInt()">addrInt</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the address pattern of the osc message as int.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#addrPattern()">addrPattern</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#arguments()">arguments</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#checkAddrPattern(java.lang.String)">checkAddrPattern</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check if an address pattern equals a specific address pattern
+ you are looking for.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#checkTypetag(java.lang.String)">checkTypetag</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theTypeTag)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#clear()">clear</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clear and reset an OscMessage for reuse.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#clearArguments()">clearArguments</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clears the arguments in a message,
+ but keeps the address the address pattern.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscArgument.html" title="class in oscP5">OscArgument</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#get(int)">get</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get a value at a specific position in the osc message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#getAddrPatternAsBytes()">getAddrPatternAsBytes</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#getBytes()">getBytes</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#getTypetagAsBytes()">getTypetagAsBytes</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#isPlugged()">isPlugged</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#makeBlob(byte[])">makeBlob</A></B>(byte[]&nbsp;b)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#print()">print</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#printData()">printData</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#set(int, java.lang.Object)">set</A></B>(int&nbsp;theIndex,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO
+ set should enable the programmer to set values
+ of an existing osc message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#setAddrPattern(int)">setAddrPattern</A></B>(int&nbsp;theAddrPattern)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#setAddrPattern(java.lang.String)">setAddrPattern</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the address pattern of an osc message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#setArguments(java.lang.Object[])">setArguments</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the arguments of the osc message using an object array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#timetag()">timetag</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the timetag of an osc message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscMessage.html#typetag()">typetag</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the typetag of the osc message.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_oscP5.OscPacket"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class oscP5.<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../oscP5/OscPacket.html#address()">address</A>, <A HREF="../oscP5/OscPacket.html#netaddress()">netaddress</A>, <A HREF="../oscP5/OscPacket.html#netAddress()">netAddress</A>, <A HREF="../oscP5/OscPacket.html#port()">port</A>, <A HREF="../oscP5/OscPacket.html#tcpConnection()">tcpConnection</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscMessage(oscP5.OscMessage)"><!-- --></A><H3>
+OscMessage</H3>
+<PRE>
+public <B>OscMessage</B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theOscMessage</CODE> - OscMessage</DL>
+</DL>
+<HR>
+
+<A NAME="OscMessage(java.lang.String)"><!-- --></A><H3>
+OscMessage</H3>
+<PRE>
+public <B>OscMessage</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String</DL>
+</DL>
+<HR>
+
+<A NAME="OscMessage(int)"><!-- --></A><H3>
+OscMessage</H3>
+<PRE>
+public <B>OscMessage</B>(int&nbsp;theAddrInt)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrInt</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="OscMessage(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
+OscMessage</H3>
+<PRE>
+public <B>OscMessage</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String<DD><CODE>theArguments</CODE> - Object[]</DL>
+</DL>
+<HR>
+
+<A NAME="OscMessage(int, java.lang.Object[])"><!-- --></A><H3>
+OscMessage</H3>
+<PRE>
+public <B>OscMessage</B>(int&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - int<DD><CODE>theArguments</CODE> - Object[]</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="clear()"><!-- --></A><H3>
+clear</H3>
+<PRE>
+public void <B>clear</B>()</PRE>
+<DL>
+<DD>clear and reset an OscMessage for reuse.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clearArguments()"><!-- --></A><H3>
+clearArguments</H3>
+<PRE>
+public void <B>clearArguments</B>()</PRE>
+<DL>
+<DD>clears the arguments in a message,
+ but keeps the address the address pattern.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="set(int, java.lang.Object)"><!-- --></A><H3>
+set</H3>
+<PRE>
+public void <B>set</B>(int&nbsp;theIndex,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject)</PRE>
+<DL>
+<DD>TODO
+ set should enable the programmer to set values
+ of an existing osc message.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="checkTypetag(java.lang.String)"><!-- --></A><H3>
+checkTypetag</H3>
+<PRE>
+public boolean <B>checkTypetag</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theTypeTag)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theTypeTag</CODE> - String
+<DT><B>Returns:</B><DD>boolean<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="checkAddrPattern(java.lang.String)"><!-- --></A><H3>
+checkAddrPattern</H3>
+<PRE>
+public boolean <B>checkAddrPattern</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</PRE>
+<DL>
+<DD>check if an address pattern equals a specific address pattern
+ you are looking for. this is usually used when parsing an osc message.
+ e.g. if(theOscMessage.checkAddrPattern("/test")==true) {...}
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String
+<DT><B>Returns:</B><DD>boolean<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5parsing by andreas schlegel
+ * example shows how to parse incoming osc messages "by hand".
+ * it is recommended to take a look at oscP5plug for an
+ * alternative and more convenient way to parse messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new osc message object */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+void oscEvent(OscMessage theOscMessage) {
+ /* check if theOscMessage has the address pattern we are looking for. */
+
+ if(theOscMessage.checkAddrPattern("/test")==true) {
+ /* check if the typetag is the right one. */
+ if(theOscMessage.checkTypetag("ifs")) {
+ /* parse theOscMessage and extract the values from the osc message arguments. */
+ int firstValue = theOscMessage.get(0).intValue();
+ float secondValue = theOscMessage.get(1).floatValue();
+ String thirdValue = theOscMessage.get(2).stringValue();
+ print("### received an osc message /test with typetag ifs.");
+ println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
+ return;
+ }
+ }
+ println("### received an osc message. with address pattern "+theOscMessage.addrPattern());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAddrPattern(java.lang.String)"><!-- --></A><H3>
+setAddrPattern</H3>
+<PRE>
+public void <B>setAddrPattern</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</PRE>
+<DL>
+<DD>set the address pattern of an osc message. you can set
+ a string or an int as address pattern.tnt might be useful for
+ supercollider users. oscP5 does support ints and strings as
+ address patterns when sending and receiving messages.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAddrPattern(int)"><!-- --></A><H3>
+setAddrPattern</H3>
+<PRE>
+public void <B>setAddrPattern</B>(int&nbsp;theAddrPattern)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setArguments(java.lang.Object[])"><!-- --></A><H3>
+setArguments</H3>
+<PRE>
+public void <B>setArguments</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</PRE>
+<DL>
+<DD>set the arguments of the osc message using an object array.
+ with version 0.9.4 the existing arguments are overwritten,
+ to add the arguments to the argument list, use addArguments(Object[])
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArguments</CODE> - Object[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addArguments(java.lang.Object[])"><!-- --></A><H3>
+addArguments</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>addArguments</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</PRE>
+<DL>
+<DD>add a list of arguments to an exisiting set of arguments.
+ to overwrite the existing argument list, use setArguments(Object[])
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArguments</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addrPattern()"><!-- --></A><H3>
+addrPattern</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>addrPattern</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addrInt()"><!-- --></A><H3>
+addrInt</H3>
+<PRE>
+public int <B>addrInt</B>()</PRE>
+<DL>
+<DD>returns the address pattern of the osc message as int.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="typetag()"><!-- --></A><H3>
+typetag</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>typetag</B>()</PRE>
+<DL>
+<DD>returns the typetag of the osc message. e.g. the message contains
+ 3 floats then the typetag would be "fff"
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="timetag()"><!-- --></A><H3>
+timetag</H3>
+<PRE>
+public long <B>timetag</B>()</PRE>
+<DL>
+<DD>get the timetag of an osc message. timetags are only sent by
+ osc bundles.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>long</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="arguments()"><!-- --></A><H3>
+arguments</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>arguments</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Object[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAddrPatternAsBytes()"><!-- --></A><H3>
+getAddrPatternAsBytes</H3>
+<PRE>
+public byte[] <B>getAddrPatternAsBytes</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTypetagAsBytes()"><!-- --></A><H3>
+getTypetagAsBytes</H3>
+<PRE>
+public byte[] <B>getTypetagAsBytes</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBytes()"><!-- --></A><H3>
+getBytes</H3>
+<PRE>
+public byte[] <B>getBytes</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../oscP5/OscPacket.html#getBytes()">getBytes</A></CODE> in class <CODE><A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add()"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>()</PRE>
+<DL>
+<DD>add values to an osc message. please check the
+ add documentation for specific information.
+<P>
+<DD><DL>
+<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5message by andreas schlegel
+ * example shows how to create osc messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+void mousePressed() {
+ /* in the following different ways of creating osc messages are shown by example */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(12.34); /* add a float to the osc message */
+ myMessage.add("some text"); /* add a string to the osc message */
+ myMessage.add(new byte[] {0x00, 0x01, 0x10, 0x20}); /* add a byte blob to the osc message */
+ myMessage.add(new int[] {1,2,3,4}); /* add an int array to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ println(" typetag: "+theOscMessage.typetag());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(int)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(int&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.String)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(float)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(float&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - float</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(double)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(double&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - double</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(boolean)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(boolean&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Boolean)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A>&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - Boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Integer)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - Integer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Float)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</A>&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - Float</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Double)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</A>&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - Double</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Character)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang">Character</A>&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - Character</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(char)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(char&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - char</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(int, int, int, int)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(int&nbsp;channel,
+ int&nbsp;status,
+ int&nbsp;value1,
+ int&nbsp;value2)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>channel</CODE> - int<DD><CODE>status</CODE> - int<DD><CODE>value1</CODE> - int<DD><CODE>value2</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(int[])"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(int[]&nbsp;theArray)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArray</CODE> - int[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(char[])"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(char[]&nbsp;theArray)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArray</CODE> - char[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(float[])"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(float[]&nbsp;theArray)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArray</CODE> - float[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.String[])"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theArray)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArray</CODE> - String[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(byte[])"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(byte[]&nbsp;theArray)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArray</CODE> - byte[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Object[])"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>add</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArray)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArray</CODE> - Object[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="makeBlob(byte[])"><!-- --></A><H3>
+makeBlob</H3>
+<PRE>
+public static byte[] <B>makeBlob</B>(byte[]&nbsp;b)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>b</CODE> - byte[]
+<DT><B>Returns:</B><DD>byte[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="get(int)"><!-- --></A><H3>
+get</H3>
+<PRE>
+public <A HREF="../oscP5/OscArgument.html" title="class in oscP5">OscArgument</A> <B>get</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD>get a value at a specific position in the osc message. the get method
+ returns an OscArgument from which the value can be parsed into the right
+ format. e.g. to parse an int from the first argument in the osc message,
+ use theOscMessage.get(0).intValue();
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - int
+<DT><B>Returns:</B><DD>OscArgument</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public final <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPlugged()"><!-- --></A><H3>
+isPlugged</H3>
+<PRE>
+public boolean <B>isPlugged</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print()"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printData()"><!-- --></A><H3>
+printData</H3>
+<PRE>
+public void <B>printData</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscIn.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscNetManager.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscMessage.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscMessage.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscNetManager.html b/libraries/oscP5/reference/oscP5/OscNetManager.html
new file mode 100644
index 0000000..1dd93e1
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscNetManager.html
@@ -0,0 +1,760 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscNetManager (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscNetManager (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscP5.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscNetManager.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscNetManager.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscNetManager</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscNetManager</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>, <A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>OscNetManager</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>, <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#NONE">NONE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#OscNetManager()">OscNetManager</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#addTcpListener(netP5.TcpPacketListener)">addTcpListener</A></B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#addUdpListener(netP5.UdpPacketListener)">addUdpListener</A></B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#process(java.net.DatagramPacket, int)">process</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#process(netP5.TcpPacket, int)">process</A></B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#remove(netP5.AbstractTcpClient)">remove</A></B>(<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>&nbsp;theClient)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#removeTcpListener(netP5.TcpPacketListener)">removeTcpListener</A></B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#removeUdpListener(netP5.UdpPacketListener)">removeUdpListener</A></B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(java.net.DatagramPacket)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(oscP5.OscPacket)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(oscP5.OscPacket, netP5.NetAddress)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theHost)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(oscP5.OscPacket, netP5.NetAddressList)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>&nbsp;theList)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(oscP5.OscPacket, java.lang.String, int)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(java.lang.String, java.lang.Object[])">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(java.lang.String, java.lang.Object[], netP5.NetAddress)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theHost)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(java.lang.String, java.lang.Object[], netP5.NetAddressList)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>&nbsp;theList)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#send(java.lang.String, java.lang.Object[], java.lang.String, int)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#setTimeToLive(int)">setTimeToLive</A></B>(int&nbsp;theTTL)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#start(oscP5.OscProperties)">start</A></B>(<A HREF="../oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>&nbsp;theOscProperties)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#status(int)">status</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#tcpClient()">tcpClient</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpServer.html" title="class in netP5">TcpServer</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscNetManager.html#tcpServer()">tcpServer</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NONE"><!-- --></A><H3>
+NONE</H3>
+<PRE>
+public static final int <B>NONE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscNetManager.NONE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscNetManager()"><!-- --></A><H3>
+OscNetManager</H3>
+<PRE>
+public <B>OscNetManager</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="start(oscP5.OscProperties)"><!-- --></A><H3>
+start</H3>
+<PRE>
+public void <B>start</B>(<A HREF="../oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>&nbsp;theOscProperties)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTimeToLive(int)"><!-- --></A><H3>
+setTimeToLive</H3>
+<PRE>
+public void <B>setTimeToLive</B>(int&nbsp;theTTL)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="tcpServer()"><!-- --></A><H3>
+tcpServer</H3>
+<PRE>
+public <A HREF="../netP5/TcpServer.html" title="class in netP5">TcpServer</A> <B>tcpServer</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="tcpClient()"><!-- --></A><H3>
+tcpClient</H3>
+<PRE>
+public <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A> <B>tcpClient</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addUdpListener(netP5.UdpPacketListener)"><!-- --></A><H3>
+addUdpListener</H3>
+<PRE>
+public void <B>addUdpListener</B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - DatagramPacketListener</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeUdpListener(netP5.UdpPacketListener)"><!-- --></A><H3>
+removeUdpListener</H3>
+<PRE>
+public void <B>removeUdpListener</B>(<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - DatagramPacketListener</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addTcpListener(netP5.TcpPacketListener)"><!-- --></A><H3>
+addTcpListener</H3>
+<PRE>
+public void <B>addTcpListener</B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - TcpPacketListener</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeTcpListener(netP5.TcpPacketListener)"><!-- --></A><H3>
+removeTcpListener</H3>
+<PRE>
+public void <B>removeTcpListener</B>(<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theListener</CODE> - TcpPacketListener</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.net.DatagramPacket)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket, java.lang.String, int)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket, netP5.NetAddressList)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>&nbsp;theList)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theList</CODE> - OscHostList</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket, netP5.NetAddress)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theHost)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theHost</CODE> - NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String<DD><CODE>theArguments</CODE> - Object[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[], java.lang.String, int)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[], netP5.NetAddressList)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>&nbsp;theList)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[], netP5.NetAddress)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theHost)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="process(java.net.DatagramPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+public void <B>process</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/UdpPacketListener.html#process(java.net.DatagramPacket, int)">process</A></CODE> in interface <CODE><A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - DatagramPacket</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="process(netP5.TcpPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+public void <B>process</B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/TcpPacketListener.html#process(netP5.TcpPacket, int)">process</A></CODE> in interface <CODE><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(netP5.AbstractTcpClient)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>&nbsp;theClient)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/TcpPacketListener.html#remove(netP5.AbstractTcpClient)">remove</A></CODE> in interface <CODE><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(int)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/TcpPacketListener.html#status(int)">status</A></CODE> in interface <CODE><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscP5.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscNetManager.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscNetManager.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscP5.html b/libraries/oscP5/reference/oscP5/OscP5.html
new file mode 100644
index 0000000..7537ab0
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscP5.html
@@ -0,0 +1,1807 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscP5 (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscP5 (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscNetManager.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscPacket.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscP5.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscP5.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscP5</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscP5</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>, <A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>OscP5</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>, <A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></DL>
+</PRE>
+
+<P>
+TODO add better error message handling for oscEvents, see this post
+ http://forum.processing.org/topic/oscp5-major-problems-with-error-handling# 25080000000811163
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#MULTICAST">MULTICAST</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a static variable used when creating an oscP5 instance with a sepcified network protocol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#OFF">OFF</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#ON">ON</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#TCP">TCP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a static variable used when creating an oscP5 instance with a sepcified network protocol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#UDP">UDP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a static variable used when creating an oscP5 instance with a sepcified network protocol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#VERSION">VERSION</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#OscP5(java.lang.Object, int)">OscP5</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ int&nbsp;theReceiveAtPort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#OscP5(java.lang.Object, int, int)">OscP5</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ int&nbsp;theReceiveAtPort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#OscP5(java.lang.Object, oscP5.OscProperties)">OscP5</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ <A HREF="../oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>&nbsp;theProperties)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#OscP5(java.lang.Object, java.lang.String, int)">OscP5</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#OscP5(java.lang.Object, java.lang.String, int, int)">OscP5</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#OscP5(java.lang.Object, java.lang.String, int, int, java.lang.String)">OscP5</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;theSendToPort,
+ int&nbsp;theReceiveAtPort,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#addListener(oscP5.OscEventListener)">addListener</A></B>(<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#connect(netP5.NetAddress, java.lang.String, java.lang.String[])">connect</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theArguments)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#disconnect(netP5.NetAddress)">disconnect</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theHost)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#disconnectFromTEMP()">disconnectFromTEMP</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#dispose()">dispose</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#flush(byte[], netP5.NetAddress)">flush</A></B>(byte[]&nbsp;theBytes,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#flush(byte[], java.lang.String, int)">flush</A></B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#flush(oscP5.OscMessage, netP5.NetAddress)">flush</A></B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a static method to send an OscMessage straight out of the box without having to instantiate
+ oscP5.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#flush(oscP5.OscMessage, java.lang.String, int)">flush</A></B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#flush(oscP5.OscPacket, netP5.NetAddress)">flush</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;theOscPacket,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#flush(java.lang.String, java.lang.Object[], netP5.NetAddress)">flush</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#ip()">ip</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#isBroadcast()">isBroadcast</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A>&lt;<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#listeners()">listeners</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetInfo.html" title="class in netP5">NetInfo</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#netInfo()">netInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;netinfo() returns an instance of a NetInfo Object from which you can get LAN and WAN
+ information.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscBundle.html" title="class in oscP5">OscBundle</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#newBundle()">newBundle</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#newMsg(java.lang.String)">newMsg</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#plug(java.lang.Object, java.lang.String, java.lang.String)">plug</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#plug(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)">plug</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theTypeTag)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;osc messages can be automatically forwarded to a specific method of an object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#process(java.net.DatagramPacket, int)">process</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;incoming osc messages from an udp socket are parsed, processed and forwarded to the parent.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#process(netP5.TcpPacket, int)">process</A></B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../oscP5/OscProperties.html" title="class in oscP5">OscProperties</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#properties()">properties</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the current properties of oscP5.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#remove(netP5.AbstractTcpClient)">remove</A></B>(<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>&nbsp;theTcpClient)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#removeListener(oscP5.OscEventListener)">removeListener</A></B>(<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&nbsp;theListener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(oscP5.OscPacket)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(oscP5.OscPacket, netP5.NetAddress)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;you can send osc packets in many different ways.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(oscP5.OscPacket, netP5.NetAddressList)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>&nbsp;theNetAddressList)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(oscP5.OscPacket, java.lang.String, int)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIpAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(oscP5.OscPacket, netP5.TcpClient)">send</A></B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>&nbsp;theClient)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send to tcp client</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(java.lang.String, java.lang.Object[])">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(java.lang.String, java.lang.Object[], netP5.NetAddress)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(java.lang.String, java.lang.Object[], netP5.NetAddressList)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>&nbsp;theNetAddressList)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(java.lang.String, java.lang.Object[], java.lang.String, int)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#send(java.lang.String, java.lang.Object[], netP5.TcpClient)">send</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>&nbsp;theClient)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#setLogStatus(int)">setLogStatus</A></B>(int&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#setLogStatus(int, int)">setLogStatus</A></B>(int&nbsp;theIndex,
+ int&nbsp;theValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oscP5 has a logging mechanism which prints out processes, warnings and errors into the
+ console window.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#setTimeToLive(int)">setTimeToLive</A></B>(int&nbsp;theTTL)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set timeToLive of a multicast packet.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#status(int)">status</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#stop()">stop</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop oscP5 and close open Sockets.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#tcpClient()">tcpClient</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return the instance of the running TCP client if in TCP mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpServer.html" title="class in netP5">TcpServer</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#tcpServer()">tcpServer</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return the instance of the running TCP server if in TCP mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscP5.html#version()">version</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the current version of oscP5.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ON"><!-- --></A><H3>
+ON</H3>
+<PRE>
+public static final boolean <B>ON</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscP5.ON">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OFF"><!-- --></A><H3>
+OFF</H3>
+<PRE>
+public static final boolean <B>OFF</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscP5.OFF">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="UDP"><!-- --></A><H3>
+UDP</H3>
+<PRE>
+public static final int <B>UDP</B></PRE>
+<DL>
+<DD>a static variable used when creating an oscP5 instance with a sepcified network protocol.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscP5.UDP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MULTICAST"><!-- --></A><H3>
+MULTICAST</H3>
+<PRE>
+public static final int <B>MULTICAST</B></PRE>
+<DL>
+<DD>a static variable used when creating an oscP5 instance with a sepcified network protocol.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscP5.MULTICAST">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TCP"><!-- --></A><H3>
+TCP</H3>
+<PRE>
+public static final int <B>TCP</B></PRE>
+<DL>
+<DD>a static variable used when creating an oscP5 instance with a sepcified network protocol.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscP5.TCP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="VERSION"><!-- --></A><H3>
+VERSION</H3>
+<PRE>
+public static final <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>VERSION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscP5.VERSION">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscP5(java.lang.Object, oscP5.OscProperties)"><!-- --></A><H3>
+OscP5</H3>
+<PRE>
+public <B>OscP5</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ <A HREF="../oscP5/OscProperties.html" title="class in oscP5">OscProperties</A>&nbsp;theProperties)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theParent</CODE> - Object<DD><CODE>theProperties</CODE> - OscProperties</DL>
+</DL>
+<HR>
+
+<A NAME="OscP5(java.lang.Object, java.lang.String, int, int)"><!-- --></A><H3>
+OscP5</H3>
+<PRE>
+public <B>OscP5</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort,
+ int&nbsp;theMode)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theParent</CODE> - Object<DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int<DD><CODE>theMode</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="OscP5(java.lang.Object, int, int)"><!-- --></A><H3>
+OscP5</H3>
+<PRE>
+public <B>OscP5</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ int&nbsp;theReceiveAtPort,
+ int&nbsp;theMode)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="OscP5(java.lang.Object, int)"><!-- --></A><H3>
+OscP5</H3>
+<PRE>
+public <B>OscP5</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ int&nbsp;theReceiveAtPort)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theParent</CODE> - Object<DD><CODE>theReceiveAtPort</CODE> - int</DL>
+</DL>
+<HR>
+
+<A NAME="OscP5(java.lang.Object, java.lang.String, int, int, java.lang.String)"><!-- --></A><H3>
+OscP5</H3>
+<PRE>
+public <B>OscP5</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHost,
+ int&nbsp;theSendToPort,
+ int&nbsp;theReceiveAtPort,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD>old version of constructor. still in here for backwards compatibility.
+<P>
+</DL>
+<HR>
+
+<A NAME="OscP5(java.lang.Object, java.lang.String, int)"><!-- --></A><H3>
+OscP5</H3>
+<PRE>
+public <B>OscP5</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theParent,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>theParent</CODE> - Object<DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="version()"><!-- --></A><H3>
+version</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>version</B>()</PRE>
+<DL>
+<DD>get the current version of oscP5.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dispose()"><!-- --></A><H3>
+dispose</H3>
+<PRE>
+public void <B>dispose</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addListener(oscP5.OscEventListener)"><!-- --></A><H3>
+addListener</H3>
+<PRE>
+public void <B>addListener</B>(<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeListener(oscP5.OscEventListener)"><!-- --></A><H3>
+removeListener</H3>
+<PRE>
+public void <B>removeListener</B>(<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&nbsp;theListener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="listeners()"><!-- --></A><H3>
+listeners</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A>&lt;<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&gt; <B>listeners</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="plug(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
+plug</H3>
+<PRE>
+public void <B>plug</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theTypeTag)</PRE>
+<DL>
+<DD>osc messages can be automatically forwarded to a specific method of an object. the plug
+ method can be used to by-pass parsing raw osc messages - this job is done for you with the
+ plug mechanism. you can also use the following array-types int[], float[], String[]. (but
+ only as on single parameter e.g. somemethod(int[] theArray) {} ).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theObject</CODE> - Object, can be any Object<DD><CODE>theMethodName</CODE> - String, the method name an osc message should be forwarded to<DD><CODE>theAddrPattern</CODE> - String, the address pattern of the osc message<DD><CODE>theTypeTag</CODE> - String<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5plug by andreas schlegel
+ * example shows how to use the plug service with oscP5.
+ * the concept of the plug service is, that you can
+ * register methods in your sketch to which incoming
+ * osc messages will be forwareded automatically without
+ * having to parse them in the oscEvent method.
+ * that a look at the example below to get an understanding
+ * of how plug works.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+
+ /* osc plug service
+ * osc messages with a specific address pattern can be automatically
+ * forwarded to a specific method of an object. in this example
+ * a message with address pattern /test will be forwarded to a method
+ * test(). below the method test takes 2 arguments - 2 ints. therefore each
+ * message with address pattern /test and typetag ii will be forwarded to
+ * the method test(int theA, int theB)
+ */
+ oscP5.plug(this,"test","/test");
+}
+
+
+public void test(int theA, int theB) {
+ println("### plug event method. received a message /test.");
+ println(" 2 ints received: "+theA+", "+theB);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* createan osc message with address pattern /test */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(456); /* add a second int to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* with theOscMessage.isPlugged() you check if the osc message has already been
+ * forwarded to a plugged method. if theOscMessage.isPlugged()==true, it has already
+ * been forwared to another method in your sketch. theOscMessage.isPlugged() can
+ * be used for double posting but is not required.
+ */
+ if(theOscMessage.isPlugged()==false) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ println("### received an osc message.");
+ println("### addrpattern\t"+theOscMessage.addrPattern());
+ println("### typetag\t"+theOscMessage.typetag());
+ }
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="plug(java.lang.Object, java.lang.String, java.lang.String)"><!-- --></A><H3>
+plug</H3>
+<PRE>
+public void <B>plug</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theObject</CODE> - Object, can be any Object<DD><CODE>theMethodName</CODE> - String, the method name an osc message should be forwarded to<DD><CODE>theAddrPattern</CODE> - String, the address pattern of the osc message<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5plug by andreas schlegel
+ * example shows how to use the plug service with oscP5.
+ * the concept of the plug service is, that you can
+ * register methods in your sketch to which incoming
+ * osc messages will be forwareded automatically without
+ * having to parse them in the oscEvent method.
+ * that a look at the example below to get an understanding
+ * of how plug works.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+
+ /* osc plug service
+ * osc messages with a specific address pattern can be automatically
+ * forwarded to a specific method of an object. in this example
+ * a message with address pattern /test will be forwarded to a method
+ * test(). below the method test takes 2 arguments - 2 ints. therefore each
+ * message with address pattern /test and typetag ii will be forwarded to
+ * the method test(int theA, int theB)
+ */
+ oscP5.plug(this,"test","/test");
+}
+
+
+public void test(int theA, int theB) {
+ println("### plug event method. received a message /test.");
+ println(" 2 ints received: "+theA+", "+theB);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* createan osc message with address pattern /test */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+ myMessage.add(456); /* add a second int to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* with theOscMessage.isPlugged() you check if the osc message has already been
+ * forwarded to a plugged method. if theOscMessage.isPlugged()==true, it has already
+ * been forwared to another method in your sketch. theOscMessage.isPlugged() can
+ * be used for double posting but is not required.
+ */
+ if(theOscMessage.isPlugged()==false) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ println("### received an osc message.");
+ println("### addrpattern\t"+theOscMessage.addrPattern());
+ println("### typetag\t"+theOscMessage.typetag());
+ }
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="process(java.net.DatagramPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+public void <B>process</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD>incoming osc messages from an udp socket are parsed, processed and forwarded to the parent.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/UdpPacketListener.html#process(java.net.DatagramPacket, int)">process</A></CODE> in interface <CODE><A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - DatagramPacket<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="process(netP5.TcpPacket, int)"><!-- --></A><H3>
+process</H3>
+<PRE>
+public void <B>process</B>(<A HREF="../netP5/TcpPacket.html" title="class in netP5">TcpPacket</A>&nbsp;thePacket,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/TcpPacketListener.html#process(netP5.TcpPacket, int)">process</A></CODE> in interface <CODE><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../netP5/TcpPacketListener.html#process(netP5.TcpPacket, int)"><CODE>TcpPacketListener.process(netP5.TcpPacket, int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(netP5.AbstractTcpClient)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../netP5/AbstractTcpClient.html" title="class in netP5">AbstractTcpClient</A>&nbsp;theTcpClient)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/TcpPacketListener.html#remove(netP5.AbstractTcpClient)">remove</A></CODE> in interface <CODE><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theTcpClient</CODE> - AbstractTcpClient</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="status(int)"><!-- --></A><H3>
+status</H3>
+<PRE>
+public void <B>status</B>(int&nbsp;theIndex)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../netP5/TcpPacketListener.html#status(int)">status</A></CODE> in interface <CODE><A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="properties()"><!-- --></A><H3>
+properties</H3>
+<PRE>
+public <A HREF="../oscP5/OscProperties.html" title="class in oscP5">OscProperties</A> <B>properties</B>()</PRE>
+<DL>
+<DD>returns the current properties of oscP5.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>OscProperties</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isBroadcast()"><!-- --></A><H3>
+isBroadcast</H3>
+<PRE>
+public boolean <B>isBroadcast</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="ip()"><!-- --></A><H3>
+ip</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>ip</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLogStatus(int, int)"><!-- --></A><H3>
+setLogStatus</H3>
+<PRE>
+public static void <B>setLogStatus</B>(int&nbsp;theIndex,
+ int&nbsp;theValue)</PRE>
+<DL>
+<DD>oscP5 has a logging mechanism which prints out processes, warnings and errors into the
+ console window. e.g. turn off the error log with setLogStatus(Logger.ERROR, Logger.OFF);
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theIndex</CODE> - int<DD><CODE>theValue</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLogStatus(int)"><!-- --></A><H3>
+setLogStatus</H3>
+<PRE>
+public static void <B>setLogStatus</B>(int&nbsp;theValue)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theValue</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTimeToLive(int)"><!-- --></A><H3>
+setTimeToLive</H3>
+<PRE>
+public void <B>setTimeToLive</B>(int&nbsp;theTTL)</PRE>
+<DL>
+<DD>set timeToLive of a multicast packet.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theTTL</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="disconnect(netP5.NetAddress)"><!-- --></A><H3>
+disconnect</H3>
+<PRE>
+public void <B>disconnect</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theHost)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theHost</CODE> - NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="connect(netP5.NetAddress, java.lang.String, java.lang.String[])"><!-- --></A><H3>
+connect</H3>
+<PRE>
+public void <B>connect</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;theArguments)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theNetAddress</CODE> - NetAddress<DD><CODE>theName</CODE> - String<DD><CODE>theArguments</CODE> - String[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="netInfo()"><!-- --></A><H3>
+netInfo</H3>
+<PRE>
+public <A HREF="../netP5/NetInfo.html" title="class in netP5">NetInfo</A> <B>netInfo</B>()</PRE>
+<DL>
+<DD>netinfo() returns an instance of a NetInfo Object from which you can get LAN and WAN
+ information.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>NetInfo</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="tcpServer()"><!-- --></A><H3>
+tcpServer</H3>
+<PRE>
+public <A HREF="../netP5/TcpServer.html" title="class in netP5">TcpServer</A> <B>tcpServer</B>()</PRE>
+<DL>
+<DD>return the instance of the running TCP server if in TCP mode.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>TcpServer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="tcpClient()"><!-- --></A><H3>
+tcpClient</H3>
+<PRE>
+public <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A> <B>tcpClient</B>()</PRE>
+<DL>
+<DD>return the instance of the running TCP client if in TCP mode.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>TcpClient</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket, netP5.NetAddress)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD>you can send osc packets in many different ways. see below and use the send method that fits
+ your needs.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theNetAddress</CODE> - NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5sendreceive by andreas schlegel
+ * example shows how to send and receive osc messages.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+NetAddress myRemoteLocation;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* start oscP5, listening for incoming messages at port 12000 */
+ oscP5 = new OscP5(this,12000);
+
+ /* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
+ * an ip address and a port number. myRemoteLocation is used as parameter in
+ * oscP5.send() when sending osc packets to another computer, device,
+ * application. usage see below. for testing purposes the listening port
+ * and the port of the remote location address are the same, hence you will
+ * send messages back to this sketch.
+ */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+void mousePressed() {
+ /* in the following different ways of creating osc messages are shown by example */
+ OscMessage myMessage = new OscMessage("/test");
+
+ myMessage.add(123); /* add an int to the osc message */
+
+ /* send the message */
+ oscP5.send(myMessage, myRemoteLocation);
+}
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ println(" typetag: "+theOscMessage.typetag());
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket, netP5.NetAddressList)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>&nbsp;theNetAddressList)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theNetAddressList</CODE> - NetAddressList</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String<DD><CODE>theArguments</CODE> - Object[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[], netP5.NetAddressList)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddressList.html" title="class in netP5">NetAddressList</A>&nbsp;theNetAddressList)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String<DD><CODE>theArguments</CODE> - Object[]<DD><CODE>theNetAddressList</CODE> - NetAddressList</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[], netP5.NetAddress)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String<DD><CODE>theArguments</CODE> - Object[]<DD><CODE>theNetAddress</CODE> - NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[], java.lang.String, int)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String<DD><CODE>theArguments</CODE> - Object[]<DD><CODE>theNetAddress</CODE> - NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket, netP5.TcpClient)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>&nbsp;theClient)</PRE>
+<DL>
+<DD>send to tcp client
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theClient</CODE> - TcpClient</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(java.lang.String, java.lang.Object[], netP5.TcpClient)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A>&nbsp;theClient)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String<DD><CODE>theArguments</CODE> - Object[]<DD><CODE>theClient</CODE> - TcpClient</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="send(oscP5.OscPacket, java.lang.String, int)"><!-- --></A><H3>
+send</H3>
+<PRE>
+public void <B>send</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;thePacket,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theIpAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD>the send method offers a lot of possibilities. have a look at the send documentation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePacket</CODE> - OscPacket<DD><CODE>theIpAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stop()"><!-- --></A><H3>
+stop</H3>
+<PRE>
+public void <B>stop</B>()</PRE>
+<DL>
+<DD>stop oscP5 and close open Sockets.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flush(oscP5.OscMessage, netP5.NetAddress)"><!-- --></A><H3>
+flush</H3>
+<PRE>
+public static void <B>flush</B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD>a static method to send an OscMessage straight out of the box without having to instantiate
+ oscP5.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theOscMessage</CODE> - OscMessage<DD><CODE>theNetAddress</CODE> - NetAddress<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre> /**
+ * oscP5flush by andreas schlegel
+ * example shows how to send osc messages without having to instantiate an oscP5 object.
+ * this can be useful if you are not listening for incoming messages and you
+ * want to avoid to have the additional oscP5 thread running listening for incoming
+ * message (which you wont need if you are only sending messages).
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+
+import oscP5.*;
+import netP5.*;
+
+
+NetAddress myRemoteLocation;
+void setup() {
+ size(400,400);
+ frameRate(25);
+ /* set up a remote location */
+ myRemoteLocation = new NetAddress("127.0.0.1",12000);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+void mousePressed() {
+ /* create a new OscMessage with an address pattern, in this case /test. */
+ OscMessage myOscMessage = new OscMessage("/test");
+
+ /* add a value (an integer) to the OscMessage */
+ myOscMessage.add(100);
+
+ /* send the OscMessage to the remote location.
+ */
+ OscP5.flush(myOscMessage,myRemoteLocation);
+}
+</pre></dd></dl></div></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flush(oscP5.OscPacket, netP5.NetAddress)"><!-- --></A><H3>
+flush</H3>
+<PRE>
+public static void <B>flush</B>(<A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A>&nbsp;theOscPacket,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flush(java.lang.String, java.lang.Object[], netP5.NetAddress)"><!-- --></A><H3>
+flush</H3>
+<PRE>
+public static void <B>flush</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]&nbsp;theArguments,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flush(byte[], netP5.NetAddress)"><!-- --></A><H3>
+flush</H3>
+<PRE>
+public static void <B>flush</B>(byte[]&nbsp;theBytes,
+ <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flush(byte[], java.lang.String, int)"><!-- --></A><H3>
+flush</H3>
+<PRE>
+public static void <B>flush</B>(byte[]&nbsp;theBytes,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBytes</CODE> - byte[]<DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flush(oscP5.OscMessage, java.lang.String, int)"><!-- --></A><H3>
+flush</H3>
+<PRE>
+public static void <B>flush</B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theOscMessage</CODE> - OscMessage<DD><CODE>theAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newMsg(java.lang.String)"><!-- --></A><H3>
+newMsg</H3>
+<PRE>
+public <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A> <B>newMsg</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String
+<DT><B>Returns:</B><DD>OscMessage</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newBundle()"><!-- --></A><H3>
+newBundle</H3>
+<PRE>
+public <A HREF="../oscP5/OscBundle.html" title="class in oscP5">OscBundle</A> <B>newBundle</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theAddrPattern</CODE> - String
+<DT><B>Returns:</B><DD>OscMessage</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="disconnectFromTEMP()"><!-- --></A><H3>
+disconnectFromTEMP</H3>
+<PRE>
+public void <B>disconnectFromTEMP</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD>used by the monome library by jklabs
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscNetManager.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscPacket.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscP5.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscP5.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscPacket.html b/libraries/oscP5/reference/oscP5/OscPacket.html
new file mode 100644
index 0000000..18709af
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscPacket.html
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscPacket (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscPacket (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscP5.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscPatcher.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscPacket.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscPacket.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscPacket</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../oscP5/OscPatcher.html" title="class in oscP5">oscP5.OscPatcher</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscPacket</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../oscP5/OscBundle.html" title="class in oscP5">OscBundle</A>, <A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>OscPacket</B><DT>extends <A HREF="../oscP5/OscPatcher.html" title="class in oscP5">OscPatcher</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscPacket.html#OscPacket()">OscPacket</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPacket.html#address()">address</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPacket.html#getBytes()">getBytes</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPacket.html#netaddress()">netaddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I></I>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPacket.html#netAddress()">netAddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPacket.html#port()">port</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPacket.html#tcpConnection()">tcpConnection</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when in TCP mode, tcpConnection() returns the instance of the TcpClient that has sent the OscMessage.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscPacket()"><!-- --></A><H3>
+OscPacket</H3>
+<PRE>
+public <B>OscPacket</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="tcpConnection()"><!-- --></A><H3>
+tcpConnection</H3>
+<PRE>
+public <A HREF="../netP5/TcpClient.html" title="class in netP5">TcpClient</A> <B>tcpConnection</B>()</PRE>
+<DL>
+<DD>when in TCP mode, tcpConnection() returns the instance of the TcpClient that has sent the OscMessage.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>TcpClient</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="port()"><!-- --></A><H3>
+port</H3>
+<PRE>
+public int <B>port</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="netAddress()"><!-- --></A><H3>
+netAddress</H3>
+<PRE>
+public <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A> <B>netAddress</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="netaddress()"><!-- --></A><H3>
+netaddress</H3>
+<PRE>
+public <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A> <B>netaddress</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I></I>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="address()"><!-- --></A><H3>
+address</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>address</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBytes()"><!-- --></A><H3>
+getBytes</H3>
+<PRE>
+public abstract byte[] <B>getBytes</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte[]</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscP5.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscPatcher.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscPacket.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscPacket.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscPatcher.html b/libraries/oscP5/reference/oscP5/OscPatcher.html
new file mode 100644
index 0000000..46ef6d8
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscPatcher.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscPatcher (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscPatcher (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscPacket.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscPlug.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscPatcher.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscPatcher.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscPatcher</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscPatcher</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>OscPatcher</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscPacket.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscPlug.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscPatcher.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscPatcher.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscPlug.html b/libraries/oscP5/reference/oscP5/OscPlug.html
new file mode 100644
index 0000000..94827cb
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscPlug.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscPlug (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscPlug (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscPatcher.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscProperties.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscPlug.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscPlug.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscPlug</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscPlug</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>OscPlug</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPlug.html#method">method</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscPlug.html#OscPlug()">OscPlug</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPlug.html#checkMethod(oscP5.OscMessage, boolean)">checkMethod</A></B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage,
+ boolean&nbsp;isArray)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPlug.html#checkType(java.lang.String)">checkType</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPlug.html#getMethod()">getMethod</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPlug.html#getObject()">getObject</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPlug.html#plug(java.lang.Object, java.lang.String, java.lang.String)">plug</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscPlug.html#plug(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)">plug</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theTypetag)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="method"><!-- --></A><H3>
+method</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A> <B>method</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscPlug()"><!-- --></A><H3>
+OscPlug</H3>
+<PRE>
+public <B>OscPlug</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="plug(java.lang.Object, java.lang.String, java.lang.String)"><!-- --></A><H3>
+plug</H3>
+<PRE>
+public void <B>plug</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="plug(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
+plug</H3>
+<PRE>
+public void <B>plug</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;theObject,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theMethodName,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theAddrPattern,
+ <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theTypetag)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getObject()"><!-- --></A><H3>
+getObject</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getObject</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="checkMethod(oscP5.OscMessage, boolean)"><!-- --></A><H3>
+checkMethod</H3>
+<PRE>
+public boolean <B>checkMethod</B>(<A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A>&nbsp;theOscMessage,
+ boolean&nbsp;isArray)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMethod()"><!-- --></A><H3>
+getMethod</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A> <B>getMethod</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="checkType(java.lang.String)"><!-- --></A><H3>
+checkType</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>checkType</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theName)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscPatcher.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscProperties.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscPlug.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscPlug.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscProperties.html b/libraries/oscP5/reference/oscP5/OscProperties.html
new file mode 100644
index 0000000..21dc5d3
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscProperties.html
@@ -0,0 +1,799 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscProperties (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscProperties (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscPlug.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscStatus.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscProperties.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscProperties.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscProperties</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscProperties</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>OscProperties</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+osc properties are used to start oscP5 with more specific settings.
+ osc properties have to be passed to oscP5 in the constructor when
+ starting a new instance of oscP5.
+<P>
+
+<P>
+<DL>
+<script type="text/javascript">
+<!--
+document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
+-->
+</script>
+<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><pre>/**
+ * oscP5properities by andreas schlegel
+ * example shows how to use osc properties.
+ * if you need more specific settings for your osc session,
+ * osc properties serves your needs.
+ * oscP5 website at http://www.sojamo.de/oscP5
+ */
+import oscP5.*;
+import netP5.*;
+
+OscP5 oscP5;
+
+void setup() {
+ size(400,400);
+ frameRate(25);
+
+ /* create a new osc properties object */
+ OscProperties properties = new OscProperties();
+
+ /* set a default NetAddress. sending osc messages with no NetAddress parameter
+ * in oscP5.send() will be sent to the default NetAddress.
+ */
+ properties.setRemoteAddress("127.0.0.1",12000);
+
+ /* the port number you are listening for incoming osc packets. */
+ properties.setListeningPort(12000);
+
+
+ /* Send Receive Same Port is an option where the sending and receiving port are the same.
+ * this is sometimes necessary for example when sending osc packets to supercolider server.
+ * while both port numbers are the same, the receiver can simply send an osc packet back to
+ * the host and port the message came from.
+ */
+ properties.setSRSP(OscProperties.ON);
+
+ /* set the datagram byte buffer size. this can be useful when you send/receive
+ * huge amounts of data, but keep in mind, that UDP is limited to 64k
+ */
+ properties.setDatagramSize(1024);
+
+ /* initialize oscP5 with our osc properties */
+ oscP5 = new OscP5(this,properties);
+
+ /* print your osc properties */
+ println(properties.toString());
+}
+
+
+
+void mousePressed() {
+ /* create a new osc message with address pattern /test */
+ OscMessage myMessage = new OscMessage("/test");
+ myMessage.add(200);
+
+ /* send the osc message to the default netAddress, set in the OscProperties above.*/
+ oscP5.send(myMessage);
+}
+
+
+void draw() {
+ background(0);
+}
+
+
+
+/* incoming osc message are forwarded to the oscEvent method. */
+void oscEvent(OscMessage theOscMessage) {
+ /* print the address pattern and the typetag of the received OscMessage */
+ print("### received an osc message.");
+ print(" addrpattern: "+theOscMessage.addrPattern());
+ println(" typetag: "+theOscMessage.typetag());
+}
+</pre></dd></dl></div></DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#MULTICAST">MULTICAST</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#OFF">OFF</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#ON">ON</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#TCP">TCP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#UDP">UDP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#OscProperties()">OscProperties</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create a new OscProperties Object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#OscProperties(oscP5.OscEventListener)">OscProperties</A></B>(<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&nbsp;theParent)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#datagramSize()">datagramSize</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the current size of the datagram bytebuffer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#eventMethod()">eventMethod</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A>&lt;<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#listeners()">listeners</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#listeningPort()">listeningPort</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the port number currently used to receive osc packets.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#networkProtocol()">networkProtocol</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the network protocol being used to transmit osc packets.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#remoteAddress()">remoteAddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns a NetAddress of the remote host you are sending
+ osc packets to.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#sendStatus()">sendStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#setDatagramSize(int)">setDatagramSize</A></B>(int&nbsp;theSize)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the size of the datagrampacket byte buffer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#setEventMethod(java.lang.String)">setEventMethod</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theEventMethod)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the name of the default event method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#setListeningPort(int)">setListeningPort</A></B>(int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set port number you are listening for incoming osc packets.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#setNetworkProtocol(int)">setNetworkProtocol</A></B>(int&nbsp;theProtocol)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the network protocol over which osc messages are transmitted.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#setRemoteAddress(netP5.NetAddress)">setRemoteAddress</A></B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the remote host address.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#setRemoteAddress(java.lang.String, int)">setRemoteAddress</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHostAddress,
+ int&nbsp;thePort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the remote host address.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#setSRSP(boolean)">setSRSP</A></B>(boolean&nbsp;theFlag)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SRSP stand for Send and Receive on Same Port.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#srsp()">srsp</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;you can send and receive at the same port while on a udp con</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscProperties.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prints out the current osc properties settings.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ON"><!-- --></A><H3>
+ON</H3>
+<PRE>
+public static final boolean <B>ON</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscProperties.ON">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OFF"><!-- --></A><H3>
+OFF</H3>
+<PRE>
+public static final boolean <B>OFF</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscProperties.OFF">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="UDP"><!-- --></A><H3>
+UDP</H3>
+<PRE>
+public static final int <B>UDP</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscProperties.UDP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MULTICAST"><!-- --></A><H3>
+MULTICAST</H3>
+<PRE>
+public static final int <B>MULTICAST</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscProperties.MULTICAST">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TCP"><!-- --></A><H3>
+TCP</H3>
+<PRE>
+public static final int <B>TCP</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#oscP5.OscProperties.TCP">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscProperties(oscP5.OscEventListener)"><!-- --></A><H3>
+OscProperties</H3>
+<PRE>
+public <B>OscProperties</B>(<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&nbsp;theParent)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="OscProperties()"><!-- --></A><H3>
+OscProperties</H3>
+<PRE>
+public <B>OscProperties</B>()</PRE>
+<DL>
+<DD>create a new OscProperties Object.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="listeners()"><!-- --></A><H3>
+listeners</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Vector.html?is-external=true" title="class or interface in java.util">Vector</A>&lt;<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A>&gt; <B>listeners</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>OscEventListener</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendStatus()"><!-- --></A><H3>
+sendStatus</H3>
+<PRE>
+public boolean <B>sendStatus</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRemoteAddress(java.lang.String, int)"><!-- --></A><H3>
+setRemoteAddress</H3>
+<PRE>
+public void <B>setRemoteAddress</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theHostAddress,
+ int&nbsp;thePort)</PRE>
+<DL>
+<DD>set the remote host address. set ip address and port of the host
+ message should be sent to.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theHostAddress</CODE> - String<DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRemoteAddress(netP5.NetAddress)"><!-- --></A><H3>
+setRemoteAddress</H3>
+<PRE>
+public void <B>setRemoteAddress</B>(<A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A>&nbsp;theNetAddress)</PRE>
+<DL>
+<DD>set the remote host address. set ip address and port of the host
+ message should be sent to.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theNetAddress</CODE> - NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setListeningPort(int)"><!-- --></A><H3>
+setListeningPort</H3>
+<PRE>
+public void <B>setListeningPort</B>(int&nbsp;thePort)</PRE>
+<DL>
+<DD>set port number you are listening for incoming osc packets.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>thePort</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDatagramSize(int)"><!-- --></A><H3>
+setDatagramSize</H3>
+<PRE>
+public void <B>setDatagramSize</B>(int&nbsp;theSize)</PRE>
+<DL>
+<DD>set the size of the datagrampacket byte buffer.
+ the default size is 1536 bytes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theSize</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEventMethod(java.lang.String)"><!-- --></A><H3>
+setEventMethod</H3>
+<PRE>
+public void <B>setEventMethod</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;theEventMethod)</PRE>
+<DL>
+<DD>set the name of the default event method.
+ the event method is the method to which incoming osc messages
+ are forwarded. the default name for the event method is
+ "oscEvent"
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theEventMethod</CODE> - String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setNetworkProtocol(int)"><!-- --></A><H3>
+setNetworkProtocol</H3>
+<PRE>
+public void <B>setNetworkProtocol</B>(int&nbsp;theProtocol)</PRE>
+<DL>
+<DD>set the network protocol over which osc messages are transmitted.
+ options are OscProperties.UDP and OscProperties.MULTICAST
+ the network protocol can only be set before initializing
+ oscP5.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theProtocol</CODE> - int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSRSP(boolean)"><!-- --></A><H3>
+setSRSP</H3>
+<PRE>
+public void <B>setSRSP</B>(boolean&nbsp;theFlag)</PRE>
+<DL>
+<DD>SRSP stand for Send and Receive on Same Port.
+ by default osc packets are not received and sent by the same port.
+ if you need to send and receive on the same port call
+ setSRSP(OscProperties.ON)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theFlag</CODE> - boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="srsp()"><!-- --></A><H3>
+srsp</H3>
+<PRE>
+public boolean <B>srsp</B>()</PRE>
+<DL>
+<DD>you can send and receive at the same port while on a udp con
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>boolean</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="listeningPort()"><!-- --></A><H3>
+listeningPort</H3>
+<PRE>
+public int <B>listeningPort</B>()</PRE>
+<DL>
+<DD>returns the port number currently used to receive osc packets.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remoteAddress()"><!-- --></A><H3>
+remoteAddress</H3>
+<PRE>
+public <A HREF="../netP5/NetAddress.html" title="class in netP5">NetAddress</A> <B>remoteAddress</B>()</PRE>
+<DL>
+<DD>returns a NetAddress of the remote host you are sending
+ osc packets to. by default this is null.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>NetAddress</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="datagramSize()"><!-- --></A><H3>
+datagramSize</H3>
+<PRE>
+public int <B>datagramSize</B>()</PRE>
+<DL>
+<DD>returns the current size of the datagram bytebuffer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="eventMethod()"><!-- --></A><H3>
+eventMethod</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>eventMethod</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="networkProtocol()"><!-- --></A><H3>
+networkProtocol</H3>
+<PRE>
+public int <B>networkProtocol</B>()</PRE>
+<DL>
+<DD>returns the network protocol being used to transmit osc packets. returns an int.
+ 0 (UDP), 1 (MULTICAST), 2 (TCP)
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>int</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
+<DL>
+<DD>prints out the current osc properties settings.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>String</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscPlug.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../oscP5/OscStatus.html" title="class in oscP5"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscProperties.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscProperties.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/OscStatus.html b/libraries/oscP5/reference/oscP5/OscStatus.html
new file mode 100644
index 0000000..d0a95b6
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/OscStatus.html
@@ -0,0 +1,448 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+OscStatus (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="OscStatus (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscProperties.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscStatus.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscStatus.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+oscP5</FONT>
+<BR>
+Class OscStatus</H2>
+<PRE>
+<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>oscP5.OscStatus</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>OscStatus</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#CLIENT_CLOSED">CLIENT_CLOSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#CONNECTION_CLOSED">CONNECTION_CLOSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#CONNECTION_FAILED">CONNECTION_FAILED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#CONNECTION_REFUSED">CONNECTION_REFUSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#CONNECTION_TERMINATED">CONNECTION_TERMINATED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#DEFAULT">DEFAULT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#ERROR">ERROR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#OSCP5_CLOSED">OSCP5_CLOSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#SEND_FAILED">SEND_FAILED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#SERVER_CLOSED">SERVER_CLOSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#OscStatus(int)">OscStatus</A></B>(int&nbsp;theIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../oscP5/OscStatus.html#id()">id</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ERROR"><!-- --></A><H3>
+ERROR</H3>
+<PRE>
+public static int <B>ERROR</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="DEFAULT"><!-- --></A><H3>
+DEFAULT</H3>
+<PRE>
+public static int <B>DEFAULT</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CONNECTION_CLOSED"><!-- --></A><H3>
+CONNECTION_CLOSED</H3>
+<PRE>
+public static int <B>CONNECTION_CLOSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CONNECTION_REFUSED"><!-- --></A><H3>
+CONNECTION_REFUSED</H3>
+<PRE>
+public static int <B>CONNECTION_REFUSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CONNECTION_TERMINATED"><!-- --></A><H3>
+CONNECTION_TERMINATED</H3>
+<PRE>
+public static int <B>CONNECTION_TERMINATED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CONNECTION_FAILED"><!-- --></A><H3>
+CONNECTION_FAILED</H3>
+<PRE>
+public static int <B>CONNECTION_FAILED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="SERVER_CLOSED"><!-- --></A><H3>
+SERVER_CLOSED</H3>
+<PRE>
+public static int <B>SERVER_CLOSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="CLIENT_CLOSED"><!-- --></A><H3>
+CLIENT_CLOSED</H3>
+<PRE>
+public static int <B>CLIENT_CLOSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="SEND_FAILED"><!-- --></A><H3>
+SEND_FAILED</H3>
+<PRE>
+public static int <B>SEND_FAILED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="OSCP5_CLOSED"><!-- --></A><H3>
+OSCP5_CLOSED</H3>
+<PRE>
+public static int <B>OSCP5_CLOSED</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OscStatus(int)"><!-- --></A><H3>
+OscStatus</H3>
+<PRE>
+public <B>OscStatus</B>(int&nbsp;theIndex)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="id()"><!-- --></A><H3>
+id</H3>
+<PRE>
+public int <B>id</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../oscP5/OscProperties.html" title="class in oscP5"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/OscStatus.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="OscStatus.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/package-frame.html b/libraries/oscP5/reference/oscP5/package-frame.html
new file mode 100644
index 0000000..60d3716
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/package-frame.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+oscP5 (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../oscP5/package-summary.html" target="classFrame">oscP5</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="OscEventListener.html" title="interface in oscP5" target="classFrame"><I>OscEventListener</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="OscArgument.html" title="class in oscP5" target="classFrame">OscArgument</A>
+<BR>
+<A HREF="OscBundle.html" title="class in oscP5" target="classFrame">OscBundle</A>
+<BR>
+<A HREF="OscIn.html" title="class in oscP5" target="classFrame">OscIn</A>
+<BR>
+<A HREF="OscMessage.html" title="class in oscP5" target="classFrame">OscMessage</A>
+<BR>
+<A HREF="OscNetManager.html" title="class in oscP5" target="classFrame">OscNetManager</A>
+<BR>
+<A HREF="OscP5.html" title="class in oscP5" target="classFrame">OscP5</A>
+<BR>
+<A HREF="OscPacket.html" title="class in oscP5" target="classFrame">OscPacket</A>
+<BR>
+<A HREF="OscPatcher.html" title="class in oscP5" target="classFrame">OscPatcher</A>
+<BR>
+<A HREF="OscPlug.html" title="class in oscP5" target="classFrame">OscPlug</A>
+<BR>
+<A HREF="OscProperties.html" title="class in oscP5" target="classFrame">OscProperties</A>
+<BR>
+<A HREF="OscStatus.html" title="class in oscP5" target="classFrame">OscStatus</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/package-summary.html b/libraries/oscP5/reference/oscP5/package-summary.html
new file mode 100644
index 0000000..38df1fd
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/package-summary.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+oscP5 (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="oscP5 (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package oscP5
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscEventListener.html" title="interface in oscP5">OscEventListener</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscArgument.html" title="class in oscP5">OscArgument</A></B></TD>
+<TD>an osc argument contains one value of values from a received osc message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscBundle.html" title="class in oscP5">OscBundle</A></B></TD>
+<TD>Osc Bundles are collections of Osc Messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscIn.html" title="class in oscP5">OscIn</A></B></TD>
+<TD><B>Deprecated.</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscMessage.html" title="class in oscP5">OscMessage</A></B></TD>
+<TD>An OSC message consists of an OSC Address Pattern, an OSC Type Tag String
+ and the OSC arguments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscNetManager.html" title="class in oscP5">OscNetManager</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscP5.html" title="class in oscP5">OscP5</A></B></TD>
+<TD>TODO add better error message handling for oscEvents, see this post
+ http://forum.processing.org/topic/oscp5-major-problems-with-error-handling# 25080000000811163</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscPacket.html" title="class in oscP5">OscPacket</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscPatcher.html" title="class in oscP5">OscPatcher</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscPlug.html" title="class in oscP5">OscPlug</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscProperties.html" title="class in oscP5">OscProperties</A></B></TD>
+<TD>osc properties are used to start oscP5 with more specific settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../oscP5/OscStatus.html" title="class in oscP5">OscStatus</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/oscP5/package-tree.html b/libraries/oscP5/reference/oscP5/package-tree.html
new file mode 100644
index 0000000..dce25b1
--- /dev/null
+++ b/libraries/oscP5/reference/oscP5/package-tree.html
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+oscP5 Class Hierarchy (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="oscP5 Class Hierarchy (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package oscP5
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">oscP5.<A HREF="../oscP5/OscArgument.html" title="class in oscP5"><B>OscArgument</B></A><LI TYPE="circle">oscP5.<A HREF="../oscP5/OscNetManager.html" title="class in oscP5"><B>OscNetManager</B></A> (implements netP5.<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>, netP5.<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>)
+<LI TYPE="circle">oscP5.<A HREF="../oscP5/OscP5.html" title="class in oscP5"><B>OscP5</B></A> (implements netP5.<A HREF="../netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>, netP5.<A HREF="../netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>)
+<LI TYPE="circle">oscP5.<A HREF="../oscP5/OscPatcher.html" title="class in oscP5"><B>OscPatcher</B></A><UL>
+<LI TYPE="circle">oscP5.<A HREF="../oscP5/OscPacket.html" title="class in oscP5"><B>OscPacket</B></A><UL>
+<LI TYPE="circle">oscP5.<A HREF="../oscP5/OscBundle.html" title="class in oscP5"><B>OscBundle</B></A><LI TYPE="circle">oscP5.<A HREF="../oscP5/OscMessage.html" title="class in oscP5"><B>OscMessage</B></A><UL>
+<LI TYPE="circle">oscP5.<A HREF="../oscP5/OscIn.html" title="class in oscP5"><B>OscIn</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">oscP5.<A HREF="../oscP5/OscPlug.html" title="class in oscP5"><B>OscPlug</B></A><LI TYPE="circle">oscP5.<A HREF="../oscP5/OscProperties.html" title="class in oscP5"><B>OscProperties</B></A><LI TYPE="circle">oscP5.<A HREF="../oscP5/OscStatus.html" title="class in oscP5"><B>OscStatus</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">oscP5.<A HREF="../oscP5/OscEventListener.html" title="interface in oscP5"><B>OscEventListener</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../netP5/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../index.html?oscP5/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/overview-frame.html b/libraries/oscP5/reference/overview-frame.html
new file mode 100644
index 0000000..73a8387
--- /dev/null
+++ b/libraries/oscP5/reference/overview-frame.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Overview List (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
+<B></B></FONT></TH>
+</TR>
+</TABLE>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
+<P>
+<FONT size="+1" CLASS="FrameHeadingFont">
+Packages</FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="netP5/package-frame.html" target="packageFrame">netP5</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="oscP5/package-frame.html" target="packageFrame">oscP5</A></FONT>
+<BR>
+</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/overview-summary.html b/libraries/oscP5/reference/overview-summary.html
new file mode 100644
index 0000000..750deeb
--- /dev/null
+++ b/libraries/oscP5/reference/overview-summary.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Overview (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Overview (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Javadocs: oscP5
+</H1>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Packages</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="netP5/package-summary.html">netP5</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="oscP5/package-summary.html">oscP5</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/overview-tree.html b/libraries/oscP5/reference/overview-tree.html
new file mode 100644
index 0000000..629494a
--- /dev/null
+++ b/libraries/oscP5/reference/overview-tree.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_33) on Sun Dec 23 14:34:38 SGT 2012 -->
+<TITLE>
+Class Hierarchy (Javadocs: oscP5)
+</TITLE>
+
+<META NAME="date" CONTENT="2012-12-23">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Class Hierarchy (Javadocs: oscP5)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="netP5/package-tree.html">netP5</A>, <A HREF="oscP5/package-tree.html">oscP5</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/AbstractMulticast.html" title="class in netP5"><B>AbstractMulticast</B></A> (implements java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
+<UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/Multicast.html" title="class in netP5"><B>Multicast</B></A> (implements netP5.<A HREF="netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>)
+</UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/AbstractTcpClient.html" title="class in netP5"><B>AbstractTcpClient</B></A> (implements java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
+<UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/TcpClient.html" title="class in netP5"><B>TcpClient</B></A></UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/AbstractTcpServer.html" title="class in netP5"><B>AbstractTcpServer</B></A> (implements java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>, netP5.<A HREF="netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>)
+<UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/TcpServer.html" title="class in netP5"><B>TcpServer</B></A></UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/AbstractUdpClient.html" title="class in netP5"><B>AbstractUdpClient</B></A><UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/UdpClient.html" title="class in netP5"><B>UdpClient</B></A></UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/AbstractUdpServer.html" title="class in netP5"><B>AbstractUdpServer</B></A> (implements java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
+<UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/UdpServer.html" title="class in netP5"><B>UdpServer</B></A> (implements netP5.<A HREF="netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>)
+</UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/Bytes.html" title="class in netP5"><B>Bytes</B></A><LI TYPE="circle">netP5.<A HREF="netP5/Logger.html" title="class in netP5"><B>Logger</B></A><LI TYPE="circle">netP5.<A HREF="netP5/NetAddress.html" title="class in netP5"><B>NetAddress</B></A><LI TYPE="circle">netP5.<A HREF="netP5/NetAddressList.html" title="class in netP5"><B>NetAddressList</B></A><LI TYPE="circle">netP5.<A HREF="netP5/NetInfo.html" title="class in netP5"><B>NetInfo</B></A><LI TYPE="circle">netP5.<A HREF="netP5/NetMessage.html" title="class in netP5"><B>NetMessage</B></A><LI TYPE="circle">netP5.<A HREF="netP5/NetStatus.html" title="class in netP5"><B>NetStatus</B></A><LI TYPE="circle">oscP5.<A HREF="oscP5/OscArgument.html" title="class in oscP5"><B>OscArgument</B></A><LI TYPE="circle">oscP5.<A HREF="oscP5/OscNetManager.html" title="class in oscP5"><B>OscNetManager</B></A> (implements netP5.<A HREF="netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>, netP5.<A HREF="netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>)
+<LI TYPE="circle">oscP5.<A HREF="oscP5/OscP5.html" title="class in oscP5"><B>OscP5</B></A> (implements netP5.<A HREF="netP5/TcpPacketListener.html" title="interface in netP5">TcpPacketListener</A>, netP5.<A HREF="netP5/UdpPacketListener.html" title="interface in netP5">UdpPacketListener</A>)
+<LI TYPE="circle">oscP5.<A HREF="oscP5/OscPatcher.html" title="class in oscP5"><B>OscPatcher</B></A><UL>
+<LI TYPE="circle">oscP5.<A HREF="oscP5/OscPacket.html" title="class in oscP5"><B>OscPacket</B></A><UL>
+<LI TYPE="circle">oscP5.<A HREF="oscP5/OscBundle.html" title="class in oscP5"><B>OscBundle</B></A><LI TYPE="circle">oscP5.<A HREF="oscP5/OscMessage.html" title="class in oscP5"><B>OscMessage</B></A><UL>
+<LI TYPE="circle">oscP5.<A HREF="oscP5/OscIn.html" title="class in oscP5"><B>OscIn</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">oscP5.<A HREF="oscP5/OscPlug.html" title="class in oscP5"><B>OscPlug</B></A><LI TYPE="circle">oscP5.<A HREF="oscP5/OscProperties.html" title="class in oscP5"><B>OscProperties</B></A><LI TYPE="circle">oscP5.<A HREF="oscP5/OscStatus.html" title="class in oscP5"><B>OscStatus</B></A><LI TYPE="circle">netP5.<A HREF="netP5/StringUtils.html" title="class in netP5"><B>StringUtils</B></A><LI TYPE="circle">netP5.<A HREF="netP5/TcpPacket.html" title="class in netP5"><B>TcpPacket</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">netP5.<A HREF="netP5/NetListener.html" title="interface in netP5"><B>NetListener</B></A><LI TYPE="circle">netP5.<A HREF="netP5/NetP5.html" title="interface in netP5"><B>NetP5</B></A><LI TYPE="circle">oscP5.<A HREF="oscP5/OscEventListener.html" title="interface in oscP5"><B>OscEventListener</B></A><LI TYPE="circle">netP5.<A HREF="netP5/TcpPacketListener.html" title="interface in netP5"><B>TcpPacketListener</B></A><LI TYPE="circle">netP5.<A HREF="netP5/UdpPacketListener.html" title="interface in netP5"><B>UdpPacketListener</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+processing library oscP5 by Andreas Schlegel. (c) 2004-2012
+</BODY>
+</HTML>
diff --git a/libraries/oscP5/reference/package-list b/libraries/oscP5/reference/package-list
new file mode 100644
index 0000000..145784b
--- /dev/null
+++ b/libraries/oscP5/reference/package-list
@@ -0,0 +1,2 @@
+netP5
+oscP5
diff --git a/libraries/oscP5/reference/resources/inherit.gif b/libraries/oscP5/reference/resources/inherit.gif
new file mode 100644
index 0000000..c814867
--- /dev/null
+++ b/libraries/oscP5/reference/resources/inherit.gif
Binary files differ
diff --git a/libraries/oscP5/reference/stylesheet.css b/libraries/oscP5/reference/stylesheet.css
new file mode 100644
index 0000000..54998c2
--- /dev/null
+++ b/libraries/oscP5/reference/stylesheet.css
@@ -0,0 +1,310 @@
+/* Javadoc style sheet */
+/* Define colors, fonts and other style attributes here to override the defaults */
+/* processingLibs style by andreas schlegel, sojamo */
+
+
+body {
+ margin : 0;
+ padding : 0;
+ padding-left : 10px;
+ padding-right : 8px;
+ background-color : #FFFFFF;
+ font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
+ font-size : 100%;
+ font-size : 0.7em;
+ font-weight : normal;
+ line-height : normal;
+ margin-bottom:30px;
+}
+
+
+
+
+/* Headings */
+h1, h2, h3, h4, h5, th {
+ font-family :Arial, Helvetica, sans-serif;
+ font-size:1.2em;
+}
+
+
+p {
+ font-size : 1em;
+ width:80%;
+}
+
+pre, code {
+ font-family : "Courier New", Courier, monospace;
+ font-size : 12px;
+ line-height : normal;
+}
+
+
+
+table {
+ border:0;
+ margin-bottom:10px;
+ margin-top:10px;
+}
+
+
+tr, td {
+ border-top: 0px solid;
+ border-left: 0px solid;
+ padding-top:8px;
+ padding-bottom:8px;
+}
+
+
+
+hr {
+ border:0;
+ height:1px;
+ padding:0;
+ margin:0;
+ margin-bottom:4px;
+
+}
+
+
+
+dd, th, td, font {
+ font-size:1.0em;
+ line-height:1.0em;
+}
+
+
+
+dt {
+ margin-bottom:0px;
+}
+
+
+
+dd {
+ margin-top:2px;
+ margin-bottom:4px;
+}
+
+
+
+a {
+ text-decoration: underline;
+ font-weight: normal;
+}
+
+a:hover,
+a:active {
+ text-decoration: underline;
+ font-weight: normal;
+}
+
+a:visited,
+a:link:visited {
+ text-decoration: underline;
+ font-weight: normal;
+}
+
+
+img {
+ border: 0px solid #000000;
+}
+
+
+
+/* Navigation bar fonts */
+.NavBarCell1 {
+ border:0;
+}
+
+.NavBarCell1Rev {
+ border:0;
+}
+
+.NavBarFont1 {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size:1.1em;
+}
+
+
+.NavBarFont1 b {
+ font-weight:normal;
+}
+
+
+
+.NavBarFont1:after, .NavBarFont1Rev:after {
+ font-weight:normal;
+ content: " \\";
+}
+
+
+.NavBarFont1Rev {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size:1.1em;
+}
+
+.NavBarFont1Rev b {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size:1.1em;
+ font-weight:normal;
+}
+
+.NavBarCell2 {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+.NavBarCell3 {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+
+
+font.FrameItemFont {
+ font-family: Helvetica, Arial, sans-serif;
+ font-size:1.1em;
+ line-height:1.1em;
+}
+
+font.FrameHeadingFont {
+ font-family: Helvetica, Arial, sans-serif;
+ line-height:32px;
+}
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont {
+ font-family: Helvetica, Arial, sans-serif
+}
+
+
+.toggleList {
+ padding:0;
+ margin:0;
+ margin-top:12px;
+}
+
+.toggleList dt {
+ font-weight:bold;
+ font-size:12px;
+ font-family:arial,sans-serif;
+ padding:0px;
+ margin:10px 0px 10px 0px;
+}
+
+.toggleList dt span {
+ font-family: monospace;
+ padding:0;
+ margin:0;
+}
+
+
+.toggleList dd {
+ margin:0;
+ padding:0;
+}
+
+html.isjs .toggleList dd {
+ display: none;
+}
+
+.toggleList pre {
+ padding: 4px 4px 4px 4px;
+}
+
+
+
+
+
+/* COLORS */
+
+pre, code {
+ color: #000000;
+}
+
+
+body {
+ color : #333333;
+ background-color :#FFFFFF;
+}
+
+
+h1, h2, h3, h4, h5, h6 {
+ color:#555;
+}
+
+a,
+.toggleList dt {
+ color: #1a7eb0;
+}
+
+a:hover,
+a:active {
+ color: #1a7eb0;
+}
+
+a:visited,
+a:link:visited {
+ color: #1a7eb0;
+}
+
+td,tr {
+ border-color: #999999;
+}
+
+hr {
+ color:#999999;
+ background:#999999;
+}
+
+
+.TableHeadingColor {
+ background: #dcdcdc;
+ color: #555;
+}
+
+
+.TableSubHeadingColor {
+ background: #EEEEFF
+}
+
+.TableRowColor {
+ background: #FFFFFF
+}
+
+
+.NavBarCell1 {
+ background-color:#dcdcdc;
+ color:#000;
+}
+
+.NavBarCell1 a {
+ color:#333;
+}
+
+
+.NavBarCell1Rev {
+ background-color:transparent;
+}
+
+.NavBarFont1 {
+ color:#333;
+}
+
+
+.NavBarFont1Rev {
+ color:#fff;
+}
+
+.NavBarCell2 {
+ background-color:#999;
+}
+
+.NavBarCell2 a {
+ color:#fff;
+}
+
+
+
+.NavBarCell3 {
+ background-color:#dcdcdc;
+}
+
diff --git a/libraries/oscP5/src/netP5/AbstractMulticast.java b/libraries/oscP5/src/netP5/AbstractMulticast.java
new file mode 100644
index 0000000..6a85451
--- /dev/null
+++ b/libraries/oscP5/src/netP5/AbstractMulticast.java
@@ -0,0 +1,337 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.io.IOException;
+
+import java.net.MulticastSocket;
+import java.net.SocketException;
+import java.net.DatagramPacket;
+import java.util.Vector;
+
+/**
+ * @invisible
+ */
+public abstract class AbstractMulticast implements Runnable {
+
+ protected NetAddress _myNetAddress;
+
+ protected boolean isRunning;
+
+ protected boolean isSocket;
+
+ protected MulticastSocket _myMulticastSocket;
+
+ protected UdpPacketListener _myListener;
+
+ protected int _myDatagramSize = 1536;
+
+ private Thread _myThread;
+
+
+ /**
+ * @invisible
+ * @param theDatagramListener UdpPacketListener
+ * @param theMulticastAddress String
+ * @param thePort int
+ * @param theBufferSize int
+ */
+ public AbstractMulticast(
+ final UdpPacketListener theDatagramListener,
+ final String theMulticastAddress,
+ final int thePort,
+ final int theBufferSize) {
+ _myDatagramSize = theBufferSize;
+ _myListener = theDatagramListener;
+ if (_myListener != null) {
+ init(theMulticastAddress, thePort);
+ }
+ }
+
+ /**
+ * @invisible
+ * @param theDatagramListener UdpPacketListener
+ * @param theMulticastAddress String
+ * @param thePort int
+ */
+ public AbstractMulticast(
+ final UdpPacketListener theDatagramListener,
+ final String theMulticastAddress,
+ final int thePort) {
+ _myListener = theDatagramListener;
+ if (_myListener != null) {
+ init(theMulticastAddress, thePort);
+ }
+ }
+
+ protected void init(final String theMulticastAddress, final int thePort) {
+ _myNetAddress = new NetAddress(theMulticastAddress, thePort);
+ if (!_myNetAddress.isvalid()) {
+ Logger.printError("UdpClient", "unknown host "
+ + theMulticastAddress);
+ }
+ isRunning = openSocket();
+ start();
+ }
+
+
+ /**
+ * get the running multicast socket.
+ * @return MulticastSocket
+ */
+ public MulticastSocket socket() {
+ return _myMulticastSocket;
+ }
+
+ /**
+ * set the buffer size of the datagrams received by the multicast socket.
+ * @param theDatagramSize int
+ */
+ public void setDatagramSize(int theDatagramSize) {
+ _myDatagramSize = theDatagramSize;
+ }
+
+ /**
+ * @invisible
+ */
+ public void start() {
+ _myThread = null;
+ _myMulticastSocket = null;
+ _myThread = new Thread(this);
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException iex) {
+ Logger.printError("Multicast.start()",
+ "Multicast sleep interuption " + iex);
+ }
+ try {
+ _myMulticastSocket = new MulticastSocket(_myNetAddress.port());
+ _myMulticastSocket.joinGroup(_myNetAddress.inetaddress());
+ Logger.printProcess("Multicast.start()",
+ "new Multicast DatagramSocket created @ port "
+ + _myNetAddress.port());
+ } catch (IOException ioex) {
+ Logger.printError("Multicast.start()",
+ " IOException, couldnt create new DatagramSocket @ port "
+ + _myNetAddress.port() + " " + ioex);
+ }
+ if (_myMulticastSocket != null) {
+ _myThread.start();
+ isRunning = _myThread.isAlive();
+ isSocket = true;
+ } else {
+ isRunning = false;
+ }
+ }
+
+ /**
+ * @invisible
+ */
+ public void run() {
+ if (_myMulticastSocket != null) {
+ if (isRunning) {
+ Logger.printProcess("Multicast.run()",
+ "Multicast is running @ "
+ + _myNetAddress.inetaddress().getHostAddress()
+ + ":" + _myNetAddress.port());
+ }
+ } else {
+ Logger.printError("UdpServer.run()",
+ "Socket is null. closing UdpServer.");
+ return;
+ }
+
+ while (isRunning) {
+ try {
+ byte[] myBuffer = new byte[_myDatagramSize];
+ DatagramPacket myPacket = new DatagramPacket(myBuffer,
+ _myDatagramSize);
+ _myMulticastSocket.receive(myPacket);
+ Logger.printDebug("Multicast.run()","got it.");
+ _myListener.process(myPacket, _myNetAddress.port());
+ } catch (IOException ioex) {
+ Logger.printError("UdpServer.run()", "IOException: " + ioex);
+ break;
+ } catch (ArrayIndexOutOfBoundsException ex) {
+ Logger.printError("UdpServer.run()",
+ "ArrayIndexOutOfBoundsException: " + ex);
+ }
+ }
+ dispose();
+ }
+
+ /**
+ * dispose the multicastSocket.
+ */
+ public void dispose() {
+ close();
+ }
+
+ /**
+ * @invisible
+ */
+ public void close() {
+ isRunning = false;
+ if (_myMulticastSocket != null) {
+ try {
+ _myMulticastSocket.leaveGroup(_myNetAddress.inetaddress());
+ _myMulticastSocket.disconnect();
+ _myMulticastSocket.close();
+ _myMulticastSocket = null;
+ Logger.printProcess("Multicast.close",
+ "Closing multicast datagram socket.");
+ } catch (IOException e) {
+
+ }
+ }
+ }
+
+ private boolean openSocket() {
+ try {
+ _myMulticastSocket = new MulticastSocket();
+ } catch (SocketException e) {
+ Logger.printError("Multicast.openSocket", "cant create socket "
+ + e.getMessage());
+ return false;
+ } catch (IOException e) {
+ Logger.printError("Multicast.openSocket",
+ "cant create multicastSocket " + e.getMessage());
+ return false;
+ }
+ Logger.printProcess("Multicast.openSocket",
+ "multicast socket initialized.");
+ return true;
+ }
+
+ /**
+ * Set the default time-to-live for multicast packets
+ * sent out on this MulticastSocket in order to control the scope
+ * of the multicasts. theTTL must be in the range 0 <= ttl <= 255
+ * @param theTTL int
+ * @return boolean
+ * @shortdesc Set the default time-to-live for multicast packets.
+ */
+ public boolean setTimeToLive(int theTTL) {
+ try {
+ _myMulticastSocket.setTimeToLive(theTTL);
+ return true;
+ } catch (IOException ioe) {
+ Logger.printError("UdpServer.setTimeToLive()", "" + ioe);
+ } catch (IllegalArgumentException iae) {
+ Logger.printError("UdpServer.setTimeToLive()", "" + iae);
+ }
+ return false;
+ }
+
+ /**
+ * get the current time to live value.
+ *
+ * @return int
+ */
+ public int timeToLive() {
+ try {
+ return _myMulticastSocket.getTimeToLive();
+ } catch (IOException ioe) {
+ Logger.printError("Multicast.getTimeToLive()", "" + ioe);
+ }
+ return -1;
+ }
+
+ /**
+ * Disable/Enable local loopback of multicast datagrams.
+ * The option is used by the platform's networking code as a
+ * hint for setting whether multicast data will be
+ * looped back to the local socket.
+ * @shortdesc Disable/Enable local loopback of multicast datagrams.
+ * @param theFlag boolean
+ */
+ public void setLoopback(boolean theFlag) {
+ try {
+ _myMulticastSocket.setLoopbackMode(theFlag);
+ } catch (SocketException se) {
+ Logger.printError("Multicast.setLoopback()", "" + se);
+ }
+ }
+
+ /**
+ * get the current loopback mode. messages loop back to the local address
+ * if the loopback is set to false. set loopback to false to prevent messages
+ * to loop back to your local address.
+ *
+ * @return boolean
+ * @shortdesc get the current loopback mode.
+ */
+ public boolean loopback() {
+ try {
+ return _myMulticastSocket.getLoopbackMode();
+ } catch (SocketException se) {
+ Logger.printError("Multicast.loopback()", "" + se);
+ }
+ return false;
+ }
+
+ protected void send(DatagramPacket thePacket) {
+ if (isRunning) {
+ try {
+ _myMulticastSocket.send(thePacket);
+
+ } catch (IOException e) {
+ Logger.printError("Multicast.send",
+ "ioexception while sending packet.");
+ }
+ }
+ }
+
+ /**
+ * send a string to the multicast address.
+ * @param theString String
+ */
+ public void send(String theString) {
+ send(theString.getBytes());
+ }
+
+ /**
+ * send a byte array to the mulitcast address.
+ * @param theBytes byte[]
+ */
+ public void send(byte[] theBytes) {
+ if (isRunning) {
+ try {
+ DatagramPacket myPacket = new DatagramPacket(theBytes,
+ theBytes.length, _myNetAddress.inetaddress(),
+ _myNetAddress.port());
+ send(myPacket);
+ } catch (NullPointerException npe) {
+ Logger.printError("Multicast.send",
+ "a nullpointer exception occured." + npe);
+ }
+ } else {
+ Logger.printWarning("Multicast.send",
+ "DatagramSocket is not running. Packet has not been sent.");
+ }
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/AbstractTcpClient.java b/libraries/oscP5/src/netP5/AbstractTcpClient.java
new file mode 100644
index 0000000..7f6cac4
--- /dev/null
+++ b/libraries/oscP5/src/netP5/AbstractTcpClient.java
@@ -0,0 +1,491 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.Socket;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+
+/**
+ * @invisible
+ */
+public abstract class AbstractTcpClient implements Runnable {
+
+ private Socket _mySocket;
+
+ protected TcpPacketListener _myTcpPacketListener;
+
+ private PrintWriter _myOutput = null;
+
+ private BufferedReader _myInput = null;
+
+ private OutputStream _myOutputStream = null;
+
+ protected byte[] _myBytes = new byte[0];
+
+ protected StringBuffer _myStringBuffer = new StringBuffer(0);
+
+ protected AbstractTcpServer _myTcpServer;
+
+ protected NetAddress _myNetAddress;
+
+ protected int _myServerPort;
+
+ private Thread _myThread;
+
+ private char TERMINATOR = '\0';
+
+ /**
+ * terminator is readline.
+ */
+ public static final int MODE_READLINE = 0;
+
+ /**
+ * terminator is terminated, by default this is character '\0'
+ * and can be set with setTerminator
+ */
+ public static final int MODE_TERMINATED = 1;
+
+ /**
+ * terminator is newline.
+ */
+ public static final int MODE_NEWLINE = 2;
+
+ /**
+ * no terminator required, packets are sent via
+ * a tcp stream.
+ */
+ public static final int MODE_STREAM = 3;
+
+ private final int _myMode;
+
+ /**
+ * @invisible
+ * @param theTcpPacketListener TcpPacketListener
+ * @param theHost String
+ * @param thePort int
+ */
+ public AbstractTcpClient(final TcpPacketListener theTcpPacketListener,
+ final String theHost,
+ final int thePort) {
+ this(theTcpPacketListener, theHost, thePort, MODE_READLINE);
+ }
+
+ /**
+ * @invisible
+ * @param theHost String
+ * @param thePort int
+ */
+ public AbstractTcpClient(final String theHost,
+ final int thePort) {
+ this(null, theHost, thePort, MODE_READLINE);
+ }
+
+ /**
+ * @invisible
+ * @param theTcpPacketListener TcpPacketListener
+ * @param theHost String
+ * @param thePort int
+ * @param theMode int
+ */
+ public AbstractTcpClient(final TcpPacketListener theTcpPacketListener,
+ final String theHost,
+ final int thePort,
+ final int theMode) {
+ _myTcpPacketListener = theTcpPacketListener;
+ _myNetAddress = new NetAddress(theHost, thePort);
+ _myMode = theMode;
+ startSocket();
+ }
+
+ /**
+ * @invisible
+ * @param theHost String
+ * @param thePort int
+ * @param theMode int
+ */
+ public AbstractTcpClient(final String theHost,
+ final int thePort,
+ final int theMode) {
+ this(null, theHost, thePort, theMode);
+ }
+
+
+ /**
+ * @invisible
+ * @param theTcpServer AbstractTcpServer
+ * @param theSocket Socket
+ * @param theTcpPacketListener TcpPacketListener
+ * @param theServerPort int
+ * @param theMode int
+ */
+ public AbstractTcpClient(final AbstractTcpServer theTcpServer,
+ final Socket theSocket,
+ final TcpPacketListener theTcpPacketListener,
+ final int theServerPort,
+ final int theMode) {
+ _myTcpServer = theTcpServer;
+ _mySocket = theSocket;
+ _myTcpPacketListener = theTcpPacketListener;
+ _myServerPort = theServerPort;
+ _myMode = theMode;
+ startSocket();
+ }
+
+
+ private void startSocket() {
+ try {
+ if (_mySocket == null) {
+ _mySocket = new Socket(_myNetAddress.address(), _myNetAddress.port());
+ } else {
+ _myNetAddress = new NetAddress(_mySocket.getInetAddress().getHostAddress(),
+ _mySocket.getPort());
+ }
+ Logger.printProcess("TcpClient", "### starting new TcpClient " + _myNetAddress);
+ if (_myMode == MODE_STREAM) {
+ _myOutputStream = _mySocket.getOutputStream();
+ }
+ init();
+ } catch (final IOException e) {
+ Logger.printError("TcpClient",
+ "IOException while trying to create a new socket.");
+// handleStatus(NetStatus.CONNECTION_FAILED); // FIX! NetPlug is still null at this point. NetPlug has to exist first.
+ }
+ }
+
+
+ /**
+ * when a TCP connection is lost, reconnect to the server with reconnect().
+ */
+ public void reconnect() {
+ try {
+ Thread.sleep(1000);
+ } catch(final Exception e) { }
+ startSocket();
+ }
+
+
+ private void init() {
+ _myThread = new Thread(this);
+ _myThread.start();
+ }
+
+ /**
+ * to parse an incomming tcp message, a terminator character is required to
+ * determine the end of the message so that it can be parsed and forwarded.
+ *
+ * @param theTerminator
+ */
+ public void setTerminator(final char theTerminator) {
+ TERMINATOR = theTerminator;
+ }
+
+ /**
+ * stop and dispose a tcp client.
+ */
+ public void dispose() {
+ try {
+ // do io streams need to be closed first?
+ if (_myInput != null) {
+ _myInput.close();
+ }
+ if (_myOutput != null) {
+ _myOutput.close();
+ }
+
+ } catch (final Exception e) {
+ e.printStackTrace();
+ }
+ _myInput = null;
+ _myOutput = null;
+
+ try {
+ if (_mySocket != null) {
+ _mySocket.close();
+ }
+
+ } catch (final Exception e) {
+ e.printStackTrace();
+ }
+ if(_myThread==null) {
+ return;
+ }
+ _mySocket = null;
+ _myThread = null;
+ handleStatus(NetStatus.CONNECTION_CLOSED);
+ Logger.printProcess("TcpClient.dispose", "TcpClient closed.");
+ }
+
+ /**
+ * @invisible
+ */
+ public void run() {
+ if (_myMode == MODE_STREAM) {
+ try {
+ try {
+ // sleep a little bit to avoid threading and nullpointer
+ // issues when reconnecting.
+ _myThread.sleep(500);
+ } catch (final Exception e) {
+
+ }
+
+ final InputStream in = _mySocket.getInputStream();
+ while (!_mySocket.isClosed() && _mySocket != null) {
+ final int myLen = Bytes.toIntBigEndian(in);
+ if (myLen < 0) {
+ break;
+ }
+ _myBytes = Bytes.toByteArray(in, myLen);
+ handleInput();
+ }
+ } catch (final java.net.SocketException se) {
+ System.out.println("Connection reset.");
+ } catch (final Exception e) {
+ System.out.println("### EXCEPTION " + e);
+ }
+ try {
+ handleStatus(NetStatus.SERVER_CLOSED);
+ handleStatus(NetStatus.CONNECTION_TERMINATED);
+ dispose();
+ } catch (final NullPointerException e) {
+ System.out.println("### nullpointer while calling handleStatus.");
+ }
+ } else {
+ while (Thread.currentThread() == _myThread) {
+ switch (_myMode) {
+ case (MODE_TERMINATED):
+ read();
+ break;
+ case (MODE_READLINE):
+ default:
+ readline();
+ break;
+ }
+ break;
+ }
+ }
+ if (_myTcpServer != null) {
+ _mySocket = null;
+ _myTcpServer.remove(this);
+ }
+ }
+
+
+ private void read() {
+ try {
+ _myInput = new BufferedReader(new InputStreamReader(_mySocket.getInputStream()));
+
+ final char[] charBuffer = new char[1];
+ while (_myInput.read(charBuffer, 0, 1) != -1) {
+
+ /**@todo
+ * StringBuffer size is limited yet.
+ * increase the buffer size dynamically.
+ */
+ _myStringBuffer = new StringBuffer(4096);
+ while (charBuffer[0] != TERMINATOR && charBuffer[0] != 3) {
+ _myStringBuffer.append(charBuffer[0]);
+ _myInput.read(charBuffer, 0, 1);
+ }
+ _myBytes = _myStringBuffer.toString().getBytes();
+ handleInput();
+ }
+ } catch (final IOException e) {
+ Logger.printProcess("TcpClient.read()", "connection has been terminated.");
+ if (_myTcpServer == null) {
+ handleStatus(NetStatus.SERVER_CLOSED);
+ }
+ handleStatus(NetStatus.CONNECTION_TERMINATED);
+ }
+ }
+
+
+ private void readline() {
+ try {
+ _myOutput = new PrintWriter(_mySocket.getOutputStream(), true);
+ _myInput = new BufferedReader(new InputStreamReader(_mySocket.getInputStream()));
+ String inputLine;
+
+ while ((inputLine = _myInput.readLine()) != null) {
+ _myStringBuffer = new StringBuffer(inputLine);
+ _myBytes = _myStringBuffer.toString().getBytes();
+ handleInput();
+ }
+ } catch (final IOException e) {
+ Logger.printProcess("TcpClient.readline()", "connection has been terminated.");
+ handleStatus(NetStatus.CONNECTION_TERMINATED);
+ if (_myTcpServer == null) {
+ handleStatus(NetStatus.SERVER_CLOSED);
+ }
+ }
+ }
+
+ /**
+ * @invisible
+ */
+ public abstract void handleInput();
+
+ /**
+ * @invisible
+ * @param theIndex
+ */
+ public abstract void handleStatus(int theIndex);
+
+ /**
+ * @invisible
+ * @return
+ */
+ public TcpPacketListener listener() {
+ return _myTcpPacketListener;
+ }
+
+ /**
+ * get the server port.
+ * @return
+ */
+ public int serverport() {
+ return _myServerPort;
+ }
+
+ /**
+ * get the instance of the socket. more info at java.net.Socket
+ * @return
+ */
+ public Socket socket() {
+ return _mySocket;
+ }
+
+
+ /**
+ * get the mode of the terminator.
+ * @return
+ */
+ public int mode() {
+ return _myMode;
+ }
+
+
+ public String getString() {
+ return _myStringBuffer.toString();
+ }
+
+
+ public StringBuffer getStringBuffer() {
+ return _myStringBuffer;
+ }
+
+
+ public void send(final byte[] theBytes) {
+ if (_myMode == MODE_STREAM) {
+ try {
+ Bytes.toStream(_myOutputStream, theBytes);
+ } catch (final Exception ex) {
+ handleStatus(NetStatus.SEND_FAILED);
+ }
+ } else {
+ System.out.println("### sending bytes is only supported for STREAMs");
+ }
+ }
+
+
+ public void send(final byte[][] theBytes) {
+ if (_myMode == MODE_STREAM) {
+ try {
+ for (int i = 0; i < theBytes.length; i++) {
+ Bytes.toStream(_myOutputStream, theBytes[i]);
+ }
+ } catch (final Exception ex) {
+ handleStatus(NetStatus.SEND_FAILED);
+ }
+ } else {
+ System.out.println("### sending bytes is only supported for STREAMs");
+ }
+
+ }
+
+
+ public void send(final String theString) {
+ if (_myMode == MODE_STREAM) {
+ send(theString.getBytes());
+ } else {
+ switch (_myMode) {
+ case (MODE_TERMINATED):
+ _myOutput.write(theString + TERMINATOR);
+ break;
+ case (MODE_NEWLINE):
+ _myOutput.write(theString + "\n");
+ break;
+ case (MODE_READLINE):
+ default:
+ _myOutput.println(theString);
+ break;
+ }
+ _myOutput.flush();
+ }
+ }
+
+
+ public NetAddress netAddress() {
+ return _myNetAddress;
+ }
+
+
+ /**
+ * @deprecated
+ * @invisible
+ * @return NetAddress
+ */
+
+ public NetAddress netaddress() {
+ return _myNetAddress;
+ }
+
+
+ /**
+ * @param theNetAddress NetAddress
+ * @return boolean
+ */
+ public boolean equals(final NetAddress theNetAddress) {
+ if (theNetAddress.address().equals(_myNetAddress.address()) &&
+ theNetAddress.port() == _myNetAddress.port()) {
+ return true;
+ }
+ return false;
+ }
+
+
+ public boolean equals(final TcpClient theClient) {
+ return equals(theClient.netAddress());
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/AbstractTcpServer.java b/libraries/oscP5/src/netP5/AbstractTcpServer.java
new file mode 100644
index 0000000..824efbb
--- /dev/null
+++ b/libraries/oscP5/src/netP5/AbstractTcpServer.java
@@ -0,0 +1,317 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.util.Enumeration;
+import java.util.Vector;
+
+/**
+ * @invisible
+ */
+
+public abstract class AbstractTcpServer implements Runnable, TcpPacketListener {
+
+ protected ServerSocket _myServerSocket;
+
+ protected static int _myPort;
+
+ protected TcpPacketListener _myTcpPacketListener = null;
+
+ protected Vector _myTcpClients;
+
+ protected Thread _myThread;
+
+ public final static int MODE_READLINE = TcpClient.MODE_READLINE;
+
+ public final static int MODE_TERMINATED = TcpClient.MODE_TERMINATED;
+
+ public final static int MODE_NEWLINE = TcpClient.MODE_NEWLINE;
+
+ public final static int MODE_STREAM = TcpClient.MODE_STREAM;
+
+ protected final int _myMode;
+
+ protected Vector _myBanList;
+
+ /**
+ * @invisible
+ * @param thePort
+ * int
+ * @param theMode
+ * int
+ */
+ public AbstractTcpServer(
+ final int thePort,
+ final int theMode) {
+ _myPort = thePort;
+ _myMode = theMode;
+ _myTcpPacketListener = this;
+ init();
+ }
+
+ /**
+ * @invisible
+ * @param theTcpPacketListener
+ * TcpPacketListener
+ * @param thePort
+ * int
+ * @param theMode
+ * int
+ */
+ public AbstractTcpServer(
+ final TcpPacketListener theTcpPacketListener,
+ final int thePort,
+ final int theMode) {
+ _myPort = thePort;
+ _myMode = theMode;
+ _myTcpPacketListener = theTcpPacketListener;
+ init();
+ }
+
+ protected void init() {
+ _myBanList = new Vector();
+ _myServerSocket = null;
+ _myTcpClients = new Vector();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException iex) {
+ Logger.printError("TcpServer.start()",
+ "TcpServer sleep interuption " + iex);
+ return;
+ }
+ try {
+ _myServerSocket = new ServerSocket(_myPort);
+ } catch (IOException e) {
+ Logger.printError("TcpServer.start()", "TcpServer io Exception "
+ + e);
+ return;
+ }
+
+ _myThread = new Thread(this);
+ _myThread.start();
+ Logger.printProcess("TcpServer", "ServerSocket started @ " + _myPort);
+ }
+
+ /**
+ * ban an IP address from the server.
+ * @param theIP
+ */
+ public void ban(String theIP) {
+ _myBanList.add(theIP);
+ for (int i = _myTcpClients.size() - 1; i >= 0; i--) {
+ if (((TcpClient) _myTcpClients.get(i)).netAddress().address()
+ .equals(theIP)) {
+ ((TcpClient) _myTcpClients.get(i)).dispose();
+ }
+ }
+ }
+
+ /**
+ * remove the ban for an IP address.
+ * @param theIP
+ */
+ public void unBan(String theIP) {
+ _myBanList.remove(theIP);
+ }
+
+
+ private boolean checkBanList(ServerSocket theSocket) {
+ try {
+ String mySocketAddress = theSocket.getInetAddress()
+ .getHostAddress();
+ String mySocketName = theSocket.getInetAddress().getHostName();
+ for (int i = _myBanList.size() - 1; i >= 0; i--) {
+ if (mySocketAddress.equals(_myBanList.get(i))
+ || mySocketName.equals(_myBanList.get(i))) {
+ return false;
+ }
+ }
+ return true;
+ } catch (Exception e) {
+ }
+ return false;
+ }
+
+ /**
+ * get the server socket object. more at java.net.ServerSocket
+ * @return
+ */
+ public ServerSocket socket() {
+ return _myServerSocket;
+ }
+
+ /**
+ * @invisible
+ */
+ public void run() {
+ threadLoop: while (Thread.currentThread() == _myThread) {
+ try {
+ /**
+ * @author when synchronized, disconnected clients are only
+ * removed from _myTcpClients when there is a new
+ * connection.
+ */
+ // synchronized(_myTcpClients) {
+ if (checkBanList(_myServerSocket)) {
+ TcpClient t = new TcpClient(this, _myServerSocket.accept(),
+ _myTcpPacketListener, _myPort, _myMode);
+ if (NetP5.DEBUG) {
+ System.out.println("### new Client @ " + t);
+ }
+ _myTcpClients.addElement(t);
+ Logger.printProcess("TcpServer.run", _myTcpClients.size()
+ + " currently running.");
+ }
+ }
+ // }
+ catch (IOException e) {
+ Logger.printError("TcpServer", "IOException. Stopping server.");
+ break threadLoop;
+ }
+ }
+ dispose();
+ }
+
+ /**
+ * send a string to the connected client(s).
+ * @param theString
+ */
+ public synchronized void send(final String theString) {
+ try {
+ Enumeration en = _myTcpClients.elements();
+ while (en.hasMoreElements()) {
+ ((TcpClient) en.nextElement()).send(theString);
+ }
+ } catch (NullPointerException e) {
+
+ }
+ }
+
+ /**
+ * send a byte array to the connected client(s).
+ * @param theBytes
+ */
+ public synchronized void send(final byte[] theBytes) {
+ try {
+ Enumeration en = _myTcpClients.elements();
+ while (en.hasMoreElements()) {
+ ((TcpClient) en.nextElement()).send(theBytes);
+ }
+ } catch (NullPointerException e) {
+
+ }
+ }
+
+ /**
+ * kill the server.
+ */
+ public void dispose() {
+ try {
+ _myThread = null;
+
+ if (_myTcpClients != null) {
+ Enumeration en = _myTcpClients.elements();
+ while (en.hasMoreElements()) {
+ remove((TcpClient) en.nextElement());
+ }
+ _myTcpClients = null;
+ }
+
+ if (_myServerSocket != null) {
+ _myServerSocket.close();
+ _myServerSocket = null;
+ }
+ } catch (IOException e) {
+ Logger.printError("TcpServer.dispose", "IOException " + e);
+ }
+ }
+
+ /**
+ * get the number of connected clients.
+ * @return
+ */
+ public int size() {
+ return _myTcpClients.size();
+ }
+
+ /**
+ * get a list of all connected clients. an array of type TcpClient[]
+ * will be returned.
+ * @return
+ */
+ public TcpClient[] getClients() {
+ TcpClient[] s = new TcpClient[_myTcpClients.size()];
+ _myTcpClients.toArray(s);
+ return s;
+ }
+
+ /**
+ * get a client at a specific position the client list.
+ * @param theIndex
+ * @return
+ */
+ public TcpClient getClient(final int theIndex) {
+ return (TcpClient) _myTcpClients.elementAt(theIndex);
+ }
+
+ /**
+ * @invisible
+ * @param thePacket
+ * TcpPacket
+ * @param thePort
+ * int
+ */
+ public void process(final TcpPacket thePacket, final int thePort) {
+ handleInput(thePacket, thePort);
+ }
+
+ /**
+ * @invisible
+ * @param thePacket
+ * TcpPacket
+ * @param thePort
+ * int
+ */
+ public abstract void handleInput(final TcpPacket thePacket,
+ final int thePort);
+
+ /**
+ * remove a TcpClient from the server's client list.
+ * @param theTcpClient
+ * TCPClientAbstract
+ */
+ public void remove(AbstractTcpClient theTcpClient) {
+ if (_myTcpPacketListener != null && !_myTcpPacketListener.equals(this)) {
+ _myTcpPacketListener.remove(theTcpClient);
+ }
+ theTcpClient.dispose();
+ _myTcpClients.removeElement(theTcpClient);
+ Logger.printProcess("TcpServer", "removing TcpClient.");
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/AbstractUdpClient.java b/libraries/oscP5/src/netP5/AbstractUdpClient.java
new file mode 100644
index 0000000..45ebd8d
--- /dev/null
+++ b/libraries/oscP5/src/netP5/AbstractUdpClient.java
@@ -0,0 +1,199 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+import java.net.SocketException;
+import java.net.UnknownHostException;
+
+
+
+
+/**
+ * @invisible
+ */
+public abstract class AbstractUdpClient {
+
+ protected NetAddress _myNetAddress;
+
+ protected DatagramSocket _mySocket;
+
+ protected boolean isRunning = false;
+
+
+ /**
+ * @invisible
+ */
+ public AbstractUdpClient() {
+ isRunning = openSocket();
+ }
+
+
+ /**
+ * @invisible
+ * @param theAddr String
+ * @param thePort int
+ */
+ public AbstractUdpClient(String theAddr, int thePort) {
+
+ _myNetAddress = new NetAddress(theAddr, thePort);
+
+ if(!_myNetAddress.isvalid()) {
+ Logger.printError("UdpClient", "unknown host " + theAddr);
+ }
+ isRunning = openSocket();
+ }
+
+ /**
+ * get the datagram socket of the UDP client. more info at java.net.DatagramSocket
+ * @return DatagramSocket
+ */
+ public DatagramSocket socket() {
+ return _mySocket;
+ }
+
+
+
+ private boolean openSocket() {
+ try {
+ _mySocket = new DatagramSocket();
+ }
+ catch (SocketException e) {
+ Logger.printError("UdpClient.openSocket", "cant create socket "
+ + e.getMessage());
+ return false;
+ }
+
+ Logger.printProcess("UdpClient.openSocket", "udp socket initialized.");
+ return true;
+ }
+
+ /**
+ * send a string using UDP to an already specified RemoteAddress.
+ * @param theString
+ */
+ public void send(String theString) {
+ send(theString.getBytes());
+ }
+
+
+ /**
+ * send a byte array using UDP to an already specified RemoteAddress.
+ * @param theBytes byte[]
+ */
+ public void send(byte[] theBytes) {
+ if (_myNetAddress.isvalid()) {
+ send(theBytes, _myNetAddress);
+ }
+ else {
+ Logger.printWarning("UdpClient.send",
+ "no InetAddress and port has been set. Packet has not been sent.");
+ }
+ }
+
+ /**
+ * send a byte array to the dedicated remoteAddress.
+ * @param theBytes
+ * @param theNetAddress
+ */
+ public void send(final byte[] theBytes,
+ final NetAddress theNetAddress
+ ) {
+ if (_myNetAddress.isvalid()) {
+ send(theBytes, theNetAddress.inetaddress(),theNetAddress.port());
+ }
+ }
+
+ /**
+ * send a byte array to the dedicated remoteAddress.
+ * @param thePacket OscPacket
+ * @param theAddress String
+ * @param thePort int
+ */
+ public void send(final byte[] theBytes,
+ final String theAddress,
+ final int thePort) {
+ try {
+ InetAddress myInetAddress = InetAddress.getByName(theAddress);
+ send(theBytes, myInetAddress, thePort);
+ }
+ catch (UnknownHostException e) {
+ Logger.printError("UdpClient.send", "while sending to "
+ + theAddress + " " + e);
+ }
+ }
+
+
+
+ /**
+ * @invisible
+ * @param thePacket DatagramPacket
+ */
+ public void send(DatagramPacket thePacket) {
+ if (isRunning) {
+ try {
+ _mySocket.send(thePacket);
+
+ }
+ catch (IOException e) {
+ Logger.printError("UdpClient.send",
+ "ioexception while sending packet. "+e);
+ }
+ }
+ }
+
+
+
+ /**
+ * send a byte array to the dedicated remoteAddress.
+ * @param theBytes byte[]
+ * @param theAddress InetAddress
+ * @param thePort int
+ */
+ public void send(final byte[] theBytes,
+ final InetAddress theAddress,
+ final int thePort) {
+ if (isRunning) {
+ try {
+ DatagramPacket myPacket = new DatagramPacket(theBytes,theBytes.length, theAddress, thePort);
+ send(myPacket);
+ }
+ catch (NullPointerException npe) {
+ Logger.printError("UdpClient.send",
+ "a nullpointer exception occured." + npe);
+ }
+ }
+ else {
+ Logger.printWarning("UdpClient.send",
+ "DatagramSocket is not running. Packet has not been sent.");
+ }
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/AbstractUdpServer.java b/libraries/oscP5/src/netP5/AbstractUdpServer.java
new file mode 100644
index 0000000..9a35d63
--- /dev/null
+++ b/libraries/oscP5/src/netP5/AbstractUdpServer.java
@@ -0,0 +1,271 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+
+public abstract class AbstractUdpServer implements Runnable {
+
+ private DatagramSocket _myDatagramSocket = null;
+
+ protected UdpPacketListener _myListener;
+
+ private Thread _myThread = null;
+
+ private int _myPort;
+
+ private String _myAddress;
+
+ private InetAddress _myInetAddress;
+
+ protected int _myDatagramSize = 1536; // common MTU
+
+ private boolean isRunning = true;
+
+ private boolean isSocket = false;
+
+ /**
+ * create a new UdpServer
+ *
+ * @invisible
+ * @param theListener
+ * UdpPacketListener
+ * @param thePort
+ * int
+ * @param theBufferSize
+ * int
+ */
+ public AbstractUdpServer(UdpPacketListener theListener, int thePort,
+ int theBufferSize) {
+ _myDatagramSize = theBufferSize;
+ _myPort = thePort;
+ _myListener = theListener;
+ if (_myListener != null) {
+ start();
+ }
+ }
+
+ /**
+ * @invisible
+ * @param theListener
+ * UdpPacketListener
+ * @param theAddress
+ * String
+ * @param thePort
+ * int
+ * @param theBufferSize
+ * int
+ */
+ protected AbstractUdpServer(UdpPacketListener theListener,
+ String theAddress, int thePort, int theBufferSize) {
+ _myDatagramSize = theBufferSize;
+ _myAddress = theAddress;
+ _myPort = thePort;
+ _myListener = theListener;
+ if (_myListener != null) {
+ start();
+ }
+ }
+
+ /**
+ * get the datagram socket of the UDP server.
+ *
+ * @return DatagramSocket
+ */
+ public DatagramSocket socket() {
+ return _myDatagramSocket;
+ }
+
+ /**
+ * @invisible
+ *
+ */
+ public void start() {
+ _myThread = null;
+ _myDatagramSocket = null;
+ _myThread = new Thread(this);
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException iex) {
+ Logger.printError("UdpServer.start()",
+ "oscServer sleep interruption " + iex);
+ }
+ try {
+ _myDatagramSocket = new DatagramSocket(_myPort);
+ _myInetAddress = InetAddress.getByName(_myAddress);
+ Logger.printProcess("UdpServer.start()",
+ "new Unicast DatagramSocket created @ port " + _myPort);
+ } catch (IOException ioex) {
+ Logger.printError("UdpServer.start()",
+ " IOException, couldnt create new DatagramSocket @ port "
+ + _myPort + " " + ioex);
+ }
+
+ if (_myDatagramSocket != null) {
+ _myThread.start();
+ isRunning = _myThread.isAlive();
+ isSocket = true;
+ } else {
+ isRunning = false;
+ }
+ }
+
+ /**
+ * @invisible
+ */
+ public void run() {
+ if (_myDatagramSocket != null) {
+ if (isRunning) {
+ Logger.printProcess("UdpServer.run()",
+ "UdpServer is running @ " + _myPort);
+ }
+ } else {
+ Logger.printError("UdpServer.run()",
+ "Socket is null. closing UdpServer.");
+ return;
+ }
+
+ while (isRunning) {
+ try {
+ byte[] myBuffer = new byte[_myDatagramSize];
+ DatagramPacket myPacket = new DatagramPacket(myBuffer,
+ _myDatagramSize);
+ _myDatagramSocket.receive(myPacket);
+ _myListener.process(myPacket, _myPort);
+ } catch (IOException ioex) {
+ Logger.printProcess("UdpServer.run()", " socket closed.");
+ break;
+ } catch (ArrayIndexOutOfBoundsException ex) {
+ Logger.printError("UdpServer.run()",
+ "ArrayIndexOutOfBoundsException: " + ex);
+ }
+ }
+ dispose();
+ }
+
+ /**
+ * stop the UDP server, clean up and delete its reference.
+ */
+ public void dispose() {
+ isRunning = false;
+ _myThread = null;
+ if (_myDatagramSocket != null) {
+ if (_myDatagramSocket.isConnected()) {
+ Logger.printDebug("UdpServer.dispose()", "disconnect()");
+ _myDatagramSocket.disconnect();
+ }
+ Logger.printDebug("UdpServer.dispose()", "close()");
+ _myDatagramSocket.close();
+ _myDatagramSocket = null;
+ Logger.printDebug("UdpServer.dispose()",
+ "Closing unicast datagram socket.");
+ }
+ }
+
+ /**
+ * send a byte array to a previously defined remoteAddress.
+ *
+ * @param theBytes
+ * byte[]
+ */
+ public void send(byte[] theBytes) {
+ if (isSocket) {
+ send(theBytes, _myInetAddress, _myPort);
+ } else {
+ Logger
+ .printWarning("UdpClient.send",
+ "no InetAddress and port has been set. Packet has not been sent.");
+ }
+ }
+
+ /**
+ * send a byte array to a dedicated remoteAddress.
+ *
+ * @param thePacket
+ * OscPacket
+ * @param theAddress
+ * String
+ * @param thePort
+ * int
+ */
+ public void send(byte[] theBytes, String theAddress, int thePort) {
+ try {
+ InetAddress myInetAddress = InetAddress.getByName(theAddress);
+ send(theBytes, myInetAddress, thePort);
+ } catch (UnknownHostException e) {
+ Logger.printError("UdpClient.send", "while sending to "
+ + theAddress + " " + e);
+ }
+ }
+
+ /**
+ * @invisible
+ * @param thePacket
+ * DatagramPacket
+ */
+ public void send(DatagramPacket thePacket) {
+ if (isSocket) {
+ try {
+ _myDatagramSocket.send(thePacket);
+ } catch (IOException e) {
+ Logger.printError("UdpClient.send",
+ "ioexception while sending packet.");
+ }
+ }
+ }
+
+ /**
+ * send a byte array to a dedicated remoteAddress.
+ *
+ * @param theBytes
+ * byte[]
+ * @param theAddress
+ * InetAddress
+ * @param thePort
+ * int
+ */
+ public void send(byte[] theBytes, InetAddress theAddress, int thePort) {
+ if (isSocket) {
+ try {
+ DatagramPacket myPacket = new DatagramPacket(theBytes,
+ theBytes.length, theAddress, thePort);
+ send(myPacket);
+ } catch (NullPointerException npe) {
+ Logger.printError("UdpServer.send",
+ "a nullpointer exception occured." + npe);
+ }
+ } else {
+ Logger.printWarning("UdpServer.send",
+ "DatagramSocket is not running. Packet has not been sent.");
+ }
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/Bytes.java b/libraries/oscP5/src/netP5/Bytes.java
new file mode 100644
index 0000000..7284b3b
--- /dev/null
+++ b/libraries/oscP5/src/netP5/Bytes.java
@@ -0,0 +1,470 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+
+/**
+ * @invisible
+ */
+public class Bytes {
+
+ public Bytes() {
+ }
+
+
+
+ /**
+ * converts an object array into a String that is formated like a list
+ *
+ * @param theObject
+ * Object[]
+ * @return String
+ */
+ public static String getAsString(Object[] theObject) {
+ StringBuffer s = new StringBuffer();
+ for (int i = 0; i < theObject.length; i++) {
+ s.append("[" + i + "]" + " " + theObject[i] + "\n");
+ }
+ return s.toString();
+ }
+
+
+
+ public static String getAsString(byte[] theBytes) {
+ StringBuffer s = new StringBuffer();
+ for (int i = 0; i < theBytes.length; i++) {
+ s.append( (char) theBytes[i]);
+ }
+ return s.toString();
+ }
+
+
+
+ public static int toInt(byte abyte0[]) {
+ return (abyte0[3] & 0xff) + ( (abyte0[2] & 0xff) << 8)
+ + ( (abyte0[1] & 0xff) << 16) + ( (abyte0[0] & 0xff) << 24);
+ }
+
+
+
+ public static long toLong(byte abyte0[]) {
+ return ( (long) abyte0[7] & 255L) + ( ( (long) abyte0[6] & 255L) << 8)
+ + ( ( (long) abyte0[5] & 255L) << 16)
+ + ( ( (long) abyte0[4] & 255L) << 24)
+ + ( ( (long) abyte0[3] & 255L) << 32)
+ + ( ( (long) abyte0[2] & 255L) << 40)
+ + ( ( (long) abyte0[1] & 255L) << 48)
+ + ( ( (long) abyte0[0] & 255L) << 56);
+ }
+
+
+
+ public static float toFloat(byte abyte0[]) {
+ int i = toInt(abyte0);
+ return Float.intBitsToFloat(i);
+ }
+
+
+
+ public static double toDouble(byte abyte0[]) {
+ long l = toLong(abyte0);
+ return Double.longBitsToDouble(l);
+ }
+
+
+
+ public static byte[] toBytes(int i) {
+ return toBytes(i, new byte[4]);
+ }
+
+
+
+ public static byte[] toBytes(int i, byte abyte0[]) {
+ abyte0[3] = (byte) i;
+ i >>>= 8;
+ abyte0[2] = (byte) i;
+ i >>>= 8;
+ abyte0[1] = (byte) i;
+ i >>>= 8;
+ abyte0[0] = (byte) i;
+ return abyte0;
+ }
+
+
+
+ public static byte[] toBytes(long l) {
+ return toBytes(l, new byte[8]);
+ }
+
+
+
+ public static byte[] toBytes(long l, byte abyte0[]) {
+ abyte0[7] = (byte) (int) l;
+ l >>>= 8;
+ abyte0[6] = (byte) (int) l;
+ l >>>= 8;
+ abyte0[5] = (byte) (int) l;
+ l >>>= 8;
+ abyte0[4] = (byte) (int) l;
+ l >>>= 8;
+ abyte0[3] = (byte) (int) l;
+ l >>>= 8;
+ abyte0[2] = (byte) (int) l;
+ l >>>= 8;
+ abyte0[1] = (byte) (int) l;
+ l >>>= 8;
+ abyte0[0] = (byte) (int) l;
+ return abyte0;
+ }
+
+
+
+ public static boolean areEqual(byte abyte0[], byte abyte1[]) {
+ int i = abyte0.length;
+ if (i != abyte1.length) {
+ return false;
+ }
+ for (int j = 0; j < i; j++) {
+ if (abyte0[j] != abyte1[j]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+
+
+ public static byte[] append(byte abyte0[], byte abyte1[]) {
+ byte abyte2[] = new byte[abyte0.length + abyte1.length];
+ System.arraycopy(abyte0, 0, abyte2, 0, abyte0.length);
+ System.arraycopy(abyte1, 0, abyte2, abyte0.length, abyte1.length);
+ return abyte2;
+ }
+
+
+
+ public static byte[] append(byte abyte0[], byte abyte1[], byte abyte2[]) {
+ byte abyte3[] = new byte[abyte0.length + abyte1.length + abyte2.length];
+ System.arraycopy(abyte0, 0, abyte3, 0, abyte0.length);
+ System.arraycopy(abyte1, 0, abyte3, abyte0.length, abyte1.length);
+ System.arraycopy(abyte2, 0, abyte3, abyte0.length + abyte1.length,
+ abyte2.length);
+ return abyte3;
+ }
+
+
+
+ public static byte[] copy(byte abyte0[], int i) {
+ return copy(abyte0, i, abyte0.length - i);
+ }
+
+
+
+ public static byte[] copy(byte abyte0[], int i, int j) {
+ byte abyte1[] = new byte[j];
+ System.arraycopy(abyte0, i, abyte1, 0, j);
+ return abyte1;
+ }
+
+
+
+ public static void merge(byte abyte0[], byte abyte1[], int i, int j, int k) {
+ System.arraycopy(abyte0, i, abyte1, j, k);
+ }
+
+
+
+ public static void merge(byte abyte0[], byte abyte1[], int i) {
+ System.arraycopy(abyte0, 0, abyte1, i, abyte0.length);
+ }
+
+
+
+ public static void merge(byte abyte0[], byte abyte1[]) {
+ System.arraycopy(abyte0, 0, abyte1, 0, abyte0.length);
+ }
+
+
+
+ public static void merge(byte abyte0[], byte abyte1[], int i, int j) {
+ System.arraycopy(abyte0, 0, abyte1, i, j);
+ }
+
+
+
+ public static String toString(byte abyte0[], int i, int j) {
+ char ac[] = new char[j * 2];
+ int k = i;
+ int l = 0;
+ for (; k < i + j; k++) {
+ byte byte0 = abyte0[k];
+ ac[l++] = hexDigits[byte0 >>> 4 & 0xf];
+ ac[l++] = hexDigits[byte0 & 0xf];
+ }
+
+ return new String(ac);
+ }
+
+
+
+ public static String toString(byte abyte0[]) {
+ return toString(abyte0, 0, abyte0.length);
+ }
+
+
+
+ public static void printBytes(byte[] byteArray) {
+ for (int i = 0; i < byteArray.length; i++) {
+ System.out.print( (char) byteArray[i] + " ("
+ + hexDigits[byteArray[i] >>> 4 & 0xf] + ""
+ + hexDigits[byteArray[i] & 0xf] + ") ");
+ if ( (i + 1) % 4 == 0) {
+ System.out.print("\n");
+ }
+ }
+ }
+
+
+
+ private static final char hexDigits[] = {'0', '1', '2', '3', '4', '5',
+ '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
+
+
+ /**
+ * ByteStream
+ */
+
+ private static byte[] toByteArray(int in_int) {
+ byte a[] = new byte[4];
+ for (int i = 0; i < 4; i++) {
+
+ int b_int = (in_int >> (i * 8)) & 255;
+ byte b = (byte) (b_int);
+
+ a[i] = b;
+ }
+ return a;
+ }
+
+ private static byte[] toByteArrayBigEndian(int theInt) {
+ byte a[] = new byte[4];
+ for (int i = 0; i < 4; i++) {
+ int b_int = (theInt >> (i * 8)) & 255;
+ byte b = (byte) (b_int);
+ a[3-i] = b;
+ }
+ return a;
+ }
+
+
+
+
+ private static int asInt(byte[] byte_array_4) {
+ int ret = 0;
+ for (int i = 0; i < 4; i++) {
+ int b = (int) byte_array_4[i];
+ if (i < 3 && b < 0) {
+ b = 256 + b;
+ }
+ ret += b << (i * 8);
+ }
+ return ret;
+ }
+
+
+
+ public static int toIntLittleEndian(InputStream theInputStream) throws java.io.IOException {
+ byte[] byte_array_4 = new byte[4];
+
+ byte_array_4[0] = (byte) theInputStream.read();
+ byte_array_4[1] = (byte) theInputStream.read();
+ byte_array_4[2] = (byte) theInputStream.read();
+ byte_array_4[3] = (byte) theInputStream.read();
+
+ return asInt(byte_array_4);
+ }
+
+
+ public static int toIntBigEndian(InputStream theInputStream) throws java.io.IOException {
+ byte[] byte_array_4 = new byte[4];
+ /* used to reverse the int32 Big Endian of the tcp header to convert it to an int */
+ byte_array_4[3] = (byte) theInputStream.read();
+ byte_array_4[2] = (byte) theInputStream.read();
+ byte_array_4[1] = (byte) theInputStream.read();
+ byte_array_4[0] = (byte) theInputStream.read();
+ return asInt(byte_array_4);
+ }
+
+
+ public static String toString(InputStream ins) throws java.io.IOException {
+ int len = toIntLittleEndian(ins);
+ return toString(ins, len);
+ }
+
+
+
+ private static String toString(InputStream ins, int len) throws java.io.IOException {
+ String ret = new String();
+ for (int i = 0; i < len; i++) {
+ ret += (char) ins.read();
+ }
+ return ret;
+ }
+
+
+
+ public static void toStream(OutputStream os, int i) throws Exception {
+ byte[] byte_array_4 = toByteArrayBigEndian(i);
+ os.write(byte_array_4);
+ }
+
+
+
+ public static void toStream(OutputStream os, String s) throws Exception {
+ int len_s = s.length();
+ toStream(os, len_s);
+ for (int i = 0; i < len_s; i++) {
+ os.write( (byte) s.charAt(i));
+ }
+ os.flush();
+ }
+
+
+
+ public static void toStream(OutputStream os, byte[] theBytes) throws Exception {
+ int myLength = theBytes.length;
+ toStream(os, myLength);
+ os.write(theBytes);
+ os.flush();
+ }
+
+
+
+ public static byte[] toByteArray(InputStream ins) throws java.io.IOException {
+ int len = toIntLittleEndian(ins);
+ try {
+ return toByteArray(ins, len);
+ }
+ catch (Exception e) {
+ return new byte[0];
+ }
+ }
+
+
+
+ protected static byte[] toByteArray(InputStream ins, int an_int) throws
+ java.io.IOException,
+ Exception {
+
+ byte[] ret = new byte[an_int];
+
+ int offset = 0;
+ int numRead = 0;
+ int outstanding = an_int;
+
+ while (
+ (offset < an_int)
+ &&
+ ( (numRead = ins.read(ret, offset, outstanding)) > 0)
+ ) {
+ offset += numRead;
+ outstanding = an_int - offset;
+ }
+ if (offset < ret.length) {
+ throw new Exception("Could not completely read from stream, numRead=" + numRead + ", ret.length=" + ret.length); // ???
+ }
+ return ret;
+ }
+
+
+
+ private static void toFile(InputStream ins, FileOutputStream fos, int len, int buf_size) throws
+ java.io.FileNotFoundException,
+ java.io.IOException {
+
+ byte[] buffer = new byte[buf_size];
+
+ int len_read = 0;
+ int total_len_read = 0;
+
+ while (total_len_read + buf_size <= len) {
+ len_read = ins.read(buffer);
+ total_len_read += len_read;
+ fos.write(buffer, 0, len_read);
+ }
+
+ if (total_len_read < len) {
+ toFile(ins, fos, len - total_len_read, buf_size / 2);
+ }
+ }
+
+
+
+ private static void toFile(InputStream ins, File file, int len) throws
+ java.io.FileNotFoundException,
+ java.io.IOException {
+
+ FileOutputStream fos = new FileOutputStream(file);
+
+ toFile(ins, fos, len, 1024);
+ }
+
+
+
+ public static void toFile(InputStream ins, File file) throws
+ java.io.FileNotFoundException,
+ java.io.IOException {
+
+ int len = toIntLittleEndian(ins);
+ toFile(ins, file, len);
+ }
+
+
+
+ public static void toStream(OutputStream os, File file) throws java.io.FileNotFoundException,
+ Exception {
+
+ toStream(os, (int) file.length());
+
+ byte b[] = new byte[1024];
+ InputStream is = new FileInputStream(file);
+ int numRead = 0;
+
+ while ( (numRead = is.read(b)) > 0) {
+ os.write(b, 0, numRead);
+ }
+ os.flush();
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/Logger.java b/libraries/oscP5/src/netP5/Logger.java
new file mode 100644
index 0000000..63f4f0e
--- /dev/null
+++ b/libraries/oscP5/src/netP5/Logger.java
@@ -0,0 +1,153 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.util.Calendar;
+
+public class Logger {
+
+ /**
+ *
+ */
+ public static final int ON = 0;
+
+ /**
+ *
+ */
+ public static final int OFF = 1;
+
+ /**
+ *
+ */
+ public static final int ERROR = 0;
+
+ /**
+ *
+ */
+ public static final int WARNING = 1;
+
+ /**
+ *
+ */
+ public static final int PROCESS = 2;
+
+ /**
+ *
+ */
+ public static final int INFO = 3;
+
+ /**
+ *
+ */
+ public static final int DEBUG = 4;
+
+ /**
+ *
+ */
+ public static final int ALL = 5;
+
+
+
+ public static int[] flags = new int[] { ON, ON, ON, ON, OFF };
+
+ public static void set(int theIndex, int theValue) {
+ if (theValue > -1 && theValue < 2) {
+ if (theIndex > -1 && theIndex < flags.length) {
+ flags[theIndex] = theValue;
+ return;
+ } else if (theIndex == ALL) {
+ for (int i = 0; i < flags.length; i++) {
+ flags[i] = theValue;
+ }
+ return;
+ }
+ }
+ }
+
+ public static void printError(String theLocation, String theMsg) {
+ if (flags[ERROR] == ON) {
+ println("### " + getTime() + " ERROR @ " + theLocation + " "
+ + theMsg);
+ }
+ }
+
+ public static void printProcess(String theLocation, String theMsg) {
+ if (flags[PROCESS] == ON) {
+ println("### " + getTime() + " PROCESS @ " + theLocation + " "
+ + theMsg);
+ }
+ }
+
+ public static void printWarning(String theLocation, String theMsg) {
+ if (flags[WARNING] == ON) {
+ println("### " + getTime() + " WARNING @ " + theLocation + " "
+ + theMsg);
+ }
+ }
+
+ public static void printInfo(String theLocation, String theMsg) {
+ if (flags[INFO] == ON) {
+ println("### " + getTime() + " INFO @ " + theLocation + " "
+ + theMsg);
+ }
+ }
+
+ public static void printDebug(String theLocation, String theMsg) {
+ if (flags[DEBUG] == ON) {
+ println("### " + getTime() + " DEBUG @ " + theLocation + " "
+ + theMsg);
+ }
+ }
+
+ public static void print(String theMsg) {
+ System.out.print(theMsg);
+ }
+
+ public static void println(String theMsg) {
+ System.out.println(theMsg);
+ }
+
+ public static void printBytes(byte[] byteArray) {
+ for (int i = 0; i < byteArray.length; i++) {
+ print(byteArray[i] + " (" + (char) byteArray[i] + ") ");
+ if ((i + 1) % 4 == 0) {
+ print("\n");
+ }
+ }
+ print("\n");
+ }
+
+ public static String getTime() {
+ Calendar cal = Calendar.getInstance();
+ return "[" + (cal.get(Calendar.YEAR)) + "/"
+ + (cal.get(Calendar.MONTH) + 1) + "/"
+ + cal.get(Calendar.DAY_OF_MONTH) + " "
+ + cal.get(Calendar.HOUR_OF_DAY) + ":"
+ + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND)
+ + "]";
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/Multicast.java b/libraries/oscP5/src/netP5/Multicast.java
new file mode 100644
index 0000000..bc50d2d
--- /dev/null
+++ b/libraries/oscP5/src/netP5/Multicast.java
@@ -0,0 +1,116 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.net.DatagramPacket;
+import java.util.Vector;
+
+
+/**
+ * Multicast is a method of forwarding IP datagrams to a group of interested receivers.
+ * UDP is used as the transport portocol.
+ */
+public class Multicast extends AbstractMulticast implements UdpPacketListener {
+
+
+ protected Object _myParent;
+
+ protected NetPlug _myNetPlug;
+
+ /**
+ * create a new instance of Multicast. the buffersize of the datagrams
+ * is set to 1536 by default.
+ *
+ * @param theObject Object
+ * @param theMulticastAddress String
+ * @param thePort int
+ * @param theBufferSize int
+ */
+ public Multicast(final Object theObject,
+ final String theMulticastAddress,
+ final int thePort,
+ final int theBufferSize) {
+ super(null, theMulticastAddress, thePort, theBufferSize);
+ _myParent = theObject;
+ _myListener = this;
+ _myNetPlug = new NetPlug(_myParent);
+ init(theMulticastAddress,thePort);
+ }
+
+
+ public Multicast(final Object theObject,
+ final String theMulticastAddress,
+ final int thePort) {
+ super(null, theMulticastAddress, thePort, 1536);
+ _myParent = theObject;
+ _myListener = this;
+ _myNetPlug = new NetPlug(_myParent);
+ init(theMulticastAddress,thePort);
+ }
+
+
+ public Multicast(final UdpPacketListener theDatagramListener,
+ final String theMulticastAddress,
+ final int thePort,
+ final int theBufferSize) {
+ super(theDatagramListener, theMulticastAddress, thePort, theBufferSize);
+ }
+
+
+ public Multicast(final UdpPacketListener theDatagramListener,
+ final String theMulticastAddress,
+ final int thePort) {
+ super(theDatagramListener, theMulticastAddress, thePort);
+ }
+
+ /**
+ * @invisible
+ * @param thePacket DatagramPacket
+ * @param thePort int
+ */
+ public void process(DatagramPacket thePacket, int thePort) {
+ _myNetPlug.process(thePacket,thePort);
+ }
+
+
+ public void addListener(NetListener theListener) {
+ _myNetPlug.addListener(theListener);
+ }
+
+
+ public void removeListener(NetListener theListener) {
+ _myNetPlug.removeListener(theListener);
+ }
+
+ public NetListener getListener(int theIndex) {
+ return _myNetPlug.getListener(theIndex);
+ }
+
+ public Vector getListeners() {
+ return _myNetPlug.getListeners();
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/NetAddress.java b/libraries/oscP5/src/netP5/NetAddress.java
new file mode 100644
index 0000000..09baa6c
--- /dev/null
+++ b/libraries/oscP5/src/netP5/NetAddress.java
@@ -0,0 +1,130 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+/**
+ * NetAddress is an Object that contains an inetaddress
+ * of an remote internet address, consisting of an
+ * ip address and a port number.
+ * @author andreas schlegel
+ *
+ */
+public class NetAddress {
+ protected InetAddress inetaddress = null;
+
+ protected String hostAddress;
+
+ public String name = "";
+
+ protected int port = 0;
+
+ protected boolean isValid = false;
+
+ /**
+ *
+ * @param theAddress String
+ * @param thePort int
+ */
+ public NetAddress(final String theAddress,
+ final int thePort) {
+ hostAddress = theAddress;
+ port = thePort;
+ if (thePort > 0) {
+ try {
+ inetaddress = InetAddress.getByName(theAddress);
+ isValid = true;
+ }
+ catch (UnknownHostException e) {
+ System.out.println("no such host " + inetaddress);
+ }
+ }
+ }
+
+ public NetAddress(NetAddress theNetAddress) {
+ this(theNetAddress.address(),theNetAddress.port());
+ }
+
+
+ /**
+ *
+ * @param theInetAddress InetAddress
+ * @param thePort int
+ */
+ public NetAddress(InetAddress theInetAddress, int thePort) {
+ inetaddress = theInetAddress;
+ hostAddress = inetaddress.getHostAddress();
+ port = thePort;
+ }
+
+
+
+ /**
+ *
+ * @return InetAddress
+ */
+ public InetAddress inetaddress() {
+ return inetaddress;
+ }
+
+
+
+ /**
+ *returns the remote ip address as string
+ * @return String
+ */
+ public String address() {
+ return hostAddress;
+ }
+
+
+
+ /**
+ *returns the remote port number
+ * @return int
+ */
+ public int port() {
+ return port;
+ }
+
+
+
+ /**
+ *check if the netAddress is valid. this is true if
+ * the remote ip address was found.
+ * @return boolean
+ */
+ public boolean isvalid() {
+ return isValid;
+ }
+
+ public String toString() {
+ return hostAddress+":"+port;
+ }
+}
diff --git a/libraries/oscP5/src/netP5/NetAddressList.java b/libraries/oscP5/src/netP5/NetAddressList.java
new file mode 100644
index 0000000..44ae782
--- /dev/null
+++ b/libraries/oscP5/src/netP5/NetAddressList.java
@@ -0,0 +1,169 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+import java.util.ArrayList;
+
+/**
+ * NetAddressList is an arraylist of netaddresses.
+ * @author andreas schlegel
+ */
+public class NetAddressList {
+ protected ArrayList _myList = new ArrayList();
+
+ /**
+ *
+ * @param theNetAddress NetAddress
+ */
+ public void add(NetAddress theNetAddress) {
+ if (theNetAddress.isValid == true) {
+ _myList.add(theNetAddress);
+ }
+ }
+
+
+
+ /**
+ *
+ * @param theAddress String
+ * @param thePort int
+ */
+ public void add(String theAddress, int thePort) {
+ NetAddress myOscHost = new NetAddress(theAddress, thePort);
+ if (myOscHost.isValid == true) {
+ _myList.add(myOscHost);
+ }
+ }
+
+
+
+ /**
+ *
+ * @param theAddress String
+ * @param thePort int
+ */
+ public void remove(String theAddress, int thePort) {
+ for (int i = 0; i < _myList.size(); i++) {
+ NetAddress myHost = ( (NetAddress) _myList.get(i));
+ if (myHost.hostAddress.equals(theAddress) && myHost.port == thePort) {
+ _myList.remove(myHost);
+ }
+ }
+ }
+
+
+
+ /**
+ *
+ * @param theNetAddress NetAddress
+ */
+ public void remove(NetAddress theNetAddress) {
+ _myList.remove(theNetAddress);
+ }
+
+
+ public NetAddress get(String theIPaddress, int thePort) {
+ for (int i = 0; i < _myList.size(); i++) {
+ NetAddress myHost = ( (NetAddress) _myList.get(i));
+ if (myHost.hostAddress.equals(theIPaddress) && myHost.port == thePort) {
+ return myHost;
+ }
+ }
+ return null;
+
+ }
+
+
+ /**
+ *
+ * @param theNetAddress NetAddress
+ * @return boolean
+ */
+ public boolean contains(NetAddress theNetAddress) {
+ if (_myList.contains(theNetAddress)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ *
+ * @param theIPaddress String
+ * @param thePort int
+ * @return boolean
+ */
+ public boolean contains(String theIPaddress, int thePort) {
+ for (int i = 0; i < _myList.size(); i++) {
+ NetAddress myHost = ( (NetAddress) _myList.get(i));
+ if (myHost.hostAddress.equals(theIPaddress) && myHost.port == thePort) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ public int size() {
+ return _myList.size();
+ }
+
+
+
+
+ /**
+ *
+ * @param theList NetAddress[]
+ */
+ public void set(NetAddress[] theList) {
+ _myList = new ArrayList();
+ for (int i = 0; i < theList.length; i++) {
+ _myList.add(theList[i]);
+ }
+ }
+
+
+
+ /**
+ *
+ * @return ArrayList
+ */
+ public ArrayList list() {
+ return _myList;
+ }
+
+
+
+ /**
+ *
+ * @param theIndex int
+ * @return NetAddress
+ */
+ public NetAddress get(int theIndex) {
+ return (NetAddress) _myList.get(theIndex);
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/NetInfo.java b/libraries/oscP5/src/netP5/NetInfo.java
new file mode 100644
index 0000000..069c2d9
--- /dev/null
+++ b/libraries/oscP5/src/netP5/NetInfo.java
@@ -0,0 +1,154 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.StringTokenizer;
+
+
+/**
+ * some description
+ * @author andreas schlegel
+ */
+public class NetInfo {
+
+ public NetInfo() {
+ }
+
+
+
+ public static void print() {
+ try {
+ java.net.InetAddress i = java.net.InetAddress.getLocalHost();
+ System.out.println("### hostname/ip " + i); // name and IP address
+ System.out.println("### hostname " + i.getHostName()); // name
+ System.out.println("### ip " + i.getHostAddress()); // IP address
+ // only
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+
+ public static String getHostAddress() {
+ try {
+ java.net.InetAddress i = java.net.InetAddress.getLocalHost();
+ return i.getHostAddress();
+ }
+ catch (Exception e) {
+ }
+ return "ERROR";
+ }
+
+
+
+ public static String lan() {
+ Logger.printProcess("NetInfo.checkNetworkStatus : ", getHostAddress());
+ return getHostAddress();
+ }
+
+
+
+ public static String wan() {
+ // create URL object.
+ String myIp = null;
+ URL u = null;
+ String URLstring = "http://checkip.dyndns.org";
+ boolean isConnectedToInternet = false;
+ Logger.printProcess("NetInfo.checkNetworkStatus",
+ "Checking internet connection ...");
+ try {
+ u = new URL(URLstring);
+ }
+ catch (MalformedURLException e) {
+ Logger.printError("NetInfo.checkNetworkStatus", "Bad URL "
+ + URLstring + " " + e);
+ }
+
+ InputStream in = null;
+ try {
+ in = u.openStream();
+ isConnectedToInternet = true;
+ }
+ catch (IOException e) {
+ Logger.printError("NetInfo.checkNetworkStatus",
+ "! Unable to open " + URLstring + "\n" + "Either the "
+ + URLstring
+ + " is unavailable or this machine is not"
+ + "connected to the internet !");
+ }
+
+ if (isConnectedToInternet) {
+ try {
+ BufferedReader br = new BufferedReader(
+ new InputStreamReader(in));
+ String line;
+ String theToken = "";
+ while ( (line = br.readLine()) != null) {
+ theToken += line;
+ }
+ br.close();
+
+ StringTokenizer st = new StringTokenizer(theToken, " <>", false);
+
+ while (st.hasMoreTokens()) {
+ String myToken = st.nextToken();
+ if (myToken.compareTo("Address:") == 0) {
+ myToken = st.nextToken();
+ myIp = myToken;
+ Logger.printProcess("NetInfo.checkNetworkStatus",
+ "WAN address : " + myIp);
+ }
+ }
+ }
+ catch (IOException e) {
+ Logger.printError("NetInfo.checkNetworkStatus",
+ "I/O error reading " + URLstring
+ + " Exception = " + e);
+ }
+ }
+ return myIp;
+ }
+
+
+
+ /**
+ *
+ * @param args String[]
+ * @invisible
+ */
+ public static void main(String[] args) {
+ NetInfo.wan();
+ }
+}
diff --git a/libraries/oscP5/src/netP5/NetListener.java b/libraries/oscP5/src/netP5/NetListener.java
new file mode 100644
index 0000000..2f2fd2a
--- /dev/null
+++ b/libraries/oscP5/src/netP5/NetListener.java
@@ -0,0 +1,34 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+public interface NetListener {
+
+ public void netEvent(NetMessage theNetMessage);
+
+ public void netStatus(NetStatus theStatus);
+
+}
diff --git a/libraries/oscP5/src/netP5/NetMessage.java b/libraries/oscP5/src/netP5/NetMessage.java
new file mode 100644
index 0000000..71e2822
--- /dev/null
+++ b/libraries/oscP5/src/netP5/NetMessage.java
@@ -0,0 +1,148 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+import java.net.DatagramPacket;
+
+import java.net.InetAddress;
+
+
+/**
+ * @author andreas schlegel
+ */
+public class NetMessage {
+
+ private InetAddress _myInetAddress;
+
+ private int _myPort;
+
+ private String _myString = "";
+
+ private byte[] _myData = new byte[0];
+
+ private TcpClient _myTcpClient;
+
+ private boolean isDatagramPacket = false;
+
+ private int _myProtocol;
+
+ private DatagramPacket _myDatagramPacket;
+
+ private TcpPacket _myTcpPacket;
+
+ protected NetMessage(DatagramPacket theDatagramPacket) {
+ _myDatagramPacket = theDatagramPacket;
+ _myInetAddress = theDatagramPacket.getAddress();
+ _myPort = theDatagramPacket.getPort();
+ _myData = theDatagramPacket.getData();
+ _myProtocol = NetP5.UDP;
+ isDatagramPacket = true;
+ }
+
+
+ protected NetMessage(TcpPacket theTcpPacket) {
+ _myTcpPacket = theTcpPacket;
+ _myInetAddress = theTcpPacket.getTcpConnection().socket().getInetAddress();
+ _myPort = theTcpPacket.getTcpConnection().socket().getPort();
+ _myString = theTcpPacket.getTcpConnection().getString();
+ _myData = theTcpPacket.getData();
+ _myProtocol = NetP5.TCP;
+ _myTcpClient = theTcpPacket.getTcpConnection();
+ }
+
+
+ public TcpPacket getTcpPacket() {
+ return _myTcpPacket;
+ }
+
+ public DatagramPacket getDatagramPacket() {
+ return _myDatagramPacket;
+ }
+
+ protected void setProtocol(int theType) {
+ _myProtocol = theType;
+ }
+
+
+ /**
+ * get the data of the message as bytes.
+ * @return
+ */
+ public byte[] getData() {
+ return _myData;
+ }
+
+
+ /**
+ * get the data the message as string.
+ * @return
+ */
+ public String getString() {
+ if(isDatagramPacket) {
+ return new String(_myData);
+ } else {
+ return _myString;
+ }
+ }
+
+ /**
+ * get the protocol type the message was sent over.
+ * NetP5.TCP or NetP5.UDP are possible.
+ * @return
+ */
+ public int protocol() {
+ return _myProtocol;
+ }
+
+
+ /**
+ * get the port the net message was received at.
+ * @return
+ */
+ public int port() {
+ return _myPort;
+ }
+
+
+
+ public TcpClient tcpConnection() {
+ return _myTcpClient;
+ }
+
+
+
+ public String address() {
+ return _myInetAddress.getHostAddress();
+ }
+
+
+
+ public InetAddress inetAddress() {
+ return _myInetAddress;
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/NetP5.java b/libraries/oscP5/src/netP5/NetP5.java
new file mode 100644
index 0000000..7a5d69c
--- /dev/null
+++ b/libraries/oscP5/src/netP5/NetP5.java
@@ -0,0 +1,55 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+public interface NetP5 {
+
+ String VERSION = "0.9.9";
+
+ boolean DEBUG = true;
+
+ /**
+ * @related setNetworkProtocol ( )
+ */
+ public final static int UDP = 0;
+
+ /**
+ * @related setNetworkProtocol ( )
+ */
+ public final static int MULTICAST = 1;
+
+
+ /**
+ * @related setNetworkProtocol ( )
+ */
+ public final static int TCP = 2;
+ /**
+ * TODO
+ * authentification in AbstractTcpServer and AbstractUdpServer.
+ * TcpServer.authentificationRequired(true/false);
+ * UdpServer.authentificationRequired(true/false);
+ */
+}
diff --git a/libraries/oscP5/src/netP5/NetPlug.java b/libraries/oscP5/src/netP5/NetPlug.java
new file mode 100644
index 0000000..f651fc2
--- /dev/null
+++ b/libraries/oscP5/src/netP5/NetPlug.java
@@ -0,0 +1,222 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+import java.net.DatagramPacket;
+import java.util.Vector;
+
+
+
+class NetPlug {
+
+ protected boolean isEventMethod = false;
+
+ protected Method _myEventMethod;
+
+ protected String _myEventMethodName = "netEvent";
+
+ protected boolean isStatusMethod = false;
+
+ protected Method _myStatusMethod;
+
+ protected String _myStatusMethodName = "netStatus";
+
+ protected Class _myParentClass;
+
+ protected Object _myParent;
+
+ protected Vector _myNetListeners;
+
+ protected boolean isNetListener;
+
+ protected NetPlug(Object theObject) {
+ _myParent = theObject;
+ _myNetListeners = new Vector();
+ checkMethod();
+ }
+
+ protected void invoke(final Object theObject, final Method theMethod,
+ final Object[] theArgs) {
+ try {
+ theMethod.invoke(theObject, theArgs);
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ System.out
+ .println("NetP5 ClassCastException. parsing failed for NetMessage "
+ + e);
+ }
+ }
+
+ protected void checkMethod() {
+ try {
+ checkEventMethod();
+ checkStatusMethod();
+ } catch (Exception e) {
+ }
+ }
+
+ private boolean checkEventMethod() {
+ _myParentClass = _myParent.getClass();
+ if (_myEventMethodName != null) {
+ try {
+ _myEventMethod = _myParentClass.getDeclaredMethod(
+ _myEventMethodName, new Class[] { NetMessage.class });
+ isEventMethod = true;
+ _myEventMethod.setAccessible(true);
+ return true;
+ } catch (SecurityException e1) {
+ e1.printStackTrace();
+ } catch (NoSuchMethodException e1) {
+ System.out
+ .println("### NOTE. no netEvent(NetMessage theMessage) method available.");
+ }
+ }
+ if (_myEventMethod != null) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean checkStatusMethod() {
+ _myParentClass = _myParent.getClass();
+ if (_myStatusMethodName != null) {
+ try {
+ _myStatusMethod = _myParentClass.getDeclaredMethod(
+ _myStatusMethodName, new Class[] { NetStatus.class });
+ isStatusMethod = true;
+ _myStatusMethod.setAccessible(true);
+ return true;
+ } catch (SecurityException e1) {
+ e1.printStackTrace();
+ } catch (NoSuchMethodException e1) {
+ // System.out.println("### NOTE. no netStatus(NetStatus
+ // theMessage) method available.");
+ }
+ }
+ if (_myStatusMethod != null) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ *
+ * @param theDatagramPacket
+ * DatagramPacket
+ * @param thePort
+ * int
+ * @invisible
+ */
+ public void process(final DatagramPacket theDatagramPacket,
+ final int thePort) {
+ if (isNetListener || isEventMethod) {
+ NetMessage n = new NetMessage(theDatagramPacket);
+ for (int i = 0; i < _myNetListeners.size(); i++) {
+ getListener(i).netEvent(n);
+ }
+ if (isEventMethod) {
+ try {
+ invoke(_myParent, _myEventMethod, new Object[] { n });
+ } catch (ClassCastException e) {
+ System.out
+ .println("ChatP5.callMessage ClassCastException. failed to forward ChatMessage.");
+ }
+ }
+ }
+ }
+
+ /**
+ * @invisible
+ * @param theIndex
+ */
+ public void status(int theIndex) {
+ if (isNetListener || isEventMethod) {
+ NetStatus n = new NetStatus(theIndex);
+ for (int i = 0; i < _myNetListeners.size(); i++) {
+ getListener(i).netStatus(n);
+ }
+ if (isStatusMethod) {
+ try {
+ invoke(_myParent, _myStatusMethod, new Object[] { n });
+ } catch (ClassCastException e) {
+ System.out
+ .println("ChatP5.callMessage ClassCastException. failed to forward ChatMessage.");
+ }
+ }
+ }
+ }
+
+ /**
+ *
+ * @param theTcpPacket
+ * TcpPacket
+ * @param thePort
+ * int
+ * @invisible
+ */
+ public void process(final TcpPacket theTcpPacket, final int thePort) {
+
+ if (isNetListener || isEventMethod) {
+ NetMessage n = new NetMessage(theTcpPacket);
+ for (int i = 0; i < _myNetListeners.size(); i++) {
+ getListener(i).netEvent(n);
+ }
+
+ if (isEventMethod) {
+ try {
+ invoke(_myParent, _myEventMethod, new Object[] { n });
+ } catch (ClassCastException e) {
+ System.out
+ .println("NetP5.callMessage ClassCastException. failed to forward ChatMessage.");
+ }
+ }
+ }
+ }
+
+ protected void addListener(NetListener theListener) {
+ _myNetListeners.add(theListener);
+ isNetListener = true;
+ }
+
+ protected void removeListener(NetListener theListener) {
+ _myNetListeners.remove(theListener);
+ isNetListener = (_myNetListeners.size() > 0) ? true : false;
+ }
+
+ protected NetListener getListener(int theIndex) {
+ return ((NetListener) _myNetListeners.get(theIndex));
+ }
+
+ protected Vector getListeners() {
+ return _myNetListeners;
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/NetStatus.java b/libraries/oscP5/src/netP5/NetStatus.java
new file mode 100644
index 0000000..a16e57d
--- /dev/null
+++ b/libraries/oscP5/src/netP5/NetStatus.java
@@ -0,0 +1,65 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+/**
+ * @author andreas schlegel
+ */
+public class NetStatus {
+
+
+ public static int ERROR = -1;
+
+ public static int DEFAULT = 0;
+
+ public static int CONNECTION_CLOSED = 1;
+
+ public static int CONNECTION_REFUSED = 2;
+
+ public static int CONNECTION_TERMINATED = 4;
+
+ public static int CONNECTION_FAILED = 8;
+
+ public static int SERVER_CLOSED = 16;
+
+ public static int CLIENT_CLOSED = 32;
+
+ public static int SEND_FAILED = 64;
+
+ private int _myIndex = DEFAULT;
+
+
+ public NetStatus(int theIndex) {
+ _myIndex = theIndex;
+ }
+
+
+
+ public int id() {
+ return _myIndex;
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/StringUtils.java b/libraries/oscP5/src/netP5/StringUtils.java
new file mode 100644
index 0000000..393bc90
--- /dev/null
+++ b/libraries/oscP5/src/netP5/StringUtils.java
@@ -0,0 +1,705 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+/**
+ * StringUtils Contains some basic utility methods for handling Strings.
+ *
+ * Copyright (C) 2003 Johan Känngård
+ * Contains code Copyright (C) 2001,2002 Stephen Ostermiller
+ * http://ostermiller.org/utils/StringHelper.java.html
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * The GPL is located at: http://www.gnu.org/licenses/gpl.txt
+ *
+ * @author Johan Känngård, http://dev.kanngard.net/
+ * @version 0.4
+ */
+
+package netP5;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Enumeration;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+/**
+ * @invisible
+ */
+public class StringUtils extends Object {
+
+ /**
+ * Protected because this class does only contain static methods.
+ */
+ protected StringUtils() {
+ }
+
+ /**
+ * Returns the substring to the right of the specified substring in the
+ * specified String, starting from the left.
+ *
+ * @param source
+ * the source String to search.
+ * @param searchFor
+ * the substring to search for in source.
+ * @return the substring that is to the right of searchFor in source.
+ */
+ public static String right(String source, String searchFor) {
+ int index = source.indexOf(searchFor) + searchFor.length();
+
+ if (index < 0) {
+ return "";
+ }
+ return source.substring(index);
+ }
+
+ /**
+ * Returns the substring to the right of the specified substring in the
+ * specified String, starting from the right.
+ *
+ * @param source
+ * the source String to search.
+ * @param searchFor
+ * the substring to search for in source.
+ * @return the substring that is to the right of searchFor in source,
+ * starting from the right.
+ */
+ public static String rightBack(String source, String searchFor) {
+ int index = source.lastIndexOf(searchFor) + searchFor.length();
+
+ if (index < 0) {
+ return "";
+ }
+ return source.substring(index);
+ }
+
+ /**
+ * Returns the substring to the left of the specified substring in the
+ * specified String, starting from the left.
+ *
+ * @param source
+ * the source String to search.
+ * @param searchFor
+ * the substring to search for in source.
+ * @return the substring that is to the left of searchFor in source.
+ */
+ public static String left(String source, String searchFor) {
+ int index = source.indexOf(searchFor);
+
+ if (index <= 0) {
+ return "";
+ }
+ return source.substring(0, index);
+ }
+
+ /**
+ * Returns the substring to the left of the specified substring in the
+ * specified String, starting from the right.
+ *
+ * @param source
+ * the source String to search.
+ * @param searchFor
+ * the substring to search for in source.
+ * @return the substring that is to the left of searchFor in source,
+ * starting from the right.
+ */
+ public static String leftBack(String source, String searchFor) {
+ int index = source.lastIndexOf(searchFor);
+
+ if (index <= 0) {
+ return "";
+ }
+ return source.substring(0, index);
+ }
+
+ /**
+ * Returns the substring between two substrings. I.e.
+ * StringUtils.middle("This i a big challenge", "a", "challenge") returns "
+ * big ".
+ *
+ * @param source
+ * the String to search.
+ * @param start
+ * the String to the left to search for, from the left.
+ * @param end
+ * the String to the right to search for, from the right.
+ */
+ public static String middle(String source, String start, String end) {
+ String one = StringUtils.right(source, start);
+ return StringUtils.leftBack(one, end);
+ }
+
+ /**
+ * Returns a substring of a String, starting from specified index and with
+ * specified length. I. e. StringUtils.middle("This is a big challenge", 5,
+ * 6) returns " is a "
+ *
+ * @param source
+ * the String to get a substring from.
+ * @param startIndex
+ * the index in the source String to get the substring from.
+ * @param length
+ * the length of the substring to return.
+ */
+ public static String middle(String source, int startIndex, int length) {
+ return source.substring(startIndex, source.length() - length);
+ }
+
+ /**
+ * Replaces substrings in a string.
+ *
+ * @param source
+ * the source String to replace substrings in.
+ * @param searchFor
+ * the string to search for.
+ * @param replaceWith
+ * the string to replace all found searchFor-substrings with.
+ */
+ public static String replace(String source, String searchFor,
+ String replaceWith) {
+ if (source.length() < 1) {
+ return "";
+ }
+ int p = 0;
+
+ while (p < source.length() && (p = source.indexOf(searchFor, p)) >= 0) {
+ source = source.substring(0, p) + replaceWith
+ + source.substring(p + searchFor.length(), source.length());
+ p += replaceWith.length();
+ }
+ return source;
+ }
+
+ /**
+ * Replaces several substrings in a string.
+ *
+ * @param source
+ * the source String to replace substrings in.
+ * @param searchFor
+ * the substrings to search for.
+ * @param replaceWith
+ * what to replace every searchFor with,
+ */
+ public static String replace(String source, String[] searchFor,
+ String replaceWith) {
+ for (int i = 0; i < searchFor.length; i++) {
+ StringUtils.replace(source, searchFor[i], replaceWith);
+ }
+ return source;
+ }
+
+ /**
+ * Splits every String in an array at the specified lengths.
+ *
+ * Example: <code><pre>
+ * String source[] = { &quot;123a123b123c123d&quot;, &quot;Bla1bla2bla3bla4bla5bla6bla7&quot; };
+ * int[] lengths = { 3, 1, 3, 1 };
+ * Vector result = StringUtils.explode(source, lengths);
+ * Object element = null;
+ * String[] rowElements = null;
+ * Enumeration enum = result.elements();
+ * while (enum.hasMoreElements()) {
+ * element = enum.nextElement();
+ * if (element instanceof String[]) {
+ * rowElements = (String[]) element;
+ * for (int i = 0; i &lt; rowElements.length; i++) {
+ * System.out.println(rowElements[i]);
+ * }
+ * }
+ * }
+ * </pre></code> The result that will be output: 123 a 123 b
+ *
+ * Bla 1 bla 2
+ *
+ * @return a Vector containing String arrays (the rows).
+ */
+ public static Vector explode(String[] source, int[] lengths) {
+ Vector v = new Vector();
+ for (int i = 0; i < source.length; i++) {
+ v.addElement(StringUtils.explode(source[i], lengths));
+ }
+ return v;
+ }
+
+ /**
+ * Splits a string at the specified lengths and returns an array of Strings.
+ *
+ * @param source
+ * the String to split.
+ * @lengths an array of lengths where to split the String.
+ * @return an array of Strings with the same number of elements as the
+ * number of elements in the lengths argument. The length of each
+ * String element is specified by the correspondent lengths array
+ * element.
+ * @throws IndexOutOfBoundsException
+ * if any of the length´s are invalid.
+ */
+ public static String[] explode(String source, int[] lengths) {
+ String[] result = new String[lengths.length];
+ int position = 0;
+ for (int i = 0; i < lengths.length; i++) {
+ if (lengths[i] + position > source.length()) {
+ throw new IndexOutOfBoundsException();
+ }
+ result[i] = source.substring(position, position + lengths[i]);
+ position += lengths[i];
+ }
+ return result;
+ }
+
+ /**
+ * Splits a string into an array with a space as delimiter.
+ *
+ * @param source
+ * the source String to explode.
+ * @return an array of strings that are made out of splitting the string at
+ * the spaces.
+ */
+ public static String[] explode(String source) {
+ return StringUtils.explode(source, " ");
+ }
+
+ /**
+ * Splits a string into an array with the specified delimiter. Original code
+ * Copyright (C) 2001,2002 Stephen Ostermiller
+ * http://ostermiller.org/utils/StringHelper.java.html
+ *
+ * <p>
+ * This method is meant to be similar to the split function in other
+ * programming languages but it does not use regular expressions. Rather the
+ * String is split on a single String literal. It is equivalent to the
+ *
+ * @Explode function in Lotus Notes / Domino.
+ * </p>
+ * <p>
+ * Unlike java.util.StringTokenizer which accepts multiple
+ * character tokens as delimiters, the delimiter here is a single
+ * String literal.
+ * </p>
+ * <p>
+ * Each null token is returned as an empty String. Delimiters are
+ * never returned as tokens.
+ * </p>
+ * <p>
+ * If there is no delimiter because it is either empty or null, the
+ * only element in the result is the original String.
+ * </p>
+ * <p>
+ * StringHelper.explode("1-2-3", "-");<br>
+ * result: {"1", "2", "3"}<br>
+ * StringHelper.explode("-1--2-", "-");<br>
+ * result: {"", "1", ,"", "2", ""}<br>
+ * StringHelper.explode("123", "");<br>
+ * result: {"123"}<br>
+ * StringHelper.explode("1-2---3----4", "--");<br>
+ * result: {"1-2", "-3", "", "4"}<br>
+ * </p>
+ * @param s
+ * the String to explode.
+ * @param delimiter
+ * the delimiter where to split the string.
+ * @return an array of strings that are made out of splitting the string at
+ * the specified delimiter.
+ * @throws NullPointerException
+ * if s is null.
+ */
+ public static String[] explode(String s, String delimiter) {
+ int delimiterLength;
+ int stringLength = s.length();
+
+ if (delimiter == null || (delimiterLength = delimiter.length()) == 0) {
+ return new String[] { s };
+ }
+ // a two pass solution is used because a one pass solution would
+ // require the possible resizing and copying of memory structures
+ // In the worst case it would have to be resized n times with each
+ // resize having a O(n) copy leading to an O(n^2) algorithm.
+ int count = 0;
+ int start = 0;
+ int end;
+
+ while ((end = s.indexOf(delimiter, start)) != -1) {
+ count++;
+ start = end + delimiterLength;
+ }
+ count++;
+
+ String[] result = new String[count];
+ // Scan s again, but this time pick out the tokens
+ count = 0;
+ start = 0;
+ while ((end = s.indexOf(delimiter, start)) != -1) {
+ result[count] = s.substring(start, end);
+ count++;
+ start = end + delimiterLength;
+ }
+ end = stringLength;
+ result[count] = s.substring(start, end);
+ return result;
+ }
+
+ public static String[] slice(int theNum, String[] theStringArray) {
+ if (theNum < theStringArray.length) {
+ String[] t = new String[theStringArray.length - theNum];
+ for (int i = theNum; i < theStringArray.length; i++) {
+ t[i - theNum] = theStringArray[i];
+ }
+ return t;
+ }
+ return theStringArray;
+ }
+
+ /**
+ * Combines an array to a string, using the specified delimiter.
+ *
+ * @param elements
+ * the array to combine to a single string.
+ * @param delimiter
+ * the delimiter to put between the combined elements.
+ * @return the array combined to a string.
+ */
+ public static String implode(Object[] elements, String delimiter) {
+ StringBuffer buffer = new StringBuffer("");
+ for (int i = 0; i < elements.length - 1; i++) {
+ buffer.append((String) elements[i] + delimiter);
+ }
+ buffer.append((String) elements[elements.length - 1]);
+ return buffer.toString();
+ }
+
+ /**
+ * Combines an array to a string, using a comma and a space as delimiter.
+ *
+ * @param elements
+ * the array to combine to a single string.
+ * @return the array combined to a string.
+ */
+ public static String implode(Object[] elements) {
+ return implode(elements, ", ");
+ }
+
+ /**
+ * Used by randomString(int) for valid characters.
+ */
+ protected static String VALID_RANDOM_CHARACTERS = "abcdefghijkmnopqrstuvwxyz"
+ + "ABCDEFGHJKLMNPQRSTUVWXYZ-_.,;:<>()1234567890%&/=?+";
+
+ /**
+ * Removes all instances of a character in a String.
+ *
+ * @param source
+ * the String to remove substring in.
+ * @param searchFor
+ * the character to remove.
+ * @return the replaced String.
+ */
+ public static String remove(String source, char searchFor) {
+ String s = String.valueOf(searchFor);
+ return StringUtils.remove(source, s);
+ }
+
+ /**
+ * Removes all instances of a substring in a String.
+ *
+ * @param source
+ * the String to remove substring in.
+ * @param searchFor
+ * the substring to remove.
+ * @return the replaced String.
+ */
+ public static String remove(String source, String searchFor) {
+
+ return StringUtils.replace(source, searchFor, "");
+ }
+
+ /**
+ * Removes all instances of substrings in a String.
+ *
+ * @param source
+ * the String to remove substrings in.
+ * @param searchFor
+ * an array of substrings to remove from the source String.
+ * @return the replaced String.
+ */
+ public static String remove(String source, String searchFor[]) {
+ return StringUtils.replace(source, searchFor, "");
+ }
+
+ /**
+ * Removes duplicates of a substring in a String. Case sensitive.
+ *
+ * @param source
+ * the String to remove duplicates in.
+ * @param searchFor
+ * the substring that can only occur one at a time, several can
+ * exist in the source though.
+ */
+ public static String removeDuplicates(String source, String searchFor) {
+ StringBuffer result = new StringBuffer("");
+ Enumeration myEnum = new StringTokenizer(source, searchFor, true);
+ String current = "";
+ String previous = "";
+
+ while (myEnum.hasMoreElements()) {
+ current = (String) myEnum.nextElement();
+ if (!current.equals(previous)) {
+ result.append(current);
+ }
+ previous = current;
+ }
+ return result.toString();
+ }
+
+ /**
+ * A utility method to remove duplicate characters from a string. For
+ * example, it would convert "hello" to "helo", and "abcd123abcaaa" to
+ * "abcd123".
+ *
+ * @param source
+ * the String to remove all duplicate characters in.
+ * @return a String with no duplicate characters.
+ */
+ protected String unique(String source) {
+ String result = "";
+
+ for (int k = 0; k < source.length(); k++) {
+ if (result.indexOf(source.charAt(k)) == -1) {
+ result += source.charAt(k);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Prints the stacktrace to a buffer and returns the buffer as a String.
+ *
+ * @param t
+ * the Throwable you wnat to generate a stacktrace for.
+ * @return the stacktrace of the supplied Throwable.
+ */
+ public static String getStackTrace(Throwable t) throws IOException {
+ StringWriter sw = new StringWriter();
+ t.printStackTrace(new PrintWriter(sw));
+ sw.close();
+ return sw.toString();
+ }
+
+ /**
+ * Checks if a String is empty or null.
+ *
+ * @param s
+ * the String to test if it is empty or null.
+ * @return true if the String is null or empty ("").
+ */
+ public static boolean isEmpty(String s) {
+ if (s == null) {
+ return true;
+ }
+ return s.equals("");
+ }
+
+ /**
+ * Creates a string of the given width with the given string left justified
+ * (followed by an appropriate number of spaces).
+ *
+ * @param source
+ * the String to justify
+ * @param length
+ * the length of the resulting String
+ * @return the source String padded with spaces to fill up the length. If
+ * the source string is longer than the length argument, the source
+ * String is returned.
+ */
+ public static String leftJustify(String source, int length) {
+ if (source.length() >= length) {
+ return source;
+ }
+ return StringUtils.spaces(length - source.length()) + source;
+ }
+
+ /**
+ * Creates a string of the given width with the given string right justified
+ * (with an appropriate number of spaces before it).
+ *
+ * @param source
+ * the String to justify
+ * @param length
+ * the length of the resulting String
+ * @return the source String padded with spaces to fill up the length. If
+ * the source string is longer than the length argument, the source
+ * String is returned.
+ */
+ public static String rightJustify(String source, int length) {
+ if (source.length() >= length) {
+ return source;
+ }
+
+ return source + StringUtils.spaces(length - source.length());
+ }
+
+ /**
+ * Creates a string of the given width with the given string left justified
+ * (padded by an appropriate number of spaces in front and after it).
+ *
+ * @param source
+ * the String to justify
+ * @param length
+ * the length of the resulting String
+ * @return the source String padded with spaces to fill up the length. If
+ * the source string is longer than the length argument, the source
+ * String is returned.
+ */
+ public static String centerJustify(String source, int length) {
+ if (source.length() >= length) {
+ return source;
+ }
+ int leftLength = (length - source.length()) / 2;
+ int rightLength = length - (leftLength + source.length());
+ return StringUtils.spaces(leftLength) + source
+ + StringUtils.spaces(rightLength);
+ }
+
+ /**
+ * Returns a String with the specified number of spaces.
+ *
+ * @param length
+ * the number of spaces to return.
+ * @return a String consisting of the specified number of spaces.
+ */
+ public static String spaces(int length) {
+ return duplicate(" ", length);
+ }
+
+ /**
+ * Returns a String with the source String copied the specified number of
+ * times.
+ *
+ * @param source
+ * the source String to copy.
+ * @param length
+ * the number of copies of source to return.
+ * @return a String consisting of the specified source String copied the
+ * specified number of times.
+ */
+ public static String duplicate(String source, int copies) {
+ StringBuffer buf = new StringBuffer();
+ for (int i = 0; i < copies; i++) {
+ buf.append(source);
+ }
+ return buf.toString();
+ }
+
+ /**
+ * Switches the case of the supplied String. Any lower case characters will
+ * be uppercase and vice versa.
+ *
+ * @param source
+ * the String to switch case of.
+ * @return the supplied String with switched case.
+ */
+ public static String switchCase(String source) {
+ char[] sourceArray = source.toCharArray();
+ StringBuffer result = new StringBuffer();
+
+ for (int i = 0; i < sourceArray.length; i++) {
+ result.append(StringUtils.switchCase(sourceArray[i]));
+ }
+ return result.toString();
+ }
+
+ /**
+ * Switches the case of the supplied character. A lower case character will
+ * be uppercase and vice versa.
+ *
+ * @param source
+ * the character to switch case of.
+ * @return the supplied character with switched case.
+ */
+ public static char switchCase(char source) {
+ if (Character.isUpperCase(source)) {
+ return Character.toLowerCase(source);
+ }
+ if (Character.isLowerCase(source)) {
+ return Character.toUpperCase(source);
+ }
+ return source;
+ }
+
+ public static int getInt(String theString) {
+ int i = 0;
+ try {
+ i = Integer.valueOf(theString).intValue();
+ } catch (Exception iex) {
+ }
+ return i;
+ }
+
+ public static float getFloat(String theString) {
+ float i = 0;
+ try {
+ i = Float.valueOf(theString).floatValue();
+ } catch (Exception iex) {
+ }
+ return i;
+ }
+
+ public static String arrayToString(String[] theArray) {
+ String myString = "";
+ for (int i = 0; i < theArray.length; i++) {
+ myString += theArray[i] + ",";
+ }
+ myString = myString.substring(0, myString.length() - 1);
+ return myString;
+ }
+
+
+
+ public static String arrayToString(String[] theArray, int theStart, int theEnd) {
+ String myString = "";
+ if (theArray.length > theStart) {
+ for (int i = theStart; i < theEnd; i++) {
+ myString += theArray[i]+" ";
+ }
+ myString = myString.substring(0,myString.length()-1);
+ }
+ return myString;
+ }
+
+
+}
diff --git a/libraries/oscP5/src/netP5/TcpClient.java b/libraries/oscP5/src/netP5/TcpClient.java
new file mode 100644
index 0000000..05515ad
--- /dev/null
+++ b/libraries/oscP5/src/netP5/TcpClient.java
@@ -0,0 +1,214 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+import java.net.Socket;
+
+
+/**
+ * @author andreas schlegel
+ */
+public class TcpClient
+ extends AbstractTcpClient {
+
+ protected final static int NULL = -1;
+
+ protected final static int LISTENER = 0;
+
+ protected final static int EVENT = 1;
+
+ private int _myMode = NULL;
+
+ private Object _myParent;
+
+ private NetPlug _myNetPlug;
+
+ private String _myName = "";
+
+ /**
+ *
+ * @param theAddress String
+ * @param thePort int
+ */
+
+ public TcpClient(final Object theObject,
+ final String theAddress,
+ final int thePort) {
+ super(theAddress, thePort);
+ _myParent = theObject;
+ initEvent();
+ }
+
+
+ /**
+ *
+ * @param theObject Object
+ * @param theAddress String
+ * @param thePort int
+ * @param theMode int
+ */
+ public TcpClient(final Object theObject,
+ final String theAddress,
+ final int thePort,
+ final int theMode
+ ) {
+ super(theAddress, thePort, theMode);
+ _myParent = theObject;
+ initEvent();
+ }
+
+
+ /**
+ *
+ * @param theListener TcpPacketListener
+ * @param theServerAddress String
+ * @param theServerPort int
+ * @param theMode int
+ */
+ public TcpClient(TcpPacketListener theListener,
+ String theServerAddress,
+ int theServerPort,
+ int theMode) {
+ super(theListener, theServerAddress, theServerPort, theMode);
+ _myMode = LISTENER;
+ }
+
+
+
+ /**
+ *
+ * @param theNetAddress NetAddress
+ */
+ public TcpClient(final Object theObject,
+ final NetAddress theNetAddress) {
+ super(theNetAddress.address(), theNetAddress.port());
+ _myParent = theObject;
+ initEvent();
+ }
+
+
+ /**
+ *
+ * @param theNetAddress NetAddress
+ */
+ public TcpClient(final NetAddress theNetAddress) {
+ super(theNetAddress.address(), theNetAddress.port());
+ }
+
+
+
+ /**
+ *
+ * @param theAddress String
+ * @param thePort int
+ */
+ public TcpClient(final String theAddress,
+ final int thePort) {
+ super(theAddress, thePort);
+ }
+
+
+
+ /**
+ * @invisible
+ */
+ public TcpClient(AbstractTcpServer theTcpServer,
+ Socket theSocket,
+ TcpPacketListener theTcpPacketListener,
+ int theServerPort,
+ int theMode) {
+ super(theTcpServer,
+ theSocket,
+ theTcpPacketListener,
+ theServerPort,
+ theMode);
+ _myMode = LISTENER;
+ }
+
+
+
+ private void initEvent() {
+ _myMode = EVENT;
+ _myNetPlug = new NetPlug(_myParent);
+ }
+
+
+ /**
+ * @invisible
+ * @param theIndex int
+ */
+ public void handleStatus(int theIndex) {
+ switch (_myMode) {
+ case (EVENT):
+ _myNetPlug.status(theIndex);
+ break;
+ case (LISTENER):
+ _myTcpPacketListener.status(theIndex);
+ break;
+ case (NULL):
+ Logger.printDebug("TcpClient.handleStatus()","net status id " + theIndex);
+ break;
+ }
+ }
+
+
+ /**
+ * @invisible
+ */
+ public void handleInput() {
+ switch (_myMode) {
+ case (EVENT):
+ _myNetPlug.process(new TcpPacket(this, _myStringBuffer, _myBytes),_myServerPort);
+ break;
+ case (LISTENER):
+ _myTcpPacketListener.process(new TcpPacket(this, _myStringBuffer, _myBytes),_myServerPort);
+ break;
+ case (NULL):
+ Logger.printDebug("TcpClient.handleInput()","received a message : " + _myStringBuffer.toString());
+ break;
+ }
+ }
+
+
+ /**
+ *
+ * @return String
+ */
+ public String name() {
+ return _myName;
+ }
+
+
+ /**
+ *
+ * @param theName String
+ */
+ public void setName(String theName) {
+ _myName = theName;
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/TcpPacket.java b/libraries/oscP5/src/netP5/TcpPacket.java
new file mode 100644
index 0000000..c3aacb5
--- /dev/null
+++ b/libraries/oscP5/src/netP5/TcpPacket.java
@@ -0,0 +1,67 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+/**
+ * @invisible
+ */
+public class TcpPacket {
+
+ private final TcpClient _myTcpClient;
+
+ private final StringBuffer _myStringBuffer;
+
+ private final byte[] _myData;
+
+ public TcpPacket(final TcpClient theTcpClient,
+ final StringBuffer theBuffer,
+ final byte[] theBytes) {
+ _myStringBuffer = theBuffer;
+ _myTcpClient = theTcpClient;
+ _myData = theBytes;
+ }
+
+
+ public TcpClient getTcpConnection() {
+ return _myTcpClient;
+ }
+
+
+ public String getString() {
+ return _myStringBuffer.toString();
+ }
+
+
+ public StringBuffer getStringBuffer() {
+ return _myStringBuffer;
+ }
+
+
+ public byte[] getData() {
+ return _myData;
+ }
+
+}
diff --git a/libraries/oscP5/src/netP5/TcpPacketListener.java b/libraries/oscP5/src/netP5/TcpPacketListener.java
new file mode 100644
index 0000000..5587b19
--- /dev/null
+++ b/libraries/oscP5/src/netP5/TcpPacketListener.java
@@ -0,0 +1,38 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+/**
+ * @invisible
+ */
+public interface TcpPacketListener {
+
+ public void process(TcpPacket theTcpPacket, int thePort);
+
+ public void status(int theStatus);
+
+ public void remove(AbstractTcpClient theClient);
+}
diff --git a/libraries/oscP5/src/netP5/TcpServer.java b/libraries/oscP5/src/netP5/TcpServer.java
new file mode 100644
index 0000000..af832a3
--- /dev/null
+++ b/libraries/oscP5/src/netP5/TcpServer.java
@@ -0,0 +1,177 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.util.Vector;
+
+
+
+/**
+ * @author andreas schlegel
+ */
+public class TcpServer
+ extends AbstractTcpServer {
+
+ protected NetPlug _myNetPlug;
+
+ protected Object _myParent;
+
+ protected final static int NULL = -1;
+
+ protected final static int LISTENER = 0;
+
+ protected final static int EVENT = 1;
+
+ protected int _myMode = NULL;
+
+ /**
+ * @invisible
+ * @param thePort int
+ */
+ public TcpServer(final int thePort) {
+ super(thePort, AbstractTcpServer.MODE_READLINE);
+ }
+
+
+ /**
+ *
+ * @param theObject Object
+ * @param thePort int
+ */
+ public TcpServer(final Object theObject,
+ final int thePort) {
+ super(thePort, AbstractTcpServer.MODE_READLINE);
+ _myParent = theObject;
+ initEvent();
+ }
+
+
+ /**
+ *
+ * @param theObject Object
+ * @param thePort int
+ * @param theMode int
+ */
+ public TcpServer(final Object theObject,
+ final int thePort,
+ final int theMode) {
+ super(thePort, theMode);
+ _myParent = theObject;
+ initEvent();
+ }
+
+
+ /**
+ *
+ * @param thePort int
+ * @param theMode int
+ */
+ public TcpServer(final int thePort,
+ final int theMode) {
+ super(thePort, theMode);
+ }
+
+
+ /**
+ * @invisible
+ * @param theTcpPacketListener TcpPacketListener
+ * @param thePort int
+ * @param theMode int
+ */
+ public TcpServer(final TcpPacketListener theTcpPacketListener,
+ final int thePort,
+ final int theMode) {
+ super(theTcpPacketListener, thePort, theMode);
+ _myMode = LISTENER;
+ }
+
+
+
+ private void initEvent() {
+ _myMode = EVENT;
+ _myNetPlug = new NetPlug(_myParent);
+// _myEventListener.checkMethod();
+
+ }
+
+
+ /**
+ * @invisible
+ * @param thePacket TcpPacket
+ * @param thePort int
+ */
+ public void handleInput(final TcpPacket thePacket,
+ final int thePort) {
+ switch (_myMode) {
+ case (EVENT):
+ _myNetPlug.process(thePacket, thePort);
+ break;
+ case (LISTENER):
+ break;
+ case (NULL):
+ System.out.println("received a message : " + thePacket.getString());
+ break;
+ }
+ }
+
+
+ /**
+ * @invisible
+ * @param theIndex int
+ */
+ public void status(final int theIndex) {
+ switch (_myMode) {
+ case (EVENT):
+ _myNetPlug.status(theIndex);
+ break;
+ case (LISTENER):
+ case (NULL):
+ System.out.println("### status id : " + theIndex);
+ break;
+ }
+ }
+
+
+
+ public void addListener(NetListener theListener) {
+ _myNetPlug.addListener(theListener);
+ }
+
+
+ public void removeListener(NetListener theListener) {
+ _myNetPlug.removeListener(theListener);
+ }
+
+ public NetListener getListener(int theIndex) {
+ return _myNetPlug.getListener(theIndex);
+ }
+
+ public Vector getListeners() {
+ return _myNetPlug.getListeners();
+ }
+
+
+}
diff --git a/libraries/oscP5/src/netP5/UdpClient.java b/libraries/oscP5/src/netP5/UdpClient.java
new file mode 100644
index 0000000..cb748ef
--- /dev/null
+++ b/libraries/oscP5/src/netP5/UdpClient.java
@@ -0,0 +1,49 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+
+/**
+ * @author andreas schlegel
+ */
+public class UdpClient extends AbstractUdpClient {
+
+ public UdpClient() {
+ super();
+ }
+
+
+ public UdpClient(String theAddr, int thePort) {
+ super(theAddr, thePort);
+ }
+
+
+ public UdpClient(NetAddress theNetAddress) {
+ super(theNetAddress.address(), theNetAddress.port);
+ }
+
+
+}
diff --git a/libraries/oscP5/src/netP5/UdpPacketListener.java b/libraries/oscP5/src/netP5/UdpPacketListener.java
new file mode 100644
index 0000000..9283f23
--- /dev/null
+++ b/libraries/oscP5/src/netP5/UdpPacketListener.java
@@ -0,0 +1,41 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.net.DatagramPacket;
+
+/**
+ * @invisible
+ * @author andreas schlegel
+ */
+public interface UdpPacketListener {
+ /**
+ *
+ * @param theDatagramPacket
+ * DatagramPacket
+ */
+ public void process(DatagramPacket theDatagramPacket, int thePort);
+}
diff --git a/libraries/oscP5/src/netP5/UdpServer.java b/libraries/oscP5/src/netP5/UdpServer.java
new file mode 100644
index 0000000..ce4fb0d
--- /dev/null
+++ b/libraries/oscP5/src/netP5/UdpServer.java
@@ -0,0 +1,151 @@
+/**
+ * A network library for processing which supports UDP, TCP and Multicast.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package netP5;
+
+import java.net.DatagramPacket;
+import java.util.Vector;
+
+
+/**
+ *
+ * @author andreas schlegel
+ *
+ */
+public class UdpServer extends AbstractUdpServer implements UdpPacketListener {
+
+ protected Object _myParent;
+
+ protected NetPlug _myNetPlug;
+
+ /**
+ * new UDP server.
+ * by default the buffersize of a udp packet is 1536 bytes. you can set
+ * your own individual buffersize with the third parameter int in the constructor.
+ * @param theObject Object
+ * @param thePort int
+ * @param theBufferSize int
+ */
+ public UdpServer(
+ final Object theObject,
+ final int thePort,
+ final int theBufferSize) {
+ super(null, thePort, theBufferSize);
+ _myParent = theObject;
+ _myListener = this;
+ _myNetPlug = new NetPlug(_myParent);
+ start();
+ }
+
+
+
+ public UdpServer(
+ final Object theObject,
+ final int thePort) {
+ super(null, thePort, 1536);
+ _myParent = theObject;
+ _myListener = this;
+ _myNetPlug = new NetPlug(_myParent);
+ start();
+ }
+
+
+ /**
+ * @invisible
+ * @param theListener
+ * @param thePort
+ * @param theBufferSize
+ */
+ public UdpServer(
+ final UdpPacketListener theListener,
+ final int thePort,
+ final int theBufferSize) {
+ super(theListener, thePort, theBufferSize);
+ }
+
+
+ /**
+ * @invisible
+ * @param theListener
+ * @param theAddress
+ * @param thePort
+ * @param theBufferSize
+ */
+ protected UdpServer(
+ final UdpPacketListener theListener,
+ final String theAddress,
+ final int thePort,
+ final int theBufferSize) {
+ super(theListener, theAddress, thePort, theBufferSize);
+ }
+
+
+ /**
+ * @invisible
+ * @param thePacket DatagramPacket
+ * @param thePort int
+ */
+ public void process(DatagramPacket thePacket, int thePort) {
+ _myNetPlug.process(thePacket,thePort);
+ }
+
+
+ /**
+ * add a listener to the udp server. each incoming packet will be forwarded
+ * to the listener.
+ * @param theListener
+ * @related NetListener
+ */
+ public void addListener(NetListener theListener) {
+ _myNetPlug.addListener(theListener);
+ }
+
+ /**
+ *
+ * @param theListener
+ * @related NetListener
+ */
+ public void removeListener(NetListener theListener) {
+ _myNetPlug.removeListener(theListener);
+ }
+
+ /**
+ *
+ * @param theIndex
+ * @related NetListener
+ * @return
+ */
+ public NetListener getListener(int theIndex) {
+ return _myNetPlug.getListener(theIndex);
+ }
+
+ /**
+ * @related NetListener
+ * @return
+ */
+ public Vector getListeners() {
+ return _myNetPlug.getListeners();
+ }
+}
diff --git a/libraries/oscP5/src/oscP5/OscArgument.java b/libraries/oscP5/src/oscP5/OscArgument.java
new file mode 100644
index 0000000..9b09248
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscArgument.java
@@ -0,0 +1,228 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+
+package oscP5;
+
+/**
+ * an osc argument contains one value of values from a received osc message.
+ * you can convert the value into the required format, e.g. from Object to int
+ * theOscMessage.get(0).intValue();
+ * @related OscMessage
+ * @example oscP5oscArgument
+ */
+public class OscArgument {
+ protected Object value;
+
+ /**
+ * @invisible
+ */
+ public OscArgument() {}
+
+ /**
+ * get the int value of the osc argument.
+ * @return int
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public int intValue() {
+ return ((Integer) value).intValue();
+ }
+
+ /**
+ * get the char value of the osc argument.
+ * @return char
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public char charValue() {
+ return ((Character) value).charValue();
+ }
+
+ /**
+ * get the float value of the osc argument.
+ * @return float
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public float floatValue() {
+ return ((Float) value).floatValue();
+ }
+
+ /**
+ * get the double value of the osc argument.
+ * @return double
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public double doubleValue() {
+ return ((Double) value).doubleValue();
+ }
+
+ /**
+ * get the long value of the osc argument.
+ * @return long
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public long longValue() {
+ return ((Long) value).longValue();
+ }
+
+ /**
+ * get the boolean value of the osc argument.
+ * @return boolean
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public boolean booleanValue() {
+ return ((Boolean) value).booleanValue();
+ }
+
+ /**
+ * get the String value of the osc argument.
+ * @return String
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public String stringValue() {
+ return ((String) value);
+ }
+
+
+ /**
+ *
+ * @return String
+ */
+ public String toString() {
+ return ((String) value);
+ }
+
+ /**
+ * get the byte array of the osc argument.
+ * @return byte[]
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public byte[] bytesValue() {
+ return ((byte[]) value);
+ }
+
+ /**
+ * get the byte array (blob) of the osc argument.
+ * @return byte[]
+ * @related intValue ( )
+ * @related floatValue ( )
+ * @related charValue ( )
+ * @related stringValue ( )
+ * @related doubleValue ( )
+ * @related longValue ( )
+ * @related booleanValue ( )
+ * @related bytesValue ( )
+ * @related blobValue ( )
+ * @example oscP5parsing
+ */
+ public byte[] blobValue() {
+ return ((byte[]) value);
+ }
+
+
+ /**
+ *
+ * @return int[]
+ */
+ public int[] midiValue() {
+ int[] myInt = new int[4];
+ byte[] myByte = (byte[]) value;
+ for (int i = 0; i < 4; i++) {
+ myInt[i] = (int) (myByte[i]);
+ }
+ return (myInt);
+ }
+}
diff --git a/libraries/oscP5/src/oscP5/OscBundle.java b/libraries/oscP5/src/oscP5/OscBundle.java
new file mode 100644
index 0000000..d1d79f6
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscBundle.java
@@ -0,0 +1,189 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+
+import java.net.DatagramPacket;
+import java.util.ArrayList;
+import netP5.Bytes;
+import netP5.TcpPacket;
+
+
+/**
+ * Osc Bundles are collections of Osc Messages. use bundles to send multiple
+ * osc messages to one destination. the OscBundle timetag is supported for
+ * sending but not for receiving yet.
+ * @related OscMessage
+ * @related OscP5
+ * @example oscP5bundle
+ */
+public class OscBundle extends OscPacket {
+
+ protected static final int BUNDLE_HEADER_SIZE = 16;
+
+ protected static final byte[] BUNDLE_AS_BYTES = {0x23, 0x62, 0x75, 0x6E,
+ 0x64, 0x6C, 0x65, 0x00};
+
+ private int _myMessageSize = 0;
+
+ /**
+ * instantiate a new OscBundle object.
+ */
+ public OscBundle() {
+ messages = new ArrayList<OscMessage>();
+ }
+
+
+ protected OscBundle(DatagramPacket theDatagramPacket) {
+ inetAddress = theDatagramPacket.getAddress();
+ port = theDatagramPacket.getPort();
+ hostAddress = inetAddress.toString();
+ _myMessageSize = parseBundle(theDatagramPacket.getData(), inetAddress, port, null);
+ _myType = BUNDLE;
+ }
+
+
+ protected OscBundle(TcpPacket thePacket) {
+ _myTcpClient = thePacket.getTcpConnection();
+ inetAddress = _myTcpClient.netAddress().inetaddress();
+ port = _myTcpClient.netAddress().port();
+ hostAddress = inetAddress.toString();
+ _myMessageSize = parseBundle(thePacket.getData(), inetAddress, port, _myTcpClient);
+ _myType = BUNDLE;
+ }
+
+
+ /**
+ * add an osc message to the osc bundle.
+ * @param theOscMessage OscMessage
+ */
+ public void add(OscMessage theOscMessage) {
+ messages.add(new OscMessage(theOscMessage));
+ _myMessageSize = messages.size();
+ }
+
+
+ /**
+ * clear and reset the osc bundle for reusing.
+ * @example oscP5bundle
+ */
+ public void clear() {
+ messages = new ArrayList<OscMessage>();
+ }
+
+
+ /**
+ * remove an OscMessage from an OscBundle.
+ * @param theIndex int
+ */
+ public void remove(int theIndex) {
+ messages.remove(theIndex);
+ }
+
+
+ /**
+ *
+ * @param theOscMessage OscMessage
+ */
+ public void remove(OscMessage theOscMessage) {
+ messages.remove(theOscMessage);
+ }
+
+
+ /**
+ * request an osc message inside the osc bundle array,
+ * @param theIndex int
+ * @return OscMessage
+ */
+ public OscMessage getMessage(int theIndex) {
+ return messages.get(theIndex);
+ }
+
+
+ /**
+ * get the size of the osc bundle array which contains the osc messages.
+ * @return int
+ * @example oscP5bundle
+ */
+ public int size() {
+ return _myMessageSize;
+ }
+
+
+ /**
+ * set the timetag of an osc bundle. timetags are used to synchronize events and
+ * execute events at a given time in the future or immediately. timetags can
+ * only be set for osc bundles, not for osc messages. oscP5 supports receiving
+ * timetags, but does not queue messages for execution at a set time.
+ * @param theTime long
+ * @example oscP5bundle
+ */
+ public void setTimetag(long theTime) {
+ final long secsSince1900 = theTime / 1000 + TIMETAG_OFFSET;
+ final long secsFractional = ((theTime % 1000) << 32) / 1000;
+ timetag = (secsSince1900 << 32) | secsFractional;
+ }
+
+
+ /**
+ * returns the current time in milliseconds. use with setTimetag.
+ * @return long
+ */
+ public static long now() {
+ return System.currentTimeMillis();
+ }
+
+
+ /**
+ * returns a timetag as byte array.
+ * @return byte[]
+ */
+ public byte[] timetag() {
+ return Bytes.toBytes(timetag);
+ }
+
+
+ /**
+ * @todo get timetag as Date
+ */
+
+ /**
+ *
+ * @return byte[]
+ * @invisible
+ */
+ public byte[] getBytes() {
+ byte[] myBytes = new byte[0];
+ myBytes = Bytes.append(myBytes, BUNDLE_AS_BYTES);
+ myBytes = Bytes.append(myBytes, timetag());
+ for (int i = 0; i < size(); i++) {
+ byte[] tBytes = getMessage(i).getBytes();
+ myBytes = Bytes.append(myBytes, Bytes.toBytes(tBytes.length));
+ myBytes = Bytes.append(myBytes, tBytes);
+ }
+ return myBytes;
+ }
+}
diff --git a/libraries/oscP5/src/oscP5/OscEventListener.java b/libraries/oscP5/src/oscP5/OscEventListener.java
new file mode 100644
index 0000000..18c9e2c
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscEventListener.java
@@ -0,0 +1,37 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+/**
+ *
+ * @invisible
+ */
+public interface OscEventListener {
+
+ public void oscEvent(OscMessage theMessage);
+
+ public void oscStatus(OscStatus theStatus);
+}
diff --git a/libraries/oscP5/src/oscP5/OscIn.java b/libraries/oscP5/src/oscP5/OscIn.java
new file mode 100644
index 0000000..509b8e2
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscIn.java
@@ -0,0 +1,89 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+import java.util.ArrayList;
+
+/**
+ * OscIn is deprecated. for compatibility with previous versions of oscP5 OscIn
+ * is still available.
+ *
+ * @invisible
+ */
+@Deprecated
+public class OscIn extends OscMessage {
+
+ public OscIn(OscMessage theOscMessage) {
+ super(theOscMessage);
+ }
+
+ public int getInt(int thePos) {
+ return get(thePos).intValue();
+ }
+
+ public char getChar(int thePos) {
+ return get(thePos).charValue();
+ }
+
+ public float getFloat(int thePos) {
+ return get(thePos).floatValue();
+ }
+
+ public String getString(int thePos) {
+ return get(thePos).stringValue();
+ }
+
+ public byte[] getBlob(int thePos) {
+ return get(thePos).bytesValue();
+ }
+
+ public int[] getMidiBytes(int thePos) {
+ return get(thePos).midiValue();
+ }
+
+ public int[] getMidi(int thePos) {
+ return get(thePos).midiValue();
+ }
+
+ public boolean getBoolean(int thePos) {
+ return get(thePos).booleanValue();
+ }
+
+ /**
+ * this is only for christian's and jens' table communication with vvvv.
+ *
+ * @return ArrayList
+ */
+ public ArrayList getDataList() {
+ ArrayList myList = new ArrayList();
+ Object[] myArguments = arguments();
+ for (int i = 0; i < myArguments.length; i++) {
+ myList.add(myArguments[i]);
+ }
+ return myList;
+ }
+
+}
diff --git a/libraries/oscP5/src/oscP5/OscMessage.java b/libraries/oscP5/src/oscP5/OscMessage.java
new file mode 100644
index 0000000..153cfba
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscMessage.java
@@ -0,0 +1,764 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+
+import java.net.DatagramPacket;
+
+import java.net.InetAddress;
+import netP5.Bytes;
+import netP5.Logger;
+import netP5.TcpClient;
+import netP5.TcpPacket;
+
+
+/**
+ * An OSC message consists of an OSC Address Pattern, an OSC Type Tag String
+ * and the OSC arguments.
+ *
+ * @related OscBundle
+ * @example oscP5sendReceive
+ */
+public class OscMessage extends OscPacket {
+
+ protected final OscArgument _myOscArgument = new OscArgument();
+
+ protected boolean isPlugged = false;
+
+ protected OscMessage(final DatagramPacket theDatagramPacket) {
+ inetAddress = theDatagramPacket.getAddress();
+ port = theDatagramPacket.getPort();
+ hostAddress = inetAddress.toString();
+ parseMessage(theDatagramPacket.getData());
+ _myType = MESSAGE;
+ }
+
+
+ protected OscMessage(final TcpPacket thePacket) {
+ _myTcpClient = thePacket.getTcpConnection();
+ inetAddress = _myTcpClient.netAddress().inetaddress();
+ port = _myTcpClient.netAddress().port();
+ hostAddress = inetAddress.toString();
+ parseMessage(thePacket.getData());
+ _myType = MESSAGE;
+ }
+
+
+ /**
+ *
+ * @param theOscMessage OscMessage
+ * @invisible
+ */
+
+ public OscMessage(final OscMessage theOscMessage) {
+ inetAddress = theOscMessage.inetAddress;
+ port = theOscMessage.port;
+ hostAddress = theOscMessage.hostAddress;
+ _myTcpClient = theOscMessage.tcpConnection();
+ _myAddrPattern = theOscMessage._myAddrPattern;
+ _myTypetag = theOscMessage._myTypetag;
+ _myData = theOscMessage._myData;
+ _myArguments = theOscMessage._myArguments;
+ isValid = true;
+ }
+
+
+ /**
+ *
+ * @param theAddrPattern
+ * String
+ */
+ public OscMessage(final String theAddrPattern) {
+ this(theAddrPattern, new Object[0]);
+ }
+
+
+ /**
+ *
+ * @param theAddrInt
+ * int
+ */
+ public OscMessage(final int theAddrInt) {
+ this(theAddrInt, new Object[0]);
+ }
+
+
+ /**
+ *
+ * @param theAddrPattern String
+ * @param theArguments
+ * Object[]
+ */
+ public OscMessage(final String theAddrPattern,
+ final Object[] theArguments) {
+ init();
+ setAddrPattern(theAddrPattern);
+ setArguments(theArguments);
+ }
+
+
+ /**
+ *
+ * @param theAddrPattern int
+ * @param theArguments Object[]
+ */
+ public OscMessage(final int theAddrPattern,
+ final Object[] theArguments) {
+ init();
+ setAddrPattern(theAddrPattern);
+ setArguments(theArguments);
+ }
+
+
+ protected OscMessage(final byte[] theBytes,
+ final InetAddress theInetAddress,
+ final int thePort,
+ final TcpClient theClient
+ ) {
+ _myTcpClient = theClient;
+ inetAddress = theInetAddress;
+ port = thePort;
+ hostAddress = inetAddress.toString();
+ parseMessage(theBytes);
+ }
+
+ protected OscMessage(final byte[] theBytes,
+ final InetAddress theInetAddress,
+ final int thePort,
+ final long theTimetag,
+ final TcpClient theClient
+ ) {
+ this(theBytes,theInetAddress,thePort,theClient);
+ timetag = theTimetag;
+ }
+
+
+
+ protected void init() {
+ _myTypetag = new byte[0];
+ _myData = new byte[0];
+ }
+
+
+ /**
+ * clear and reset an OscMessage for reuse.
+ */
+ public void clear() {
+ init();
+ setAddrPattern("");
+ setArguments(new Object[0]);
+ }
+
+ /**
+ * clears the arguments in a message,
+ * but keeps the address the address pattern.
+ *
+ */
+ public void clearArguments() {
+ _myTypetag = new byte[0];
+ _myData = new byte[0];
+ _myArguments = new Object[0];
+ }
+
+
+ /**
+ * TODO
+ * set should enable the programmer to set values
+ * of an existing osc message.
+ */
+ public void set(final int theIndex, final Object theObject) {
+// byte[] myPreTypetag = new byte[theIndex];
+// byte[] myPostTypetag = new byte[_myTypetag.length - theIndex];
+ System.out.println("Typetag:\t" + _myTypetag.length);
+ System.out.println("Arguments:\t");
+ Bytes.printBytes(_myData);
+ System.out.println(_myArguments.length);
+ for(int i=0;i<_myArguments.length;i++) {
+ System.out.println(_myArguments[i]);
+ }
+ }
+
+
+ /**
+ *
+ * @param theTypeTag
+ * String
+ * @return boolean
+ * @example oscP5parsing
+ */
+ public boolean checkTypetag(final String theTypeTag) {
+ return theTypeTag.equals(typetag());
+ }
+
+
+ /**
+ * check if an address pattern equals a specific address pattern
+ * you are looking for. this is usually used when parsing an osc message.
+ * e.g. if(theOscMessage.checkAddrPattern("/test")==true) {...}
+ * @param theAddrPattern
+ * String
+ * @return boolean
+ * @example oscP5parsing
+ */
+ public boolean checkAddrPattern(final String theAddrPattern) {
+ return theAddrPattern.equals(addrPattern());
+ }
+
+
+ /**
+ * set the address pattern of an osc message. you can set
+ * a string or an int as address pattern.tnt might be useful for
+ * supercollider users. oscP5 does support ints and strings as
+ * address patterns when sending and receiving messages.
+ * @param theAddrPattern
+ * String
+ */
+ public void setAddrPattern(final String theAddrPattern) {
+ _myAddrPattern = theAddrPattern.getBytes();
+ }
+
+
+ /**
+ *
+ * @param theAddrPattern
+ * int
+ */
+ public void setAddrPattern(final int theAddrPattern) {
+ _myAddrPattern = Bytes.toBytes(theAddrPattern);
+ }
+
+
+ /**
+ * set the arguments of the osc message using an object array.
+ * with version 0.9.4 the existing arguments are overwritten,
+ * to add the arguments to the argument list, use addArguments(Object[])
+ * @param theArguments
+ * Object[]
+ */
+ public void setArguments(final Object[] theArguments) {
+ clearArguments();
+ addArguments(theArguments);
+ }
+
+ /**
+ * add a list of arguments to an exisiting set of arguments.
+ * to overwrite the existing argument list, use setArguments(Object[])
+ *
+ * @param theArguments
+ */
+ public OscMessage addArguments(final Object[] theArguments) {
+ return add(theArguments);
+ }
+
+
+ public String addrPattern() {
+ return Bytes.getAsString(_myAddrPattern);
+ }
+
+
+ /**
+ * returns the address pattern of the osc message as int.
+ * @return int
+ */
+ public int addrInt() {
+ return _myAddrInt;
+ }
+
+
+ /**
+ * returns the typetag of the osc message. e.g. the message contains
+ * 3 floats then the typetag would be "fff"
+ * @return String
+ */
+ public String typetag() {
+ return Bytes.getAsString(_myTypetag);
+ }
+
+ /**
+ * get the timetag of an osc message. timetags are only sent by
+ * osc bundles.
+ * @return long
+ */
+ public long timetag() {
+ return timetag;
+ }
+
+ /**
+ *
+ * @return Object[]
+ */
+ public Object[] arguments() {
+ return _myArguments;
+ }
+
+
+ /**
+ * supported arrays see OscPlug.getArgs
+ * @return Object[]
+ */
+ protected Object[] argsAsArray() {
+ switch (_myTypetag[0]) {
+ case (0X66): // float f
+ final float[] myFloatArray = new float[_myArguments.length];
+ for (int i = 0; i < myFloatArray.length; i++) {
+ myFloatArray[i] = ((Float) _myArguments[i]).floatValue();
+ }
+ return new Object[] {myFloatArray};
+ case (0x69): // int i
+ final int[] myIntArray = new int[_myArguments.length];
+ for (int i = 0; i < myIntArray.length; i++) {
+ myIntArray[i] = ((Integer) _myArguments[i]).intValue();
+ }
+ return new Object[] {myIntArray};
+ case (0x53): // Symbol S
+ case (0x73): // String s
+ final String[] myStringArray = new String[_myArguments.length];
+ for (int i = 0; i < myStringArray.length; i++) {
+ myStringArray[i] = ((String) _myArguments[i]);
+ }
+ return new Object[] {myStringArray};
+ default:
+ break;
+ }
+ return new Object[] {};
+ }
+
+ /**
+ *
+ * @return byte[]
+ * @invisible
+ */
+ public byte[] getAddrPatternAsBytes() {
+ return Bytes.append(_myAddrPattern,
+ new byte[align(_myAddrPattern.length)]);
+ }
+
+
+ /**
+ *
+ * @return byte[]
+ * @invisible
+ */
+ public byte[] getTypetagAsBytes() {
+ return _myTypetag;
+ }
+
+
+ /**
+ *
+ * @return byte[]
+ * @invisible
+ */
+ public byte[] getBytes() {
+ byte[] myBytes = new byte[0];
+ byte[] myTypeTag = Bytes.copy(_myTypetag, 0);
+ myBytes = Bytes.append(myBytes, _myAddrPattern,
+ new byte[align(_myAddrPattern.length)]);
+ if (myTypeTag.length == 0) {
+ myTypeTag = new byte[] {KOMMA};
+ } else if (myTypeTag[0] != KOMMA) {
+ myTypeTag = Bytes.append(new byte[] {KOMMA}, myTypeTag);
+ }
+ myBytes = Bytes.append(myBytes, myTypeTag,
+ new byte[align(myTypeTag.length)]);
+ myBytes = Bytes.append(myBytes, _myData,
+ new byte[align(_myData.length) % 4]);
+ return myBytes;
+ }
+
+
+ protected Object[] increase(int theAmount) {
+ if(_myArguments.length<1 || _myArguments == null) {
+ return new Object[1];
+ }
+ Object[] myArguments = new Object[_myArguments.length + theAmount];
+ System.arraycopy(_myArguments, 0, myArguments, 0, _myArguments.length);
+ return myArguments;
+ }
+ /**
+ * add values to an osc message. please check the
+ * add documentation for specific information.
+ * @example oscP5message
+ */
+ public OscMessage add() {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x4e});
+ return this;
+ }
+
+
+ /**
+ * @param theValue int
+ */
+ public OscMessage add(final int theValue) {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x69});
+ _myData = Bytes.append(_myData, Bytes.toBytes(theValue));
+ _myArguments = increase(1);
+ _myArguments[_myArguments.length-1] = new Integer(theValue);
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue String
+ */
+ public OscMessage add(final String theValue) {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x73});
+ final byte[] myString = theValue.getBytes();
+ _myData = Bytes.append(_myData, myString,
+ new byte[align(myString.length)]);
+ _myArguments = increase(1);
+ _myArguments[_myArguments.length-1] = theValue;
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue float
+ */
+ public OscMessage add(final float theValue) {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x66});
+ _myData = Bytes.append(_myData, Bytes.toBytes(Float
+ .floatToIntBits(theValue)));
+ _myArguments = increase(1);
+ _myArguments[_myArguments.length-1] = new Float(theValue);
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue double
+ */
+ public OscMessage add(final double theValue) {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x64});
+ _myData = Bytes.append(_myData, Bytes.toBytes(Double
+ .doubleToLongBits(theValue)));
+ _myArguments = increase(1);
+ _myArguments[_myArguments.length-1] = new Double(theValue);
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue boolean
+ */
+ public OscMessage add(final boolean theValue) {
+ if (theValue) {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x54});
+ } else {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x46});
+ }
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue Boolean
+ */
+ public OscMessage add(final Boolean theValue) {
+ add((theValue).booleanValue());
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue Integer
+ */
+ public OscMessage add(final Integer theValue) {
+ add(theValue.intValue());
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue
+ * Float
+ */
+ public OscMessage add(final Float theValue) {
+ add(theValue.floatValue());
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue
+ * Double
+ */
+ public OscMessage add(final Double theValue) {
+ add(theValue.doubleValue());
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue
+ * Character
+ */
+ public OscMessage add(final Character theValue) {
+ add(theValue.charValue());
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theValue
+ * char
+ */
+ public OscMessage add(final char theValue) {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x63});
+ _myData = Bytes.append(_myData, Bytes.toBytes(theValue));
+ _myArguments = increase(1);
+ _myArguments[_myArguments.length-1] = new Character(theValue);
+ return this;
+ }
+
+
+ /**
+ *
+ * @param channel int
+ * @param status int
+ * @param value1 int
+ * @param value2 int
+ */
+
+ public OscMessage add(final int channel,
+ final int status,
+ final int value1,
+ final int value2) {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x6d}); // m
+ final byte[] theBytes = new byte[4];
+ theBytes[0] = (byte) channel;
+ theBytes[1] = (byte) status;
+ theBytes[2] = (byte) value1;
+ theBytes[3] = (byte) value2;
+ _myData = Bytes.append(_myData, theBytes);
+ _myArguments = increase(1);
+ _myArguments[_myArguments.length-1] = theBytes;
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theArray
+ * int[]
+ */
+ public OscMessage add(final int[] theArray) {
+ for (int i = 0; i < theArray.length; i++) {
+ add(theArray[i]);
+ }
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theArray
+ * char[]
+ */
+ public OscMessage add(final char[] theArray) {
+ for (int i = 0; i < theArray.length; i++) {
+ add(theArray[i]);
+ }
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theArray
+ * float[]
+ */
+ public OscMessage add(final float[] theArray) {
+ for (int i = 0; i < theArray.length; i++) {
+ add(theArray[i]);
+ }
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theArray
+ * String[]
+ */
+ public OscMessage add(final String[] theArray) {
+ for (int i = 0; i < theArray.length; i++) {
+ add(theArray[i]);
+ }
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theArray
+ * byte[]
+ */
+ public OscMessage add(final byte[] theArray) {
+ _myTypetag = Bytes.append(_myTypetag, new byte[] {0x62});
+ _myData = Bytes.append(_myData, makeBlob(theArray));
+ _myArguments = increase(1);
+ _myArguments[_myArguments.length-1] = theArray;
+ return this;
+ }
+
+
+ /**
+ *
+ * @param theArray
+ * Object[]
+ */
+ public OscMessage add(final Object[] theArray) {
+ for (int i = 0; i < theArray.length; i++) {
+ if (!add(theArray[i])) {
+ System.out.println("type of Argument not defined in osc specs.");
+ }
+ }
+ return this;
+ }
+
+
+ private boolean add(final Object theObject) {
+ if (theObject instanceof Number) {
+ if (theObject instanceof Integer) {
+ add((Integer) theObject);
+ } else if (theObject instanceof Float) {
+ add((Float) theObject);
+ } else if (theObject instanceof Double) {
+ add((Double) theObject);
+ } else if (theObject instanceof Long) {
+ add((Long) theObject);
+ }
+ } else if (theObject instanceof String) {
+ add((String) theObject);
+ } else if (theObject instanceof Boolean) {
+ add((Boolean) theObject);
+ } else if (theObject instanceof Character) {
+ add((Character) theObject);
+ }
+
+ else {
+ if (theObject instanceof int[]) {
+ add((int[]) theObject);
+ return true;
+ } else if (theObject instanceof float[]) {
+ add((float[]) theObject);
+ return true;
+ } else if (theObject instanceof byte[]) {
+ add((byte[]) theObject);
+ return true;
+ }
+
+ else if (theObject instanceof String[]) {
+ add((String[]) theObject);
+ return true;
+ } else if (theObject instanceof char[]) {
+ add((char[]) theObject);
+ return true;
+ } else if (theObject instanceof double[]) {
+ add((float[]) theObject);
+ return true;
+ }
+ return false;
+ }
+ return true;
+ }
+
+
+ /**
+ *
+ * @param b byte[]
+ * @return byte[]
+ * @invisible
+ */
+ public static byte[] makeBlob(final byte[] b) {
+ final int tLength = b.length;
+ byte[] b1 = Bytes.toBytes(tLength);
+ b1 = Bytes.append(b1, b);
+ final int t = tLength % 4;
+ if (t != 0) {
+ b1 = Bytes.append(b1, new byte[4 - t]);
+ }
+ return b1;
+ }
+
+
+ /**
+ * get a value at a specific position in the osc message. the get method
+ * returns an OscArgument from which the value can be parsed into the right
+ * format. e.g. to parse an int from the first argument in the osc message,
+ * use theOscMessage.get(0).intValue();
+ * @param theIndex int
+ * @return OscArgument
+ */
+ public OscArgument get(final int theIndex) {
+ if (theIndex < arguments().length) {
+ _myOscArgument.value = arguments()[theIndex];
+ return _myOscArgument;
+ }
+ return null;
+ }
+
+
+ /**
+ *
+ * @return String
+ * @invisible
+ */
+ public final String toString() {
+ return hostAddress + ":" + port + " | " +
+ addrPattern() + " " + typetag();
+ }
+
+
+ public boolean isPlugged() {
+ return isPlugged;
+ }
+
+
+ public void print() {
+ Logger.println("-OscMessage----------");
+ Logger.println("received from\t" + hostAddress + ":" + port);
+ Logger.println("addrpattern\t" + Bytes.getAsString(_myAddrPattern));
+ Logger.println("typetag\t" + Bytes.getAsString(_myTypetag));
+ Logger.println(Bytes.getAsString(_myArguments));
+ Logger.println("---------------------");
+ }
+
+ public void printData() {
+ Bytes.printBytes(_myData);
+ }
+}
diff --git a/libraries/oscP5/src/oscP5/OscNetManager.java b/libraries/oscP5/src/oscP5/OscNetManager.java
new file mode 100644
index 0000000..dd4f614
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscNetManager.java
@@ -0,0 +1,386 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+import java.net.DatagramPacket;
+import java.util.ArrayList;
+
+import netP5.AbstractMulticast;
+import netP5.AbstractTcpClient;
+import netP5.Logger;
+import netP5.Multicast;
+import netP5.NetAddress;
+import netP5.NetAddressList;
+import netP5.TcpClient;
+import netP5.TcpPacket;
+import netP5.TcpPacketListener;
+import netP5.TcpServer;
+import netP5.UdpClient;
+import netP5.UdpPacketListener;
+import netP5.UdpServer;
+
+
+/**
+ * @invisible
+ */
+
+public class OscNetManager
+ implements UdpPacketListener, TcpPacketListener {
+
+ protected OscProperties _myOscProperties;
+
+ protected UdpClient _myUdpClient = null;
+
+ protected UdpServer _myUdpServer = null;
+
+ protected TcpServer _myTcpServer = null;
+
+ protected TcpClient _myTcpClient = null;
+
+ protected boolean isTcpClient = false;
+
+ protected boolean isTcpServer = false;
+
+ protected AbstractMulticast _myMulticast = null;
+
+ protected ArrayList<UdpPacketListener> _myUdpListener = new ArrayList<UdpPacketListener>();
+
+ protected ArrayList<TcpPacketListener> _myTcpListener = new ArrayList<TcpPacketListener>();
+
+ public final static int NONE = 0;
+
+ public void start(final OscProperties theOscProperties) {
+ stop();
+ _myOscProperties = theOscProperties;
+ int networkProtocol = _myOscProperties.networkProtocol();
+ switch (networkProtocol) {
+ case (OscProperties.UDP):
+ newUdp();
+ break;
+ case (OscProperties.MULTICAST):
+ newMulticast();
+ break;
+ case (OscProperties.TCP):
+ newTcp();
+ break;
+ }
+ _myOscProperties.isLocked = true;
+ }
+
+
+ protected void stop() {
+ _myUdpClient = null;
+ if (_myMulticast != null) {
+ Logger.printDebug("OscP5.stop", "multicast.");
+ _myMulticast.dispose();
+ }
+ if (_myUdpServer != null) {
+ Logger.printDebug("OscP5.stop", "stopping udpserver.");
+ _myUdpServer.dispose();
+ }
+ _myMulticast = null;
+ _myUdpServer = null;
+ Logger.printProcess("OscP5", "stopped.");
+ }
+
+
+ private void newUdp() {
+ if (_myOscProperties.remoteAddress() != null && _myOscProperties.remoteAddress().isvalid()) {
+ _myUdpClient = new UdpClient(_myOscProperties.remoteAddress().address(), _myOscProperties.remoteAddress().port());
+ }
+ else {
+ _myUdpClient = new UdpClient();
+ }
+
+ if (_myOscProperties.listeningPort() > 0) {
+ _myUdpServer = new UdpServer(this, _myOscProperties.listeningPort(), _myOscProperties.datagramSize());
+ }
+ }
+
+
+ private void newTcp() {
+ if (_myOscProperties.listeningPort() > 0) {
+ _myTcpServer = new TcpServer(this, _myOscProperties.listeningPort(), TcpServer.MODE_STREAM);
+ isTcpServer = true;
+ }
+ else if (_myOscProperties.remoteAddress().isvalid()) {
+ _myTcpClient = new TcpClient(
+ this,
+ _myOscProperties.remoteAddress().address(),
+ _myOscProperties.remoteAddress().port(),
+ TcpClient.MODE_STREAM);
+ isTcpClient = true;
+ }
+ }
+
+
+ private void newMulticast() {
+ if (_myOscProperties.remoteAddress() != null && _myOscProperties.remoteAddress().isvalid()) {
+ _myMulticast = new Multicast(
+ this,
+ _myOscProperties.remoteAddress().address(),
+ _myOscProperties.remoteAddress().port(),
+ _myOscProperties.datagramSize());
+
+ }
+ else {
+ // ESCA-JAVA0266:
+ System.out.println("ERROR @ Multicast");
+ }
+
+ }
+
+
+ public void setTimeToLive(final int theTTL) {
+ if (_myMulticast != null) {
+ _myMulticast.setTimeToLive(theTTL);
+ }
+ else {
+ Logger.printWarning("OscNetManager.setTimeToLive", "only supported for multicast session.");
+ }
+ }
+
+
+ public TcpServer tcpServer() {
+ return _myTcpServer;
+ }
+
+
+ public TcpClient tcpClient() {
+ return _myTcpClient;
+ }
+
+
+ /**
+ * @param theListener DatagramPacketListener
+ */
+ public void addUdpListener(final UdpPacketListener theListener) {
+ _myUdpListener.add(theListener);
+ }
+
+
+ /**
+ * @param theListener DatagramPacketListener
+ */
+ public void removeUdpListener(final UdpPacketListener theListener) {
+ _myUdpListener.remove(theListener);
+ }
+
+
+ /**
+ * @param theListener TcpPacketListener
+ */
+ public void addTcpListener(final TcpPacketListener theListener) {
+ _myTcpListener.add(theListener);
+ }
+
+
+ /**
+ * @param theListener TcpPacketListener
+ */
+ public void removeTcpListener(final TcpPacketListener theListener) {
+ _myTcpListener.remove(theListener);
+ }
+
+
+ /**
+ * @param thePacket OscPacket
+ */
+ public void send(final OscPacket thePacket) {
+ if (_myOscProperties.sendStatus() == false && _myOscProperties.networkProtocol() != OscProperties.TCP) {
+ Logger.printWarning("OscNetManager.send", "please specify a remote address. send(OscPacket theOscPacket) "
+ + "is only supported when there is a host specified in OscProperties.");
+ }
+ else {
+ try {
+ switch (_myOscProperties.networkProtocol()) {
+ case (OscProperties.UDP):
+ if (_myOscProperties.srsp()) {
+ _myUdpServer.send(
+ thePacket.getBytes(),
+ _myOscProperties.remoteAddress().inetaddress(),
+ _myOscProperties.remoteAddress().port());
+
+ }
+ else {
+ _myUdpClient.send(
+ thePacket.getBytes(),
+ _myOscProperties.remoteAddress().inetaddress(),
+ _myOscProperties.remoteAddress().port());
+ }
+ break;
+ case (OscProperties.TCP):
+ if (isTcpServer) {
+ _myTcpServer.send(thePacket.getBytes());
+ }
+ else if (isTcpClient) {
+ _myTcpClient.send(thePacket.getBytes());
+ }
+ break;
+ case (OscProperties.MULTICAST):
+ _myMulticast.send(thePacket.getBytes());
+ break;
+ }
+ }
+ catch (final NullPointerException e) {
+ Logger.printError("OscManager.send", "NullPointerException " + e);
+ }
+ }
+ }
+
+
+ public void send(final DatagramPacket thePacket) {
+ if (_myOscProperties.srsp()) {
+ _myUdpServer.send(thePacket);
+ }
+ else {
+ _myUdpClient.send(thePacket);
+ }
+ }
+
+
+ /**
+ * @param thePacket OscPacket
+ * @param theAddress String
+ * @param thePort int
+ */
+ public void send(final OscPacket thePacket, final String theAddress, final int thePort) {
+ try {
+ switch (_myOscProperties.networkProtocol()) {
+ case (OscProperties.UDP):
+ if (_myOscProperties.srsp()) {
+ _myUdpServer.send(thePacket.getBytes(), theAddress, thePort);
+ }
+ else {
+ _myUdpClient.send(thePacket.getBytes(), theAddress, thePort);
+ }
+ break;
+ case (OscProperties.MULTICAST):
+ _myMulticast.send(thePacket.getBytes());
+ break;
+ case (OscProperties.TCP):
+ Logger.printWarning(
+ "OscP5.send",
+ "send(OscPacket thePacket,String theAddress,int thePort) is not supported in TCP mode.");
+ break;
+ }
+ }
+ catch (final NullPointerException e) {
+ Logger.printError("OscP5.send", "NullPointerException " + e);
+ }
+ }
+
+
+ /**
+ * @param thePacket OscPacket
+ * @param theList OscHostList
+ */
+ public void send(final OscPacket thePacket, final NetAddressList theList) {
+ switch (_myOscProperties.networkProtocol()) {
+ case (OscProperties.UDP):
+ final byte[] myBytes = thePacket.getBytes();
+ final DatagramPacket myPacket = new DatagramPacket(myBytes, myBytes.length);
+ for (int i = 0; i < theList.list().size(); i++) {
+ myPacket.setAddress(theList.get(i).inetaddress());
+ myPacket.setPort(theList.get(i).port());
+ send(myPacket);
+ }
+ break;
+ case (OscProperties.TCP):
+ Logger.printWarning(
+ "OscP5.send",
+ "send(OscPacket thePacket,NetAddressList theList) is not supported in TCP mode.");
+ break;
+ }
+ }
+
+
+ /**
+ * @param thePacket OscPacket
+ * @param theHost NetAddress
+ */
+ public void send(final OscPacket thePacket, final NetAddress theHost) {
+ switch (_myOscProperties.networkProtocol()) {
+
+ case (OscProperties.UDP):
+ if (theHost.isvalid()) {
+ final byte[] myBytes = thePacket.getBytes();
+ final DatagramPacket myPacket = new DatagramPacket(myBytes, myBytes.length);
+ myPacket.setAddress(theHost.inetaddress());
+ myPacket.setPort(theHost.port());
+ send(myPacket);
+ }
+ break;
+ case (OscProperties.TCP):
+ Logger.printWarning("OscP5.send", "send(OscPacket thePacket,NetAddress theHost) is not supported in TCP mode.");
+ break;
+ }
+ }
+
+
+ /**
+ * @param theAddrPattern String
+ * @param theArguments Object[]
+ */
+ public void send(final String theAddrPattern, final Object[] theArguments) {
+ send(new OscMessage(theAddrPattern, theArguments));
+ }
+
+
+ public void send(final String theAddrPattern, final Object[] theArguments, final String theAddress, final int thePort) {
+ send(new OscMessage(theAddrPattern, theArguments), theAddress, thePort);
+ }
+
+
+ public void send(final String theAddrPattern, final Object[] theArguments, final NetAddressList theList) {
+ send(new OscMessage(theAddrPattern, theArguments), theList);
+ }
+
+
+ public void send(final String theAddrPattern, final Object[] theArguments, final NetAddress theHost) {
+ send(new OscMessage(theAddrPattern, theArguments), theHost);
+ }
+
+
+ public void process(final DatagramPacket thePacket, final int thePort) {
+ for (int i = 0; i < _myUdpListener.size(); i++) {
+ _myUdpListener.get(i).process(thePacket, thePort);
+ }
+ }
+
+
+ public void process(final TcpPacket thePacket, final int thePort) {
+ for (int i = 0; i < _myTcpListener.size(); i++) {
+ _myTcpListener.get(i).process(thePacket, thePort);
+ }
+ }
+
+
+ public void remove(final AbstractTcpClient theClient) {}
+
+
+ public void status(final int theIndex) {}
+}
diff --git a/libraries/oscP5/src/oscP5/OscP5.java b/libraries/oscP5/src/oscP5/OscP5.java
new file mode 100644
index 0000000..b2643dd
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscP5.java
@@ -0,0 +1,991 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.SocketException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Vector;
+
+import netP5.AbstractTcpClient;
+import netP5.Logger;
+import netP5.NetAddress;
+import netP5.NetAddressList;
+import netP5.NetInfo;
+import netP5.TcpClient;
+import netP5.TcpPacket;
+import netP5.TcpPacketListener;
+import netP5.TcpServer;
+import netP5.UdpPacketListener;
+
+/**
+ * oscP5 is an osc implementation for the programming environment processing.
+ * osc is the acronym for open sound control, a network protocol developed at
+ * cnmat, uc berkeley. open sound control is a protocol for communication among
+ * computers, sound synthesizers, and other multimedia devices that is optimized
+ * for modern networking technology and has been used in many application areas.
+ * for further specifications and application implementations please visit the
+ * official osc site.
+ *
+ * @usage Application
+ * @example oscP5sendReceive
+ * @related OscProperties
+ * @related OscMessage
+ * @related OscBundle
+ */
+
+/**
+ * TODO add better error message handling for oscEvents, see this post
+ * http://forum.processing.org/topic/oscp5-major-problems-with-error-handling# 25080000000811163
+ */
+public class OscP5 implements UdpPacketListener, TcpPacketListener {
+
+ /*
+ * @TODO implement polling option to avoid threading and synchronization
+ * issues. check email from tom lieber. look into mutex objects.
+ * http://www.google.com/search?hl=en&q=mutex+java&btnG=Search
+ */
+
+ // protected ArrayList _myOscPlugList = new ArrayList();
+
+ protected HashMap<String, ArrayList<OscPlug>> _myOscPlugMap = new HashMap<String, ArrayList<OscPlug>>();
+
+ protected NetInfo _myNetInfo;
+
+ private OscNetManager _myOscNetManager;
+
+ protected final static int NONE = OscNetManager.NONE;
+
+ public final static boolean ON = OscProperties.ON;
+
+ public final static boolean OFF = OscProperties.OFF;
+
+ /**
+ * a static variable used when creating an oscP5 instance with a sepcified network protocol.
+ */
+ public final static int UDP = OscProperties.UDP;
+
+ /**
+ * a static variable used when creating an oscP5 instance with a sepcified network protocol.
+ */
+ public final static int MULTICAST = OscProperties.MULTICAST;
+
+ /**
+ * a static variable used when creating an oscP5 instance with a sepcified network protocol.
+ */
+ public final static int TCP = OscProperties.TCP;
+
+ protected final Object parent;
+
+ private OscProperties _myOscProperties;
+
+ private Class<?> _myParentClass;
+
+ private Method _myEventMethod;
+
+ private Class<?> _myEventClass = OscMessage.class;
+
+ private boolean isEventMethod;
+
+ private boolean isBroadcast = false;
+
+ private NetAddress _myBroadcastAddress;
+
+ private boolean isOscIn = false;
+
+ /**
+ * @invisible
+ */
+ public static final String VERSION = "0.9.9";
+
+
+ /**
+ * @param theParent Object
+ * @param theProperties OscProperties
+ * @usage Application
+ */
+ public OscP5(final Object theParent, final OscProperties theProperties) {
+ welcome();
+ parent = theParent;
+
+ registerDispose(parent);
+
+ _myOscProperties = theProperties;
+ _myOscNetManager = new OscNetManager();
+ _myOscNetManager.start(_myOscProperties);
+ if (_myOscProperties.networkProtocol() == OscProperties.TCP) {
+ _myOscNetManager.addTcpListener(this);
+ }
+ else {
+ _myOscNetManager.addUdpListener(this);
+ }
+ isEventMethod = checkEventMethod();
+ if (_myOscProperties.networkProtocol() == OscProperties.MULTICAST) {
+ Logger.printInfo("OscP5", "is joining a multicast group @ " + _myOscProperties.remoteAddress().address() + ":" + _myOscProperties.remoteAddress().port());
+ }
+ else {
+ Logger.printInfo("OscP5", "is running. you (" + ip() + ") are listening @ port " + _myOscProperties.remoteAddress().port());
+ }
+ }
+
+
+ /**
+ * @param theParent Object
+ * @param theAddress String
+ * @param thePort int
+ * @param theMode int
+ * @usage Application
+ */
+ public OscP5(final Object theParent, final String theAddress, final int thePort, final int theMode) {
+ welcome();
+ parent = theParent;
+ _myOscProperties = new OscProperties();
+
+ registerDispose(parent);
+
+ switch (theMode) {
+ case (MULTICAST):
+ _myOscProperties.setNetworkProtocol(MULTICAST);
+ _myOscProperties.setRemoteAddress(theAddress, thePort);
+ _myOscProperties.setListeningPort(thePort);
+ _myOscNetManager = new OscNetManager();
+ _myOscNetManager.start(_myOscProperties);
+ _myOscNetManager.addUdpListener(this);
+ Logger.printInfo("OscP5", "is joining a multicast group @ " + _myOscProperties.remoteAddress().address() + ":" + _myOscProperties.remoteAddress().port());
+ break;
+ case (UDP):
+ _myOscProperties.setRemoteAddress(theAddress, thePort);
+ initUDP(thePort);
+ break;
+ case (TCP):
+ _myOscProperties.setNetworkProtocol(TCP);
+ _myOscProperties.setRemoteAddress(theAddress, thePort);
+ _myOscNetManager = new OscNetManager();
+ _myOscNetManager.start(_myOscProperties);
+ _myOscNetManager.addTcpListener(this);
+ break;
+ }
+ isEventMethod = checkEventMethod();
+ }
+
+
+ public OscP5(final Object theParent, final int theReceiveAtPort, final int theMode) {
+ welcome();
+ parent = theParent;
+
+ registerDispose(parent);
+
+ _myOscProperties = new OscProperties();
+ switch (theMode) {
+ case (UDP):
+ initUDP(theReceiveAtPort);
+ break;
+ case (TCP):
+ _myOscProperties.setNetworkProtocol(TCP);
+ _myOscProperties.setListeningPort(theReceiveAtPort);
+ _myOscNetManager = new OscNetManager();
+ _myOscNetManager.start(_myOscProperties);
+ _myOscNetManager.addTcpListener(this);
+ break;
+ case (MULTICAST):
+ Logger.printWarning("OscP5", "please specify a multicast address. use " + "OscP5(Object theObject, String theMulticastAddress, int thePort, int theMode)");
+ break;
+ }
+ isEventMethod = checkEventMethod();
+ }
+
+
+ /**
+ * @param theParent Object
+ * @param theReceiveAtPort int
+ * @usage Application
+ */
+ public OscP5(final Object theParent, final int theReceiveAtPort) {
+ welcome();
+ parent = theParent;
+
+ registerDispose(parent);
+
+ initUDP(theReceiveAtPort);
+ isEventMethod = checkEventMethod();
+ }
+
+
+ private void welcome() {
+ System.out.println("OscP5 " + VERSION + " " + "infos, comments, questions at http://www.sojamo.de/oscP5\n\n");
+ }
+
+
+ private void registerDispose(Object theObject) {
+ try {
+ Object parent = null;
+ String child = "processing.core.PApplet";
+ try {
+ Class<?> childClass = Class.forName(child);
+ Class<?> parentClass = Object.class;
+
+ if (parentClass.isAssignableFrom(childClass)) {
+ parent = childClass.newInstance();
+ parent = theObject;
+ }
+ } catch (Exception e) {
+ // System.out.println(e);
+ }
+ try {
+ Method method = parent.getClass().getMethod("registerDispose", Object.class);
+ try {
+ method.invoke(parent, new Object[] { this });
+ } catch (IllegalArgumentException e) {
+ // System.out.println(e);
+ } catch (IllegalAccessException e) {
+ // System.out.println(e);
+ } catch (InvocationTargetException e) {
+ // System.out.println(e);
+ }
+ } catch (SecurityException e) {
+ // System.out.println("fail (1) " + e);
+ } catch (NoSuchMethodException e) {
+ // System.out.println("fail (2) " + e);
+ }
+ } catch (NullPointerException e) {
+ System.err.println("Register Dispose\n" + e);
+ }
+ }
+
+
+ private void initUDP(final int theReceiveAtPort) {
+ _myOscProperties = new OscProperties();
+ _myOscProperties.setListeningPort(theReceiveAtPort);
+ _myOscNetManager = new OscNetManager();
+ _myOscNetManager.start(_myOscProperties);
+ _myOscNetManager.addUdpListener(this);
+ Logger.printInfo("OscP5", "is running. you (" + ip() + ") are listening @ port " + theReceiveAtPort);
+ }
+
+
+ /**
+ * check which eventMethod exists in the Object oscP5 was started from. this is necessary for
+ * backwards compatibility for oscP5 because the previous parameterType for the eventMethod was
+ * OscIn and is now OscMessage.
+ *
+ * @return boolean
+ * @invisible
+ */
+ private boolean checkEventMethod() {
+ _myParentClass = parent.getClass();
+ try {
+ Method[] myMethods = _myParentClass.getDeclaredMethods();
+ for (int i = 0; i < myMethods.length; i++) {
+ if (myMethods[i].getName().indexOf(_myOscProperties.eventMethod()) != -1) {
+ Class<?>[] myClasses = myMethods[i].getParameterTypes();
+ if (myClasses.length == 1) {
+ _myEventClass = myClasses[0];
+ isOscIn = ((_myEventClass.toString()).indexOf("OscIn") != -1) ? true : false;
+ break;
+ }
+ }
+ }
+
+ } catch (Throwable e) {
+ System.err.println(e);
+ }
+
+ String tMethod = _myOscProperties.eventMethod();
+ if (tMethod != null) {
+ try {
+ Class<?>[] tClass = { _myEventClass };
+ _myEventMethod = _myParentClass.getDeclaredMethod(tMethod, tClass);
+ _myEventMethod.setAccessible(true);
+ return true;
+ } catch (SecurityException e1) {
+ // e1.printStackTrace();
+ Logger.printWarning("OscP5.plug", "### security issues in OscP5.checkEventMethod(). (this occures when running in applet mode)");
+ } catch (NoSuchMethodException e1) {
+ }
+ }
+ // online fix, since an applet throws a security exception when calling
+ // setAccessible(true);
+ if (_myEventMethod != null) {
+ return true;
+ }
+ return false;
+ }
+
+
+ /**
+ * get the current version of oscP5.
+ *
+ * @return String
+ */
+ public String version() {
+ return VERSION;
+ }
+
+
+ /**
+ * @invisible
+ */
+ public void dispose() {
+ stop();
+ }
+
+
+ public void addListener(OscEventListener theListener) {
+ _myOscProperties.listeners().add(theListener);
+ }
+
+
+ public void removeListener(OscEventListener theListener) {
+ _myOscProperties.listeners().remove(theListener);
+ }
+
+
+ public Vector<OscEventListener> listeners() {
+ return _myOscProperties.listeners();
+ }
+
+
+ /**
+ * osc messages can be automatically forwarded to a specific method of an object. the plug
+ * method can be used to by-pass parsing raw osc messages - this job is done for you with the
+ * plug mechanism. you can also use the following array-types int[], float[], String[]. (but
+ * only as on single parameter e.g. somemethod(int[] theArray) {} ).
+ *
+ * @param theObject Object, can be any Object
+ * @param theMethodName String, the method name an osc message should be forwarded to
+ * @param theAddrPattern String, the address pattern of the osc message
+ * @param theTypeTag String
+ * @example oscP5plug
+ * @usage Application
+ */
+ public void plug(final Object theObject, final String theMethodName, final String theAddrPattern, final String theTypeTag) {
+ final OscPlug myOscPlug = new OscPlug();
+ myOscPlug.plug(theObject, theMethodName, theAddrPattern, theTypeTag);
+ // _myOscPlugList.add(myOscPlug);
+ if (_myOscPlugMap.containsKey(theAddrPattern)) {
+ _myOscPlugMap.get(theAddrPattern).add(myOscPlug);
+ }
+ else {
+ ArrayList<OscPlug> myOscPlugList = new ArrayList<OscPlug>();
+ myOscPlugList.add(myOscPlug);
+ _myOscPlugMap.put(theAddrPattern, myOscPlugList);
+ }
+ }
+
+
+ /**
+ * @param theObject Object, can be any Object
+ * @param theMethodName String, the method name an osc message should be forwarded to
+ * @param theAddrPattern String, the address pattern of the osc message
+ * @example oscP5plug
+ * @usage Application
+ */
+ public void plug(final Object theObject, final String theMethodName, final String theAddrPattern) {
+ final Class<?> myClass = theObject.getClass();
+ final Method[] myMethods = myClass.getDeclaredMethods();
+ Class<?>[] myParams = null;
+ for (int i = 0; i < myMethods.length; i++) {
+ String myTypetag = "";
+ try {
+ myMethods[i].setAccessible(true);
+ } catch (Exception e) {
+ }
+ if ((myMethods[i].getName()).equals(theMethodName)) {
+ myParams = myMethods[i].getParameterTypes();
+ OscPlug myOscPlug = new OscPlug();
+ for (int j = 0; j < myParams.length; j++) {
+ myTypetag += myOscPlug.checkType(myParams[j].getName());
+ }
+
+ myOscPlug.plug(theObject, theMethodName, theAddrPattern, myTypetag);
+ // _myOscPlugList.add(myOscPlug);
+ if (_myOscPlugMap.containsKey(theAddrPattern)) {
+ _myOscPlugMap.get(theAddrPattern).add(myOscPlug);
+ }
+ else {
+ ArrayList<OscPlug> myOscPlugList = new ArrayList<OscPlug>();
+ myOscPlugList.add(myOscPlug);
+ _myOscPlugMap.put(theAddrPattern, myOscPlugList);
+ }
+
+ }
+ }
+ }
+
+
+ private void handleSystemMessage(final OscMessage theOscMessage) {
+ if (theOscMessage.addrPattern().startsWith("/sys/ping")) {
+ send("/sys/pong", new Object[0], _myBroadcastAddress);
+ }
+ else if (theOscMessage.addrPattern().startsWith("/sys/register")) {
+ if (theOscMessage.tcpConnection() != null) {
+ if (theOscMessage.checkTypetag("s")) {
+ theOscMessage.tcpConnection().setName(theOscMessage.get(0).stringValue());
+ }
+ }
+ }
+ }
+
+
+ private void callMethod(final OscMessage theOscMessage) {
+
+ if (theOscMessage.addrPattern().startsWith("/sys/")) {
+ handleSystemMessage(theOscMessage);
+ // finish this for oscbroadcaster
+ // return;
+ }
+
+ // forward the message to all OscEventListeners
+ for (int i = listeners().size() - 1; i >= 0; i--) {
+ ((OscEventListener) listeners().get(i)).oscEvent(theOscMessage);
+ }
+
+ /* check if the arguments can be forwarded as array */
+
+ if (theOscMessage.isArray) {
+ // for (int i = 0; i < _myOscPlugList.size(); i++) {
+ // OscPlug myPlug = ((OscPlug) _myOscPlugList.get(i));
+ // if (myPlug.isArray && myPlug.checkMethod(theOscMessage, true)) {
+ // invoke(myPlug.getObject(), myPlug.getMethod(),
+ // theOscMessage.argsAsArray());
+ // }
+ // }
+
+ if (_myOscPlugMap.containsKey(theOscMessage.addrPattern())) {
+ ArrayList<OscPlug> myOscPlugList = _myOscPlugMap.get(theOscMessage.addrPattern());
+ for (int i = 0; i < myOscPlugList.size(); i++) {
+ OscPlug myPlug = (OscPlug) myOscPlugList.get(i);
+ if (myPlug.isArray && myPlug.checkMethod(theOscMessage, true)) {
+ // Should we set the following here? The old code did
+ // not:
+ // theOscMessage.isPlugged = true;
+ invoke(myPlug.getObject(), myPlug.getMethod(), theOscMessage.argsAsArray());
+ }
+ }
+ }
+
+ }
+ /* check if there is a plug method for the current message */
+ // for (int i = 0; i < _myOscPlugList.size(); i++) {
+ // OscPlug myPlug = ((OscPlug) _myOscPlugList.get(i));
+ // if (!myPlug.isArray && myPlug.checkMethod(theOscMessage, false)) {
+ // theOscMessage.isPlugged = true;
+ // invoke(myPlug.getObject(), myPlug.getMethod(), theOscMessage
+ // .arguments());
+ // }
+ // }
+
+ if (_myOscPlugMap.containsKey(theOscMessage.addrPattern())) {
+ ArrayList<OscPlug> myOscPlugList = _myOscPlugMap.get(theOscMessage.addrPattern());
+ for (int i = 0; i < myOscPlugList.size(); i++) {
+ OscPlug myPlug = (OscPlug) myOscPlugList.get(i);
+ if (!myPlug.isArray && myPlug.checkMethod(theOscMessage, false)) {
+ theOscMessage.isPlugged = true;
+ invoke(myPlug.getObject(), myPlug.getMethod(), theOscMessage.arguments());
+ }
+ }
+ }
+
+ /* if no plug method was detected, then use the default oscEvent mehtod */
+ Logger.printDebug("OscP5.callMethod ", "" + isEventMethod);
+ if (isEventMethod) {
+ try {
+ if (isOscIn) {
+ invoke(parent, _myEventMethod, new Object[] { new OscIn(theOscMessage) });
+ Logger.printDebug("OscP5.callMethod ", "invoking OscIn " + isEventMethod);
+ }
+ else {
+ invoke(parent, _myEventMethod, new Object[] { theOscMessage });
+ Logger.printDebug("OscP5.callMethod ", "invoking OscMessage " + isEventMethod);
+ }
+ } catch (ClassCastException e) {
+ Logger.printError("OscHandler.callMethod", " ClassCastException." + e);
+ }
+ }
+ }
+
+
+ private void invoke(final Object theObject, final Method theMethod, final Object[] theArgs) {
+ try {
+ theMethod.invoke(theObject, theArgs);
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ Logger.printError("OscP5", "ERROR. an error occured while forwarding an OscMessage\n " + "to a method in your program. please check your code for any \n"
+ + "possible errors that might occur in the method where incoming\n " + "OscMessages are parsed e.g. check for casting errors, possible\n "
+ + "nullpointers, array overflows ... .\n" + "method in charge : " + theMethod.getName() + " " + e);
+ }
+ }
+
+
+ /**
+ * incoming osc messages from an udp socket are parsed, processed and forwarded to the parent.
+ *
+ * @invisible
+ * @param thePacket DatagramPacket
+ * @param thePort int
+ */
+ public void process(final DatagramPacket thePacket, final int thePort) {
+ synchronized (this) {
+ OscPacket p = OscPacket.parse(thePacket);
+ if (p.isValid()) {
+ if (p.type() == OscPacket.BUNDLE) {
+ for (int i = 0; i < ((OscBundle) p).size(); i++) {
+ callMethod(((OscBundle) p).getMessage(i));
+ }
+ }
+ else {
+ callMethod((OscMessage) p);
+ }
+ }
+ notifyAll();
+ }
+ }
+
+
+ /**
+ * @invisible
+ * @see netP5.TcpPacketListener#process(netP5.TcpPacket, int)
+ */
+ public void process(final TcpPacket thePacket, final int thePort) {
+ synchronized (this) {
+ OscPacket p = OscPacket.parse(thePacket);
+ if (p.isValid()) {
+ if (p.type() == OscPacket.BUNDLE) {
+ for (int i = 0; i < ((OscBundle) p).size(); i++) {
+ callMethod(((OscBundle) p).getMessage(i));
+ }
+ }
+ else {
+ callMethod((OscMessage) p);
+ }
+ }
+ notifyAll();
+ }
+ }
+
+
+ /**
+ * @invisible
+ * @param theTcpClient AbstractTcpClient
+ */
+ public void remove(AbstractTcpClient theTcpClient) {
+ }
+
+
+ /**
+ * @invisible
+ * @param theIndex int
+ */
+ public void status(int theIndex) {
+ }
+
+
+ /**
+ * returns the current properties of oscP5.
+ *
+ * @return OscProperties
+ * @related OscProperties
+ * @usage Application
+ */
+ public OscProperties properties() {
+ return _myOscProperties;
+ }
+
+
+ /**
+ * @invisible
+ * @return boolean
+ */
+ public boolean isBroadcast() {
+ return isBroadcast;
+ }
+
+
+ /**
+ * @return String
+ * @invisible
+ */
+ public String ip() {
+ return NetInfo.getHostAddress();
+ }
+
+
+ /**
+ * oscP5 has a logging mechanism which prints out processes, warnings and errors into the
+ * console window. e.g. turn off the error log with setLogStatus(Logger.ERROR, Logger.OFF);
+ *
+ * @param theIndex int
+ * @param theValue int
+ * @usage Application
+ */
+ public static void setLogStatus(final int theIndex, final int theValue) {
+ Logger.set(theIndex, theValue);
+ }
+
+
+ /**
+ * @param theValue
+ */
+ public static void setLogStatus(final int theValue) {
+ for (int i = 0; i < Logger.ALL; i++) {
+ Logger.set(i, theValue);
+ }
+ }
+
+
+ /**
+ * set timeToLive of a multicast packet.
+ *
+ * @param theTTL int
+ */
+ public void setTimeToLive(int theTTL) {
+ _myOscNetManager.setTimeToLive(theTTL);
+ }
+
+
+ /**
+ * @param theHost NetAddress
+ * @invisible
+ */
+ public void disconnect(final NetAddress theHost) {
+ if (theHost.isvalid() && theHost.name.length() > 1) {
+ String myAddrPattern = "/sys/disconnect/" + theHost.name + "/" + theHost.port();
+ send(myAddrPattern, new Object[0], theHost);
+ isBroadcast = false;
+ _myBroadcastAddress = null;
+ }
+ }
+
+
+ /**
+ * @param theNetAddress NetAddress
+ * @param theName String
+ * @param theArguments String[]
+ * @invisible
+ */
+ public void connect(final NetAddress theNetAddress, final String theName, final String[] theArguments) {
+ if (theNetAddress.isvalid()) {
+ _myBroadcastAddress = theNetAddress;
+ _myBroadcastAddress.name = theName;
+ String myAddrPattern = "/sys/connect/" + theName + "/" + _myOscProperties.listeningPort();
+ send(myAddrPattern, theArguments, _myBroadcastAddress);
+ isBroadcast = true;
+ }
+ }
+
+
+ /**
+ * netinfo() returns an instance of a NetInfo Object from which you can get LAN and WAN
+ * information.
+ *
+ * @return NetInfo
+ */
+ public NetInfo netInfo() {
+ return _myNetInfo;
+ }
+
+
+ /**
+ * return the instance of the running TCP server if in TCP mode.
+ *
+ * @return TcpServer
+ */
+ public TcpServer tcpServer() {
+ return _myOscNetManager.tcpServer();
+ }
+
+
+ /**
+ * return the instance of the running TCP client if in TCP mode.
+ *
+ * @return TcpClient
+ */
+ public TcpClient tcpClient() {
+ return _myOscNetManager.tcpClient();
+ }
+
+
+ /**
+ * you can send osc packets in many different ways. see below and use the send method that fits
+ * your needs.
+ *
+ *
+ * @param thePacket OscPacket
+ * @param theNetAddress NetAddress
+ * @usage Application
+ */
+ public void send(final OscPacket thePacket, final NetAddress theNetAddress) {
+ _myOscNetManager.send(thePacket, theNetAddress);
+ }
+
+
+ /**
+ * @param thePacket OscPacket
+ * @usage Application
+ * @example oscP5sendReceive
+ */
+ public void send(final OscPacket thePacket) {
+ _myOscNetManager.send(thePacket);
+ }
+
+
+ /**
+ * @param thePacket OscPacket
+ * @param theNetAddressList NetAddressList
+ * @usage Application
+ */
+ public void send(final OscPacket thePacket, final NetAddressList theNetAddressList) {
+ _myOscNetManager.send(thePacket, theNetAddressList);
+ }
+
+
+ /**
+ * @param theAddrPattern String
+ * @param theArguments Object[]
+ * @usage Application
+ */
+ public void send(final String theAddrPattern, final Object[] theArguments) {
+ _myOscNetManager.send(theAddrPattern, theArguments);
+ }
+
+
+ /**
+ * @param theAddrPattern String
+ * @param theArguments Object[]
+ * @param theNetAddressList NetAddressList
+ * @usage Application
+ */
+ public void send(final String theAddrPattern, final Object[] theArguments, final NetAddressList theNetAddressList) {
+ _myOscNetManager.send(theAddrPattern, theArguments, theNetAddressList);
+ }
+
+
+ /**
+ * @param theAddrPattern String
+ * @param theArguments Object[]
+ * @param theNetAddress NetAddress
+ * @usage Application
+ */
+ public void send(final String theAddrPattern, final Object[] theArguments, final NetAddress theNetAddress) {
+ _myOscNetManager.send(theAddrPattern, theArguments, theNetAddress);
+ }
+
+
+ /**
+ * @param theAddrPattern String
+ * @param theArguments Object[]
+ * @param theNetAddress NetAddress
+ * @usage Application
+ */
+ public void send(final String theAddrPattern, final Object[] theArguments, final String theAddress, int thePort) {
+ _myOscNetManager.send(theAddrPattern, theArguments, theAddress, thePort);
+ }
+
+
+ /**
+ * send to tcp client
+ *
+ * @param thePacket OscPacket
+ * @param theClient TcpClient
+ */
+ public void send(final OscPacket thePacket, final TcpClient theClient) {
+ theClient.send(thePacket.getBytes());
+ }
+
+
+ /**
+ * @param theAddrPattern String
+ * @param theArguments Object[]
+ * @param theClient TcpClient
+ */
+ public void send(final String theAddrPattern, final Object[] theArguments, final TcpClient theClient) {
+ send(new OscMessage(theAddrPattern, theArguments), theClient);
+ }
+
+
+ /**
+ * the send method offers a lot of possibilities. have a look at the send documentation.
+ *
+ * @param thePacket OscPacket
+ * @param theIpAddress String
+ * @param thePort int
+ * @usage Application
+ * @deprecated
+ */
+ public void send(final OscPacket thePacket, final String theIpAddress, final int thePort) {
+ _myOscNetManager.send(thePacket, theIpAddress, thePort);
+ }
+
+
+ /**
+ * stop oscP5 and close open Sockets.
+ */
+ public void stop() {
+ Logger.printDebug("OscP5.stop", "starting to stop oscP5.");
+ _myOscNetManager.stop();
+ Logger.printDebug("OscP5.stop", "stopping oscP5.");
+ }
+
+
+ /**
+ * a static method to send an OscMessage straight out of the box without having to instantiate
+ * oscP5.
+ *
+ * @param theOscMessage OscMessage
+ * @param theNetAddress NetAddress
+ * @example oscP5flush
+ */
+ public static void flush(final OscMessage theOscMessage, final NetAddress theNetAddress) {
+ flush(theOscMessage.getBytes(), theNetAddress);
+ }
+
+
+ public static void flush(final OscPacket theOscPacket, final NetAddress theNetAddress) {
+ flush(theOscPacket.getBytes(), theNetAddress);
+ }
+
+
+ public static void flush(final String theAddrPattern, final Object[] theArguments, final NetAddress theNetAddress) {
+ flush((new OscMessage(theAddrPattern, theArguments)).getBytes(), theNetAddress);
+ }
+
+
+ public static void flush(final byte[] theBytes, final NetAddress theNetAddress) {
+ DatagramSocket mySocket;
+ try {
+ mySocket = new DatagramSocket();
+
+ DatagramPacket myPacket = new DatagramPacket(theBytes, theBytes.length, theNetAddress.inetaddress(), theNetAddress.port());
+ mySocket.send(myPacket);
+ } catch (SocketException e) {
+ Logger.printError("OscP5.openSocket", "cant create socket " + e.getMessage());
+ } catch (IOException e) {
+ Logger.printError("OscP5.openSocket", "cant create multicastSocket " + e.getMessage());
+ }
+ }
+
+
+ /*
+ * DEPRECATED methods and constructors.
+ */
+
+ /**
+ * @param theBytes byte[]
+ * @param theAddress String
+ * @param thePort int
+ * @deprecated
+ */
+ public static void flush(final byte[] theBytes, final String theAddress, final int thePort) {
+ flush(theBytes, new NetAddress(theAddress, thePort));
+ }
+
+
+ /**
+ * @param theOscMessage OscMessage
+ * @param theAddress String
+ * @param thePort int
+ * @deprecated
+ */
+ public static void flush(final OscMessage theOscMessage, final String theAddress, final int thePort) {
+ flush(theOscMessage.getBytes(), new NetAddress(theAddress, thePort));
+ }
+
+
+ /**
+ * old version of constructor. still in here for backwards compatibility.
+ *
+ * @deprecated
+ * @invisible
+ */
+ public OscP5(final Object theParent, final String theHost, final int theSendToPort, final int theReceiveAtPort, final String theMethodName) {
+ welcome();
+ parent = theParent;
+
+ registerDispose(parent);
+
+ _myOscProperties = new OscProperties();
+ _myOscProperties.setRemoteAddress(theHost, theSendToPort);
+ _myOscProperties.setListeningPort(theReceiveAtPort);
+ _myOscProperties.setEventMethod(theMethodName);
+ _myOscNetManager = new OscNetManager();
+ _myOscNetManager.start(_myOscProperties);
+ _myOscNetManager.addUdpListener(this);
+ isEventMethod = checkEventMethod();
+ }
+
+
+ /**
+ * @deprecated
+ * @param theAddrPattern String
+ * @return OscMessage
+ * @invisible
+ */
+ public OscMessage newMsg(String theAddrPattern) {
+ return new OscMessage(theAddrPattern);
+ }
+
+
+ /**
+ * @deprecated
+ * @param theAddrPattern String
+ * @return OscMessage
+ * @invisible
+ */
+
+ public OscBundle newBundle() {
+ return new OscBundle();
+ }
+
+
+ /**
+ * used by the monome library by jklabs
+ *
+ * @deprecated
+ * @invisible
+ */
+ public void disconnectFromTEMP() {
+ }
+
+
+ /**
+ * @deprecated
+ * @param theParent Object
+ * @param theAddress String
+ * @param thePort int
+ */
+ public OscP5(final Object theParent, final String theAddress, final int thePort) {
+ this(theParent, theAddress, thePort, OscProperties.MULTICAST);
+ }
+
+}
diff --git a/libraries/oscP5/src/oscP5/OscPacket.java b/libraries/oscP5/src/oscP5/OscPacket.java
new file mode 100644
index 0000000..4e9cc59
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscPacket.java
@@ -0,0 +1,143 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import netP5.Bytes;
+import netP5.NetAddress;
+import netP5.TcpPacket;
+import netP5.TcpClient;
+
+/**
+ * @invisible
+ */
+public abstract class OscPacket extends OscPatcher {
+
+ protected static final int MESSAGE = 0;
+
+
+ protected static final int BUNDLE = 1;
+
+
+ protected InetAddress inetAddress;
+
+
+ protected String hostAddress;
+
+
+ protected int _myType;
+
+
+ protected TcpClient _myTcpClient = null;
+
+
+ protected int port;
+
+ /**
+ * @invisible
+ */
+ public OscPacket() {}
+
+
+ protected static OscPacket parse(DatagramPacket theDatagramPacket) {
+ if (evaluatePacket(theDatagramPacket.getData()) == MESSAGE) {
+ return new OscMessage(theDatagramPacket);
+ } else {
+ return new OscBundle(theDatagramPacket);
+ }
+ }
+
+
+ protected static OscPacket parse(TcpPacket theTcpPacket) {
+ if (evaluatePacket(theTcpPacket.getData()) == MESSAGE) {
+ return new OscMessage(theTcpPacket);
+ } else {
+ return new OscBundle(theTcpPacket);
+ }
+ }
+
+
+ private static int evaluatePacket(byte[] theBytes) {
+ return (Bytes.areEqual(OscBundle.BUNDLE_AS_BYTES, Bytes.copy(theBytes, 0, OscBundle.BUNDLE_AS_BYTES.length))) ? BUNDLE
+ : MESSAGE;
+ }
+
+
+ /**
+ * when in TCP mode, tcpConnection() returns the instance of the TcpClient that has sent the OscMessage.
+ * @return TcpClient
+ */
+ public TcpClient tcpConnection() {
+ return _myTcpClient;
+ }
+
+
+ protected boolean isValid() {
+ return isValid;
+ }
+
+
+ protected int type() {
+ return _myType;
+ }
+
+
+ public int port() {
+ return port;
+ }
+
+
+ public NetAddress netAddress() {
+ return new NetAddress(inetAddress, port);
+ }
+
+
+ /**
+ * @deprecated
+ * @invisible
+ * @return NetAddress
+ */
+ public NetAddress netaddress() {
+ return new NetAddress(inetAddress, port);
+ }
+
+
+ /**
+ * @return String
+ */
+ public String address() {
+ return hostAddress;
+ }
+
+
+ /**
+ * @return byte[]
+ * @invisible
+ */
+ public abstract byte[] getBytes();
+
+}
diff --git a/libraries/oscP5/src/oscP5/OscPatcher.java b/libraries/oscP5/src/oscP5/OscPatcher.java
new file mode 100644
index 0000000..aade541
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscPatcher.java
@@ -0,0 +1,245 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+import java.net.InetAddress;
+import java.util.ArrayList;
+import netP5.Bytes;
+import netP5.TcpClient;
+
+/**
+ *
+ * @invisible
+ */
+public abstract class OscPatcher {
+
+
+protected static final byte ZEROBYTE = 0x00;
+
+ protected static final byte KOMMA = 0x2c;
+
+ protected static final long TIMETAG_OFFSET = 2208988800L;
+
+ protected static final long TIEMTAG_NOW = 1;
+
+ protected ArrayList<OscMessage> messages;
+
+ protected byte[] _myAddrPattern;
+
+ protected int _myAddrInt = -1;
+
+ protected byte[] _myTypetag = new byte[0];
+
+ protected byte[] _myData = new byte[0];
+
+ protected Object[] _myArguments;
+
+ protected boolean isValid = false;
+
+ protected long timetag = 1;
+
+ protected boolean isArray = false;
+
+ protected byte _myArrayType = 0X00;
+
+ protected OscPatcher() {
+ }
+
+
+ protected int parseBundle(final byte[] theBytes,
+ final InetAddress theAddress, final int thePort,
+ final TcpClient theClient) {
+ if (theBytes.length > OscBundle.BUNDLE_HEADER_SIZE) {
+ timetag = (new Long(Bytes.toLong(Bytes.copy(theBytes, 8, 8)))).longValue();
+ int myPosition = OscBundle.BUNDLE_HEADER_SIZE;
+ messages = new ArrayList<OscMessage>();
+ int myMessageLength = Bytes.toInt(Bytes.copy(theBytes, myPosition,4));
+ while (myMessageLength != 0 && (myMessageLength % 4 == 0)
+ && myPosition < theBytes.length) {
+ myPosition += 4;
+ messages.add(new OscMessage(Bytes.copy(theBytes, myPosition,myMessageLength),
+ theAddress,
+ thePort,
+ timetag,
+ theClient));
+ myPosition += myMessageLength;
+ if(myPosition >= theBytes.length)
+ break;
+ myMessageLength = Bytes.toInt(Bytes.copy(theBytes, myPosition,4));
+ }
+ }
+ for (int i = 0; i < messages.size(); i++) {
+ if (!messages.get(i).isValid) {
+ messages.remove(messages.get(i));
+ }
+ }
+
+ if (messages.size() > 0) {
+ isValid = true;
+ }
+ return messages.size();
+ }
+
+
+ protected void parseMessage(final byte[] theBytes) {
+ int myLength = theBytes.length;
+ int myIndex = 0;
+ myIndex = parseAddrPattern(theBytes, myLength, myIndex);
+ if (myIndex != -1) {
+ myIndex = parseTypetag(theBytes, myLength, myIndex);
+ }
+ if (myIndex != -1) {
+ _myData = Bytes.copy(theBytes, myIndex);
+ _myArguments = parseArguments(_myData);
+ isValid = true;
+ }
+ }
+
+
+ protected int parseAddrPattern(final byte[] theBytes, final int theLength,
+ final int theIndex) {
+ if (theLength > 4 && theBytes[4] == KOMMA) {
+ _myAddrInt = Bytes.toInt(Bytes.copy(theBytes, 0, 4));
+ }
+ for (int i = theIndex; i < theLength; i++) {
+ if (theBytes[i] == ZEROBYTE) {
+ _myAddrPattern = Bytes.copy(theBytes, theIndex, i);
+ return i + align(i);
+ }
+ }
+ return -1;
+ }
+
+
+ protected int parseTypetag(final byte[] theBytes, final int theLength,
+ int theIndex) {
+ if (theBytes[theIndex] == KOMMA) {
+ theIndex++;
+ for (int i = theIndex; i < theLength; i++) {
+ if (theBytes[i] == ZEROBYTE) {
+ _myTypetag = Bytes.copy(theBytes, theIndex, i - theIndex);
+ return i + align(i);
+ }
+ }
+ }
+ return -1;
+ }
+
+
+ /**
+ * cast the arguments passed with the incoming osc message and store them in
+ * an object array.
+ *
+ * @param theBytes
+ * @return
+ */
+ protected Object[] parseArguments(final byte[] theBytes) {
+ Object[] myArguments = new Object[0];
+ int myTagIndex = 0;
+ int myIndex = 0;
+ myArguments = new Object[_myTypetag.length];
+ isArray = (_myTypetag.length > 0) ? true : false;
+ while (myTagIndex < _myTypetag.length) {
+ /* check if we still save the arguments as an array */
+ if (myTagIndex == 0) {
+ _myArrayType = _myTypetag[myTagIndex];
+ } else {
+ if (_myTypetag[myTagIndex] != _myArrayType) {
+ isArray = false;
+ }
+ }
+ switch (_myTypetag[myTagIndex]) {
+ case (0x63): // char c
+ myArguments[myTagIndex] = (new Character((char) (Bytes
+ .toInt(Bytes.copy(theBytes, myIndex, 4)))));
+ myIndex += 4;
+ break;
+ case (0x69): // int i
+ myArguments[myTagIndex] = (new Integer(Bytes.toInt(Bytes.copy(
+ theBytes, myIndex, 4))));
+ myIndex += 4;
+ break;
+ case (0x66): // float f
+ myArguments[myTagIndex] = (new Float(Bytes.toFloat(Bytes.copy(
+ theBytes, myIndex, 4))));
+ myIndex += 4;
+
+ break;
+ case (0x6c): // long l
+ case (0x68): // long h
+ myArguments[myTagIndex] = (new Long(Bytes.toLong(Bytes.copy(
+ theBytes, myIndex, 8))));
+ myIndex += 8;
+ break;
+ case (0x64): // double d
+ myArguments[myTagIndex] = (new Double(Bytes.toDouble(Bytes
+ .copy(theBytes, myIndex, 8))));
+ myIndex += 8;
+ break;
+ case (0x53): // Symbol S
+ case (0x73): // String s
+ int newIndex = myIndex;
+ StringBuffer stringBuffer = new StringBuffer();
+
+ stringLoop:
+ do {
+ if (theBytes[newIndex] == 0x00) {
+ break stringLoop;
+ } else {
+ stringBuffer.append((char) theBytes[newIndex]);
+ }
+ newIndex++;
+ } while (newIndex < theBytes.length);
+
+ myArguments[myTagIndex] = (stringBuffer.toString());
+ myIndex = newIndex + align(newIndex);
+ break;
+ case 0x62: // byte[] b - blob
+ int myLen = Bytes.toInt(Bytes.copy(theBytes, myIndex, 4));
+ myIndex += 4;
+ myArguments[myTagIndex] = Bytes.copy(theBytes, myIndex, myLen);
+ myIndex += myLen + (align(myLen) % 4);
+ break;
+ case 0x6d: // midi m
+ myArguments[myTagIndex] = Bytes.copy(theBytes, myIndex, 4);
+ myIndex += 4;
+ break;
+ /*
+ * no arguments for typetags T,F,N T = true F = false N = false
+ */
+ }
+ myTagIndex++;
+ }
+ _myData = Bytes.copy(_myData, 0, myIndex);
+ return myArguments;
+ }
+
+
+ protected static int align(int theInt) {
+ return (4 - (theInt % 4));
+ }
+
+} \ No newline at end of file
diff --git a/libraries/oscP5/src/oscP5/OscPlug.java b/libraries/oscP5/src/oscP5/OscPlug.java
new file mode 100644
index 0000000..1fcec89
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscPlug.java
@@ -0,0 +1,258 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+import java.lang.reflect.Method;
+import netP5.Logger;
+
+/**
+ *
+ * @invisible
+ */
+public class OscPlug {
+
+ private boolean _isValid = true;
+
+ private String _myTypetag = "";
+
+ private String _myAddrPattern = "";
+
+ private String _myPattern = "";
+
+ private String _myMethodName;
+
+ private Object _myObject;
+
+ public Method method = null;
+
+ private int _myChecker = 0;
+
+ protected boolean isArray = false;
+
+ private static final int CHECK_ADDRPATTERN_TYPETAG = 0;
+
+ private static final int CHECK_ADDRPATTERN = 1;
+
+ private static final int CHECK_TYPETAG = 2;
+
+ public void plug(final Object theObject, final String theMethodName,
+ final String theAddrPattern) {
+ _myObject = theObject;
+ _myMethodName = theMethodName;
+ _myAddrPattern = theAddrPattern;
+ _myChecker = CHECK_ADDRPATTERN_TYPETAG;
+ if (_myMethodName != null && _myMethodName.length() > 0) {
+ Class<?> myClass = theObject.getClass();
+ Class<?>[] myParams = null;
+ Method[] myMethods = myClass.getMethods();
+ _myTypetag = "";
+ for (int i = 0; i < myMethods.length; i++) {
+ if ((myMethods[i].getName()).equals(_myMethodName)) {
+ myParams = myMethods[i].getParameterTypes();
+ for (int j = 0; j < myParams.length; j++) {
+ _myTypetag += checkType(myParams[j].getName());
+ }
+ break;
+ }
+ }
+ if (myParams != null) {
+ makeMethod(theObject.getClass(), myParams);
+ } else {
+ Logger.printWarning("OscPlug.plug()",
+ "no arguments found for method " + _myMethodName);
+ }
+ }
+ }
+
+ public void plug(final Object theObject, final String theMethodName,
+ final String theAddrPattern, final String theTypetag) {
+ _myObject = theObject;
+ _myMethodName = theMethodName;
+ _myAddrPattern = theAddrPattern;
+ _myTypetag = theTypetag;
+ _myChecker = CHECK_ADDRPATTERN_TYPETAG;
+
+ if (_myMethodName != null && _myMethodName.length() > 0) {
+ int tLen = _myTypetag.length();
+ Class<?>[] myParams;
+ if (tLen > 0) {
+ myParams = getArgs(_myTypetag);
+ } else {
+ myParams = null;
+ }
+
+ if (_isValid) {
+ makeMethod(theObject.getClass(), myParams);
+ }
+ }
+ }
+
+ public Object getObject() {
+ return _myObject;
+ }
+
+ private void makeMethod(final Class<?> theObjectsClass, final Class<?>[] theClass) {
+ try {
+ method = theObjectsClass.getDeclaredMethod(_myMethodName, theClass);
+ _myPattern = _myAddrPattern + _myTypetag;
+ method.setAccessible(true);
+ Logger.printProcess("OscPlug", "plugging " + theObjectsClass
+ + " | " + "addrPattern:" + _myAddrPattern + " typetag:"
+ + _myTypetag + " method:" + _myMethodName);
+
+ } catch (Exception e) {
+ final Class<?> theObjecsSuperClass = theObjectsClass.getSuperclass();
+ if (theObjecsSuperClass.equals(Object.class)) {
+ if (theObjectsClass.getName().equals("java.awt.Component") == false) { // applet fix.
+ Logger.printError("OscPlug", "method "
+ + theObjectsClass.getName()
+ + " does not exist in your code.");
+ }
+ } else {
+ makeMethod(theObjecsSuperClass, theClass);
+ }
+ }
+ return;
+ }
+
+ public boolean checkMethod(final OscMessage theOscMessage,
+ final boolean isArray) {
+ String myTypetag;
+ /*
+ * if theFlag is true and the arguments of theOscmessage can be
+ * represented as an array of the same type, then only fetch the first
+ * character of the typetag, otherwise use the full typetag.
+ */
+ if (isArray) {
+ myTypetag = "" + theOscMessage.typetag().charAt(0);
+ } else {
+ myTypetag = theOscMessage.typetag();
+ }
+ switch (_myChecker) {
+ case (CHECK_ADDRPATTERN_TYPETAG):
+ String thePattern = theOscMessage.addrPattern() + myTypetag;
+ return thePattern.equals(_myPattern);
+ case (CHECK_ADDRPATTERN):
+ return (theOscMessage.addrPattern().equals(_myAddrPattern));
+ case (CHECK_TYPETAG):
+ return (myTypetag.equals(_myTypetag));
+ default:
+ return false;
+ }
+ }
+
+ public Method getMethod() {
+ return method;
+ }
+
+
+ public String checkType(final String theName) {
+ if (theName.equals("int")) {
+ return "i";
+ } else if (theName.equals("float")) {
+ return "f";
+ } else if (theName.equals("java.lang.String")) {
+ return "s";
+ } else if (theName.equals("[Ljava.lang.String;")) {
+ isArray = true;
+ return "s";
+ }
+
+ else if (theName.equals("char")) {
+ return "c";
+ } else if (theName.equals("[B")) {
+ return "b";
+ } else if (theName.equals("[F")) {
+ isArray = true;
+ return "f";
+ } else if (theName.equals("[I")) {
+ isArray = true;
+ return "i";
+ }
+
+ else if (theName.equals("double")) {
+ return "d";
+ } else if (theName.equals("boolean")) {
+ return "T";
+ } else if (theName.equals("long")) {
+ return "h";
+ }
+ return "";
+ }
+
+ private Class<?>[] getArgs(final String theArgs) {
+ char[] tChar = theArgs.toCharArray();
+ int tLen = theArgs.length();
+ Class<?>[] tClass = new Class[tLen];
+ for (int i = 0; i < tLen; i++) {
+ switch (tChar[i]) {
+ case ('i'):
+ tClass[i] = (isArray == true) ? int[].class : int.class;
+ break;
+ case ('S'):
+ case ('s'):
+ tClass[i] = (isArray == true) ? String[].class : String.class;
+ break;
+ case ('f'):
+ tClass[i] = (isArray == true) ? float[].class : float.class;
+ break;
+ case ('d'):
+ tClass[i] = double.class;
+ break;
+ case ('c'):
+ tClass[i] = char.class;
+ break;
+ case ('h'):
+ case ('l'):
+ tClass[i] = long.class;
+ break;
+ case ('T'):
+ tClass[i] = boolean.class;
+ break;
+ case ('F'):
+ tClass[i] = boolean.class;
+ break;
+ case ('b'):
+ tClass[i] = byte[].class;
+ break;
+ case ('o'):
+ _myChecker = CHECK_ADDRPATTERN;
+ tClass = new Class[] { Object[].class };
+ break;
+
+ default:
+ _isValid = false;
+ break;
+ }
+ }
+ if (!_isValid) {
+ tClass = null;
+ System.out.println("ERROR could't plug method " + _myMethodName);
+ }
+ return tClass;
+ }
+
+}
diff --git a/libraries/oscP5/src/oscP5/OscProperties.java b/libraries/oscP5/src/oscP5/OscProperties.java
new file mode 100644
index 0000000..281eb1f
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscProperties.java
@@ -0,0 +1,319 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+
+import netP5.Logger;
+import netP5.NetAddress;
+import java.util.Vector;
+
+/**
+ * osc properties are used to start oscP5 with more specific settings.
+ * osc properties have to be passed to oscP5 in the constructor when
+ * starting a new instance of oscP5.
+ * @related OscP5
+ * @example oscP5properties
+ */
+public class OscProperties {
+
+ public static final boolean ON = true;
+
+ public static final boolean OFF = false;
+
+ /**
+ * @related setNetworkProtocol ( )
+ */
+ public static final int UDP = 0;
+
+ /**
+ * @related setNetworkProtocol ( )
+ */
+ public static final int MULTICAST = 1;
+
+
+ /**
+ * @related setNetworkProtocol ( )
+ */
+ public static final int TCP = 2;
+
+
+ protected static final String[] _myProtocols = {"udp", "tcp", "multicast"};
+
+ protected boolean isLocked = false;
+
+ protected final Vector<OscEventListener> listeners;
+
+ private NetAddress _myRemoteAddress = new NetAddress("", 0);
+
+ private int _myListeningPort = 0;
+
+ private int _myDatagramSize = 1536; // common MTU
+
+ protected String _myDefaultEventMethodName = "oscEvent";
+
+ private int _myNetworkProtocol = UDP;
+
+ private boolean _mySendStatus = false;
+
+ private boolean _mySRSP = OFF; // (S)end (R)eceive (S)ame (P)ort
+
+ public OscProperties(OscEventListener theParent) {
+ this();
+ listeners.add(theParent);
+ }
+
+
+
+ /**
+ * create a new OscProperties Object.
+ */
+ public OscProperties() {
+ listeners = new Vector<OscEventListener>();
+ }
+
+
+
+ /**
+ *
+ * @return OscEventListener
+ * @invisible
+ */
+ public Vector<OscEventListener> listeners() {
+ return listeners;
+ }
+
+
+
+ /**
+ *
+ * @return boolean
+ * @related OscProperties
+ * @invisible
+ */
+ public boolean sendStatus() {
+ return _mySendStatus;
+ }
+
+
+
+ /**
+ * set the remote host address. set ip address and port of the host
+ * message should be sent to.
+ * @param theHostAddress String
+ * @param thePort int
+ * @related OscProperties
+ */
+ public void setRemoteAddress(final String theHostAddress, final int thePort) {
+ _myRemoteAddress = new NetAddress(theHostAddress, thePort);
+ _mySendStatus = _myRemoteAddress.isvalid();
+ }
+
+ /**
+ * set the remote host address. set ip address and port of the host
+ * message should be sent to.
+ * @param theNetAddress NetAddress
+ * @related OscProperties
+ */
+ public void setRemoteAddress(NetAddress theNetAddress) {
+ _myRemoteAddress = theNetAddress;
+ _mySendStatus = _myRemoteAddress.isvalid();
+ }
+
+
+ /**
+ *set port number you are listening for incoming osc packets.
+ * @param thePort int
+ * @related OscProperties
+ */
+ public void setListeningPort(final int thePort) {
+ _myListeningPort = thePort;
+ }
+
+
+
+ /**
+ * set the size of the datagrampacket byte buffer.
+ * the default size is 1536 bytes.
+ * @param theSize int
+ * @related OscProperties
+ */
+ public void setDatagramSize(final int theSize) {
+ if (!isLocked) {
+ _myDatagramSize = theSize;
+ }
+ else {
+ Logger.printWarning("OscProperties.setDatagramSize",
+ "datagram size can only be set before initializing oscP5\ncurrent datagram size is "
+ + _myDatagramSize);
+ }
+ }
+
+
+
+ /**
+ * set the name of the default event method.
+ * the event method is the method to which incoming osc messages
+ * are forwarded. the default name for the event method is
+ * "oscEvent"
+ * @param theEventMethod String
+ * @related OscProperties
+ */
+ public void setEventMethod(final String theEventMethod) {
+ _myDefaultEventMethodName = theEventMethod;
+ }
+
+
+
+ /**
+ * set the network protocol over which osc messages are transmitted.
+ * options are OscProperties.UDP and OscProperties.MULTICAST
+ * the network protocol can only be set before initializing
+ * oscP5.
+ * @param theProtocol int
+ * @related OscProperties
+ * @related UDP
+ * @related TCP
+ * @related MULTICAST
+ * @related networkProtocol ( )
+ */
+ public void setNetworkProtocol(final int theProtocol) {
+ if (!isLocked) {
+ if (theProtocol > 2) {
+ Logger.printWarning("OscProperties.setNetworkProtocol",
+ "not in the range of supported Network protocols. the network protocol defaults to UDP");
+ }
+ else {
+ _myNetworkProtocol = theProtocol;
+ }
+ }
+ else {
+ Logger.printWarning("OscProperties.setNetworkProtocol",
+ "network protocol can only be set before initializing oscP5.");
+ }
+ }
+
+
+
+ /**
+ * SRSP stand for Send and Receive on Same Port.
+ * by default osc packets are not received and sent by the same port.
+ * if you need to send and receive on the same port call
+ * setSRSP(OscProperties.ON)
+ * @param theFlag boolean
+ * @related OscProperties
+ */
+ public void setSRSP(final boolean theFlag) {
+ _mySRSP = theFlag;
+ }
+
+
+
+ /**
+ * you can send and receive at the same port while on a udp con
+ * @return boolean
+ * @related OscProperties
+ */
+ public boolean srsp() {
+ return _mySRSP;
+ }
+
+
+
+ /**
+ * returns the port number currently used to receive osc packets.
+ * @return int
+ * @related OscProperties
+ */
+ public int listeningPort() {
+ return _myListeningPort;
+ }
+
+
+
+ /**
+ * returns a NetAddress of the remote host you are sending
+ * osc packets to. by default this is null.
+ * @return NetAddress
+ * @related OscProperties
+ */
+ public NetAddress remoteAddress() {
+ return _myRemoteAddress;
+ }
+
+
+
+ /**
+ * returns the current size of the datagram bytebuffer.
+ * @return int
+ * @related OscProperties
+ */
+ public int datagramSize() {
+ return _myDatagramSize;
+ }
+
+
+
+ /**
+ *
+ * @return String
+ * @related OscProperties
+ */
+ public String eventMethod() {
+ return _myDefaultEventMethodName;
+ }
+
+
+
+ /**
+ * returns the network protocol being used to transmit osc packets. returns an int.
+ * 0 (UDP), 1 (MULTICAST), 2 (TCP)
+ * @return int
+ * @related OscProperties
+ */
+ public int networkProtocol() {
+ return _myNetworkProtocol;
+ }
+
+
+
+ /**
+ * prints out the current osc properties settings.
+ * @return String
+ * @related OscProperties
+ */
+ public String toString() {
+ String s = "\nnetwork protocol: " + (_myProtocols[_myNetworkProtocol])
+ + "\n";
+ s += "host: " + ((_myRemoteAddress.address()!=null) ? _myRemoteAddress.address():"host address not set.") + "\n";
+ s += "sendToPort: " + _myRemoteAddress.port() + "\n";
+ s += "receiveAtPort: " + listeningPort() + "\n";
+ s += "datagramSize: " + _myDatagramSize + "\n";
+ s += "event Method: " + _myDefaultEventMethodName + "\n";
+ s += "(S)end(R)eceive(S)ame(P)ort: " + this._mySRSP + "\n\n";
+ return s;
+ }
+
+}
diff --git a/libraries/oscP5/src/oscP5/OscStatus.java b/libraries/oscP5/src/oscP5/OscStatus.java
new file mode 100644
index 0000000..9744a98
--- /dev/null
+++ b/libraries/oscP5/src/oscP5/OscStatus.java
@@ -0,0 +1,63 @@
+/**
+ * An OSC (Open Sound Control) library for processing.
+ *
+ * (c) 2004-2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * @author Andreas Schlegel http://www.sojamo.de
+ * @modified 12/23/2012
+ * @version 0.9.9
+ */
+
+package oscP5;
+
+public class OscStatus {
+
+
+ public static int ERROR = -1;
+
+ public static int DEFAULT = 0;
+
+ public static int CONNECTION_CLOSED = 1;
+
+ public static int CONNECTION_REFUSED = 2;
+
+ public static int CONNECTION_TERMINATED = 4;
+
+ public static int CONNECTION_FAILED = 8;
+
+ public static int SERVER_CLOSED = 16;
+
+ public static int CLIENT_CLOSED = 32;
+
+ public static int SEND_FAILED = 64;
+
+ public static int OSCP5_CLOSED = 1024;
+
+ private int _myIndex = DEFAULT;
+
+
+ public OscStatus(int theIndex) {
+ _myIndex = theIndex;
+ }
+
+
+ public int id() {
+ return _myIndex;
+ }
+
+}