iTunesApplication omgeschreven naar bestaande iTunes wrapper. Kleine aanpassingen gemaakt in deze wrapper mbt flexibiliteit. Aantal debug teksten afgedrukt over actions, targets en applications. Serieus overwegen van een nette log module hiervoor!

This commit is contained in:
2011-02-09 09:45:30 +00:00
parent 89d16792ae
commit a20802afcc
34 changed files with 138 additions and 7239 deletions

View File

@@ -48,8 +48,12 @@ public enum Action {
getMethod(object).invoke(object);
return;
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {}
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
throw new InvokeActionException();
// Todo: informatie doorgeven over wat er precies is foutgegaan
}

View File

@@ -5,7 +5,7 @@ import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import pm.application.Application;
import pm.application.iTunes.iTunesApplicatie;
import pm.application.iTunes.iTunesApplication;
import pm.application.voorbeeld.VoorbeeldApplication;
import pm.device.Device;
import pm.device.javainput.extreme3d.Extreme3DDevice;
@@ -56,15 +56,16 @@ public class Main {
//add(new Extreme3DDevice());
add(new JIntellitypeDevice());
//add(new WiimoteDevice());
Application application = new VoorbeeldApplication();
application = new iTunesApplicatie();
add(application);
for (Device device : deviceList) {
device.start();
}
add(new VoorbeeldApplication());
add(new iTunesApplication());
applicationCycle.next();
for (Application application : applicationCycle) {
application.start();
}
run();
}
@@ -78,12 +79,14 @@ public class Main {
} else {
Action action = actionQueue.poll();
Object object;
System.out.println("Action: " + action + " Target: " + action.getTarget());
switch (action.getTarget()) {
case MAIN:
object = this;
break;
case APPLICATION:
object = applicationCycle.current();
System.out.println("Current application: " + object.getClass());
break;
default:
throw new UnknownTargetException();
@@ -91,6 +94,7 @@ public class Main {
try {
action.invoke(object);
} catch (NotImplementedActionException e) {
e.printStackTrace();
// Todo: log.write(...)
}
}
@@ -102,6 +106,10 @@ public class Main {
for (Device device : deviceList) {
device.exit();
}
for (Application application : applicationCycle) {
application.exit();
}
System.out.println("Main exit...");
}
public static void main(String[] args) {

View File

@@ -1,3 +1,6 @@
package pm.application;
public abstract class Application {}
public abstract class Application {
public void start() {}
public void exit() {}
}

View File

@@ -1,50 +0,0 @@
package pm.application.iTunes;
import pm.application.Application;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
public class iTunesApplicatie extends Application{
Dispatch iTunesController;
public iTunesApplicatie() {
connect();
}
protected void connect() {
try {
ComThread.InitMTA(true);
ActiveXComponent iTunesCom = new ActiveXComponent("iTunes.Application");
iTunesController = (Dispatch)iTunesCom.getObject();
} catch (Exception e) { } // Ignore JacobVersion exception
}
public void play() {
System.out.println("play");
invoke("play");
}
public void pause() {
invoke("pause");
}
public void resume() {
invoke("resume");
}
public void exit() {
ComThread.Release();
}
protected void invoke(String invocation) {
Dispatch.call(iTunesController, invocation);
}
public static void main(String argv[]) throws Exception {
new iTunesApplicatie();
}
}

View File

@@ -0,0 +1,107 @@
package pm.application.iTunes;
import pm.application.Application;
import com.dt.iTunesController.ITCOMDisabledReason;
import com.dt.iTunesController.ITTrack;
import com.dt.iTunesController.iTunes;
import com.dt.iTunesController.iTunesEventsInterface;
public class iTunesApplication extends Application implements iTunesEventsInterface {
protected iTunes iTunes;
protected boolean connected;
public iTunesApplication() {
iTunes = new iTunes();
connected = false;
}
public void start() {
if (!connected) {
iTunes.connect();
iTunes.addEventHandler(this);
connected = true;
}
}
public void exit() {
if (connected) {
iTunes.quit();
}
}
/* Actions */
public void play() {
if (connected) {
iTunes.playPause();
}
}
public void pause() {
if (connected) {
iTunes.playPause();
}
}
public void resume() {
if (connected) {
iTunes.resume();
}
}
/* iTunesEventInterface => naar eigen class? */
@Override
public void onDatabaseChangedEvent(int[][] deletedObjectIDs,
int[][] changedObjectIDs) {
// TODO Auto-generated method stub
}
@Override
public void onPlayerPlayEvent(ITTrack iTrack) {
// TODO Auto-generated method stub
}
@Override
public void onPlayerStopEvent(ITTrack iTrack) {
// TODO Auto-generated method stub
}
@Override
public void onPlayerPlayingTrackChangedEvent(ITTrack iTrack) {
// TODO Auto-generated method stub
}
@Override
public void onCOMCallsDisabledEvent(ITCOMDisabledReason reason) {
// TODO Auto-generated method stub
}
@Override
public void onCOMCallsEnabledEvent() {
// TODO Auto-generated method stub
}
@Override
public void onQuittingEvent() {
// TODO Auto-generated method stub
}
@Override
public void onAboutToPromptUserToQuitEvent() {
// TODO Auto-generated method stub
}
@Override
public void onSoundVolumeChangedEvent(int newVolume) {
// TODO Auto-generated method stub
}
}

View File

@@ -3,8 +3,7 @@ package pm.application.voorbeeld;
import pm.application.Application;
public class VoorbeeldApplication extends Application {
public void start() {
System.out.println("start");
public void start() {
}
public void stop() {

View File

@@ -35,7 +35,7 @@ public class RumblepadDevice extends JavaInputDevice {
Action.RESUME.setTarget(Target.APPLICATION));
add(
new Macro(
new Press(RumblepadButton.ONE)
new Press(RumblepadButton.NINE)
),
Action.EXIT.setTarget(Target.MAIN));
} catch (MacroException e) {

View File

@@ -7,7 +7,6 @@ import com.melloware.jintellitype.IntellitypeListener;
import com.melloware.jintellitype.JIntellitype;
import pm.Action;
import pm.Macro;
import pm.Target;
import pm.device.Device;
import pm.exception.EventException;