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();
+ }
+
+}