/*
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;
}
}