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

Merge branch 'feature/166_trigger' into 'develop'

Feature/166 trigger

See merge request PlayWall/PlayWallDesktop!10
parents 6925fdd1 51954726
No related branches found
No related tags found
No related merge requests found
...@@ -210,7 +210,8 @@ Trigger.Cart.Name=Kacheln ...@@ -210,7 +210,8 @@ Trigger.Cart.Name=Kacheln
Trigger.Volume.Name=Lautst\u00E4rke Trigger.Volume.Name=Lautst\u00E4rke
# TriggerPoint - Enum # TriggerPoint - Enum
TriggerPoint.START=Start TriggerPoint.START=Start
TriggerPoint.EOF_STOP=Ende/Stop TriggerPoint.STOP=Stop
TriggerPoint.EOF=Ende (EoF)
# Drag and Drop Mode # Drag and Drop Mode
DnDMode.Replace=Ersetzen DnDMode.Replace=Ersetzen
DnDMode.Duplicate=Duplizieren DnDMode.Duplicate=Duplizieren
......
package de.tobias.playpad.pad; package de.tobias.playpad.pad;
import de.thecodelabs.logger.Logger;
import de.thecodelabs.storage.settings.UserDefaults; import de.thecodelabs.storage.settings.UserDefaults;
import de.tobias.playpad.design.modern.model.ModernCartDesign; import de.tobias.playpad.design.modern.model.ModernCartDesign;
import de.tobias.playpad.design.modern.serializer.ModernCartDesignSerializer; import de.tobias.playpad.design.modern.serializer.ModernCartDesignSerializer;
...@@ -92,9 +93,13 @@ public class PadSettingsSerializer { ...@@ -92,9 +93,13 @@ public class PadSettingsSerializer {
Element triggersElement = settingsElement.element(TRIGGERS_ELEMENT); Element triggersElement = settingsElement.element(TRIGGERS_ELEMENT);
if (triggersElement != null) { if (triggersElement != null) {
for (Element triggerElement : triggersElement.elements(TRIGGER_ELEMENT)) { for (Element triggerElement : triggersElement.elements(TRIGGER_ELEMENT)) {
try {
Trigger trigger = new Trigger(); Trigger trigger = new Trigger();
trigger.load(triggerElement); trigger.load(triggerElement);
padSettings.getTriggers().put(trigger.getTriggerPoint(), trigger); padSettings.getTriggers().put(trigger.getTriggerPoint(), trigger);
} catch (IllegalArgumentException e) {
Logger.error(e);
}
} }
} }
padSettings.updateTrigger(); // Add missing trigger points padSettings.updateTrigger(); // Add missing trigger points
......
...@@ -15,7 +15,7 @@ import javafx.util.Duration; ...@@ -15,7 +15,7 @@ import javafx.util.Duration;
public class PadTriggerDurationListener implements ChangeListener<Duration> { public class PadTriggerDurationListener implements ChangeListener<Duration> {
private Pad pad; private final Pad pad;
public PadTriggerDurationListener(Pad pad) { public PadTriggerDurationListener(Pad pad) {
this.pad = pad; this.pad = pad;
...@@ -37,7 +37,7 @@ public class PadTriggerDurationListener implements ChangeListener<Duration> { ...@@ -37,7 +37,7 @@ public class PadTriggerDurationListener implements ChangeListener<Duration> {
Trigger startTrigger = padSettings.getTrigger(TriggerPoint.START); Trigger startTrigger = padSettings.getTrigger(TriggerPoint.START);
startTrigger.handle(pad, newValue, pad.getProject(), mainViewController, currentProfile); startTrigger.handle(pad, newValue, pad.getProject(), mainViewController, currentProfile);
Trigger endTrigger = padSettings.getTrigger(TriggerPoint.EOF_STOP); Trigger endTrigger = padSettings.getTrigger(TriggerPoint.EOF);
endTrigger.handle(pad, leftTime, pad.getProject(), mainViewController, currentProfile); endTrigger.handle(pad, leftTime, pad.getProject(), mainViewController, currentProfile);
} }
} }
......
...@@ -14,7 +14,7 @@ import javafx.util.Duration; ...@@ -14,7 +14,7 @@ import javafx.util.Duration;
public class PadTriggerStatusListener implements ChangeListener<PadStatus> { public class PadTriggerStatusListener implements ChangeListener<PadStatus> {
private Pad pad; private final Pad pad;
public PadTriggerStatusListener(Pad pad) { public PadTriggerStatusListener(Pad pad) {
this.pad = pad; this.pad = pad;
...@@ -28,10 +28,10 @@ public class PadTriggerStatusListener implements ChangeListener<PadStatus> { ...@@ -28,10 +28,10 @@ public class PadTriggerStatusListener implements ChangeListener<PadStatus> {
// Execute Trigger // Execute Trigger
if (newValue == PadStatus.PLAY) { // TRIGGER FÜR START if (newValue == PadStatus.PLAY) { // TRIGGER FÜR START
executeTrigger(padSettings.getTriggers().get(TriggerPoint.START)); executeTrigger(padSettings.getTriggers().get(TriggerPoint.START));
} else if (newValue == PadStatus.STOP || (oldValue == PadStatus.PLAY && newValue == PadStatus.READY)) { // TRIGGER FÜR STOP } else if (newValue == PadStatus.STOP) { // TRIGGER FÜR STOP
executeTrigger(padSettings.getTriggers().get(TriggerPoint.EOF_STOP)); executeTrigger(padSettings.getTriggers().get(TriggerPoint.STOP));
} else if (oldValue == PadStatus.PLAY && newValue == PadStatus.READY && pad.isEof()) { // TRIGGER FÜR EOF } else if (oldValue == PadStatus.PLAY && newValue == PadStatus.READY && pad.isEof()) { // TRIGGER FÜR EOF
executeTrigger(padSettings.getTriggers().get(TriggerPoint.EOF_STOP)); executeTrigger(padSettings.getTriggers().get(TriggerPoint.EOF));
} }
} else { } else {
pad.setIgnoreTrigger(false); pad.setIgnoreTrigger(false);
......
...@@ -71,7 +71,7 @@ public class Trigger { ...@@ -71,7 +71,7 @@ public class Trigger {
try { try {
triggerPoint = TriggerPoint.valueOf(element.attributeValue(POINT_ATTR)); triggerPoint = TriggerPoint.valueOf(element.attributeValue(POINT_ATTR));
} catch (Exception e) { } catch (Exception e) {
Logger.error(e); throw new IllegalArgumentException("Trigger Point " + element.attributeValue(POINT_ATTR) + " not exists");
} }
for (Element itemElement : element.elements(ITEM_ELEMENT)) { for (Element itemElement : element.elements(ITEM_ELEMENT)) {
...@@ -108,7 +108,9 @@ public class Trigger { ...@@ -108,7 +108,9 @@ public class Trigger {
for (TriggerItem item : items) { for (TriggerItem item : items) {
if (triggerPoint == TriggerPoint.START) { if (triggerPoint == TriggerPoint.START) {
handleStartPoint(pad, duration, project, mainViewController, currentProfile, item); handleStartPoint(pad, duration, project, mainViewController, currentProfile, item);
} else if ((triggerPoint == TriggerPoint.EOF_STOP)) { } else if (triggerPoint == TriggerPoint.STOP) {
handleEndPoint(pad, duration, project, mainViewController, currentProfile, item);
} else if (triggerPoint == TriggerPoint.EOF) {
handleEndPoint(pad, duration, project, mainViewController, currentProfile, item); handleEndPoint(pad, duration, project, mainViewController, currentProfile, item);
} }
} }
...@@ -126,7 +128,7 @@ public class Trigger { ...@@ -126,7 +128,7 @@ public class Trigger {
private void handleStartPoint(Pad pad, Duration duration, Project project, IMainViewController mainViewController, Profile currentProfile, TriggerItem item) { private void handleStartPoint(Pad pad, Duration duration, Project project, IMainViewController mainViewController, Profile currentProfile, TriggerItem item) {
if (pad.getStatus() == PadStatus.PLAY) { if (pad.getStatus() == PadStatus.PLAY) {
// Mitten drin, wenn die Zeit die gepsiel wurde größer ist als die gesetzte und noch der Trigger noch nicht ausgeführt // Mitten drin, wenn die Zeit die gespiel wurde größer ist als die gesetzte und noch der Trigger noch nicht ausgeführt
// wurde (null) // wurde (null)
if ((item.getPerformedAt() == null && item.getDurationFromPoint().lessThan(duration)) if ((item.getPerformedAt() == null && item.getDurationFromPoint().lessThan(duration))
// Wenn der Trigger am Anfang ist // Wenn der Trigger am Anfang ist
......
...@@ -3,6 +3,7 @@ package de.tobias.playpad.tigger; ...@@ -3,6 +3,7 @@ package de.tobias.playpad.tigger;
public enum TriggerPoint { public enum TriggerPoint {
START, START,
EOF_STOP STOP,
EOF
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment