front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPortOut.java
author bastiena
Tue, 20 Mar 2012 18:00:55 +0100
changeset 7 8a21bec5d45f
parent 0 6fefd4afe506
child 9 0f44b7360c8d
permissions -rw-r--r--
Middleware : No proximity bugs anymore. The skeleton disappear if a tracked person is too close or not tracked anymore. Processing : There are no laggs anymore when an user stay too long moving his hands and drawing tons of ellipses. (TUIO Cursors are not taken by their vectors, only the last position of the cursors are caught to be drawn).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     1
/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     2
 * @author cramakrishnan
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     3
 *
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     4
 * Copyright (C) 2004, C. Ramakrishnan / Illposed Software
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     5
 * All rights reserved.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     6
 * 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     7
 * See license.txt (or license.rtf) for license information.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     8
 * 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     9
 * 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    10
 * OSCPortOut is the class that sends OSC messages.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    11
 *
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    12
 * To send OSC, in your code you should instantiate and hold onto an OSCPort
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    13
 * pointing at the address and port number for the receiver.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    14
 *
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    15
 * When you want to send an OSC message, call send().
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    16
 *
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    17
 * An example based on com.illposed.osc.test.OSCPortTest::testMessageWithArgs() :
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    18
		OSCPort sender = new OSCPort();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    19
		Object args[] = new Object[2];
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    20
		args[0] = new Integer(3);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    21
		args[1] = "hello";
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    22
		OSCMessage msg = new OSCMessage("/sayhello", args);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    23
		 try {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    24
			sender.send(msg);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    25
		 } catch (Exception e) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    26
			 showError("Couldn't send");
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    27
		 }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    28
 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    29
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    30
package com.illposed.osc;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    31
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    32
import java.net.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    33
import java.io.IOException;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    34
import com.illposed.osc.utility.OSCByteArrayToJavaConverter;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    35
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    36
public class OSCPortOut extends OSCPort {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    37
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    38
	protected InetAddress address;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    39
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    40
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    41
	 * Create an OSCPort that sends to newAddress, newPort
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    42
	 * @param newAddress InetAddress
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    43
	 * @param newPort int
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    44
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    45
	public OSCPortOut(InetAddress newAddress, int newPort) throws SocketException {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    46
		socket = new DatagramSocket();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    47
		address = newAddress;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    48
		port = newPort;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    49
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    50
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    51
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    52
	 * Create an OSCPort that sends to newAddress, on the standard SuperCollider port
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    53
	 * @param newAddress InetAddress
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    54
	 *
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    55
	 * Default the port to the standard one for SuperCollider
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    56
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    57
	public OSCPortOut(InetAddress newAddress) throws SocketException {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    58
		this(newAddress, defaultSCOSCPort);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    59
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    60
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    61
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    62
	 * Create an OSCPort that sends to localhost, on the standard SuperCollider port
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    63
	 * Default the address to localhost
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    64
	 * Default the port to the standard one for SuperCollider
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    65
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    66
	public OSCPortOut() throws UnknownHostException, SocketException {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    67
		this(InetAddress.getLocalHost(), defaultSCOSCPort);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    68
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    69
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    70
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    71
	 * @param aPacket OSCPacket
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    72
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    73
	public void send(OSCPacket aPacket) throws IOException {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    74
		byte[] byteArray = aPacket.getByteArray();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    75
		DatagramPacket packet = 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    76
			new DatagramPacket(byteArray, byteArray.length,address,port);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    77
		socket.send(packet);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    78
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    79
}