001 /*----------------------------------------------------------------------------*/
002 /* Copyright (c) FIRST 2008-2012. All Rights Reserved. */
003 /* Open Source Software - may be modified and shared by FRC teams. The code */
004 /* must be accompanied by the FIRST BSD license file in the root directory of */
005 /* the project. */
006 /*----------------------------------------------------------------------------*/
007
008 package edu.wpi.first.wpilibj.buttons;
009
010 /**
011 * This class is intended to be used within a program. The programmer can manually set its value.
012 * Also includes a setting for whether or not it should invert its value.
013 *
014 * @author Joe
015 */
016 public class InternalButton extends Button {
017
018 boolean pressed;
019 boolean inverted;
020
021 /**
022 * Creates an InternalButton that is not inverted.
023 */
024 public InternalButton() {
025 this(false);
026 }
027
028 /**
029 * Creates an InternalButton which is inverted depending on the input.
030 *
031 * @param inverted if false, then this button is pressed when set to true, otherwise it is pressed when set to false.
032 */
033 public InternalButton(boolean inverted) {
034 this.pressed = this.inverted = inverted;
035 }
036
037 public void setInverted(boolean inverted) {
038 this.inverted = inverted;
039 }
040
041 public void setPressed(boolean pressed) {
042 this.pressed = pressed;
043 }
044
045 public boolean get() {
046 return pressed ^ inverted;
047 }
048 }