front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCMessage.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) 2003, 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
 * An simple (non-bundle) OSC message. An OSC message is made up of 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    11
 *     an address (who is this message sent to)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    12
 *     and arguments (what is the contents of this message).
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    13
 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    14
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    15
package com.illposed.osc;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    16
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    17
import java.util.Enumeration;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    18
import java.util.Vector;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    19
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    20
import com.illposed.osc.utility.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    21
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    22
public class OSCMessage extends OSCPacket {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    23
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    24
	protected String address;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    25
	protected Vector<Object> arguments;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    26
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    27
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    28
	 * Create an empty OSC Message
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    29
	 * In order to send this osc message, you need to set the address
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    30
	 * and, perhaps, some arguments.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    31
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    32
	public OSCMessage() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    33
		super();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    34
		arguments = new Vector<Object>();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    35
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    36
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    37
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    38
	 * Create an OSCMessage with an address already initialized
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    39
	 * @param newAddress The recepient of this OSC message
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    40
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    41
	public OSCMessage(String newAddress) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    42
		this(newAddress, null);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    43
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    44
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    45
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    46
	 * Create an OSCMessage with an address and arguments already initialized
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    47
	 * @param newAddress    The recepient of this OSC message
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    48
	 * @param newArguments  The data sent to the receiver
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    49
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    50
	public OSCMessage(String newAddress, Object[] newArguments) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    51
		super();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    52
		address = newAddress;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    53
		if (null != newArguments) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    54
			arguments = new Vector<Object>(newArguments.length);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    55
			for (int i = 0; i < newArguments.length; i++) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    56
				arguments.add(newArguments[i]);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    57
			}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    58
		} else
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    59
			arguments = new Vector<Object>();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    60
		init();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    61
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    62
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    63
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    64
	 * @return the address of this OSC Message
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    65
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    66
	public String getAddress() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    67
		return address;
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
	 * Set the address of this messsage
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    72
	 * @param anAddress
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    73
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    74
	public void setAddress(String anAddress) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    75
		address = anAddress;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    76
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    77
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    78
	public void addArgument(Object argument) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    79
		arguments.add(argument);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    80
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    81
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    82
	public Object[] getArguments() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    83
		return arguments.toArray();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    84
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    85
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    86
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    87
	 * @param stream OscPacketByteArrayConverter
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    88
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    89
	protected void computeAddressByteArray(OSCJavaToByteArrayConverter stream) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    90
		stream.write(address);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    91
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    92
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    93
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    94
	 * @param stream OscPacketByteArrayConverter
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    95
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    96
	protected void computeArgumentsByteArray(OSCJavaToByteArrayConverter stream) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    97
		// SC starting at version 2.2.10 wants a comma at the beginning
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    98
		// of the arguments array.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    99
		stream.write(',');
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   100
		if (null == arguments)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   101
			return;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   102
		stream.writeTypes(arguments);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   103
		Enumeration enm = arguments.elements();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   104
		while (enm.hasMoreElements()) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   105
			stream.write(enm.nextElement());
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   106
		}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   107
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   108
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   109
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   110
	 * @param stream OscPacketByteArrayConverter
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   111
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   112
	protected void computeByteArray(OSCJavaToByteArrayConverter stream) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   113
		computeAddressByteArray(stream);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   114
		computeArgumentsByteArray(stream);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   115
		byteArray = stream.toByteArray();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   116
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   117
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   118
}