From fe1e45bd693913e3f95f87b5e2361db69d1126af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mih=C3=A1ly=20Kuprivecz?= Date: Mon, 15 May 2017 10:40:12 +0200 Subject: [PATCH] some fixes --- event-queue/README.md | 2 +- event-queue/{ => etc}/model.ucls | 0 event-queue/model.png | Bin 10815 -> 0 bytes .../java/com/iluwatar/event/queue/Audio.java | 10 +++---- .../com/iluwatar/event/queue/PlayMessage.java | 27 ++++++++++++++++-- 5 files changed, 30 insertions(+), 9 deletions(-) rename event-queue/{ => etc}/model.ucls (100%) delete mode 100644 event-queue/model.png diff --git a/event-queue/README.md b/event-queue/README.md index 2129f8c69..35fdac45c 100644 --- a/event-queue/README.md +++ b/event-queue/README.md @@ -26,4 +26,4 @@ Use the Event Queue pattern when ## Credits -* [Mihály Kuprivecz - Event Queue] +* [Mihaly Kuprivecz - Event Queue] (http://gameprogrammingpatterns.com/event-queue.html) diff --git a/event-queue/model.ucls b/event-queue/etc/model.ucls similarity index 100% rename from event-queue/model.ucls rename to event-queue/etc/model.ucls diff --git a/event-queue/model.png b/event-queue/model.png deleted file mode 100644 index 8222dccbfabf674306accfe10e990d3adb12b43f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10815 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 DNMN3U diff --git a/event-queue/src/main/java/com/iluwatar/event/queue/Audio.java b/event-queue/src/main/java/com/iluwatar/event/queue/Audio.java index 7554464dd..f8f1b1e3c 100644 --- a/event-queue/src/main/java/com/iluwatar/event/queue/Audio.java +++ b/event-queue/src/main/java/com/iluwatar/event/queue/Audio.java @@ -107,17 +107,15 @@ public class Audio { init(); // Walk the pending requests. for (int i = headIndex; i != tailIndex; i = (i + 1) % MAX_PENDING) { - if (getPendingAudio()[i].stream == stream) { + if (getPendingAudio()[i].getStream() == stream) { // Use the larger of the two volumes. - getPendingAudio()[i].volume = Math.max(volume, getPendingAudio()[i].volume); + getPendingAudio()[i].setVolume(Math.max(volume, getPendingAudio()[i].getVolume())); // Don't need to enqueue. return; } } - getPendingAudio()[tailIndex] = new PlayMessage(); - getPendingAudio()[tailIndex].stream = stream; - getPendingAudio()[tailIndex].volume = volume; + getPendingAudio()[tailIndex] = new PlayMessage(stream, volume); tailIndex = (tailIndex + 1) % MAX_PENDING; } @@ -132,7 +130,7 @@ public class Audio { } Clip clip = null; try { - AudioInputStream audioStream = getPendingAudio()[headIndex].stream; + AudioInputStream audioStream = getPendingAudio()[headIndex].getStream(); headIndex++; clip = AudioSystem.getClip(); clip.open(audioStream); diff --git a/event-queue/src/main/java/com/iluwatar/event/queue/PlayMessage.java b/event-queue/src/main/java/com/iluwatar/event/queue/PlayMessage.java index 5d151e8d5..5ced2e3b3 100644 --- a/event-queue/src/main/java/com/iluwatar/event/queue/PlayMessage.java +++ b/event-queue/src/main/java/com/iluwatar/event/queue/PlayMessage.java @@ -31,6 +31,29 @@ import javax.sound.sampled.AudioInputStream; * */ public class PlayMessage { - AudioInputStream stream; - float volume; + + private AudioInputStream stream; + + private float volume; + + public PlayMessage(AudioInputStream stream, float volume) { + setStream(stream); + setVolume(volume); + } + + public AudioInputStream getStream() { + return stream; + } + + private void setStream(AudioInputStream stream) { + this.stream = stream; + } + + public float getVolume() { + return volume; + } + + public void setVolume(float volume) { + this.volume = volume; + } }