diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala index 469b8294a88c9fa2910c94e819479a5cff917210..8a67fc243b3464a4e076eb1b060acb594fc0e958 100644 --- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala @@ -21,7 +21,8 @@ class WebSocketHandler { "pad-status-change" -> new PadStatusChangeMethod, "cart-action" -> new CartActionMethod, "page-action" -> new PageActionMethod, - "navigate-action" -> new NavigateActionMethod + "navigate-action" -> new NavigateActionMethod, + "stop-action" -> new StopActionMethod ) @OnWebSocketConnect def connected(session: Session): Unit = { diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/StopActionMethod.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/StopActionMethod.scala new file mode 100644 index 0000000000000000000000000000000000000000..30622685415e50b83668b60b7774ff56778e5e26 --- /dev/null +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/StopActionMethod.scala @@ -0,0 +1,19 @@ +package de.tobias.playpad.plugin.api.websocket.methods + +import com.google.gson.JsonObject +import de.tobias.playpad.PlayPadPlugin +import de.tobias.playpad.pad.PadStatus +import de.tobias.playpad.plugin.api.websocket.MethodExecutable +import de.tobias.playpad.plugin.api.websocket.message.Message +import org.eclipse.jetty.websocket.api.Session + +class StopActionMethod extends MethodExecutable { + + override def execute(session: Session, message: Message): JsonObject = { + val project = PlayPadPlugin.getInstance.getCurrentProject + project.getPads.stream().forEach(pad => { + if ((pad.getStatus eq PadStatus.PLAY) || (pad.getStatus eq PadStatus.PAUSE)) pad.setStatus(PadStatus.STOP, true) + }) + null + } +}