Winamp toegevoegd. Dat heeft een aantal problemen laten zien:

-Een applicatie een Thread laten extended geeft problemen met naamgeving.
-De methoden in de WinampApplication class moeten exceptions gooien, maar dat kan niet omdat de Application dat niet heeft.
-Misschien is de boolean connected overbodig.
This commit is contained in:
Bram Veenboer
2011-02-11 08:52:27 +00:00
parent 71e21d6dee
commit 2ae8d8201e
4 changed files with 118 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import pm.application.Application;
import pm.application.Winamp.WinampApplication;
import pm.application.iTunes.iTunesApplication;
import pm.application.voorbeeld.VoorbeeldApplication;
import pm.device.Device;
@@ -62,6 +63,7 @@ public class Main {
add(new VoorbeeldApplication());
add(new iTunesApplication());
add(new WinampApplication());
applicationCycle.next();
for (Application application : applicationCycle) {
application.start();

View File

@@ -1,6 +1,17 @@
package pm.application;
public abstract class Application {
import java.util.LinkedList;
import java.util.Queue;
import pm.Action;
public abstract class Application { //WinampController.
Queue<Action> actionQueue;
public Application() {
actionQueue = new LinkedList<Action>();
}
public void start() {}
public void exit() {}
}

View File

@@ -0,0 +1,102 @@
package pm.application.Winamp;
import pm.application.Application;
import com.qotsa.exception.InvalidHandle;
import com.qotsa.exception.InvalidParameter;
import com.qotsa.jni.controller.WinampController;
public class WinampApplication extends Application {
protected boolean connected;
protected boolean muted;
protected int volume;
public WinampApplication() {
connected = false;
}
public void start() throws Exception {
if (!connected) {
WinampController.run();
connected = true;
}
}
public void exit() throws InvalidHandle {
if (connected) {
WinampController.exit();
connected = false;
}
}
/* Actions */
public void play() throws InvalidHandle {
if (connected) {
WinampController.play();
}
}
public void pause() throws InvalidHandle {
if (connected) {
WinampController.pause();
}
}
public void resume() throws InvalidHandle {
if (connected) {
WinampController.resume();
}
}
public void next() throws InvalidHandle {
if (connected) {
WinampController.nextTrack();
}
}
public void previous() throws InvalidHandle {
if (connected) {
WinampController.previousTrack();
}
}
public void forward() throws InvalidHandle {
if (connected) {
WinampController.fwd5Secs();
}
}
public void rewind() throws InvalidHandle {
if (connected) {
WinampController.rew5Secs();
}
}
public void mute() throws InvalidHandle, InvalidParameter {
if (connected) {
if(muted) {
WinampController.setVolume(volume);
muted = false;
} else {
volume = WinampController.getVolume();
WinampController.setVolume(0);
muted = true;
}
}
}
public void volumeUp() throws InvalidHandle {
if (connected) {
WinampController.increaseVolume();
}
}
public void volumeDown() throws InvalidHandle {
if (connected) {
WinampController.decreaseVolume();
}
}
}

View File

@@ -69,7 +69,7 @@ public class iTunesApplication extends Application implements iTunesEventsInterf
if (connected) {
iTunes.fastForward();
//sleep(SEEK_TIME);
//resume();
resume();
}
}
@@ -77,7 +77,7 @@ public class iTunesApplication extends Application implements iTunesEventsInterf
if (connected) {
iTunes.rewind();
//sleep(SEEK_TIME);
//resume();
resume();
}
}