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
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,8 @@ import javafx.util.Duration;
public class PlayerPadTabViewController extends PadSettingsTabViewController {
@FXML
private CheckBox playOverlayEnableCheckBox;
@FXML
private CheckBox customFadeCheckBox;
@FXML
......@@ -48,6 +50,8 @@ public class PlayerPadTabViewController extends PadSettingsTabViewController {
warningFeedbackViewController = WarningFeedbackViewController.newViewControllerForPad();
warningFeedbackContainer.getChildren().add(warningFeedbackViewController.getParent());
playOverlayEnableCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> pad.getPadSettings().setPlayOverlay(newValue));
customFadeCheckBox.selectedProperty().addListener((a, b, c) ->
{
fadeContainer.setDisable(!c);
......@@ -103,6 +107,8 @@ public class PlayerPadTabViewController extends PadSettingsTabViewController {
public void loadSettings(Pad pad) {
PadSettings padSettings = pad.getPadSettings();
playOverlayEnableCheckBox.setSelected(padSettings.isPlayOverlay());
if (padSettings.isCustomFade())
fadeViewController.setFadeSettings(padSettings.getFade());
......
......@@ -132,6 +132,8 @@ padSettings.gen.label.timeDisplay=Zeitanzeige:
padSettings.gen.checkbox.customSettings=Eigene Einstellungen
padSettings.label.loop=Wiederholen:
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.cueIn=Intro Dauer (in s):
padSettings.player.label.fade=Ein-/Ausblenden:
......
......@@ -5,6 +5,22 @@
<?import javafx.scene.layout.*?>
<VBox spacing="14.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
<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">
<children>
<HBox layoutX="14.0" layoutY="253.0" spacing="14.0">
......
......@@ -30,6 +30,7 @@ public class PadSettings {
private DoubleProperty volumeProperty = new SimpleDoubleProperty(1.0);
private DoubleProperty speedProperty = new SimpleDoubleProperty(1.0);
private BooleanProperty loopProperty = new SimpleBooleanProperty(false);
private BooleanProperty playOverlayProperty = new SimpleBooleanProperty(false);
private ObjectProperty<TimeMode> timeModeProperty = new SimpleObjectProperty<>();
private ObjectProperty<FadeSettings> fadeProperty = new SimpleObjectProperty<>();
private ObjectProperty<Duration> warningProperty = new SimpleObjectProperty<>();
......@@ -100,6 +101,18 @@ public class PadSettings {
return loopProperty;
}
public boolean isPlayOverlay() {
return playOverlayProperty.get();
}
public void setPlayOverlay(boolean playOverlay) {
playOverlayProperty.set(playOverlay);
}
public BooleanProperty playOverlayProperty() {
return playOverlayProperty;
}
public boolean isCustomTimeMode() {
return timeModeProperty.isNotNull().get();
}
......@@ -242,6 +255,7 @@ public class PadSettings {
clone.volumeProperty = new SimpleDoubleProperty(getVolume());
clone.loopProperty = new SimpleBooleanProperty(isLoop());
clone.playOverlayProperty = new SimpleBooleanProperty(isPlayOverlay());
if (isCustomTimeMode())
clone.timeModeProperty = new SimpleObjectProperty<>(getTimeMode());
......
......@@ -21,6 +21,7 @@ public class PadSettingsSerializer {
private static final String VOLUME_ELEMENT = "Volume";
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 FADE_ELEMENT = "Fade";
private static final String WARNING_ELEMENT = "Warning";
......@@ -47,6 +48,8 @@ public class PadSettingsSerializer {
padSettings.setVolume(Double.parseDouble(settingsElement.element(VOLUME_ELEMENT).getStringValue()));
if (settingsElement.element(LOOP_ELEMENT) != null)
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)
padSettings.setTimeMode(TimeMode.valueOf(settingsElement.element(TIME_MODE_ELEMENT).getStringValue()));
if (settingsElement.element(FADE_ELEMENT) != null)
......@@ -108,6 +111,7 @@ public class PadSettingsSerializer {
settingsElement.addElement(VOLUME_ELEMENT).addText(String.valueOf(padSettings.getVolume()));
settingsElement.addElement(LOOP_ELEMENT).addText(String.valueOf(padSettings.isLoop()));
settingsElement.addElement(PLAY_OVERLAY_ELEMENT).addText(String.valueOf(padSettings.isPlayOverlay()));
if (padSettings.isCustomTimeMode())
settingsElement.addElement(TIME_MODE_ELEMENT).addText(String.valueOf(padSettings.getTimeMode()));
if (padSettings.isCustomWarning())
......
......@@ -43,7 +43,8 @@ public class PadStatusControlListener implements ChangeListener<PadStatus> {
pad.getProject().updateActivePlayerProperty();
// 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.isPlay() || currentPlayingPad.isPaused()) {
currentPlayingPad.stop();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment