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"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="lib/jxinput.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
||||
@@ -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<Application>();
|
||||
applicationList.iterator();
|
||||
//applicationList.iterator();
|
||||
deviceList = new ArrayList<Device>();
|
||||
actionQueue = new ConcurrentLinkedQueue<Action>();
|
||||
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();
|
||||
|
||||
@@ -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");
|
||||
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.event.Target;
|
||||
|
||||
public class Example extends Device {
|
||||
public Example(Queue<Action> actionQueue) {
|
||||
public class ExampleDevice extends Device {
|
||||
public ExampleDevice(Queue<Action> 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()
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
}
|
||||
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