diff --git a/java/.classpath b/java/.classpath index 6c3f9be..70d3166 100644 --- a/java/.classpath +++ b/java/.classpath @@ -6,5 +6,6 @@ + diff --git a/java/src/pm/Main.java b/java/src/pm/Main.java index d23046b..c55e55f 100644 --- a/java/src/pm/Main.java +++ b/java/src/pm/Main.java @@ -6,12 +6,15 @@ import java.util.concurrent.ConcurrentLinkedQueue; import pm.action.Action; import pm.application.Application; -import pm.application.voorbeeld.Voorbeeld; +import pm.application.voorbeeld.VoorbeeldApplication; import pm.device.Device; -import pm.device.example.Example; +import pm.device.JavaInputDevice; +import pm.device.example.ExampleDevice; +import pm.device.rumblepad.RumblepadDevice; import pm.exception.ActionException; import pm.exception.ActionNotImplementedException; import pm.exception.EventException; +import pm.service.javainput.JavaInputService; public class Main extends Target { protected static final int SLEEP = 100; @@ -22,12 +25,14 @@ public class Main extends Target { boolean run; Application currentApplication; - + public Main() { applicationList = new ArrayList(); - applicationList.iterator(); + //applicationList.iterator(); deviceList = new ArrayList(); actionQueue = new ConcurrentLinkedQueue(); + JavaInputService.initialize(); + //JXInputDevice.jxinputService = new JXInputService(); } public void addApplication(Application application) { @@ -47,10 +52,14 @@ public class Main extends Target { } public void start() throws Exception { - Device device = new Example(actionQueue); + Device device = new ExampleDevice(actionQueue); + //addDevice(device); + + device = new RumblepadDevice(actionQueue); + addDevice(device); device.initialise(); - Application application = new Voorbeeld(); + Application application = new VoorbeeldApplication(); addApplication(application); currentApplication = application; run(); diff --git a/java/src/pm/application/voorbeeld/Voorbeeld.java b/java/src/pm/application/voorbeeld/VoorbeeldApplication.java similarity index 79% rename from java/src/pm/application/voorbeeld/Voorbeeld.java rename to java/src/pm/application/voorbeeld/VoorbeeldApplication.java index 0f1df59..3a9855b 100644 --- a/java/src/pm/application/voorbeeld/Voorbeeld.java +++ b/java/src/pm/application/voorbeeld/VoorbeeldApplication.java @@ -2,7 +2,7 @@ package pm.application.voorbeeld; import pm.application.Application; -public class Voorbeeld extends Application { +public class VoorbeeldApplication extends Application { public void start() throws Exception { System.out.println("jeheee!"); //throw new Exception("GEK"); diff --git a/java/src/pm/device/JavaInputDevice.java b/java/src/pm/device/JavaInputDevice.java new file mode 100644 index 0000000..23807f4 --- /dev/null +++ b/java/src/pm/device/JavaInputDevice.java @@ -0,0 +1,27 @@ +package pm.device; + +import java.util.Queue; + +import de.hardcode.jxinput.JXInputDevice; + +import pm.action.Action; +import pm.exception.ServiceJavaInputException; +import pm.service.javainput.JavaInputService; + +public abstract class JavaInputDevice extends Device { + + public static JavaInputService jxinputService; + + protected JavaInputDevice(Queue actionQueue, String name) throws ServiceJavaInputException { + super(actionQueue); + if (jxinputService == null) { + throw new ServiceJavaInputException(); + } + JXInputDevice x = jxinputService.getDevice(name); + System.out.printf("Initialized: %s\n", x.getName()); + } + + public void initialise() { + + } +} diff --git a/java/src/pm/device/example/Example.java b/java/src/pm/device/example/ExampleDevice.java similarity index 55% rename from java/src/pm/device/example/Example.java rename to java/src/pm/device/example/ExampleDevice.java index bed1358..03b439e 100644 --- a/java/src/pm/device/example/Example.java +++ b/java/src/pm/device/example/ExampleDevice.java @@ -6,8 +6,8 @@ import pm.action.Action; import pm.device.Device; import pm.event.Target; -public class Example extends Device { - public Example(Queue actionQueue) { +public class ExampleDevice extends Device { + public ExampleDevice(Queue actionQueue) { super(actionQueue); } @@ -16,4 +16,13 @@ public class Example extends Device { addAction(Action.TEST, Target.APPLICATION); addAction(Action.EXIT, Target.MAIN); } + + public void processEvent() { + /*ExampleEvent de; + if (specifiekEvent == start) { + addAction() + } + */ + } + } diff --git a/java/src/pm/device/rumblepad/RumblepadDevice.java b/java/src/pm/device/rumblepad/RumblepadDevice.java new file mode 100644 index 0000000..52de30f --- /dev/null +++ b/java/src/pm/device/rumblepad/RumblepadDevice.java @@ -0,0 +1,17 @@ +package pm.device.rumblepad; + +import java.util.Queue; + +import pm.action.Action; +import pm.device.JavaInputDevice; +import pm.exception.ServiceJavaInputException; + +public class RumblepadDevice extends JavaInputDevice { + + protected static final String NAME = "Logitech RumblePad 2 USB"; + + public RumblepadDevice(Queue actionQueue) throws ServiceJavaInputException { + super(actionQueue, NAME); + } + +} diff --git a/java/src/pm/exception/ServiceException.java b/java/src/pm/exception/ServiceException.java new file mode 100644 index 0000000..16b9937 --- /dev/null +++ b/java/src/pm/exception/ServiceException.java @@ -0,0 +1,5 @@ +package pm.exception; + +public class ServiceException extends Exception { + protected static final long serialVersionUID = 1L; +} diff --git a/java/src/pm/exception/ServiceJavaInputDeviceNotFoundException.java b/java/src/pm/exception/ServiceJavaInputDeviceNotFoundException.java new file mode 100644 index 0000000..4645da3 --- /dev/null +++ b/java/src/pm/exception/ServiceJavaInputDeviceNotFoundException.java @@ -0,0 +1,5 @@ +package pm.exception; + +public class ServiceJavaInputDeviceNotFoundException extends ServiceJavaInputException { + protected static final long serialVersionUID = 1L; +} diff --git a/java/src/pm/exception/ServiceJavaInputException.java b/java/src/pm/exception/ServiceJavaInputException.java new file mode 100644 index 0000000..a5bc72c --- /dev/null +++ b/java/src/pm/exception/ServiceJavaInputException.java @@ -0,0 +1,5 @@ +package pm.exception; + +public class ServiceJavaInputException extends ServiceException { + protected static final long serialVersionUID = 1L; +} diff --git a/java/src/pm/service/Service.java b/java/src/pm/service/Service.java new file mode 100644 index 0000000..425ff9e --- /dev/null +++ b/java/src/pm/service/Service.java @@ -0,0 +1,5 @@ +package pm.service; + +public abstract class Service { + +} diff --git a/java/src/pm/service/javainput/JavaInputService.java b/java/src/pm/service/javainput/JavaInputService.java new file mode 100644 index 0000000..5185cc9 --- /dev/null +++ b/java/src/pm/service/javainput/JavaInputService.java @@ -0,0 +1,28 @@ +package pm.service.javainput; + +import de.hardcode.jxinput.JXInputDevice; +import de.hardcode.jxinput.JXInputManager; + +import pm.device.JavaInputDevice; +import pm.exception.ServiceJavaInputDeviceNotFoundException; +import pm.exception.ServiceJavaInputException; +import pm.service.Service; + +public class JavaInputService extends Service { + + public JXInputDevice getDevice(String name) throws ServiceJavaInputException { + int numberOfDevices = JXInputManager.getNumberOfDevices(); + for (int i = 0; i < numberOfDevices; ++i) { + JXInputDevice device = JXInputManager.getJXInputDevice(i); + if (device.getName().startsWith(name)) { + return device; + } + } + throw new ServiceJavaInputDeviceNotFoundException(); + } + + public static void initialize() { + JavaInputDevice.jxinputService = new JavaInputService(); + } + +}