package nodebox.client.devicehandler; import nodebox.node.Device; public class DeviceHandlerFactory { public static DeviceHandler createDeviceHandler(Device device) { if (device.getType().equals(Device.TYPE_OSC)) return createOSCDeviceHandler(device); else if (device.getType().equals(Device.TYPE_AUDIOPLAYER)) return createAudioPlayerDeviceHandler(device); else if (device.getType().equals(Device.TYPE_AUDIOINPUT)) return createAudioInputDeviceHandler(device); return null; } private static boolean isSyncedWithTimeline(Device device) { return Boolean.parseBoolean(device.getProperty(Device.TIMELINE_SYNC, "false")); } private static DeviceHandler createOSCDeviceHandler(Device device) { int port = Integer.parseInt(device.getProperty("port", "-1")); return new OSCDeviceHandler(device.getName(), port, isSyncedWithTimeline(device)); } private static DeviceHandler createAudioPlayerDeviceHandler(Device device) { String fileName = device.getProperty("filename", ""); return new AudioPlayerDeviceHandler(device.getName(), fileName, isSyncedWithTimeline(device)); } private static DeviceHandler createAudioInputDeviceHandler(Device device) { return new AudioInputDeviceHandler(device.getName(), isSyncedWithTimeline(device)); } }