Werking nader bestudeerd, enkele dingen ligt aangepast.

This commit is contained in:
Bram Veenboer
2011-02-13 15:51:12 +00:00
parent 3805baf986
commit 7fe13d454b
9 changed files with 84 additions and 52 deletions

View File

@@ -33,17 +33,17 @@ public abstract class Device {
protected void add(Sequence startSequence, Sequence stopSequence, Continuous continuous) { protected void add(Sequence startSequence, Sequence stopSequence, Continuous continuous) {
add(startSequence, continuous); add(startSequence, continuous);
add(stopSequence, new Stopper(continuous)); add(stopSequence, new Stopper(continuous));
} }
protected void add(Event startEvent, Event stopEvent, Continuous continuous) { protected void add(Event startEvent, Event stopEvent, Continuous continuous) {
add(startEvent, continuous); add(startEvent, continuous);
add(stopEvent, new Stopper(continuous)); add(stopEvent, new Stopper(continuous));
} }
protected void add(Press startPress, Press stopPress, Continuous continuous) { protected void add(Press startPress, Press stopPress, Continuous continuous) {
add(new Macro(startPress), continuous); add(new Macro(startPress), continuous);
add(new Macro(stopPress), new Stopper(continuous)); add(new Macro(stopPress), new Stopper(continuous));
} }
protected void add(Hold hold, Continuous continuous) { protected void add(Hold hold, Continuous continuous) {

View File

@@ -8,6 +8,10 @@ public class Task {
this.action = action; this.action = action;
this.target = target; this.target = target;
} }
public Task(Action action) {
this(action, Target.MAIN);
}
public Action getAction() { public Action getAction() {
return action; return action;

View File

@@ -52,13 +52,7 @@ public class WinampApplication extends Application {
WinampController.rew5Secs(); WinampController.rew5Secs();
break; break;
case MUTE: case MUTE:
if(muted) { toggleMute();
WinampController.setVolume(volume);
} else {
volume = WinampController.getVolume();
WinampController.setVolume(0);
}
muted = !muted;
break; break;
case VOLUME_UP: case VOLUME_UP:
WinampController.increaseVolume(); WinampController.increaseVolume();
@@ -67,7 +61,16 @@ public class WinampApplication extends Application {
WinampController.decreaseVolume(); WinampController.decreaseVolume();
break; break;
} }
} catch (InvalidHandle e) { } catch (InvalidHandle e) {}
}
protected void toggleMute() throws InvalidHandle {
if (!muted) {
volume = WinampController.getVolume();
}
try {
WinampController.setVolume(muted ? volume : 0);
} catch (InvalidParameter e) {} } catch (InvalidParameter e) {}
muted = !muted;
} }
} }

View File

@@ -2,8 +2,7 @@ package pm.device.gui;
import pm.Device; import pm.Device;
public class GUIDevice extends Device { public class GUIDevice extends Device {
protected GUIDeviceUI gui; protected GUIDeviceUI gui;
public GUIDevice() { public GUIDevice() {

View File

@@ -7,27 +7,28 @@ import javax.swing.JButton;
import javax.swing.JFrame; import javax.swing.JFrame;
import pm.Action; import pm.Action;
import pm.Target; import pm.Target;
import pm.task.ActionProvider; import pm.Task;
import pm.task.TaskGatherer;
import layout.TableLayout; import layout.TableLayout;
import layout.TableLayoutConstraints; import layout.TableLayoutConstraints;
public class GUIDeviceUI extends JFrame { public class GUIDeviceUI extends JFrame {
private static final long serialVersionUID = 1L; protected static final long serialVersionUID = 1L;
private JButton play; protected JButton play;
private JButton pause; protected JButton pause;
private JButton resume; protected JButton resume;
private JButton next; protected JButton next;
private JButton previous; protected JButton previous;
private JButton forward; protected JButton forward;
private JButton rewind; protected JButton rewind;
private JButton mute; protected JButton mute;
private JButton volumeUp; protected JButton volumeUp;
private JButton volumeDown; protected JButton volumeDown;
//ActionProvider.add //TaskGatherer.add
public GUIDeviceUI() { public GUIDeviceUI() {
initComponents(); initComponents();
setSize(30, 300); setSize(30, 300);
@@ -155,43 +156,43 @@ public class GUIDeviceUI extends JFrame {
add(volumeDown, new TableLayoutConstraints(0, 9, 0, 9, TableLayoutConstraints.FULL, TableLayoutConstraints.FULL)); add(volumeDown, new TableLayoutConstraints(0, 9, 0, 9, TableLayoutConstraints.FULL, TableLayoutConstraints.FULL));
} }
private void playAction(ActionEvent e) { protected void playAction(ActionEvent e) {
ActionProvider.add(Action.PLAY.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.PLAY, Target.APPLICATION));
} }
private void pauseAction(ActionEvent e) { protected void pauseAction(ActionEvent e) {
ActionProvider.add(Action.PAUSE.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.PAUSE, Target.APPLICATION));
} }
private void resumeAction(ActionEvent e) { protected void resumeAction(ActionEvent e) {
ActionProvider.add(Action.RESUME.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.RESUME, Target.APPLICATION));
} }
private void nextAction(ActionEvent e) { protected void nextAction(ActionEvent e) {
ActionProvider.add(Action.NEXT.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.NEXT, Target.APPLICATION));
} }
private void previousAction(ActionEvent e) { protected void previousAction(ActionEvent e) {
ActionProvider.add(Action.PREVIOUS.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.PREVIOUS, Target.APPLICATION));
} }
private void forwardAction(ActionEvent e) { protected void forwardAction(ActionEvent e) {
ActionProvider.add(Action.FORWARD.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.FORWARD, Target.APPLICATION));
} }
private void rewindAction(ActionEvent e) { protected void rewindAction(ActionEvent e) {
ActionProvider.add(Action.REWIND.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.REWIND, Target.APPLICATION));
} }
private void muteAction(ActionEvent e) { protected void muteAction(ActionEvent e) {
ActionProvider.add(Action.MUTE.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.MUTE, Target.APPLICATION));
} }
private void volumeUpAction(ActionEvent e) { protected void volumeUpAction(ActionEvent e) {
ActionProvider.add(Action.VOLUME_UP.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.VOLUME_UP, Target.APPLICATION));
} }
private void volumeDownAction(ActionEvent e) { protected void volumeDownAction(ActionEvent e) {
ActionProvider.add(Action.VOLUME_DOWN.setTarget(Target.APPLICATION)); TaskGatherer.add(new Task(Action.VOLUME_DOWN, Target.APPLICATION));
} }
} }

