From 8247bacdf0b9670274b4df38e3ac48eea11b38d6 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Mon, 30 Nov 2020 19:17:36 +0100 Subject: [PATCH] Add active playing stack per zone --- .../content/ContentPlayerViewController.scala | 14 +++++++++++--- .../content/pad/ContentPlayerPadContent.scala | 6 +++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala index efb69ca3..2a504412 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala @@ -21,6 +21,7 @@ class ContentPlayerViewController extends NVC { private class MediaPlayerStack(val playerInstance: PlayerInstance) extends StackPane { + private var activePlayers: ListBuffer[PadIndex] = ListBuffer.empty val mediaViews: mutable.Map[MediaPlayer, MediaView] = new mutable.HashMap[MediaPlayer, MediaView]() setLayoutX(playerInstance.x) @@ -28,6 +29,10 @@ class ContentPlayerViewController extends NVC { setWidth(playerInstance.width) setHeight(playerInstance.height) + def addActivePad(padIndex: PadIndex): Unit = activePlayers.addOne(padIndex) + + def removeActivePad(padIndex: PadIndex): Unit = activePlayers = activePlayers.filter(element => element != padIndex) + def showMediaPlayer(padIndex: PadIndex, mediaPlayer: MediaPlayer): Unit = { if (!mediaViews.contains(mediaPlayer)) { val mediaView = new MediaView(mediaPlayer) @@ -54,7 +59,6 @@ class ContentPlayerViewController extends NVC { override def toString: String = f"MediaPlayerStack: ${getChildren.stream().map(view => f"MediaView: ${view.getUserData}").collect(Collectors.joining(", "))}" } - private var activePlayers: ListBuffer[PadIndex] = ListBuffer.empty private val mediaPlayers: ListBuffer[MediaPlayerStack] = ListBuffer.empty load("view", "PlayerView") @@ -120,7 +124,11 @@ class ContentPlayerViewController extends NVC { }) } - def addActivePadToList(padIndex: PadIndex): Unit = activePlayers.addOne(padIndex) + def addActivePadToList(padIndex: PadIndex, zones: Seq[PlayerInstance]): Unit = mediaPlayers + .filter(mediaPlayer => zones.contains(mediaPlayer.playerInstance)) + .foreach(mediaPlayer => mediaPlayer.addActivePad(padIndex)) - def removeActivePadFromList(padIndex: PadIndex): Unit = activePlayers = activePlayers.filter(element => element != padIndex) + def removeActivePadFromList(padIndex: PadIndex, zones: Seq[PlayerInstance]): Unit = mediaPlayers + .filter(mediaPlayer => zones.contains(mediaPlayer.playerInstance)) + .foreach(mediaPlayer => mediaPlayer.removeActivePad(padIndex)) } diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala index ffa851be..0618a946 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala @@ -93,7 +93,7 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte if (isPause) { mediaPlayers(currentPlayingMediaIndex).resume() } else { - ContentPluginMain.playerViewController.addActivePadToList(getPad.getPadIndex) + ContentPluginMain.playerViewController.addActivePadToList(getPad.getPadIndex, getSelectedZones) getPad.setEof(false) mediaPlayers.head.play() @@ -116,7 +116,7 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte mediaPlayers(currentPlayingMediaIndex).stop() currentRunningIndexProperty.set(-1) - ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex) + ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex, getSelectedZones) val controller = getPad.getController if (controller != null) { @@ -140,7 +140,7 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte return } - ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex) + ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex, getSelectedZones) } /* -- GitLab