/**
* oscP5bundle by andreas schlegel
* an osc broadcast server.
* example shows how to create and send osc bundles.
* oscP5 website at https://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());
}