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

#18 - Fixed Volume Trigger fading

parent e5737bd4
No related branches found
No related tags found
No related merge requests found
......@@ -7,14 +7,13 @@ import de.tobias.playpad.profile.Profile;
import de.tobias.playpad.project.Project;
import de.tobias.playpad.tigger.TriggerItem;
import de.tobias.playpad.viewcontroller.main.IMainViewController;
import de.tobias.playpad.volume.VolumeManager;
import javafx.util.Duration;
import org.dom4j.Element;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
public class VolumeTriggerItem extends TriggerItem {
......@@ -22,8 +21,6 @@ public class VolumeTriggerItem extends TriggerItem {
private Duration duration = new Duration(2000);
private List<UUID> uuids;
private static HashMap<Integer, Double> volumeCache = new HashMap<>();
private String type;
public VolumeTriggerItem(String type) {
......@@ -59,20 +56,14 @@ public class VolumeTriggerItem extends TriggerItem {
@Override
public void performAction(Pad pad, Project project, IMainViewController controller, Profile profile) {
for (Pad destination : uuids.stream().map(project::getPad).collect(Collectors.toList())) {
if (destination.getContent() instanceof Fadeable) {
final int id = destination.getPadIndex().getId();
if (!volumeCache.containsKey(id)) {
volumeCache.put(id, destination.getPadSettings().getVolume());
}
double start = volumeCache.get(id);
uuids.stream().map(project::getPad)
.filter(i -> i.getContent() instanceof Fadeable)
.forEach(destination -> {
Fadeable fadeable = (Fadeable) destination.getContent();
fadeable.fade(start, volume, duration, () -> volumeCache.put(id, volume));
}
}
final double start = VolumeManager.getInstance().computeVolume(destination);
fadeable.fade(start, volume, duration, null);
});
}
@Override
......@@ -99,13 +90,10 @@ public class VolumeTriggerItem extends TriggerItem {
if (element.attributeValue(DURATION_ATTR) != null)
duration = Duration.millis(Double.parseDouble(element.attributeValue(DURATION_ATTR)));
for (Object cartObj : element.elements(CART_ELEMENT)) {
if (cartObj instanceof Element) {
Element cartElement = (Element) cartObj;
for (Element cartElement : element.elements(CART_ELEMENT)) {
uuids.add(UUID.fromString(cartElement.getStringValue()));
}
}
}
@Override
public void save(Element element) {
......
......@@ -24,8 +24,8 @@ public class Fade {
fade(0, 1, duration, null);
}
public void fadeIn(Duration duration, Runnable onFinsih) {
fade(0, 1, duration, onFinsih);
public void fadeIn(Duration duration, Runnable onFinish) {
fade(0, 1, duration, onFinish);
}
public void fadeOut(Duration duration) {
......@@ -52,7 +52,6 @@ public class Fade {
}
currentFadeTransition = new Transition() {
{
setCycleDuration(duration);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment