/*
* Copyright 2007-2008 Volker Fritzsch
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package motej.event;
import motej.Mote;
/**
*
* <p>
* @author <a href="mailto:vfritzsch@users.sourceforge.net">Volker Fritzsch</a>
*/
public class CoreButtonEvent {
public static final int NO_BUTTON = 0;
public static final int D_PAD_LEFT = 1;
public static final int D_PAD_RIGHT = 2;
public static final int D_PAD_UP = 8;
public static final int D_PAD_DOWN = 4;
public static final int BUTTON_ONE = 512;
public static final int BUTTON_TWO = 256;
public static final int BUTTON_A = 2048;
public static final int BUTTON_B = 1024;
public static final int BUTTON_PLUS = 16;
public static final int BUTTON_MINUS = 4096;
public static final int BUTTON_HOME = 32768;
private int modifiers;
private Mote source;
public CoreButtonEvent(Mote source, int modifiers) {
this.source = source;
this.modifiers = modifiers;
}
public int getButton() {
return modifiers;
}
public Mote getSource() {
return source;
}
public boolean isButtonAPressed() {
return (BUTTON_A & modifiers) == BUTTON_A;
}
public boolean isButtonBPressed() {
return (BUTTON_B & modifiers) == BUTTON_B;
}
public boolean isButtonHomePressed() {
return (BUTTON_HOME & modifiers) == BUTTON_HOME;
}
public boolean isButtonMinusPressed() {
return (BUTTON_MINUS & modifiers) == BUTTON_MINUS;
}
public boolean isButtonPlusPressed() {
return (BUTTON_PLUS & modifiers) == BUTTON_PLUS;
}
public boolean isButtonOnePressed() {
return (BUTTON_ONE & modifiers) == BUTTON_ONE;
}
public boolean isButtonTwoPressed() {
return (BUTTON_TWO & modifiers) == BUTTON_TWO;
}
public boolean isDPadLeftPressed() {
return (D_PAD_LEFT & modifiers) == D_PAD_LEFT;
}
public boolean isDPadRightPressed() {
return (D_PAD_RIGHT & modifiers) == D_PAD_RIGHT;
}
public boolean isDPadUpPressed() {
return (D_PAD_UP & modifiers) == D_PAD_UP;
}
public boolean isDPadDownPressed() {
return (D_PAD_DOWN & modifiers) == D_PAD_DOWN;
}
public boolean isNoButtonPressed() {
return modifiers == NO_BUTTON;
}
}