View Javadoc

1   package net.sf.josceleton.core.api.entity;
2   
3   /**
4    * Represents OSC addresses used for user related messages sent by OSCeleton.
5    * 
6    * @since 0.1
7    */
8   public enum UserState {
9   
10  	/**
11  	 * Represents the message sent for address <code>/new_user</code>.
12  	 * 
13  	 * Indicates OSCeleton is currently waiting to identify skeleton by detecting a PSI-position.
14  	 * 
15  	 * @since 0.1
16  	 */
17  	WAITING { @Override public <T> T callback(final UserStateFunction<T> callee) {
18  		return callee.onStateWaiting();
19  	}},
20  
21  	/**
22  	 * Represents the message sent for address <code>/new_skel</code>.
23  	 * 
24  	 * Indicating that skeleton data will now be processed.
25  	 * 
26  	 * @since 0.1
27  	 */
28  	PROCESSING { @Override public <T> T callback(final UserStateFunction<T> callee) {
29  		return callee.onStateProcessing();
30  	}},
31  
32  	/**
33  	 * Represents the message sent for address <code>/lost_user</code>.
34  	 * 
35  	 * Indicates OSCeleton lost track of a user.
36  	 * 
37  	 * @since 0.1
38  	 */
39  	DEAD { @Override public <T> T callback(final UserStateFunction<T> callee) {
40  		return callee.onStateDead();
41  	}};
42  	
43  	/**
44  	 * @since 0.3
45  	 */
46  	public abstract <T> T callback(UserStateFunction<T> callee);
47  }