From 3fd8af3bd107f16e0430a6916927715ca66c2ca5 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Mon, 30 Nov 2020 21:58:57 +0100 Subject: [PATCH] Fix fade out remove error, make fade value update more robust --- .../content/ContentPlayerViewController.scala | 2 +- .../content/pad/ContentPlayerPadContent.scala | 16 +++++++++++----- 2 files changed, 12 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 90bc3042..7352e03f 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 @@ -59,7 +59,7 @@ class ContentPlayerViewController extends NVC { } } - def setFadeValue(mediaPlayer: MediaPlayer, value: Double): Unit ={ + def setFadeValue(mediaPlayer: MediaPlayer, value: Double): Unit = { if (mediaViews.contains(mediaPlayer)) { val mediaView = mediaViews(mediaPlayer) mediaView.setOpacity(value) 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 005aad99..f9835654 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 @@ -87,8 +87,12 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte private var showingLastFrame: Boolean = false private var isPause: Boolean = false - private val fadeController = new LinearFadeController(value => ContentPluginMain.playerViewController - .setFadeValue(mediaPlayers(currentPlayingMediaIndex).mediaPlayer, getSelectedZones, value)) + private val fadeController = new LinearFadeController(value => { + if (currentPlayingMediaIndex >= 0) { + ContentPluginMain.playerViewController + .setFadeValue(mediaPlayers(currentPlayingMediaIndex).mediaPlayer, getSelectedZones, value) + } + }) override def getType: String = `type` @@ -134,9 +138,13 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte } def onEof(): Unit = { + if (isFadeActive) { + ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex, getSelectedZones) + return + } + if (shouldShowLastFrame() && !showingLastFrame // Only is settings is enabled and not already in last frame state && !pad.getPadSettings.isLoop // Only go to last frame state, is looping is disabled - && !isFadeActive // Only go to last frame state, if no fade is active (if eof is reached while fade out, the last frame should not be hold) ) { getPad.setStatus(PadStatus.PAUSE) showingLastFrame = true @@ -149,8 +157,6 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte mediaPlayers(currentPlayingMediaIndex).next() return } - - ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex, getSelectedZones) } /* -- GitLab