#ifndef PAD_DEF
#define PAD_DEF
class Pad {
private:
int input_;
int inputPre_;
public:
Pad() : input_(0), inputPre_(0) {}
virtual ~Pad() {}
virtual void setInput(int input) { input_ = input; }
virtual int getInput() { return input_; }
virtual void setInputPre(int inputPre) { inputPre_ = inputPre; }
virtual int getInputOne() { return input_ & ~inputPre_; }
virtual bool isPress(int key) { return getInput() & key; }
virtual bool isPush(int key) { return getInputOne() & key; }
virtual bool isPressA() { return isPress(PAD_INPUT_A); }
virtual bool isPushA() { return isPush(PAD_INPUT_A); }
virtual bool isPressB() { return isPress(PAD_INPUT_B); }
virtual bool isPushB() { return isPush(PAD_INPUT_B); }
virtual bool isPressUP() { return isPress(PAD_INPUT_UP); }
virtual bool isPushUP() { return isPush(PAD_INPUT_UP); }
virtual bool isPressDOWN() { return isPress(PAD_INPUT_DOWN); }
virtual bool isPushDOWN() { return isPush(PAD_INPUT_DOWN); }
virtual bool isPressLEFT() { return isPress(PAD_INPUT_LEFT); }
virtual bool isPushLEFT() { return isPush(PAD_INPUT_LEFT); }
virtual bool isPressRIGHT() { return isPress(PAD_INPUT_RIGHT); }
virtual bool isPushRIGHT() { return isPush(PAD_INPUT_RIGHT); }
};
#endif