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 java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
|
|
||||||
import pm.application.Application;
|
import pm.application.Application;
|
||||||
|
import pm.application.Winamp.WinampApplication;
|
||||||
import pm.application.iTunes.iTunesApplication;
|
import pm.application.iTunes.iTunesApplication;
|
||||||
import pm.application.voorbeeld.VoorbeeldApplication;
|
import pm.application.voorbeeld.VoorbeeldApplication;
|
||||||
import pm.device.Device;
|
import pm.device.Device;
|
||||||
@@ -62,6 +63,7 @@ public class Main {
|
|||||||
|
|
||||||
add(new VoorbeeldApplication());
|
add(new VoorbeeldApplication());
|
||||||
add(new iTunesApplication());
|
add(new iTunesApplication());
|
||||||
|
add(new WinampApplication());
|
||||||
applicationCycle.next();
|
applicationCycle.next();
|
||||||
for (Application application : applicationCycle) {
|
for (Application application : applicationCycle) {
|
||||||
application.start();
|
application.start();
|
||||||
|
|||||||
@@ -1,6 +1,17 @@
|
|||||||
package pm.application;
|
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 start() {}
|
||||||
public void exit() {}
|
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) {
|
if (connected) {
|
||||||
iTunes.fastForward();
|
iTunes.fastForward();
|
||||||
//sleep(SEEK_TIME);
|
//sleep(SEEK_TIME);
|
||||||
//resume();
|
resume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ public class iTunesApplication extends Application implements iTunesEventsInterf
|
|||||||
if (connected) {
|
if (connected) {
|
||||||
iTunes.rewind();
|
iTunes.rewind();
|
||||||
//sleep(SEEK_TIME);
|
//sleep(SEEK_TIME);
|
||||||
//resume();
|
resume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user