Hugo Hu / Mbed 2 deprecated BRAVEHEART

Dependencies:   mbed N5110 ShiftReg PinDetect

Committer:
Siriagus
Date:
Mon May 11 04:40:23 2015 +0000
Revision:
18:709ea375b0df
Parent:
17:d6a3b29cab31
Child:
19:89c3eeb3761b
Fixed some formatting errors in documentation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Siriagus 4:d6661b976359 1 #ifndef INPUT_H
Siriagus 4:d6661b976359 2 #define INPUT_H
Siriagus 4:d6661b976359 3
Siriagus 4:d6661b976359 4 #include "N5110.h"
Siriagus 4:d6661b976359 5 #include "PinDetect.h"
Siriagus 4:d6661b976359 6 #include "Joystick.h"
Siriagus 4:d6661b976359 7
Siriagus 17:d6a3b29cab31 8 /// @file InputManager.h
Siriagus 10:f2488a0ecab7 9
Siriagus 9:da608ae65df9 10 struct Input
Siriagus 9:da608ae65df9 11 {
Siriagus 10:f2488a0ecab7 12 /** Used as identificator for the different buttons */
Siriagus 9:da608ae65df9 13 enum Button{ButtonA, ButtonB, ButtonC};
Siriagus 9:da608ae65df9 14 };
Siriagus 9:da608ae65df9 15
Siriagus 10:f2488a0ecab7 16 /// Used to manage user input from buttons and thumb joystick
Siriagus 4:d6661b976359 17 class InputManager
Siriagus 4:d6661b976359 18 {
Siriagus 4:d6661b976359 19 public:
Siriagus 4:d6661b976359 20
Siriagus 10:f2488a0ecab7 21 /** Creates a new InputManager object
Siriagus 10:f2488a0ecab7 22 * @param pinA Pin connected to button A
Siriagus 10:f2488a0ecab7 23 * @param pinB Pin connected to button B
Siriagus 10:f2488a0ecab7 24 * @param pinc Pin connected to button C
Siriagus 10:f2488a0ecab7 25 * @param x Pin connected to the horizontal potentiometer of the joystick
Siriagus 10:f2488a0ecab7 26 * @param y Pin connected to the vertical potentiometer of the joystick
Siriagus 10:f2488a0ecab7 27 * @param button Pin connected to the button of the thumb joystick
Siriagus 10:f2488a0ecab7 28 */
Siriagus 4:d6661b976359 29 InputManager(PinName pinA, PinName pinB, PinName pinC, PinName joyH, PinName joyV, PinName joyBtn);
Siriagus 10:f2488a0ecab7 30
Siriagus 10:f2488a0ecab7 31 /** Deconstructor. Frees allocated memory related to the buttons and the joystick **/
Siriagus 4:d6661b976359 32 ~InputManager();
Siriagus 4:d6661b976359 33
Siriagus 4:d6661b976359 34 Joystick *joystick;
Siriagus 10:f2488a0ecab7 35
Siriagus 10:f2488a0ecab7 36 /** @brief Adds a button interrupt which is invoked when the button is pressed. Button needs to be released for the interrupt to occur again.
Siriagus 10:f2488a0ecab7 37 * @param button Name of the button.
Siriagus 10:f2488a0ecab7 38 * @param func Callback function.
Siriagus 10:f2488a0ecab7 39 */
Siriagus 10:f2488a0ecab7 40 void addBtnPressInterrupt(Input::Button button, void (*func)(void));
Siriagus 10:f2488a0ecab7 41
Siriagus 10:f2488a0ecab7 42
Siriagus 10:f2488a0ecab7 43 /** Reads the current value of a button.
Siriagus 10:f2488a0ecab7 44 * @param button The button we want to read.
Siriagus 10:f2488a0ecab7 45 * @return Returns 1 if button is pressed, 0 otherwise.
Siriagus 10:f2488a0ecab7 46 */
Siriagus 10:f2488a0ecab7 47 int read(Input::Button button);
Siriagus 10:f2488a0ecab7 48
Siriagus 10:f2488a0ecab7 49 private:
Siriagus 10:f2488a0ecab7 50 /// Button objects
Siriagus 4:d6661b976359 51 PinDetect *btnA;
Siriagus 4:d6661b976359 52 PinDetect *btnB;
Siriagus 4:d6661b976359 53 PinDetect *btnC;
Siriagus 4:d6661b976359 54
Siriagus 10:f2488a0ecab7 55 /** Returns a pointer to the actual button object
Siriagus 10:f2488a0ecab7 56 * @param button The requested button.
Siriagus 10:f2488a0ecab7 57 * @return Pointer to the button.
Siriagus 10:f2488a0ecab7 58 */
Siriagus 18:709ea375b0df 59 PinDetect* getBtnPtr(Input::Button button);
Siriagus 4:d6661b976359 60 };
Siriagus 4:d6661b976359 61
Siriagus 4:d6661b976359 62 #endif
Siriagus 4:d6661b976359 63