front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPortOut.java
author bastiena
Fri, 09 Mar 2012 14:52:11 +0100
changeset 0 6fefd4afe506
child 9 0f44b7360c8d
permissions -rw-r--r--
First Import
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
}