Zeer veel aanpassingen:
- omslachtigheden verbeterd - netwerking gefixt - ...
This commit is contained in:
@@ -2,116 +2,69 @@ package pm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import pm.application.cmd.windows.gomplayer.GomPlayerApplication;
|
||||
import pm.application.cmd.windows.wmp.WMPApplication;
|
||||
import pm.application.example.ExampleApplication;
|
||||
import pm.application.itunes.iTunesApplication;
|
||||
import pm.application.mpc.MPCApplication;
|
||||
import pm.application.vlc.VLCApplication;
|
||||
import pm.application.windows.winamp.WinampApplication;
|
||||
import pm.device.gui.GUIDevice;
|
||||
import pm.device.javainput.extreme3d.Extreme3DDevice;
|
||||
import pm.device.javainput.rumblepad.RumblepadDevice;
|
||||
import pm.device.jintellitype.JIntellitypeDevice;
|
||||
import pm.device.panel.PanelDevice;
|
||||
import pm.device.player.PlayerDevice;
|
||||
import pm.device.text.TextDevice;
|
||||
import pm.device.text.lan.LanTextDevice;
|
||||
import pm.device.wiimote.WiimoteDevice;
|
||||
import pm.event.EventListener;
|
||||
import pm.event.EventManager;
|
||||
import pm.event.spreader.LocalSpreader;
|
||||
import pm.exception.application.ApplicationExitException;
|
||||
import pm.exception.application.ApplicationInitialiseException;
|
||||
import pm.exception.device.DeviceExitException;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
import pm.macro.Active;
|
||||
import pm.network.NetworkServer;
|
||||
import pm.util.ArrayCycle;
|
||||
import pm.value.Action;
|
||||
|
||||
public class Main extends EventListener {
|
||||
protected Log log = LogFactory.getLog(Main.class);
|
||||
|
||||
//protected String[] deviceClassArray;
|
||||
public class Main extends Manager {
|
||||
protected ArrayCycle<Application> applicationCycle;
|
||||
protected ArrayList<Device> deviceList;
|
||||
|
||||
protected EventManager eventManager;
|
||||
|
||||
|
||||
public Main() {
|
||||
super();
|
||||
super(new LocalSpreader());
|
||||
applicationCycle = new ArrayCycle<Application>();
|
||||
deviceList = new ArrayList<Device>();
|
||||
eventManager = new EventManager(applicationCycle);
|
||||
EventListener.initialise(eventManager);
|
||||
}
|
||||
|
||||
protected void action(Action action) {
|
||||
System.out.println("Manager: " + action);
|
||||
switch (action) {
|
||||
case NEXT:
|
||||
eventSpreader.set(applicationCycle.next());
|
||||
System.out.println(applicationCycle.current());
|
||||
break;
|
||||
case PREVIOUS:
|
||||
eventSpreader.set(applicationCycle.previous());
|
||||
System.out.println(applicationCycle.current());
|
||||
break;
|
||||
case EXIT:
|
||||
exit();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void initialise() throws DeviceInitialiseException {
|
||||
//add(new JIntellitypeDevice());
|
||||
//add(new PlayerDevice());
|
||||
//add(new RumblepadDevice());
|
||||
//add(new WiimoteDevice());
|
||||
//add(new GUIDevice());
|
||||
//add(new TextDevice());
|
||||
add(new PanelDevice());
|
||||
//add(new LanTextDevice());
|
||||
//add(new Extreme3DDevice());
|
||||
//add(new NetworkServer());
|
||||
startDevices();
|
||||
|
||||
//add(new ExampleApplication());
|
||||
//add(new WMPApplication());
|
||||
//add(new GomPlayerApplication());
|
||||
add(new WinampApplication());
|
||||
//add(new iTunesApplication());
|
||||
//add(new VLCApplication());
|
||||
//add(new MPCApplication());
|
||||
super.initialise();
|
||||
add(new iTunesApplication());
|
||||
log.error("main init");
|
||||
startApplications();
|
||||
}
|
||||
|
||||
public void exit() {
|
||||
exitDevices();
|
||||
stop();
|
||||
}
|
||||
|
||||
protected void startApplications() {
|
||||
ArrayList<Application> removeList = new ArrayList<Application>();
|
||||
for (Application application : applicationCycle) {
|
||||
try {
|
||||
application.initialise();
|
||||
application.start();
|
||||
log.debug(application);
|
||||
} catch (ApplicationInitialiseException e) {
|
||||
removeList.add(application);
|
||||
}
|
||||
}
|
||||
for (Application application : removeList) {
|
||||
remove(application);
|
||||
}
|
||||
}
|
||||
eventSpreader.set(applicationCycle.current());
|
||||
}
|
||||
|
||||
protected void startDevices() {
|
||||
ArrayList<Device> removeList = new ArrayList<Device>();
|
||||
for (Device device : deviceList) {
|
||||
try {
|
||||
device.initialise();
|
||||
device.start();
|
||||
log.info("Device started: " + device);
|
||||
} catch (DeviceInitialiseException e) {
|
||||
removeList.add(device);
|
||||
}
|
||||
}
|
||||
for (Device device : removeList) {
|
||||
remove(device);
|
||||
}
|
||||
}
|
||||
|
||||
public void exit() {
|
||||
System.out.println("Exit devices...");
|
||||
for (Device device : deviceList) {
|
||||
try {
|
||||
device.exit();
|
||||
} catch (DeviceExitException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
protected void exitApplications() {
|
||||
System.out.println("Exit applications...");
|
||||
for (Application application : applicationCycle) {
|
||||
try {
|
||||
@@ -119,74 +72,25 @@ public class Main extends EventListener {
|
||||
} catch (ApplicationExitException e) {}
|
||||
}
|
||||
System.out.println("Exit main...");
|
||||
stop();
|
||||
}
|
||||
|
||||
protected void action(Action action) {
|
||||
System.out.println("NetworkClient: " + action);
|
||||
switch (action) {
|
||||
case NEXT:
|
||||
applicationCycle.next();
|
||||
System.out.println(applicationCycle.current());
|
||||
break;
|
||||
case PREVIOUS:
|
||||
applicationCycle.previous();
|
||||
System.out.println(applicationCycle.current());
|
||||
break;
|
||||
case EXIT:
|
||||
exit();
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*protected void addDevices() throws DeviceInitialiseException {
|
||||
for (String deviceClass : deviceClassArray) {
|
||||
try {
|
||||
Object object = Class.forName(deviceClass).getConstructor((Class[]) null).newInstance();
|
||||
if (object instanceof Application) {
|
||||
Device device = (Device) object;
|
||||
add(device);
|
||||
try {
|
||||
device.initialise();
|
||||
} catch (DeviceNotFoundException e) {}
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
} catch (SecurityException e) {
|
||||
} catch (InstantiationException e) {
|
||||
} catch (IllegalAccessException e) {
|
||||
} catch (InvocationTargetException e) {
|
||||
} catch (NoSuchMethodException e) {
|
||||
} catch (ClassNotFoundException e) {}
|
||||
}
|
||||
}*/
|
||||
|
||||
/* Add / remove methods */
|
||||
protected void add(Application application) {
|
||||
//EventManager.add(application);
|
||||
applicationCycle.add(application);
|
||||
}
|
||||
|
||||
protected void remove(Application application) {
|
||||
//EventManager.remove(application);
|
||||
applicationCycle.remove(application);
|
||||
}
|
||||
|
||||
protected void add(Device device) {
|
||||
//EventManager.add(device);
|
||||
deviceList.add(device);
|
||||
}
|
||||
|
||||
protected void remove(Device device) {
|
||||
//EventManager.remove(device);
|
||||
deviceList.remove(device);
|
||||
public void start() {
|
||||
log.info("LocalManager!");
|
||||
try {
|
||||
initialise();
|
||||
} catch (DeviceInitialiseException e) {}
|
||||
super.start(false);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
Main main = new Main();
|
||||
main.initialise();
|
||||
main.start(false);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
new Main().start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user