parameterKnobs[ki].addToContainer(this);
}
- Engine.Listener lxListener = new Engine.Listener() {
+ Engine.Listener lxListener = new Engine.AbstractListener() {
public void patternWillChange(Engine.Deck deck, LXPattern pattern, LXPattern nextPattern) {
patternList.redraw();
}
return deck.getNextPattern() == pattern;
}
- public void select() {
+ public void onMousePressed() {
deck.goPattern(pattern);
}
}
}
class UICrossfader extends UIWindow {
-
+
+ private final UIToggleSet displayMode;
+
public UICrossfader(float x, float y, float w, float h) {
super("CROSSFADER", x, y, w, h);
List<ScrollItem> items = new ArrayList<ScrollItem>();
- for (LXTransition t : transitions) {
+ for (LXTransition t : glucose.getTransitions()) {
items.add(new TransitionScrollItem(t));
- }
- new UIScrollList(1, titleHeight, w-2, 60).setItems(items).addToContainer(this);
- new UIParameterSlider(6, titleHeight + 66, w-12, 24).setParameter(lx.engine.getDeck(1).getCrossfader()).addToContainer(this);
- new UIToggleSet(6, 122, w-12, 20) {
- protected void onToggle(String value) {
- displayMode = value;
+ }
+ final UIScrollList tList;
+ (tList = new UIScrollList(1, titleHeight, w-2, 120)).setItems(items).addToContainer(this);
+ new UIParameterSlider(4, titleHeight + 126, w-10, 24).setParameter(lx.engine.getDeck(1).getCrossfader()).addToContainer(this);
+ (displayMode = new UIToggleSet(4, 182, w-10, 20)).setOptions(new String[] { "A", "COMP", "B" }).setValue("COMP").addToContainer(this);
+
+ lx.engine.getDeck(1).addListener(new Engine.AbstractListener() {
+ public void blendTransitionDidChange(Engine.Deck deck, LXTransition transition) {
+ tList.redraw();
}
- }.setOptions(new String[] { "A", "COMP", "B" }).setValue(displayMode = "COMP").addToContainer(this);
+ });
+ }
+
+ public String getDisplayMode() {
+ return displayMode.getValue();
}
}
}
public boolean isSelected() {
- return transition == lx.engine.getDeck(1).getBlendTransition();
+ return transition == glucose.getSelectedTransition();
}
public boolean isPending() {
return false;
}
- public void select() {
- lx.engine.getDeck(1).setBlendTransition(transition);
+ public void onMousePressed() {
+ glucose.setSelectedTransition(transition);
}
}
return effect.isEnabled();
}
- public void select() {
- glucose.setSelectedEffect(effect);
- }
-
public void onMousePressed() {
if (glucose.getSelectedEffect() == effect) {
if (effect.isMomentary()) {
} else {
effect.toggle();
}
+ } else {
+ glucose.setSelectedEffect(effect);
}
}
public UIOutput(float x, float y, float w, float h) {
super("OUTPUT", x, y, w, h);
float yp = titleHeight;
+
+ final UIScrollList outputs = new UIScrollList(1, titleHeight, w-2, 80);
+
+ List<ScrollItem> items = new ArrayList<ScrollItem>();
for (final PandaDriver panda : pandaBoards) {
- final UIButton button = new UIButton(4, yp, w-8, 20) {
- protected void onToggle(boolean active) {
- panda.setEnabled(active);
- }
- }.setLabel(panda.ip);
- button.addToContainer(this);
+ items.add(new PandaScrollItem(panda));
panda.setListener(new PandaDriver.Listener() {
public void onToggle(boolean active) {
- button.setActive(active);
+ outputs.redraw();
}
});
- yp += 24;
}
- }
+ outputs.setItems(items).addToContainer(this);
+ }
+
+ class PandaScrollItem extends AbstractScrollItem {
+ final PandaDriver panda;
+ PandaScrollItem(PandaDriver panda) {
+ this.panda = panda;
+ }
+
+ public String getLabel() {
+ return panda.ip;
+ }
+
+ public boolean isSelected() {
+ return panda.isEnabled();
+ }
+
+ public void onMousePressed() {
+ panda.toggle();
+ }
+ }
}
class UITempo extends UIWindow {
UITempo(float x, float y, float w, float h) {
super("TEMPO", x, y, w, h);
- tempoButton = new UIButton(4, titleHeight, w-8, 20) {
+ tempoButton = new UIButton(4, titleHeight, w-10, 20) {
protected void onToggle(boolean active) {
if (active) {
lx.tempo.tap();
mappingTool = tool;
int yp = titleHeight;
- new UIToggleSet(4, yp, w-8, 20) {
+ new UIToggleSet(4, yp, w-10, 20) {
protected void onToggle(String value) {
if (value == MAP_MODE_ALL) mappingTool.mappingMode = mappingTool.MAPPING_MODE_ALL;
else if (value == MAP_MODE_CHANNEL) mappingTool.mappingMode = mappingTool.MAPPING_MODE_CHANNEL;
}
}.setOptions(new String[] { MAP_MODE_ALL, MAP_MODE_CHANNEL, MAP_MODE_CUBE }).addToContainer(this);
yp += 24;
- new UILabel(4, yp+8, w-8, 20).setLabel("CHANNEL ID").addToContainer(this);
+ new UILabel(4, yp+8, w-10, 20).setLabel("CHANNEL ID").addToContainer(this);
yp += 24;
- (channelBox = new UIIntegerBox(4, yp, w-8, 20) {
+ (channelBox = new UIIntegerBox(4, yp, w-10, 20) {
protected void onValueChange(int value) {
mappingTool.setChannel(value-1);
}
}).setRange(1, mappingTool.numChannels()).addToContainer(this);
yp += 24;
- new UILabel(4, yp+8, w-8, 20).setLabel("CUBE ID").addToContainer(this);
+ new UILabel(4, yp+8, w-10, 20).setLabel("CUBE ID").addToContainer(this);
yp += 24;
- (cubeBox = new UIIntegerBox(4, yp, w-8, 20) {
+ (cubeBox = new UIIntegerBox(4, yp, w-10, 20) {
protected void onValueChange(int value) {
mappingTool.setCube(value-1);
}
}).setRange(1, glucose.model.cubes.size()).addToContainer(this);
yp += 24;
- new UILabel(4, yp+8, w-8, 20).setLabel("COLORS").addToContainer(this);
+ new UILabel(4, yp+8, w-10, 20).setLabel("COLORS").addToContainer(this);
yp += 24;
new UIScrollList(1, yp, w-2, 60).setItems(Arrays.asList(new ScrollItem[] {
})).addToContainer(this);
yp += 64;
- new UILabel(4, yp+8, w-8, 20).setLabel("STRIP MODE").addToContainer(this);
+ new UILabel(4, yp+8, w-10, 20).setLabel("STRIP MODE").addToContainer(this);
yp += 24;
- new UIToggleSet(4, yp, w-8, 20) {
+ new UIToggleSet(4, yp, w-10, 20) {
protected void onToggle(String value) {
if (value == CUBE_MODE_ALL) mappingTool.cubeMode = mappingTool.CUBE_MODE_ALL;
else if (value == CUBE_MODE_STRIP) mappingTool.cubeMode = mappingTool.CUBE_MODE_SINGLE_STRIP;
}.setOptions(new String[] { CUBE_MODE_ALL, CUBE_MODE_STRIP, CUBE_MODE_PATTERN }).addToContainer(this);
yp += 24;
- new UILabel(4, yp+8, w-8, 20).setLabel("STRIP ID").addToContainer(this);
+ new UILabel(4, yp+8, w-10, 20).setLabel("STRIP ID").addToContainer(this);
yp += 24;
- (stripBox = new UIIntegerBox(4, yp, w-8, 20) {
+ (stripBox = new UIIntegerBox(4, yp, w-10, 20) {
protected void onValueChange(int value) {
mappingTool.setStrip(value-1);
}