diff options
| author | manuel <manuel@mausz.at> | 2018-04-17 00:15:38 +0200 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2018-04-17 00:15:38 +0200 |
| commit | b3d195f0188758a14875a5a2f270e4fd190a679f (patch) | |
| tree | cbe6a2d51afd7be095e29fd612107044cf1f391e /xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h | |
| parent | a51f51db67e3eab80ac2ed28d403a6d77f7acc45 (diff) | |
| download | kodi-pvr-build-b3d195f0188758a14875a5a2f270e4fd190a679f.tar.gz kodi-pvr-build-b3d195f0188758a14875a5a2f270e4fd190a679f.tar.bz2 kodi-pvr-build-b3d195f0188758a14875a5a2f270e4fd190a679f.zip | |
sync with upstream
Diffstat (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h')
| -rw-r--r-- | xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h | 162 |
1 files changed, 155 insertions, 7 deletions
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h index 0dae06c..75be27e 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h | |||
| @@ -34,6 +34,10 @@ extern "C" | |||
| 34 | 34 | ||
| 35 | /// @name Peripheral types | 35 | /// @name Peripheral types |
| 36 | ///{ | 36 | ///{ |
| 37 | |||
| 38 | /*! | ||
| 39 | * @brief API error codes | ||
| 40 | */ | ||
| 37 | typedef enum PERIPHERAL_ERROR | 41 | typedef enum PERIPHERAL_ERROR |
| 38 | { | 42 | { |
| 39 | PERIPHERAL_NO_ERROR = 0, // no error occurred | 43 | PERIPHERAL_NO_ERROR = 0, // no error occurred |
| @@ -45,6 +49,9 @@ extern "C" | |||
| 45 | PERIPHERAL_ERROR_CONNECTION_FAILED = -6, // peripherals are connected, but command was interrupted | 49 | PERIPHERAL_ERROR_CONNECTION_FAILED = -6, // peripherals are connected, but command was interrupted |
| 46 | } PERIPHERAL_ERROR; | 50 | } PERIPHERAL_ERROR; |
| 47 | 51 | ||
| 52 | /*! | ||
| 53 | * @brief Peripheral types | ||
| 54 | */ | ||
| 48 | typedef enum PERIPHERAL_TYPE | 55 | typedef enum PERIPHERAL_TYPE |
| 49 | { | 56 | { |
| 50 | PERIPHERAL_TYPE_UNKNOWN, | 57 | PERIPHERAL_TYPE_UNKNOWN, |
| @@ -52,6 +59,9 @@ extern "C" | |||
| 52 | PERIPHERAL_TYPE_KEYBOARD, | 59 | PERIPHERAL_TYPE_KEYBOARD, |
| 53 | } PERIPHERAL_TYPE; | 60 | } PERIPHERAL_TYPE; |
| 54 | 61 | ||
| 62 | /*! | ||
| 63 | * @brief Information shared between peripherals | ||
| 64 | */ | ||
| 55 | typedef struct PERIPHERAL_INFO | 65 | typedef struct PERIPHERAL_INFO |
| 56 | { | 66 | { |
| 57 | PERIPHERAL_TYPE type; /*!< @brief type of peripheral */ | 67 | PERIPHERAL_TYPE type; /*!< @brief type of peripheral */ |
| @@ -63,8 +73,6 @@ extern "C" | |||
| 63 | 73 | ||
| 64 | /*! | 74 | /*! |
| 65 | * @brief Peripheral add-on capabilities. | 75 | * @brief Peripheral add-on capabilities. |
| 66 | * If a capability is set to true, then the corresponding methods from | ||
| 67 | * kodi_peripheral_dll.h need to be implemented. | ||
| 68 | */ | 76 | */ |
| 69 | typedef struct PERIPHERAL_CAPABILITIES | 77 | typedef struct PERIPHERAL_CAPABILITIES |
| 70 | { | 78 | { |
| @@ -77,6 +85,10 @@ extern "C" | |||
| 77 | 85 | ||
| 78 | /// @name Event types | 86 | /// @name Event types |
| 79 | ///{ | 87 | ///{ |
| 88 | |||
| 89 | /*! | ||
| 90 | * @brief Types of events that can be sent and received | ||
| 91 | */ | ||
| 80 | typedef enum PERIPHERAL_EVENT_TYPE | 92 | typedef enum PERIPHERAL_EVENT_TYPE |
| 81 | { | 93 | { |
| 82 | PERIPHERAL_EVENT_TYPE_NONE, /*!< @brief unknown event */ | 94 | PERIPHERAL_EVENT_TYPE_NONE, /*!< @brief unknown event */ |
| @@ -86,12 +98,18 @@ extern "C" | |||
| 86 | PERIPHERAL_EVENT_TYPE_SET_MOTOR, /*!< @brief set the state for joystick rumble motor */ | 98 | PERIPHERAL_EVENT_TYPE_SET_MOTOR, /*!< @brief set the state for joystick rumble motor */ |
| 87 | } PERIPHERAL_EVENT_TYPE; | 99 | } PERIPHERAL_EVENT_TYPE; |
| 88 | 100 | ||
| 101 | /*! | ||
| 102 | * @brief States a button can have | ||
| 103 | */ | ||
| 89 | typedef enum JOYSTICK_STATE_BUTTON | 104 | typedef enum JOYSTICK_STATE_BUTTON |
| 90 | { | 105 | { |
| 91 | JOYSTICK_STATE_BUTTON_UNPRESSED = 0x0, /*!< @brief button is released */ | 106 | JOYSTICK_STATE_BUTTON_UNPRESSED = 0x0, /*!< @brief button is released */ |
| 92 | JOYSTICK_STATE_BUTTON_PRESSED = 0x1, /*!< @brief button is pressed */ | 107 | JOYSTICK_STATE_BUTTON_PRESSED = 0x1, /*!< @brief button is pressed */ |
| 93 | } JOYSTICK_STATE_BUTTON; | 108 | } JOYSTICK_STATE_BUTTON; |
| 94 | 109 | ||
| 110 | /*! | ||
| 111 | * @brief States a D-pad (also called a hat) can have | ||
| 112 | */ | ||
| 95 | typedef enum JOYSTICK_STATE_HAT | 113 | typedef enum JOYSTICK_STATE_HAT |
| 96 | { | 114 | { |
| 97 | JOYSTICK_STATE_HAT_UNPRESSED = 0x0, /*!< @brief no directions are pressed */ | 115 | JOYSTICK_STATE_HAT_UNPRESSED = 0x0, /*!< @brief no directions are pressed */ |
| @@ -106,7 +124,7 @@ extern "C" | |||
| 106 | } JOYSTICK_STATE_HAT; | 124 | } JOYSTICK_STATE_HAT; |
| 107 | 125 | ||
| 108 | /*! | 126 | /*! |
| 109 | * @brief value in the closed interval [-1.0, 1.0] | 127 | * @brief Axis value in the closed interval [-1.0, 1.0] |
| 110 | * | 128 | * |
| 111 | * The axis state uses the XInput coordinate system: | 129 | * The axis state uses the XInput coordinate system: |
| 112 | * - Negative values signify down or to the left | 130 | * - Negative values signify down or to the left |
| @@ -114,13 +132,25 @@ extern "C" | |||
| 114 | */ | 132 | */ |
| 115 | typedef float JOYSTICK_STATE_AXIS; | 133 | typedef float JOYSTICK_STATE_AXIS; |
| 116 | 134 | ||
| 135 | /*! | ||
| 136 | * @brief Motor value in the closed interval [0.0, 1.0] | ||
| 137 | */ | ||
| 117 | typedef float JOYSTICK_STATE_MOTOR; | 138 | typedef float JOYSTICK_STATE_MOTOR; |
| 118 | 139 | ||
| 140 | /*! | ||
| 141 | * @brief Event information | ||
| 142 | */ | ||
| 119 | typedef struct PERIPHERAL_EVENT | 143 | typedef struct PERIPHERAL_EVENT |
| 120 | { | 144 | { |
| 121 | unsigned int peripheral_index; | 145 | /*! @brief Index of the peripheral handling/receiving the event */ |
| 122 | PERIPHERAL_EVENT_TYPE type; | 146 | unsigned int peripheral_index; |
| 123 | unsigned int driver_index; | 147 | |
| 148 | /*! @brief Type of the event used to determine which enum field to access below */ | ||
| 149 | PERIPHERAL_EVENT_TYPE type; | ||
| 150 | |||
| 151 | /*! @brief The index of the event source */ | ||
| 152 | unsigned int driver_index; | ||
| 153 | |||
| 124 | JOYSTICK_STATE_BUTTON driver_button_state; | 154 | JOYSTICK_STATE_BUTTON driver_button_state; |
| 125 | JOYSTICK_STATE_HAT driver_hat_state; | 155 | JOYSTICK_STATE_HAT driver_hat_state; |
| 126 | JOYSTICK_STATE_AXIS driver_axis_state; | 156 | JOYSTICK_STATE_AXIS driver_axis_state; |
| @@ -130,6 +160,10 @@ extern "C" | |||
| 130 | 160 | ||
| 131 | /// @name Joystick types | 161 | /// @name Joystick types |
| 132 | ///{ | 162 | ///{ |
| 163 | |||
| 164 | /*! | ||
| 165 | * @brief Info specific to joystick peripherals | ||
| 166 | */ | ||
| 133 | typedef struct JOYSTICK_INFO | 167 | typedef struct JOYSTICK_INFO |
| 134 | { | 168 | { |
| 135 | PERIPHERAL_INFO peripheral; /*!< @brief peripheral info for this joystick */ | 169 | PERIPHERAL_INFO peripheral; /*!< @brief peripheral info for this joystick */ |
| @@ -142,6 +176,15 @@ extern "C" | |||
| 142 | bool supports_poweroff; /*!< @brief whether the joystick supports being powered off */ | 176 | bool supports_poweroff; /*!< @brief whether the joystick supports being powered off */ |
| 143 | } ATTRIBUTE_PACKED JOYSTICK_INFO; | 177 | } ATTRIBUTE_PACKED JOYSTICK_INFO; |
| 144 | 178 | ||
| 179 | /*! | ||
| 180 | * @brief Driver input primitives | ||
| 181 | * | ||
| 182 | * Mapping lower-level driver values to higher-level controller features is | ||
| 183 | * non-injective; two triggers can share a single axis. | ||
| 184 | * | ||
| 185 | * To handle this, driver values are subdivided into "primitives" that map | ||
| 186 | * injectively to higher-level features. | ||
| 187 | */ | ||
| 145 | typedef enum JOYSTICK_DRIVER_PRIMITIVE_TYPE | 188 | typedef enum JOYSTICK_DRIVER_PRIMITIVE_TYPE |
| 146 | { | 189 | { |
| 147 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_UNKNOWN, | 190 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_UNKNOWN, |
| @@ -149,13 +192,22 @@ extern "C" | |||
| 149 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_HAT_DIRECTION, | 192 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_HAT_DIRECTION, |
| 150 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_SEMIAXIS, | 193 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_SEMIAXIS, |
| 151 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_MOTOR, | 194 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_MOTOR, |
| 195 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_KEY, | ||
| 196 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_MOUSE_BUTTON, | ||
| 197 | JOYSTICK_DRIVER_PRIMITIVE_TYPE_RELPOINTER_DIRECTION, | ||
| 152 | } JOYSTICK_DRIVER_PRIMITIVE_TYPE; | 198 | } JOYSTICK_DRIVER_PRIMITIVE_TYPE; |
| 153 | 199 | ||
| 200 | /*! | ||
| 201 | * @brief Button primitive | ||
| 202 | */ | ||
| 154 | typedef struct JOYSTICK_DRIVER_BUTTON | 203 | typedef struct JOYSTICK_DRIVER_BUTTON |
| 155 | { | 204 | { |
| 156 | int index; | 205 | int index; |
| 157 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_BUTTON; | 206 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_BUTTON; |
| 158 | 207 | ||
| 208 | /*! | ||
| 209 | * @brief Hat direction | ||
| 210 | */ | ||
| 159 | typedef enum JOYSTICK_DRIVER_HAT_DIRECTION | 211 | typedef enum JOYSTICK_DRIVER_HAT_DIRECTION |
| 160 | { | 212 | { |
| 161 | JOYSTICK_DRIVER_HAT_UNKNOWN, | 213 | JOYSTICK_DRIVER_HAT_UNKNOWN, |
| @@ -165,12 +217,18 @@ extern "C" | |||
| 165 | JOYSTICK_DRIVER_HAT_DOWN, | 217 | JOYSTICK_DRIVER_HAT_DOWN, |
| 166 | } JOYSTICK_DRIVER_HAT_DIRECTION; | 218 | } JOYSTICK_DRIVER_HAT_DIRECTION; |
| 167 | 219 | ||
| 220 | /*! | ||
| 221 | * @brief Hat direction primitive | ||
| 222 | */ | ||
| 168 | typedef struct JOYSTICK_DRIVER_HAT | 223 | typedef struct JOYSTICK_DRIVER_HAT |
| 169 | { | 224 | { |
| 170 | int index; | 225 | int index; |
| 171 | JOYSTICK_DRIVER_HAT_DIRECTION direction; | 226 | JOYSTICK_DRIVER_HAT_DIRECTION direction; |
| 172 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_HAT; | 227 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_HAT; |
| 173 | 228 | ||
| 229 | /*! | ||
| 230 | * @brief Semiaxis direction | ||
| 231 | */ | ||
| 174 | typedef enum JOYSTICK_DRIVER_SEMIAXIS_DIRECTION | 232 | typedef enum JOYSTICK_DRIVER_SEMIAXIS_DIRECTION |
| 175 | { | 233 | { |
| 176 | JOYSTICK_DRIVER_SEMIAXIS_NEGATIVE = -1, /*!< @brief negative half of the axis */ | 234 | JOYSTICK_DRIVER_SEMIAXIS_NEGATIVE = -1, /*!< @brief negative half of the axis */ |
| @@ -178,6 +236,9 @@ extern "C" | |||
| 178 | JOYSTICK_DRIVER_SEMIAXIS_POSITIVE = 1, /*!< @brief positive half of the axis */ | 236 | JOYSTICK_DRIVER_SEMIAXIS_POSITIVE = 1, /*!< @brief positive half of the axis */ |
| 179 | } JOYSTICK_DRIVER_SEMIAXIS_DIRECTION; | 237 | } JOYSTICK_DRIVER_SEMIAXIS_DIRECTION; |
| 180 | 238 | ||
| 239 | /*! | ||
| 240 | * @brief Semiaxis primitive | ||
| 241 | */ | ||
| 181 | typedef struct JOYSTICK_DRIVER_SEMIAXIS | 242 | typedef struct JOYSTICK_DRIVER_SEMIAXIS |
| 182 | { | 243 | { |
| 183 | int index; | 244 | int index; |
| @@ -186,11 +247,70 @@ extern "C" | |||
| 186 | unsigned int range; | 247 | unsigned int range; |
| 187 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_SEMIAXIS; | 248 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_SEMIAXIS; |
| 188 | 249 | ||
| 250 | /*! | ||
| 251 | * @brief Motor primitive | ||
| 252 | */ | ||
| 189 | typedef struct JOYSTICK_DRIVER_MOTOR | 253 | typedef struct JOYSTICK_DRIVER_MOTOR |
| 190 | { | 254 | { |
| 191 | int index; | 255 | int index; |
| 192 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_MOTOR; | 256 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_MOTOR; |
| 193 | 257 | ||
| 258 | /*! | ||
| 259 | * @brief Keyboard key primitive | ||
| 260 | */ | ||
| 261 | typedef struct JOYSTICK_DRIVER_KEY | ||
| 262 | { | ||
| 263 | char keycode[16]; | ||
| 264 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_KEY; | ||
| 265 | |||
| 266 | /*! | ||
| 267 | * @brief Mouse buttons | ||
| 268 | */ | ||
| 269 | typedef enum JOYSTICK_DRIVER_MOUSE_INDEX | ||
| 270 | { | ||
| 271 | JOYSTICK_DRIVER_MOUSE_INDEX_UNKNOWN, | ||
| 272 | JOYSTICK_DRIVER_MOUSE_INDEX_LEFT, | ||
| 273 | JOYSTICK_DRIVER_MOUSE_INDEX_RIGHT, | ||
| 274 | JOYSTICK_DRIVER_MOUSE_INDEX_MIDDLE, | ||
| 275 | JOYSTICK_DRIVER_MOUSE_INDEX_BUTTON4, | ||
| 276 | JOYSTICK_DRIVER_MOUSE_INDEX_BUTTON5, | ||
| 277 | JOYSTICK_DRIVER_MOUSE_INDEX_WHEEL_UP, | ||
| 278 | JOYSTICK_DRIVER_MOUSE_INDEX_WHEEL_DOWN, | ||
| 279 | JOYSTICK_DRIVER_MOUSE_INDEX_HORIZ_WHEEL_LEFT, | ||
| 280 | JOYSTICK_DRIVER_MOUSE_INDEX_HORIZ_WHEEL_RIGHT, | ||
| 281 | } JOYSTICK_DRIVER_MOUSE_INDEX; | ||
| 282 | |||
| 283 | /*! | ||
| 284 | * @brief Mouse button primitive | ||
| 285 | */ | ||
| 286 | typedef struct JOYSTICK_DRIVER_MOUSE_BUTTON | ||
| 287 | { | ||
| 288 | JOYSTICK_DRIVER_MOUSE_INDEX button; | ||
| 289 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_MOUSE_BUTTON; | ||
| 290 | |||
| 291 | /*! | ||
| 292 | * @brief Relative pointer direction | ||
| 293 | */ | ||
| 294 | typedef enum JOYSTICK_DRIVER_RELPOINTER_DIRECTION | ||
| 295 | { | ||
| 296 | JOYSTICK_DRIVER_RELPOINTER_UNKNOWN, | ||
| 297 | JOYSTICK_DRIVER_RELPOINTER_LEFT, | ||
| 298 | JOYSTICK_DRIVER_RELPOINTER_RIGHT, | ||
| 299 | JOYSTICK_DRIVER_RELPOINTER_UP, | ||
| 300 | JOYSTICK_DRIVER_RELPOINTER_DOWN, | ||
| 301 | } JOYSTICK_DRIVER_RELPOINTER_DIRECTION; | ||
| 302 | |||
| 303 | /*! | ||
| 304 | * @brief Relative pointer direction primitive | ||
| 305 | */ | ||
| 306 | typedef struct JOYSTICK_DRIVER_RELPOINTER | ||
| 307 | { | ||
| 308 | JOYSTICK_DRIVER_RELPOINTER_DIRECTION direction; | ||
| 309 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_RELPOINTER; | ||
| 310 | |||
| 311 | /*! | ||
| 312 | * @brief Driver primitive struct | ||
| 313 | */ | ||
| 194 | typedef struct JOYSTICK_DRIVER_PRIMITIVE | 314 | typedef struct JOYSTICK_DRIVER_PRIMITIVE |
| 195 | { | 315 | { |
| 196 | JOYSTICK_DRIVER_PRIMITIVE_TYPE type; | 316 | JOYSTICK_DRIVER_PRIMITIVE_TYPE type; |
| @@ -200,9 +320,18 @@ extern "C" | |||
| 200 | struct JOYSTICK_DRIVER_HAT hat; | 320 | struct JOYSTICK_DRIVER_HAT hat; |
| 201 | struct JOYSTICK_DRIVER_SEMIAXIS semiaxis; | 321 | struct JOYSTICK_DRIVER_SEMIAXIS semiaxis; |
| 202 | struct JOYSTICK_DRIVER_MOTOR motor; | 322 | struct JOYSTICK_DRIVER_MOTOR motor; |
| 323 | struct JOYSTICK_DRIVER_KEY key; | ||
| 324 | struct JOYSTICK_DRIVER_MOUSE_BUTTON mouse; | ||
| 325 | struct JOYSTICK_DRIVER_RELPOINTER relpointer; | ||
| 203 | }; | 326 | }; |
| 204 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_PRIMITIVE; | 327 | } ATTRIBUTE_PACKED JOYSTICK_DRIVER_PRIMITIVE; |
| 205 | 328 | ||
| 329 | /*! | ||
| 330 | * @brief Controller feature | ||
| 331 | * | ||
| 332 | * Controller features are an abstraction over driver values. Each feature | ||
| 333 | * maps to one or more driver primitives. | ||
| 334 | */ | ||
| 206 | typedef enum JOYSTICK_FEATURE_TYPE | 335 | typedef enum JOYSTICK_FEATURE_TYPE |
| 207 | { | 336 | { |
| 208 | JOYSTICK_FEATURE_TYPE_UNKNOWN, | 337 | JOYSTICK_FEATURE_TYPE_UNKNOWN, |
| @@ -214,11 +343,15 @@ extern "C" | |||
| 214 | JOYSTICK_FEATURE_TYPE_ABSPOINTER, | 343 | JOYSTICK_FEATURE_TYPE_ABSPOINTER, |
| 215 | JOYSTICK_FEATURE_TYPE_WHEEL, | 344 | JOYSTICK_FEATURE_TYPE_WHEEL, |
| 216 | JOYSTICK_FEATURE_TYPE_THROTTLE, | 345 | JOYSTICK_FEATURE_TYPE_THROTTLE, |
| 346 | JOYSTICK_FEATURE_TYPE_KEY, | ||
| 217 | } JOYSTICK_FEATURE_TYPE; | 347 | } JOYSTICK_FEATURE_TYPE; |
| 218 | 348 | ||
| 349 | /*! | ||
| 350 | * @brief Indices used to access a feature's driver primitives | ||
| 351 | */ | ||
| 219 | typedef enum JOYSTICK_FEATURE_PRIMITIVE | 352 | typedef enum JOYSTICK_FEATURE_PRIMITIVE |
| 220 | { | 353 | { |
| 221 | // Scalar feature | 354 | // Scalar feature (a button, hat direction or semiaxis) |
| 222 | JOYSTICK_SCALAR_PRIMITIVE = 0, | 355 | JOYSTICK_SCALAR_PRIMITIVE = 0, |
| 223 | 356 | ||
| 224 | // Analog stick | 357 | // Analog stick |
| @@ -243,10 +376,25 @@ extern "C" | |||
| 243 | JOYSTICK_THROTTLE_UP = 0, | 376 | JOYSTICK_THROTTLE_UP = 0, |
| 244 | JOYSTICK_THROTTLE_DOWN = 1, | 377 | JOYSTICK_THROTTLE_DOWN = 1, |
| 245 | 378 | ||
| 379 | // Key | ||
| 380 | JOYSTICK_KEY_PRIMITIVE = 0, | ||
| 381 | |||
| 382 | // Mouse button | ||
| 383 | JOYSTICK_MOUSE_BUTTON = 0, | ||
| 384 | |||
| 385 | // Relative pointer direction | ||
| 386 | JOYSTICK_RELPOINTER_UP = 0, | ||
| 387 | JOYSTICK_RELPOINTER_DOWN = 1, | ||
| 388 | JOYSTICK_RELPOINTER_RIGHT = 2, | ||
| 389 | JOYSTICK_RELPOINTER_LEFT = 3, | ||
| 390 | |||
| 246 | // Maximum number of primitives | 391 | // Maximum number of primitives |
| 247 | JOYSTICK_PRIMITIVE_MAX = 4, | 392 | JOYSTICK_PRIMITIVE_MAX = 4, |
| 248 | } JOYSTICK_FEATURE_PRIMITIVE; | 393 | } JOYSTICK_FEATURE_PRIMITIVE; |
| 249 | 394 | ||
| 395 | /*! | ||
| 396 | * @brief Mapping between higher-level controller feature and its driver primitives | ||
| 397 | */ | ||
| 250 | typedef struct JOYSTICK_FEATURE | 398 | typedef struct JOYSTICK_FEATURE |
| 251 | { | 399 | { |
| 252 | char* name; | 400 | char* name; |
