front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPacket.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
 * OscPacket is the abstract superclass for the various
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    11
 * kinds of OSC Messages. Its direct subclasses are:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    12
 *  OscMessage, OscBundle
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    13
 *
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    14
 * Subclasses need to know how to produce a byte array
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    15
 * in the format specified by the OSC spec (or SuperCollider
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    16
 * documentation, as the case may be).
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    17
 *
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    18
 * This implementation is based on Markus Gaelli and
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    19
 * Iannis Zannos' OSC implementation in Squeak:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    20
 * http://www.emergent.de/Goodies/
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    21
 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    22
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    23
package com.illposed.osc;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    24
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    25
import com.illposed.osc.utility.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    26
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    27
public abstract class OSCPacket {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    28
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    29
	protected byte[] byteArray;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    30
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    31
	public OSCPacket() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    32
		super();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    33
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    34
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    35
	protected void computeByteArray() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    36
		OSCJavaToByteArrayConverter stream = new OSCJavaToByteArrayConverter();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    37
		computeByteArray(stream);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    38
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    39
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    40
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    41
	 * @param stream OscPacketByteArrayConverter
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    42
	 *
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    43
	 * Subclasses should implement this method to product a byte array
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    44
	 * formatted according to the OSC/SuperCollider specification.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    45
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    46
	protected abstract void computeByteArray(OSCJavaToByteArrayConverter stream);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    47
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    48
	/**
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    49
	 * @return byte[]
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    50
	 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    51
	public byte[] getByteArray() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    52
		computeByteArray();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    53
		return byteArray;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    54
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    55
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    56
	protected void init() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    57
		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    58
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    59
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    60
}