front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCMessage.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) 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
}