View File

@@ -12,6 +12,7 @@ import pm.exception.event.UnknownDirectionException;
import pm.macro.event.Hold; import pm.macro.event.Hold;
import pm.macro.event.Press; import pm.macro.event.Press;
import pm.task.Continuous; import pm.task.Continuous;
import pm.task.Dynamic;
import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputButtonEvent;
import de.hardcode.jxinput.event.JXInputDirectionalEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent;
@@ -37,12 +38,10 @@ public class RumblepadDevice extends JavaInputDevice {
new Task(Action.PREVIOUS, Target.APPLICATION)); new Task(Action.PREVIOUS, Target.APPLICATION));
add( add(
new Hold(RumblepadButton.FIVE), new Hold(RumblepadButton.FIVE),
new Continuous(Action.FORWARD, Target.APPLICATION, 200){ new Dynamic(Action.FORWARD, Target.APPLICATION, 200, -30));
public int getSleep() {return sleep - 30 * iteration;}});
add( add(
new Hold(RumblepadButton.SEVEN), new Hold(RumblepadButton.SEVEN),
new Continuous(Action.REWIND, Target.APPLICATION, 200){ new Dynamic(Action.REWIND, Target.APPLICATION, 200, -30));
public int getSleep() {return sleep - 30 * iteration;}});
add( add(
new Hold(RumblepadButton.NINE), new Hold(RumblepadButton.NINE),
new Continuous(Action.VOLUME_DOWN, Target.APPLICATION, 100)); new Continuous(Action.VOLUME_DOWN, Target.APPLICATION, 100));

View File

@@ -56,7 +56,7 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell
public void onHotKey(int id) { public void onHotKey(int id) {
Hotkey hotkey = hotkeyList.get(id); Hotkey hotkey = hotkeyList.get(id);
add(hotkeyList.get(id)); add(hotkeyList.get(id));
add(new Release(hotkey.getButton())); add(new Release(hotkey.getButton()));
} }
public void exit() { public void exit() {

View File

@@ -5,6 +5,8 @@ import pm.Target;
import pm.Task; import pm.Task;
public class Continuous extends Task { public class Continuous extends Task {
protected static final int SLEEP = 0;
protected int sleep; protected int sleep;
protected int iteration; protected int iteration;
protected boolean stop; protected boolean stop;
@@ -16,7 +18,7 @@ public class Continuous extends Task {
} }
public Continuous(Action action, Target target) { public Continuous(Action action, Target target) {
this(action, target, 0); this(action, target, SLEEP);
} }
public void nextIteration() { public void nextIteration() {

View File

@@ -0,0 +1,24 @@
package pm.task;
import pm.Action;
import pm.Target;
public class Dynamic extends Continuous {
protected static final int RATE = 10;
protected int rate;
public Dynamic(Action action, Target target, int sleep, int rate) {
super(action, target, sleep);
this.rate = rate;
}
public Dynamic(Action action, Target target, int sleep) {
super(action, target, sleep);
this.rate = RATE;
}
public int getSleep() {
return sleep + rate * iteration;
}
}