diff --git a/src/soon/PlayZustand.java b/src/soon/PlayZustand.java index beddd6c8513dc01ba46c9a32a89a938355844a7e..b952b8dfd45b7af34d580649f883c030300b29ce 100644 --- a/src/soon/PlayZustand.java +++ b/src/soon/PlayZustand.java @@ -1,6 +1,6 @@ package soon; -public class PlayZustand extends PowerOnZustand { +public class PlayZustand extends PlayerZustand { public PlayZustand(Soon s, PowerOn p) { super(s, p); @@ -8,8 +8,8 @@ public class PlayZustand extends PowerOnZustand { public void stopButton() { exit(); - p.setZustand(p.getStopZustand()); - p.getZustand().entry(); + p.setPlayerZustand(p.getStopZustand()); + p.getPlayerZustand().entry(); } public void volumeUpButton() { diff --git a/src/soon/PowerOnZustand.java b/src/soon/PlayerZustand.java similarity index 75% rename from src/soon/PowerOnZustand.java rename to src/soon/PlayerZustand.java index 36589af54d4c3ffd094fce046003047ba4f23c8e..e5312831238a0bc3d35a4c8d52234ccfb6aad695 100644 --- a/src/soon/PowerOnZustand.java +++ b/src/soon/PlayerZustand.java @@ -1,10 +1,10 @@ package soon; -public abstract class PowerOnZustand { +public abstract class PlayerZustand { Soon s; PowerOn p; - public PowerOnZustand(Soon s, PowerOn p) { + public PlayerZustand(Soon s, PowerOn p) { this.s = s; this.p = p; } diff --git a/src/soon/PowerOff.java b/src/soon/PowerOff.java index d4e26c4c1e05a179f9a48cfe78fb2d3b63ed479d..8ce64a8122d2398cade6628c0e847874055995b4 100644 --- a/src/soon/PowerOff.java +++ b/src/soon/PowerOff.java @@ -7,9 +7,9 @@ public class PowerOff extends Zustand { } public void powerButton() { + System.out.println("Power Button: Anschalten"); exit(); s.setZustand(s.getPowerOnZustand()); - System.out.println("Anschalten"); s.getZustand().entry(); } } diff --git a/src/soon/PowerOn.java b/src/soon/PowerOn.java index fc3ab60c795ad4ac29427e9ed1db7dc83b923a98..14a141ac33a2368afd17b5a0cc51af504e7104f7 100644 --- a/src/soon/PowerOn.java +++ b/src/soon/PowerOn.java @@ -1,64 +1,96 @@ package soon; public class PowerOn extends Zustand { - PowerOnZustand playZustand; - PowerOnZustand stopZustand; + PlayerZustand playZustand; + PlayerZustand stopZustand; + SpeakerZustand stereoZustand; + SpeakerZustand surroundZustand; - PowerOnZustand zustand; + PlayerZustand playerZustand; + SpeakerZustand speakerZustand; public PowerOn(Soon s) { super(s); stopZustand = new StopZustand(s, this); playZustand = new PlayZustand(s, this); - zustand = stopZustand; + stereoZustand = new StereoZustand(s,this); + surroundZustand = new SurroundZustand(s,this); + playerZustand = stopZustand; + speakerZustand = stereoZustand; } - public PowerOnZustand getStopZustand() { + public PlayerZustand getStopZustand() { return stopZustand; } - public PowerOnZustand getPlayZustand() { + public PlayerZustand getPlayZustand() { return playZustand; } - public PowerOnZustand getZustand() { - return zustand; + public SpeakerZustand getStereoZustand() { + return stereoZustand; + } + + public SpeakerZustand getSurroundZustand() { + return surroundZustand; + } + + public PlayerZustand getPlayerZustand() { + return playerZustand; } - public void setZustand(PowerOnZustand zustand) { - this.zustand = zustand; + public void setPlayerZustand(PlayerZustand zustand) { + this.playerZustand = zustand; } + public SpeakerZustand getSpeakerZustand() { + return speakerZustand; + } + + public void setSpeakerZustand(SpeakerZustand zustand) { + this.speakerZustand = zustand; + } + public void playButton() { - zustand.playButton(); + System.out.println("Play Button"); + playerZustand.playButton(); } public void stopButton() { - zustand.stopButton(); + System.out.println("Stop Button"); + playerZustand.stopButton(); } public void volumeUpButton() { - zustand.volumeUpButton(); + System.out.println("Volume Up Button"); + playerZustand.volumeUpButton(); } public void volumeDownButton() { - zustand.volumeDownButton(); + System.out.println("Volume Down Button"); + playerZustand.volumeDownButton(); } public void powerButton() { + System.out.println("Power Button: Ausschalten"); exit(); s.setZustand(s.getPowerOffZustand()); - System.out.println("Ausschalten"); s.getZustand().entry(); } + public void speakerButton() { + System.out.println("Speaker Button"); + speakerZustand.speakerButton(); + } + + public void entry() { s.powerLED_On(); - zustand.entry(); + playerZustand.entry(); } public void exit() { s.powerLED_Off(); - zustand.exit(); + playerZustand.exit(); } } diff --git a/src/soon/Soon.java b/src/soon/Soon.java index d03e0dfb60372f6b9c734f9a268832a2a5317473..09822b9345afe4b8fe1bbda4ff1847231844a992 100644 --- a/src/soon/Soon.java +++ b/src/soon/Soon.java @@ -3,12 +3,16 @@ package soon; public class Soon { Zustand powerOnZustand; Zustand powerOffZustand; + PlayerZustand playerHistory; + SpeakerZustand speakerHistory; Zustand zustand; public Soon () { powerOnZustand = new PowerOn(this); powerOffZustand = new PowerOff(this); + playerHistory = ((PowerOn)powerOnZustand).getStopZustand(); + speakerHistory = ((PowerOn)powerOnZustand).getStereoZustand(); zustand = powerOffZustand; } @@ -48,30 +52,42 @@ public class Soon { zustand.powerButton(); } + public void speakerButton() { + zustand.speakerButton(); + } + public void startPlay() { - System.out.println("Musik an"); + System.out.println("Soon: Musik an"); } public void stopPlay() { - System.out.println("Musik aus"); + System.out.println("Soon: Musik aus"); } public void volumeUp() { - System.out.println("Lauter"); + System.out.println("Soon: Lauter"); } public void volumeDown() { - System.out.println("Leiser"); + System.out.println("Soon: Leiser"); } public void powerLED_On() { - System.out.println("LED on"); + System.out.println("Soon: LED on"); } public void powerLED_Off() { - System.out.println("LED off"); + System.out.println("Soon: LED off"); } + public void setStereo() { + System.out.println("Soon: Stereo sound"); + } + + public void setSurround() { + System.out.println("Soon: Surround sound"); + } + public String toString() { StringBuffer result = new StringBuffer(); result.append("\nSoon MP3 Player"); diff --git a/src/soon/SoonTestDrive.java b/src/soon/SoonTestDrive.java index 7e3fc47a1fa5124ea45a60f906e09080258acd3c..0e92076492cfc5616b83c7548011c63bf49429d3 100644 --- a/src/soon/SoonTestDrive.java +++ b/src/soon/SoonTestDrive.java @@ -9,8 +9,12 @@ public class SoonTestDrive { player.powerButton(); player.playButton(); + player.speakerButton(); player.volumeUpButton(); + player.powerButton(); + player.powerButton(); player.volumeDownButton(); + player.speakerButton(); player.stopButton(); player.powerButton(); } diff --git a/src/soon/SpeakerZustand.java b/src/soon/SpeakerZustand.java new file mode 100644 index 0000000000000000000000000000000000000000..9177d8da51eabc3cf174931183193059822345bf --- /dev/null +++ b/src/soon/SpeakerZustand.java @@ -0,0 +1,13 @@ +package soon; + +public abstract class SpeakerZustand { + Soon s; + PowerOn p; + + public SpeakerZustand(Soon s, PowerOn p) { + this.s = s; + this.p = p; + } + + public void speakerButton() {}; +} diff --git a/src/soon/StereoZustand.java b/src/soon/StereoZustand.java new file mode 100644 index 0000000000000000000000000000000000000000..8cb292ace54473a47d0f656f08048f68360c1934 --- /dev/null +++ b/src/soon/StereoZustand.java @@ -0,0 +1,13 @@ +package soon; + +public class StereoZustand extends SpeakerZustand { + + public StereoZustand(Soon s, PowerOn p) { + super(s, p); + } + + public void speakerButton() { + s.setSurround(); + p.setSpeakerZustand(p.getSurroundZustand()); + } +} diff --git a/src/soon/StopZustand.java b/src/soon/StopZustand.java index 67cf4289004691c324108296a54ce20d56e07d4b..92308a0f2edd29178204a1032886d1b748a863c8 100644 --- a/src/soon/StopZustand.java +++ b/src/soon/StopZustand.java @@ -1,6 +1,6 @@ package soon; -public class StopZustand extends PowerOnZustand { +public class StopZustand extends PlayerZustand { public StopZustand(Soon s, PowerOn p) { super(s, p); @@ -8,7 +8,7 @@ public class StopZustand extends PowerOnZustand { public void playButton() { exit(); - p.setZustand(p.getPlayZustand()); - p.getZustand().entry(); + p.setPlayerZustand(p.getPlayZustand()); + p.getPlayerZustand().entry(); } } diff --git a/src/soon/SurroundZustand.java b/src/soon/SurroundZustand.java new file mode 100644 index 0000000000000000000000000000000000000000..a60d3f64255258de145b2d9bce812210298f2cbd --- /dev/null +++ b/src/soon/SurroundZustand.java @@ -0,0 +1,14 @@ +package soon; + +public class SurroundZustand extends SpeakerZustand { + + public SurroundZustand(Soon s, PowerOn p) { + super(s, p); + } + + public void speakerButton() { + s.setStereo(); + p.setSpeakerZustand(p.getStereoZustand()); + } + +} diff --git a/src/soon/Zustand.java b/src/soon/Zustand.java index 8a7d896167da7747dec26764013acccdbfe131e3..4bdbadb12d913b65a53f0cf0dbe403b603ee5e22 100644 --- a/src/soon/Zustand.java +++ b/src/soon/Zustand.java @@ -14,4 +14,5 @@ public abstract class Zustand { public void entry() {}; public void exit() {}; public void powerButton() {}; + public void speakerButton() {}; }