Input.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. /*
  2. * Input.h
  3. */
  4. #ifndef INPUT_H_
  5. #define INPUT_H_
  6. namespace gameplay
  7. {
  8. /**
  9. * Defines an input class for requesting input.
  10. */
  11. class Input
  12. {
  13. public:
  14. /**
  15. * The touch event.
  16. */
  17. enum TouchEvent
  18. {
  19. TOUCHEVENT_PRESS,
  20. TOUCHEVENT_RELEASE,
  21. TOUCHEVENT_MOVE
  22. };
  23. /**
  24. * The key event.
  25. */
  26. enum KeyEvent
  27. {
  28. KEYEVENT_DOWN,
  29. KEYEVENT_UP
  30. };
  31. /**
  32. * The key (code).
  33. */
  34. enum Key
  35. {
  36. KEY_NONE,
  37. KEY_PAUSE,
  38. KEY_SCROLL_LOCK,
  39. KEY_PRINT,
  40. KEY_SYSREQ,
  41. KEY_BREAK,
  42. KEY_ESCAPE,
  43. KEY_BACKSPACE,
  44. KEY_TAB,
  45. KEY_BACK_TAB,
  46. KEY_RETURN,
  47. KEY_CAPS_LOCK,
  48. KEY_LEFT_SHIFT,
  49. KEY_RIGHT_SHIFT,
  50. KEY_LEFT_CTRL,
  51. KEY_RIGHT_CTRL,
  52. KEY_LEFT_ALT,
  53. KEY_RIGHT_ALT,
  54. KEY_MENU,
  55. KEY_LEFT_HYPER,
  56. KEY_RIGHT_HYPER,
  57. KEY_INSERT,
  58. KEY_HOME,
  59. KEY_PG_UP,
  60. KEY_DELETE,
  61. KEY_END,
  62. KEY_PG_DOWN,
  63. KEY_LEFT_ARROW,
  64. KEY_RIGHT_ARROW,
  65. KEY_UP_ARROW,
  66. KEY_DOWN_ARROW,
  67. KEY_NUM_LOCK,
  68. KEY_KP_PLUS,
  69. KEY_KP_MINUS,
  70. KEY_KP_MULTIPLY,
  71. KEY_KP_DIVIDE,
  72. KEY_KP_ENTER,
  73. KEY_KP_HOME,
  74. KEY_KP_UP,
  75. KEY_KP_PG_UP,
  76. KEY_KP_LEFT,
  77. KEY_KP_FIVE,
  78. KEY_KP_RIGHT,
  79. KEY_KP_END,
  80. KEY_KP_DOWN,
  81. KEY_KP_PG_DOWN,
  82. KEY_KP_INSERT,
  83. KEY_KP_DELETE,
  84. KEY_F1,
  85. KEY_F2,
  86. KEY_F3,
  87. KEY_F4,
  88. KEY_F5,
  89. KEY_F6,
  90. KEY_F7,
  91. KEY_F8,
  92. KEY_F9,
  93. KEY_F10,
  94. KEY_F11,
  95. KEY_F12,
  96. KEY_SPACE,
  97. KEY_EXCLAM,
  98. KEY_QUOTE,
  99. KEY_NUMBER,
  100. KEY_DOLLAR,
  101. KEY_PERCENT,
  102. KEY_AMPERSAND,
  103. KEY_APOSTROPHE,
  104. KEY_LEFT_PARENTHESIS,
  105. KEY_RIGHT_PARENTHESIS,
  106. KEY_ASTERISK,
  107. KEY_PLUS,
  108. KEY_COMMA,
  109. KEY_MINUS,
  110. KEY_PERIOD,
  111. KEY_SLASH,
  112. KEY_ZERO,
  113. KEY_ONE,
  114. KEY_TWO,
  115. KEY_THREE,
  116. KEY_FOUR,
  117. KEY_FIVE,
  118. KEY_SIX,
  119. KEY_SEVEN,
  120. KEY_EIGHT,
  121. KEY_NINE,
  122. KEY_COLON,
  123. KEY_SEMICOLON,
  124. KEY_LESS_THAN,
  125. KEY_EQUAL,
  126. KEY_GREATER_THAN,
  127. KEY_QUESTION,
  128. KEY_AT,
  129. KEY_CAPITAL_A,
  130. KEY_CAPITAL_B,
  131. KEY_CAPITAL_C,
  132. KEY_CAPITAL_D,
  133. KEY_CAPITAL_E,
  134. KEY_CAPITAL_F,
  135. KEY_CAPITAL_G,
  136. KEY_CAPITAL_H,
  137. KEY_CAPITAL_I,
  138. KEY_CAPITAL_J,
  139. KEY_CAPITAL_K,
  140. KEY_CAPITAL_L,
  141. KEY_CAPITAL_M,
  142. KEY_CAPITAL_N,
  143. KEY_CAPITAL_O,
  144. KEY_CAPITAL_P,
  145. KEY_CAPITAL_Q,
  146. KEY_CAPITAL_R,
  147. KEY_CAPITAL_S,
  148. KEY_CAPITAL_T,
  149. KEY_CAPITAL_U,
  150. KEY_CAPITAL_V,
  151. KEY_CAPITAL_W,
  152. KEY_CAPITAL_X,
  153. KEY_CAPITAL_Y,
  154. KEY_CAPITAL_Z,
  155. KEY_LEFT_BRACKET,
  156. KEY_BACK_SLASH,
  157. KEY_RIGHT_BRACKET,
  158. KEY_CIRCUMFLEX,
  159. KEY_UNDERSCORE,
  160. KEY_GRAVE,
  161. KEY_A,
  162. KEY_B,
  163. KEY_C,
  164. KEY_D,
  165. KEY_E,
  166. KEY_F,
  167. KEY_G,
  168. KEY_H,
  169. KEY_I,
  170. KEY_J,
  171. KEY_K,
  172. KEY_L,
  173. KEY_M,
  174. KEY_N,
  175. KEY_O,
  176. KEY_P,
  177. KEY_Q,
  178. KEY_R,
  179. KEY_S,
  180. KEY_T,
  181. KEY_U,
  182. KEY_V,
  183. KEY_W,
  184. KEY_X,
  185. KEY_Y,
  186. KEY_Z,
  187. KEY_LEFT_BRACE,
  188. KEY_BAR,
  189. KEY_RIGHT_BRACE,
  190. KEY_TILDE
  191. };
  192. /**
  193. * Indicates if the game device supports accelerometer.
  194. *
  195. * @return true if the accelerometer is supported; false otherwise.
  196. */
  197. static bool isAccelerometerSupported();
  198. /**
  199. * Gets the current accelerometer pitch and roll angles.
  200. *
  201. * @param pitch The pitch angle returned (in degrees). If NULL then not returned.
  202. * @param roll The roll angle returned (in degrees). If NULL then not returned.
  203. */
  204. static void getAccelerometerPitchAndRoll(float* pitch, float* roll);
  205. private:
  206. /**
  207. * Constructor. Private for static.
  208. */
  209. Input();
  210. };
  211. }
  212. #endif