diff --git a/PlayWall/src/main/java/de/tobias/playpad/trigger/VolumeTriggerVolumeFilter.java b/PlayWall/src/main/java/de/tobias/playpad/trigger/VolumeTriggerVolumeFilter.java index b8dad1b748745a1c7415029d505a191865be0e24..83a730951c8d0f0a5183237ecf19f8837f4d50b6 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/trigger/VolumeTriggerVolumeFilter.java +++ b/PlayWall/src/main/java/de/tobias/playpad/trigger/VolumeTriggerVolumeFilter.java @@ -44,8 +44,8 @@ public class VolumeTriggerVolumeFilter implements VolumeFilter, PadListener { } @Override - public void onStatusChange(Pad pad, PadStatus newValue) { - if (newValue == PadStatus.READY) { + public void onStatusChange(Pad pad, PadStatus oldValue, PadStatus newValue) { + if (oldValue == PadStatus.READY && newValue == PadStatus.PLAY) { volumes.remove(pad.getUuid()); } } diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/PadStatusControlListener.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/PadStatusControlListener.java index 28bb500fc1d03326ee532d9fbaa934b77554ba39..5a98a8d2665046b20a47526e40c1d032b343e225 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/PadStatusControlListener.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/PadStatusControlListener.java @@ -32,7 +32,7 @@ public class PadStatusControlListener implements ChangeListener<PadStatus> { ProfileSettings profileSettings = Profile.currentProfile().getProfileSettings(); try { - PlayPadPlugin.getInstance().getPadListener().forEach(listener -> listener.onStatusChange(pad, newValue)); + PlayPadPlugin.getInstance().getPadListener().forEach(listener -> listener.onStatusChange(pad, oldValue, newValue)); } catch (Exception e) { Logger.error(e); } diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/PadListener.java b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/PadListener.java index a81a3e134132d1819a51d3777dcee956d41ff245..40fda9dfc865a065c20d7340b0389557e9386593 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/PadListener.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/PadListener.java @@ -21,7 +21,7 @@ public interface PadListener { * @param pad corresponding pad * @param newValue new status value */ - void onStatusChange(Pad pad, PadStatus newValue); + void onStatusChange(Pad pad, PadStatus oldValue, PadStatus newValue); default void onMediaPathChanged(Pad pad, ListChangeListener.Change<? extends MediaPath> value) { } diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/tigger/Trigger.java b/PlayWallCore/src/main/java/de/tobias/playpad/tigger/Trigger.java index 127c8e007dd6e0f1251717e23ff16aabefcab795..ee4a738906f97998cc149e0d907de82c167fd44e 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/tigger/Trigger.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/tigger/Trigger.java @@ -115,8 +115,11 @@ public class Trigger { break; case EOF: if (item.getDurationFromPoint() == Duration.ZERO) { - if (pad.isEof()) { + if (pad.isEof() && item.getPerformedAt() == null) { + item.setPerformedAt(currentDuration); item.performAction(pad, project, mainViewController, currentProfile); + } else { + item.setPerformedAt(null); } } else { handleEndPoint(pad, currentDuration, project, mainViewController, currentProfile, item); diff --git a/PlayWallPlugins/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java b/PlayWallPlugins/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java index 03cacb671ab3a9c091bc8acbfce194b9ea826e2b..5561cb969e7e61fd3182e04268d8ffaf21632bd4 100644 --- a/PlayWallPlugins/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java +++ b/PlayWallPlugins/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java @@ -80,7 +80,7 @@ public class EqualizerPluginImpl implements PlayPadPluginStub, PluginArtifact, M } @Override - public void onStatusChange(Pad pad, PadStatus newValue) { + public void onStatusChange(Pad pad, PadStatus oldValue, PadStatus newValue) { if (newValue == PadStatus.PLAY) { onPlay(pad); } else if (newValue == PadStatus.STOP) { diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/log/listener/PadPlayLogListener.java b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/log/listener/PadPlayLogListener.java index 7548965da7c09447db3a47ca2a58de225bc7cd79..b8c29217b59ced49d503313a016b91992f461e67 100644 --- a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/log/listener/PadPlayLogListener.java +++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/log/listener/PadPlayLogListener.java @@ -19,7 +19,7 @@ public class PadPlayLogListener implements PadListener { } @Override - public void onStatusChange(Pad pad, PadStatus newValue) { + public void onStatusChange(Pad pad, PadStatus oldValue, PadStatus newValue) { if (newValue == PadStatus.PLAY) { LogSeason instance = LogSeasons.getCurrentSession(); if (instance != null) { diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/listener/PadApiListener.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/listener/PadApiListener.scala index efa8bfea00c6b5b123ea93200c9f9e41acac4c30..2efd7e127694e81ae1d90b06e742dd292bba8d26 100644 --- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/listener/PadApiListener.scala +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/listener/PadApiListener.scala @@ -17,7 +17,7 @@ class PadApiListener extends PadListener { WebSocketHandler.instance.sendUpdate("pad-name-changed", payload) } - override def onStatusChange(pad: Pad, newValue: PadStatus): Unit = { + override def onStatusChange(pad: Pad, oldValue: PadStatus, newValue: PadStatus): Unit = { val payload = new JsonObject payload.addProperty("pad", pad.getUuid.toString)