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:
@@ -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();
|
||||
|
||||
@@ -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() {}
|
||||
}
|
||||
102
java/src/pm/application/Winamp/WinampApplication.java
Normal file
102
java/src/pm/application/Winamp/WinampApplication.java
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user