Skip to content
Snippets Groups Projects
Commit 043623d6 authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

#190 - Add option to mark a pad as "play overlay" to exclude this pad from the...

#190 - Add option to mark a pad as "play overlay" to exclude this pad from the "one-pad-mode" play restriction
parent 9ba49e42
Branches
Tags
No related merge requests found
...@@ -17,6 +17,8 @@ import javafx.util.Duration; ...@@ -17,6 +17,8 @@ import javafx.util.Duration;
public class PlayerPadTabViewController extends PadSettingsTabViewController { public class PlayerPadTabViewController extends PadSettingsTabViewController {
@FXML
private CheckBox playOverlayEnableCheckBox;
@FXML @FXML
private CheckBox customFadeCheckBox; private CheckBox customFadeCheckBox;
@FXML @FXML
...@@ -48,6 +50,8 @@ public class PlayerPadTabViewController extends PadSettingsTabViewController { ...@@ -48,6 +50,8 @@ public class PlayerPadTabViewController extends PadSettingsTabViewController {
warningFeedbackViewController = WarningFeedbackViewController.newViewControllerForPad(); warningFeedbackViewController = WarningFeedbackViewController.newViewControllerForPad();
warningFeedbackContainer.getChildren().add(warningFeedbackViewController.getParent()); warningFeedbackContainer.getChildren().add(warningFeedbackViewController.getParent());
playOverlayEnableCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> pad.getPadSettings().setPlayOverlay(newValue));
customFadeCheckBox.selectedProperty().addListener((a, b, c) -> customFadeCheckBox.selectedProperty().addListener((a, b, c) ->
{ {
fadeContainer.setDisable(!c); fadeContainer.setDisable(!c);
...@@ -103,6 +107,8 @@ public class PlayerPadTabViewController extends PadSettingsTabViewController { ...@@ -103,6 +107,8 @@ public class PlayerPadTabViewController extends PadSettingsTabViewController {
public void loadSettings(Pad pad) { public void loadSettings(Pad pad) {
PadSettings padSettings = pad.getPadSettings(); PadSettings padSettings = pad.getPadSettings();
playOverlayEnableCheckBox.setSelected(padSettings.isPlayOverlay());
if (padSettings.isCustomFade()) if (padSettings.isCustomFade())
fadeViewController.setFadeSettings(padSettings.getFade()); fadeViewController.setFadeSettings(padSettings.getFade());
......
...@@ -132,6 +132,8 @@ padSettings.gen.label.timeDisplay=Zeitanzeige: ...@@ -132,6 +132,8 @@ padSettings.gen.label.timeDisplay=Zeitanzeige:
padSettings.gen.checkbox.customSettings=Eigene Einstellungen padSettings.gen.checkbox.customSettings=Eigene Einstellungen
padSettings.label.loop=Wiederholen: padSettings.label.loop=Wiederholen:
padSettings.button.finish=Fertig padSettings.button.finish=Fertig
padSettings.player.label.playOverlay=Play Overlay:
padSettings.player.label.playOverlay.description=Mit dieser Einstellung darf diese Kachel zus\u00E4tzlich zu einer bereits laufenden wiedergegeben werden, wenn der Modus "Mehrere Kacheln wiedergaben" deakitiviert ist.
padSettings.player.label.warning=Warnhinweise: padSettings.player.label.warning=Warnhinweise:
padSettings.player.label.cueIn=Intro Dauer (in s): padSettings.player.label.cueIn=Intro Dauer (in s):
padSettings.player.label.fade=Ein-/Ausblenden: padSettings.player.label.fade=Ein-/Ausblenden:
......
...@@ -5,6 +5,22 @@ ...@@ -5,6 +5,22 @@
<?import javafx.scene.layout.*?> <?import javafx.scene.layout.*?>
<VBox spacing="14.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1"> <VBox spacing="14.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
<children> <children>
<VBox spacing="14.0">
<children>
<HBox layoutX="14.0" layoutY="139.0" spacing="14.0">
<children>
<Label alignment="CENTER_RIGHT" prefWidth="150.0" text="%padSettings.player.label.playOverlay" textAlignment="RIGHT" />
<CheckBox fx:id="playOverlayEnableCheckBox" mnemonicParsing="false" text="%settings.checkbox.activate" />
</children>
</HBox>
<Label text="%padSettings.player.label.playOverlay.description" wrapText="true">
<VBox.margin>
<Insets left="164.0" />
</VBox.margin>
</Label>
</children>
</VBox>
<Separator prefWidth="200.0" />
<VBox spacing="14.0"> <VBox spacing="14.0">
<children> <children>
<HBox layoutX="14.0" layoutY="253.0" spacing="14.0"> <HBox layoutX="14.0" layoutY="253.0" spacing="14.0">
......
...@@ -30,6 +30,7 @@ public class PadSettings { ...@@ -30,6 +30,7 @@ public class PadSettings {
private DoubleProperty volumeProperty = new SimpleDoubleProperty(1.0); private DoubleProperty volumeProperty = new SimpleDoubleProperty(1.0);
private DoubleProperty speedProperty = new SimpleDoubleProperty(1.0); private DoubleProperty speedProperty = new SimpleDoubleProperty(1.0);
private BooleanProperty loopProperty = new SimpleBooleanProperty(false); private BooleanProperty loopProperty = new SimpleBooleanProperty(false);
private BooleanProperty playOverlayProperty = new SimpleBooleanProperty(false);
private ObjectProperty<TimeMode> timeModeProperty = new SimpleObjectProperty<>(); private ObjectProperty<TimeMode> timeModeProperty = new SimpleObjectProperty<>();
private ObjectProperty<FadeSettings> fadeProperty = new SimpleObjectProperty<>(); private ObjectProperty<FadeSettings> fadeProperty = new SimpleObjectProperty<>();
private ObjectProperty<Duration> warningProperty = new SimpleObjectProperty<>(); private ObjectProperty<Duration> warningProperty = new SimpleObjectProperty<>();
...@@ -100,6 +101,18 @@ public class PadSettings { ...@@ -100,6 +101,18 @@ public class PadSettings {
return loopProperty; return loopProperty;
} }
public boolean isPlayOverlay() {
return playOverlayProperty.get();
}
public void setPlayOverlay(boolean playOverlay) {
playOverlayProperty.set(playOverlay);
}
public BooleanProperty playOverlayProperty() {
return playOverlayProperty;
}
public boolean isCustomTimeMode() { public boolean isCustomTimeMode() {
return timeModeProperty.isNotNull().get(); return timeModeProperty.isNotNull().get();
} }
...@@ -242,6 +255,7 @@ public class PadSettings { ...@@ -242,6 +255,7 @@ public class PadSettings {
clone.volumeProperty = new SimpleDoubleProperty(getVolume()); clone.volumeProperty = new SimpleDoubleProperty(getVolume());
clone.loopProperty = new SimpleBooleanProperty(isLoop()); clone.loopProperty = new SimpleBooleanProperty(isLoop());
clone.playOverlayProperty = new SimpleBooleanProperty(isPlayOverlay());
if (isCustomTimeMode()) if (isCustomTimeMode())
clone.timeModeProperty = new SimpleObjectProperty<>(getTimeMode()); clone.timeModeProperty = new SimpleObjectProperty<>(getTimeMode());
......
...@@ -21,6 +21,7 @@ public class PadSettingsSerializer { ...@@ -21,6 +21,7 @@ public class PadSettingsSerializer {
private static final String VOLUME_ELEMENT = "Volume"; private static final String VOLUME_ELEMENT = "Volume";
private static final String LOOP_ELEMENT = "Loop"; private static final String LOOP_ELEMENT = "Loop";
private static final String PLAY_OVERLAY_ELEMENT = "PlayOverlay";
private static final String TIME_MODE_ELEMENT = "TimeMode"; private static final String TIME_MODE_ELEMENT = "TimeMode";
private static final String FADE_ELEMENT = "Fade"; private static final String FADE_ELEMENT = "Fade";
private static final String WARNING_ELEMENT = "Warning"; private static final String WARNING_ELEMENT = "Warning";
...@@ -47,6 +48,8 @@ public class PadSettingsSerializer { ...@@ -47,6 +48,8 @@ public class PadSettingsSerializer {
padSettings.setVolume(Double.parseDouble(settingsElement.element(VOLUME_ELEMENT).getStringValue())); padSettings.setVolume(Double.parseDouble(settingsElement.element(VOLUME_ELEMENT).getStringValue()));
if (settingsElement.element(LOOP_ELEMENT) != null) if (settingsElement.element(LOOP_ELEMENT) != null)
padSettings.setLoop(Boolean.parseBoolean(settingsElement.element(LOOP_ELEMENT).getStringValue())); padSettings.setLoop(Boolean.parseBoolean(settingsElement.element(LOOP_ELEMENT).getStringValue()));
if (settingsElement.element(PLAY_OVERLAY_ELEMENT) != null)
padSettings.setPlayOverlay(Boolean.parseBoolean(settingsElement.element(PLAY_OVERLAY_ELEMENT).getStringValue()));
if (settingsElement.element(TIME_MODE_ELEMENT) != null) if (settingsElement.element(TIME_MODE_ELEMENT) != null)
padSettings.setTimeMode(TimeMode.valueOf(settingsElement.element(TIME_MODE_ELEMENT).getStringValue())); padSettings.setTimeMode(TimeMode.valueOf(settingsElement.element(TIME_MODE_ELEMENT).getStringValue()));
if (settingsElement.element(FADE_ELEMENT) != null) if (settingsElement.element(FADE_ELEMENT) != null)
...@@ -108,6 +111,7 @@ public class PadSettingsSerializer { ...@@ -108,6 +111,7 @@ public class PadSettingsSerializer {
settingsElement.addElement(VOLUME_ELEMENT).addText(String.valueOf(padSettings.getVolume())); settingsElement.addElement(VOLUME_ELEMENT).addText(String.valueOf(padSettings.getVolume()));
settingsElement.addElement(LOOP_ELEMENT).addText(String.valueOf(padSettings.isLoop())); settingsElement.addElement(LOOP_ELEMENT).addText(String.valueOf(padSettings.isLoop()));
settingsElement.addElement(PLAY_OVERLAY_ELEMENT).addText(String.valueOf(padSettings.isPlayOverlay()));
if (padSettings.isCustomTimeMode()) if (padSettings.isCustomTimeMode())
settingsElement.addElement(TIME_MODE_ELEMENT).addText(String.valueOf(padSettings.getTimeMode())); settingsElement.addElement(TIME_MODE_ELEMENT).addText(String.valueOf(padSettings.getTimeMode()));
if (padSettings.isCustomWarning()) if (padSettings.isCustomWarning())
......
...@@ -43,7 +43,8 @@ public class PadStatusControlListener implements ChangeListener<PadStatus> { ...@@ -43,7 +43,8 @@ public class PadStatusControlListener implements ChangeListener<PadStatus> {
pad.getProject().updateActivePlayerProperty(); pad.getProject().updateActivePlayerProperty();
// bei Single Pad Playing wird das alte Pad beendet. // bei Single Pad Playing wird das alte Pad beendet.
if (!profileSettings.isMultiplePlayer()) { // Und wenn das neu abzuspielende Pad nicht im Modus "PlayOverlay" ist.
if (!profileSettings.isMultiplePlayer() && !pad.getPadSettings().isPlayOverlay()) {
if (currentPlayingPad != null && currentPlayingPad != pad) { if (currentPlayingPad != null && currentPlayingPad != pad) {
if (currentPlayingPad.isPlay() || currentPlayingPad.isPaused()) { if (currentPlayingPad.isPlay() || currentPlayingPad.isPaused()) {
currentPlayingPad.stop(); currentPlayingPad.stop();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment