From 4640e9d1153011b29d6f4af7268a8edcee06cb5c Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Mon, 9 Oct 2023 20:23:13 +0200 Subject: [PATCH] #191 - Volume trigger for eof not fading correct. Cached volume level war reset to early, eof trigger was call twice --- .../de/tobias/playpad/trigger/VolumeTriggerVolumeFilter.java | 4 ++-- .../playpad/pad/listener/PadStatusControlListener.java | 2 +- .../src/main/java/de/tobias/playpad/plugin/PadListener.java | 2 +- .../src/main/java/de/tobias/playpad/tigger/Trigger.java | 5 ++++- .../playpad/equalizerplugin/impl/EqualizerPluginImpl.java | 2 +- .../plugin/playout/log/listener/PadPlayLogListener.java | 2 +- .../plugin/api/websocket/listener/PadApiListener.scala | 2 +- 7 files changed, 11 insertions(+), 8 deletions(-) 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 b8dad1b7..83a73095 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 28bb500f..5a98a8d2 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 a81a3e13..40fda9df 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 127c8e00..ee4a7389 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 03cacb67..5561cb96 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 7548965d..b8c29217 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 efa8bfea..2efd7e12 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) -- GitLab