Services en JXInput als java input device geimplementeerd.
This commit is contained in:
@@ -6,5 +6,6 @@
|
|||||||
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="Project Multimedia/native"/>
|
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="Project Multimedia/native"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="lib/jxinput.jar"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|||||||
@@ -6,12 +6,15 @@ import java.util.concurrent.ConcurrentLinkedQueue;
|
|||||||
|
|
||||||
import pm.action.Action;
|
import pm.action.Action;
|
||||||
import pm.application.Application;
|
import pm.application.Application;
|
||||||
import pm.application.voorbeeld.Voorbeeld;
|
import pm.application.voorbeeld.VoorbeeldApplication;
|
||||||
import pm.device.Device;
|
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.ActionException;
|
||||||
import pm.exception.ActionNotImplementedException;
|
import pm.exception.ActionNotImplementedException;
|
||||||
import pm.exception.EventException;
|
import pm.exception.EventException;
|
||||||
|
import pm.service.javainput.JavaInputService;
|
||||||
|
|
||||||
public class Main extends Target {
|
public class Main extends Target {
|
||||||
protected static final int SLEEP = 100;
|
protected static final int SLEEP = 100;
|
||||||
@@ -22,12 +25,14 @@ public class Main extends Target {
|
|||||||
|
|
||||||
boolean run;
|
boolean run;
|
||||||
Application currentApplication;
|
Application currentApplication;
|
||||||
|
|
||||||
public Main() {
|
public Main() {
|
||||||
applicationList = new ArrayList<Application>();
|
applicationList = new ArrayList<Application>();
|
||||||
applicationList.iterator();
|
//applicationList.iterator();
|
||||||
deviceList = new ArrayList<Device>();
|
deviceList = new ArrayList<Device>();
|
||||||
actionQueue = new ConcurrentLinkedQueue<Action>();
|
actionQueue = new ConcurrentLinkedQueue<Action>();
|
||||||
|
JavaInputService.initialize();
|
||||||
|
//JXInputDevice.jxinputService = new JXInputService();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addApplication(Application application) {
|
public void addApplication(Application application) {
|
||||||
@@ -47,10 +52,14 @@ public class Main extends Target {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void start() throws Exception {
|
public void start() throws Exception {
|
||||||
Device device = new Example(actionQueue);
|
Device device = new ExampleDevice(actionQueue);
|
||||||
|
//addDevice(device);
|
||||||
|
|
||||||
|
device = new RumblepadDevice(actionQueue);
|
||||||
|
|
||||||
addDevice(device);
|
addDevice(device);
|
||||||
device.initialise();
|
device.initialise();
|
||||||
Application application = new Voorbeeld();
|
Application application = new VoorbeeldApplication();
|
||||||
addApplication(application);
|
addApplication(application);
|
||||||
currentApplication = application;
|
currentApplication = application;
|
||||||
run();
|
run();
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package pm.application.voorbeeld;
|
|||||||
|
|
||||||
import pm.application.Application;
|
import pm.application.Application;
|
||||||
|
|
||||||
public class Voorbeeld extends Application {
|
public class VoorbeeldApplication extends Application {
|
||||||
public void start() throws Exception {
|
public void start() throws Exception {
|
||||||
System.out.println("jeheee!");
|
System.out.println("jeheee!");
|
||||||
//throw new Exception("GEK");
|
//throw new Exception("GEK");
|
||||||
27
java/src/pm/device/JavaInputDevice.java
Normal file
27
java/src/pm/device/JavaInputDevice.java
Normal file
@@ -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<Action> 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() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,8 +6,8 @@ import pm.action.Action;
|
|||||||
import pm.device.Device;
|
import pm.device.Device;
|
||||||
import pm.event.Target;
|
import pm.event.Target;
|
||||||
|
|
||||||
public class Example extends Device {
|
public class ExampleDevice extends Device {
|
||||||
public Example(Queue<Action> actionQueue) {
|
public ExampleDevice(Queue<Action> actionQueue) {
|
||||||
super(actionQueue);
|
super(actionQueue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,4 +16,13 @@ public class Example extends Device {
|
|||||||
addAction(Action.TEST, Target.APPLICATION);
|
addAction(Action.TEST, Target.APPLICATION);
|
||||||
addAction(Action.EXIT, Target.MAIN);
|
addAction(Action.EXIT, Target.MAIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void processEvent() {
|
||||||
|
/*ExampleEvent de;
|
||||||
|
if (specifiekEvent == start) {
|
||||||
|
addAction()
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
17
java/src/pm/device/rumblepad/RumblepadDevice.java
Normal file
17
java/src/pm/device/rumblepad/RumblepadDevice.java
Normal file
@@ -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<Action> actionQueue) throws ServiceJavaInputException {
|
||||||
|
super(actionQueue, NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
5
java/src/pm/exception/ServiceException.java
Normal file
5
java/src/pm/exception/ServiceException.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package pm.exception;
|
||||||
|
|
||||||
|
public class ServiceException extends Exception {
|
||||||
|
protected static final long serialVersionUID = 1L;
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package pm.exception;
|
||||||
|
|
||||||
|
public class ServiceJavaInputDeviceNotFoundException extends ServiceJavaInputException {
|
||||||
|
protected static final long serialVersionUID = 1L;
|
||||||
|
}
|
||||||
5
java/src/pm/exception/ServiceJavaInputException.java
Normal file
5
java/src/pm/exception/ServiceJavaInputException.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package pm.exception;
|
||||||
|
|
||||||
|
public class ServiceJavaInputException extends ServiceException {
|
||||||
|
protected static final long serialVersionUID = 1L;
|
||||||
|
}
|
||||||
5
java/src/pm/service/Service.java
Normal file
5
java/src/pm/service/Service.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package pm.service;
|
||||||
|
|
||||||
|
public abstract class Service {
|
||||||
|
|
||||||
|
}
|
||||||
28
java/src/pm/service/javainput/JavaInputService.java
Normal file
28
java/src/pm/service/javainput/JavaInputService.java
Normal file
@@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user