front_processing/extern/TUIO_JAVA/src/TUIO/TuioString.java
author bastiena
Thu, 15 Mar 2012 13:33:21 +0100
changeset 3 92f19af39024
child 9 0f44b7360c8d
permissions -rw-r--r--
Middleware : Swipe & Push & Jump(Experimental) Detectors ant events added Server modified for gesture detection TUIO Server C# Modified : Hand cursors redirected to /TUIO/3DCur channel New kind of OSC message created (TuioString) for gesture detection, using /TUIO/_siP channel. TUIO Processing Java Modified : Hand cursors redirected to /TUIO/3DCur channel New kind of OSC message created (TuioString) for gesture detection, using /TUIO/_siP channel. Front Processing : Mask added and modifications in the drawing process New front for gesture detection (just showing a text message in the mask for the moment)

/*
Added by alexandre.bastien@iri.centrepompidou.fr
*/

package TUIO;

/**
 * The TuioCursor class encapsulates /tuio/_siP TUIO strings.
 *
 */ 
public class TuioString {

	/**
	 * The unique session ID number that is assigned to each TUIO string.
	 */ 
	protected long session_id;

	/**
	 * The individual string ID number that is assigned to each TuioString.
	 */ 
	protected int string_id;
	
	/**
	 * The individual string message that is assigned to each TuioString.
	 */ 
	protected String message;
	
	/**
	 * The time stamp of the last update represented as TuioTime (time since session start)
	 */
	protected TuioTime currentTime;
	/**
	 * The creation time of this TuioString represented as TuioTime (time since session start)
	 */
	protected TuioTime startTime;
	
	/**
	 * Defines the ADDED state.
	 */ 
	public static final int TUIO_ADDED = 0;
	/**
	 * Defines the REMOVED state.
	 */ 
	public static final int TUIO_REMOVED = 4;
	/**
	 * Reflects the current state of the TuioString
	 */ 
	protected int state;
	
	/**
	 * This constructor takes a TuioTime argument and assigns it along  with the provided 
	 * Session ID, String ID and a message to the newly created TuioString.
	 *
	 * @param	ttime	the TuioTime to assign
	 * @param	si	the Session ID  to assign
	 * @param	sti	the String ID  to assign
	 * @param	msg the message to assign
	 */
	public TuioString (TuioTime ttime, long si, int sti, String msg) {
		this.session_id = si;
		this.string_id = sti;
		this.message = msg;
		currentTime = new TuioTime(ttime);
		startTime = new TuioTime(currentTime);
	}
	
	/**
	 * This constructor takes the provided Session ID, String ID and message 
	 * and assigs these values to the newly created TuioString.
	 *
	 * @param	si	the Session ID  to assign
	 * @param	sti	the String ID  to assign
	 * @param	msg	the message to assign
	 */
	public TuioString (long si, int sti, String msg) {
		this.session_id = si;
		this.string_id = sti;
		this.message = msg;
		currentTime = TuioTime.getSessionTime();
		startTime = new TuioTime(currentTime);
	}
	
	/**
	 * This constructor takes the atttibutes of the provided TuioCursor 
	 * and assigs these values to the newly created TuioCursor.
	 *
	 * @param	tcur	the TuioCursor to assign
	 */
	public TuioString (TuioString tstr) {
		this.session_id = tstr.getSessionID();
		this.string_id = tstr.getStringID();
		this.message = tstr.getMessage();
		currentTime = new TuioTime(tstr.getCurrentTime());
		startTime = new TuioTime(currentTime);
	}

	/**
	 * Takes a TuioTime argument and assigns it along with the provided 
	 * message to the private TuioString attributes.
	 * The speed and accleration values are calculated accordingly.
	 *
	 * @param	ttime	the TuioTime to assign
	 * @param	message2 the message to assign
	 */
	public void update(TuioTime ttime, String message2) {
		currentTime = new TuioTime(ttime);
		message = message2;
	}
	
	/**
	 * This method is used to update the TuioTime of a TuioString while keeping the same * * * message.
	 */
	public void stop(TuioTime ttime) {
		update(ttime,message);
	}
	
	/**
	 * Takes the atttibutes of the provided TuioString 
	 * and assigs these values to this TuioString.
	 * The TuioTime time stamp of this TuioString remains unchanged.
	 *
	 * @param	tstr	the TuioString to assign
	 */
	public void update (TuioString tstr) {
		message = tstr.getMessage();
	}
	
	/**
	 * Takes the message provided
	 * and assigs its value to this TuioString.
	 * The TuioTime time stamp of this TuioString remains unchanged.
	 *
	 * @param	msg	the message to assign
	 */
	public void update (String msg) {
		message = msg;
	}
	
	/**
	 * Assigns the REMOVE state to this TuioString and sets
	 * its TuioTime time stamp to the provided TuioTime argument.
	 *
	 * @param	ttime	the TuioTime to assign
	 */
	public void remove(TuioTime ttime) {
		currentTime = new TuioTime(ttime);
		state = TUIO_REMOVED;
	}
	
	/**
	 * Returns the Session ID of this TuioString.
	 * @return	the Session ID of this TuioString
	 */
	public long getSessionID() {
		return session_id;
	}
	
	/**
	 * Returns the String ID of this TuioString.
	 * @return	the String ID of this TuioString
	 */
	public int getStringID() {
		return string_id;
	}
	
	/**
	 * Returns the Message of this TuioString.
	 * @return	the Message of this TuioString
	 */
	public String getMessage() {
		return message;
	}
	
	/**
	 * Returns the Current Time of this TuioString.
	 * @return	the Current Time of this TuioString
	 */
	public TuioTime getCurrentTime() {
		return currentTime;
	}
	
	/**
	 * Returns the TUIO state of this TuioString.
	 * @return	the TUIO state of this TuioString
	 */
	public int getTuioState() {
		return state;
	}
}