/src/keydef.h

http://bdremote-ng.googlecode.com/ · C Header · 178 lines · 120 code · 13 blank · 45 comment · 0 complexity · 1831847c7b7aa0993469cb2ed19fdbda MD5 · raw file

  1. /*
  2. * bdremoteng - helper daemon for Sony(R) BD Remote Control
  3. * Based on bdremoted, written by Anton Starikov <antst@mail.ru>.
  4. *
  5. * Copyright (C) 2009 Michael Wojciechowski <wojci@wojci.dk>
  6. *
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation; either version 2 of the License, or
  11. * (at your option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program; if not, write to the Free Software
  20. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  21. *
  22. */
  23. /** @defgroup Keys PS3 remote key definition.
  24. * This group contains the definition of the keys on the PS3 remote.
  25. * @{
  26. */
  27. /*! \file keydef.h
  28. \brief PS3 remote keys.
  29. This file contains the definition of the keys on the PS3 remote
  30. and some useful defines.
  31. */
  32. #ifndef BD_KEYDEF_H
  33. #define BD_KEYDEF_H
  34. #include <stdint.h>
  35. /** Key information. */
  36. struct key_info
  37. {
  38. /** The original name. */
  39. const char* name_orig;
  40. /** The LIRC namespace name. */
  41. const char* name_lirc;
  42. /** The Linux key event code. */
  43. unsigned int event_code;
  44. /** The code. */
  45. unsigned int code;
  46. /** The mask. */
  47. uint32_t mask;
  48. };
  49. #define KEY_ENTER 28
  50. #define KEY_POWER 116
  51. #define KEY_SELECT 0x161
  52. #define BTN_C 0x132
  53. #define BTN_Z 0x135
  54. #define BTN_START 0x13b
  55. #define KEY_UP 103
  56. #define KEY_RIGHT 106
  57. #define KEY_DOWN 108
  58. #define KEY_LEFT 105
  59. #define BTN_B 0x131
  60. #define BTN_Y 0x134
  61. #define BTN_A 0x130
  62. #define BTN_X 0x133
  63. #define KEY_OPTION 0x165
  64. #define KEY_BACK 158
  65. #define KEY_CLEAR 0x163
  66. #define KEY_ZOOM 0x174
  67. #define KEY_1 2
  68. #define KEY_2 3
  69. #define KEY_3 4
  70. #define KEY_4 5
  71. #define KEY_5 6
  72. #define KEY_6 7
  73. #define KEY_7 8
  74. #define KEY_8 9
  75. #define KEY_9 10
  76. #define KEY_0 11
  77. #define KEY_MEDIA_REPEAT 0x1b7
  78. /*#define KEY_CLEAR 0x163*/
  79. #define KEY_EJECTCD 161
  80. #define KEY_MENU 139
  81. #define KEY_TIME 0x167
  82. #define KEY_PREVIOUS 0x19c
  83. #define KEY_NEXT 0x197
  84. #define KEY_PLAY 207
  85. #define KEY_REWIND 168
  86. #define KEY_FORWARD 159
  87. #define KEY_STOP 128
  88. #define KEY_PAUSE 119
  89. #define KEY_CONTEXT_MENU 0x1b6
  90. #define KEY_FRAMEBACK 0x1b4
  91. #define KEY_FRAMEFORWARD 0x1b5
  92. #define KEY_SUBTITLE 0x172
  93. #define KEY_AUDIO 0x188
  94. #define KEY_ANGLE 0x173
  95. #define KEY_INFO 0x166
  96. #define KEY_BLUE 0x191
  97. #define KEY_RED 0x18e
  98. #define KEY_GREEN 0x18f
  99. #define KEY_YELLOW 0x190
  100. /** The code for a key release. */
  101. #define ps3remote_keyup 0xFF
  102. /** Undefined key. */
  103. #define ps3remote_undef -1
  104. /** The max number of keys. */
  105. #define ps3remote_num_keys 51
  106. #define ps3remote_num_masked 18
  107. /** Array of keys. */
  108. static struct key_info ps3remote_keys[] =
  109. {
  110. {"enter\0" , "KEY_ENTER\0" , KEY_ENTER , 0x0b, 0x080000},
  111. {"ps\0" , "KEY_POWER\0" , KEY_POWER , 0x43, 0x010000},
  112. {"select\0" , "KEY_SELECT\0" , KEY_SELECT , 0x50, 0x000001},
  113. {"l3\0" , "BTN_C\0" , BTN_C , 0x51, 0x000002},
  114. {"r3\0" , "BTN_Z\0" , BTN_Z , 0x52, 0x000004},
  115. {"start\0" , "BTN_START\0" , BTN_START , 0x53, 0x000008},
  116. {"up\0" , "KEY_UP\0" , KEY_UP , 0x54, 0x000010},
  117. {"right\0" , "KEY_RIGHT\0" , KEY_RIGHT , 0x55, 0x000020},
  118. {"down\0" , "KEY_DOWN\0" , KEY_DOWN , 0x56, 0x000040},
  119. {"left\0" , "KEY_LEFT\0" , KEY_LEFT , 0x57, 0x000080},
  120. {"l2\0" , "BTN_B\0" , BTN_B , 0x58, 0x000100},
  121. {"r2\0" , "BTN_Y\0" , BTN_Y , 0x59, 0x000200},
  122. {"l1\0" , "BTN_A\0" , BTN_A , 0x5a, 0x000400},
  123. {"r1\0" , "BTN_X\0" , BTN_X , 0x5b, 0x000800},
  124. {"triangle\0", "KEY_OPTION\0" , KEY_OPTION , 0x5c, 0x001000},
  125. {"circle\0" , "KEY_BACK\0" , KEY_BACK , 0x5d, 0x002000},
  126. {"cross\0" , "KEY_CLEAR\0" , KEY_CLEAR , 0x5e, 0x004000},
  127. {"square\0" , "KEY_ZOOM\0" , KEY_ZOOM , 0x5f, 0x008000},
  128. {"num1\0" , "KEY_1\0" , KEY_1 , 0x00, 0x000000},
  129. {"num2\0" , "KEY_2\0" , KEY_2 , 0x01, 0x000000},
  130. {"num3\0" , "KEY_3\0" , KEY_3 , 0x02, 0x000000},
  131. {"num4\0" , "KEY_4\0" , KEY_4 , 0x03, 0x000000},
  132. {"num5\0" , "KEY_5\0" , KEY_5 , 0x04, 0x000000},
  133. {"num6\0" , "KEY_6\0" , KEY_6 , 0x05, 0x000000},
  134. {"num7\0" , "KEY_7\0" , KEY_7 , 0x06, 0x000000},
  135. {"num8\0" , "KEY_8\0" , KEY_8 , 0x07, 0x000000},
  136. {"num9\0" , "KEY_9\0" , KEY_9 , 0x08, 0x000000},
  137. {"num0\0" , "KEY_0\0" , KEY_0 , 0x09, 0x000000},
  138. {"return\0" , "KEY_MEDIA_REPEAT\0", KEY_MEDIA_REPEAT, 0x0e, 0x000000},
  139. {"clear\0" , "KEY_CLEAR\0" , KEY_CLEAR , 0x0f, 0x000000},
  140. {"eject\0" , "KEY_EJECTCD\0" , KEY_EJECTCD , 0x16, 0x000000},
  141. {"topmenu\0" , "KEY_MENU\0" , KEY_MENU , 0x1a, 0x000000},
  142. {"time\0" , "KEY_TIME\0" , KEY_TIME , 0x28, 0x000000},
  143. {"prev\0" , "KEY_PREVIOUS\0" , KEY_PREVIOUS , 0x30, 0x000000},
  144. {"next\0" , "KEY_NEXT\0" , KEY_NEXT , 0x31, 0x000000},
  145. {"play\0" , "KEY_PLAY\0" , KEY_PLAY , 0x32, 0x000000},
  146. {"scanrev\0" , "KEY_REWIND\0" , KEY_REWIND , 0x33, 0x000000},
  147. {"scanfwd\0" , "KEY_FORWARD\0" , KEY_FORWARD , 0x34, 0x000000},
  148. {"stop\0" , "KEY_STOP\0" , KEY_STOP , 0x38, 0x000000},
  149. {"pause\0" , "KEY_PAUSE\0" , KEY_PAUSE , 0x39, 0x000000},
  150. {"popup\0" , "KEY_CONTEXT_MENU\0", KEY_CONTEXT_MENU, 0x40, 0x000000},
  151. {"steprev\0" , "KEY_FRAMEBACK\0" , KEY_FRAMEBACK , 0x60, 0x000000},
  152. {"stepfwd\0" , "KEY_FRAMEFORWARD\0", KEY_FRAMEFORWARD, 0x61, 0x000000},
  153. {"subtitle\0", "KEY_SUBTITLE\0" , KEY_SUBTITLE , 0x63, 0x000000},
  154. {"audio\0" , "KEY_AUDIO\0" , KEY_AUDIO , 0x64, 0x000000},
  155. {"angle\0" , "KEY_ANGLE\0" , KEY_ANGLE , 0x65, 0x000000},
  156. {"display\0" , "KEY_INFO\0" , KEY_INFO , 0x70, 0x000000},
  157. {"blue\0" , "KEY_BLUE\0" , KEY_BLUE , 0x80, 0x000000},
  158. {"red\0" , "KEY_RED\0" , KEY_RED , 0x81, 0x000000},
  159. {"green\0" , "KEY_GREEN\0" , KEY_GREEN , 0x82, 0x000000},
  160. {"yellow\0" , "KEY_YELLOW\0" , KEY_YELLOW , 0x83, 0x000000},
  161. };
  162. #endif /* BD_KEYDEF_H */
  163. /*@}*/