1 package net.sf.josceleton.connection.impl;
2
3 import java.util.Date;
4 import java.util.HashMap;
5 import java.util.Map;
6
7 import net.sf.josceleton.connection.impl.osc.OscAddress;
8 import net.sf.josceleton.connection.impl.osc.OscPort;
9
10 import com.illposed.osc.OSCListener;
11 import com.illposed.osc.OSCMessage;
12
13 class OscMessageAddressRouterImpl implements OscMessageAddressRouter {
14
15
16 @Override public final void reroute(final OscPort oscPort, final OscMessageAddressRouterCallback callback) {
17 final Map<OscAddress, OSCListener> map = this.createListenerMap(callback);
18
19 for(final OscAddress address : OscAddress.values()) {
20 oscPort.addListenerFor(address, map.get(address));
21 }
22 }
23
24 private Map<OscAddress, OSCListener> createListenerMap(final OscMessageAddressRouterCallback callback) {
25 final Map<OscAddress, OSCListener> map = new HashMap<OscAddress, OSCListener>();
26
27 map.put(OscAddress.JOINT, new OSCListener() {
28 @Override public void acceptMessage(final Date date, final OSCMessage oscMessage) {
29 callback.onAcceptedJointMessage(date, oscMessage);
30 }});
31 final OSCListener userListener = new OSCListener() {
32 @Override public void acceptMessage(final Date date, final OSCMessage oscMessage) {
33 callback.onAcceptedUserMessage(date, oscMessage);
34 }};
35 map.put(OscAddress.NEW_USER, userListener);
36 map.put(OscAddress.NEW_SKEL, userListener);
37 map.put(OscAddress.LOST_USER, userListener);
38
39
40
41 return map;
42 }
43 }