From 47a0a51eaae6e66e7a61246e8bf308e614a2cb0f Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Fri, 27 Nov 2020 21:04:17 +0100 Subject: [PATCH] Reorder players on playlist edit --- .../option/pad/PlaylistTabViewController.java | 2 ++ .../de/tobias/playpad/pad/content/PadContent.java | 3 +++ .../content/pad/ContentPlayerPadContent.scala | 13 ++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java index 7da0ac80..c75ddd78 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java +++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java @@ -127,6 +127,7 @@ public class PlaylistTabViewController extends PadSettingsTabViewController { final int selectedIndex = mediaPathListView.getSelectionModel().getSelectedIndex(); Collections.swap(pad.getPaths(), selectedIndex, selectedIndex - 1); mediaPathListView.getSelectionModel().select(selectedIndex - 1); + pad.getContent().reorderMedia(); } @FXML @@ -134,6 +135,7 @@ public class PlaylistTabViewController extends PadSettingsTabViewController { final int selectedIndex = mediaPathListView.getSelectionModel().getSelectedIndex(); Collections.swap(pad.getPaths(), selectedIndex, selectedIndex + 1); mediaPathListView.getSelectionModel().select(selectedIndex + 1); + pad.getContent().reorderMedia(); } @FXML diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/PadContent.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/PadContent.java index bf50a0b4..0431a444 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/PadContent.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/PadContent.java @@ -64,6 +64,9 @@ public abstract class PadContent { */ public abstract void unloadMedia(MediaPath mediaPath); + public void reorderMedia() { + } + public abstract void updateVolume(); @Override 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 0893543e..6853ccb9 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 @@ -68,9 +68,11 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte _positionProperty.unbind() _positionProperty.set(Duration.ZERO) } + + override def toString: String = f"MediaPlayerContainer: $path" } - private val mediaPlayers: ListBuffer[MediaPlayerContainer] = ListBuffer.empty + private var mediaPlayers: ListBuffer[MediaPlayerContainer] = ListBuffer.empty private var currentRunningIndex: Int = -1 private val _durationProperty = new SimpleObjectProperty[Duration] @@ -219,6 +221,15 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte mediaPlayers.remove(index) } + override def reorderMedia(): Unit = { + val paths = pad.getPaths + mediaPlayers = mediaPlayers.sortWith((o1, o2) => paths.indexOf(o1.path) < paths.indexOf(o2.path)) + } + + /* + Volume + */ + override def updateVolume(): Unit = { val volume = VolumeManager.getInstance.computeVolume(getPad) mediaPlayers.foreach(player => player.mediaPlayer.setVolume(volume)) -- GitLab