Atlas - controller_constants.h

Home / ext / SDL / src / joystick / hidapi / steam Lines: 1 | Size: 16755 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)]
[FILE BEGIN]
1/* 2 Simple DirectMedia Layer 3 Copyright (C) 2021 Valve Corporation 4 5 This software is provided 'as-is', without any express or implied 6 warranty. In no event will the authors be held liable for any damages 7 arising from the use of this software. 8 9 Permission is granted to anyone to use this software for any purpose, 10 including commercial applications, and to alter it and redistribute it 11 freely, subject to the following restrictions: 12 13 1. The origin of this software must not be misrepresented; you must not 14 claim that you wrote the original software. If you use this software 15 in a product, an acknowledgment in the product documentation would be 16 appreciated but is not required. 17 2. Altered source versions must be plainly marked as such, and must not be 18 misrepresented as being the original software. 19 3. This notice may not be removed or altered from any source distribution. 20*/ 21 22#ifndef _CONTROLLER_CONSTANTS_ 23#define _CONTROLLER_CONSTANTS_ 24 25#include "controller_structs.h" 26 27#ifdef __cplusplus 28extern "C" { 29#endif 30 31#define FEATURE_REPORT_SIZE 64 32 33#define VALVE_USB_VID 0x28DE 34 35// Frame update rate (in ms). 36#define FAST_SCAN_INTERVAL 6 37#define SLOW_SCAN_INTERVAL 9 38 39// Contains each of the USB PIDs for Valve controllers (only add to this enum and never change the order) 40enum ValveControllerPID 41{ 42 BASTILLE_PID = 0x2202, 43 CHELL_PID = 0x1101, 44 D0G_PID = 0x1102, 45 ELI_PID = 0x1103, 46 FREEMAN_PID = 0x1104, 47 D0G_BLE_PID = 0x1105, 48 D0G_BLE2_PID = 0x1106, 49 D0GGLE_PID = 0x1142, 50 51 JUPITER_PID = 0x1205, 52}; 53 54// This enum contains all of the messages exchanged between the host and the target (only add to this enum and never change the order) 55enum FeatureReportMessageIDs 56{ 57 ID_SET_DIGITAL_MAPPINGS = 0x80, 58 ID_CLEAR_DIGITAL_MAPPINGS = 0x81, 59 ID_GET_DIGITAL_MAPPINGS = 0x82, 60 ID_GET_ATTRIBUTES_VALUES = 0x83, 61 ID_GET_ATTRIBUTE_LABEL = 0x84, 62 ID_SET_DEFAULT_DIGITAL_MAPPINGS = 0x85, 63 ID_FACTORY_RESET = 0x86, 64 ID_SET_SETTINGS_VALUES = 0x87, 65 ID_CLEAR_SETTINGS_VALUES = 0x88, 66 ID_GET_SETTINGS_VALUES = 0x89, 67 ID_GET_SETTING_LABEL = 0x8A, 68 ID_GET_SETTINGS_MAXS = 0x8B, 69 ID_GET_SETTINGS_DEFAULTS = 0x8C, 70 ID_SET_CONTROLLER_MODE = 0x8D, 71 ID_LOAD_DEFAULT_SETTINGS = 0x8E, 72 ID_TRIGGER_HAPTIC_PULSE = 0x8F, 73 74 ID_TURN_OFF_CONTROLLER = 0x9F, 75 76 ID_GET_DEVICE_INFO = 0xA1, 77 78 ID_CALIBRATE_TRACKPADS = 0xA7, 79 ID_RESERVED_0 = 0xA8, 80 ID_SET_SERIAL_NUMBER = 0xA9, 81 ID_GET_TRACKPAD_CALIBRATION = 0xAA, 82 ID_GET_TRACKPAD_FACTORY_CALIBRATION = 0xAB, 83 ID_GET_TRACKPAD_RAW_DATA = 0xAC, 84 ID_ENABLE_PAIRING = 0xAD, 85 ID_GET_STRING_ATTRIBUTE = 0xAE, 86 ID_RADIO_ERASE_RECORDS = 0xAF, 87 ID_RADIO_WRITE_RECORD = 0xB0, 88 ID_SET_DONGLE_SETTING = 0xB1, 89 ID_DONGLE_DISCONNECT_DEVICE = 0xB2, 90 ID_DONGLE_COMMIT_DEVICE = 0xB3, 91 ID_DONGLE_GET_WIRELESS_STATE = 0xB4, 92 ID_CALIBRATE_GYRO = 0xB5, 93 ID_PLAY_AUDIO = 0xB6, 94 ID_AUDIO_UPDATE_START = 0xB7, 95 ID_AUDIO_UPDATE_DATA = 0xB8, 96 ID_AUDIO_UPDATE_COMPLETE = 0xB9, 97 ID_GET_CHIPID = 0xBA, 98 99 ID_CALIBRATE_JOYSTICK = 0xBF, 100 ID_CALIBRATE_ANALOG_TRIGGERS = 0xC0, 101 ID_SET_AUDIO_MAPPING = 0xC1, 102 ID_CHECK_GYRO_FW_LOAD = 0xC2, 103 ID_CALIBRATE_ANALOG = 0xC3, 104 ID_DONGLE_GET_CONNECTED_SLOTS = 0xC4, 105 106 ID_RESET_IMU = 0xCE, 107 108 // Deck only 109 ID_TRIGGER_HAPTIC_CMD = 0xEA, 110 ID_TRIGGER_RUMBLE_CMD = 0xEB, 111}; 112 113 114// Enumeration of all wireless dongle events 115typedef enum WirelessEventTypes 116{ 117 WIRELESS_EVENT_DISCONNECT = 1, 118 WIRELESS_EVENT_CONNECT = 2, 119 WIRELESS_EVENT_PAIR = 3, 120} EWirelessEventType; 121 122 123// Enumeration of generic digital inputs - not all of these will be supported on all controllers (only add to this enum and never change the order) 124typedef enum 125{ 126 IO_DIGITAL_BUTTON_NONE = -1, 127 IO_DIGITAL_BUTTON_RIGHT_TRIGGER, 128 IO_DIGITAL_BUTTON_LEFT_TRIGGER, 129 IO_DIGITAL_BUTTON_1, 130 IO_DIGITAL_BUTTON_Y=IO_DIGITAL_BUTTON_1, 131 IO_DIGITAL_BUTTON_2, 132 IO_DIGITAL_BUTTON_B=IO_DIGITAL_BUTTON_2, 133 IO_DIGITAL_BUTTON_3, 134 IO_DIGITAL_BUTTON_X=IO_DIGITAL_BUTTON_3, 135 IO_DIGITAL_BUTTON_4, 136 IO_DIGITAL_BUTTON_A=IO_DIGITAL_BUTTON_4, 137 IO_DIGITAL_BUTTON_RIGHT_BUMPER, 138 IO_DIGITAL_BUTTON_LEFT_BUMPER, 139 IO_DIGITAL_BUTTON_LEFT_JOYSTICK_CLICK, 140 IO_DIGITAL_BUTTON_ESCAPE, 141 IO_DIGITAL_BUTTON_STEAM, 142 IO_DIGITAL_BUTTON_MENU, 143 IO_DIGITAL_STICK_UP, 144 IO_DIGITAL_STICK_DOWN, 145 IO_DIGITAL_STICK_LEFT, 146 IO_DIGITAL_STICK_RIGHT, 147 IO_DIGITAL_TOUCH_1, 148 IO_DIGITAL_BUTTON_UP=IO_DIGITAL_TOUCH_1, 149 IO_DIGITAL_TOUCH_2, 150 IO_DIGITAL_BUTTON_RIGHT=IO_DIGITAL_TOUCH_2, 151 IO_DIGITAL_TOUCH_3, 152 IO_DIGITAL_BUTTON_LEFT=IO_DIGITAL_TOUCH_3, 153 IO_DIGITAL_TOUCH_4, 154 IO_DIGITAL_BUTTON_DOWN=IO_DIGITAL_TOUCH_4, 155 IO_DIGITAL_BUTTON_BACK_LEFT, 156 IO_DIGITAL_BUTTON_BACK_RIGHT, 157 IO_DIGITAL_LEFT_TRACKPAD_N, 158 IO_DIGITAL_LEFT_TRACKPAD_NE, 159 IO_DIGITAL_LEFT_TRACKPAD_E, 160 IO_DIGITAL_LEFT_TRACKPAD_SE, 161 IO_DIGITAL_LEFT_TRACKPAD_S, 162 IO_DIGITAL_LEFT_TRACKPAD_SW, 163 IO_DIGITAL_LEFT_TRACKPAD_W, 164 IO_DIGITAL_LEFT_TRACKPAD_NW, 165 IO_DIGITAL_RIGHT_TRACKPAD_N, 166 IO_DIGITAL_RIGHT_TRACKPAD_NE, 167 IO_DIGITAL_RIGHT_TRACKPAD_E, 168 IO_DIGITAL_RIGHT_TRACKPAD_SE, 169 IO_DIGITAL_RIGHT_TRACKPAD_S, 170 IO_DIGITAL_RIGHT_TRACKPAD_SW, 171 IO_DIGITAL_RIGHT_TRACKPAD_W, 172 IO_DIGITAL_RIGHT_TRACKPAD_NW, 173 IO_DIGITAL_LEFT_TRACKPAD_DOUBLE_TAP, 174 IO_DIGITAL_RIGHT_TRACKPAD_DOUBLE_TAP, 175 IO_DIGITAL_LEFT_TRACKPAD_OUTER_RADIUS, 176 IO_DIGITAL_RIGHT_TRACKPAD_OUTER_RADIUS, 177 IO_DIGITAL_LEFT_TRACKPAD_CLICK, 178 IO_DIGITAL_RIGHT_TRACKPAD_CLICK, 179 IO_DIGITAL_BATTERY_LOW, 180 IO_DIGITAL_LEFT_TRIGGER_THRESHOLD, 181 IO_DIGITAL_RIGHT_TRIGGER_THRESHOLD, 182 IO_DIGITAL_BUTTON_BACK_LEFT2, 183 IO_DIGITAL_BUTTON_BACK_RIGHT2, 184 IO_DIGITAL_BUTTON_ALWAYS_ON, 185 IO_DIGITAL_BUTTON_ANCILLARY_1, 186 IO_DIGITAL_BUTTON_MACRO_0, 187 IO_DIGITAL_BUTTON_MACRO_1, 188 IO_DIGITAL_BUTTON_MACRO_2, 189 IO_DIGITAL_BUTTON_MACRO_3, 190 IO_DIGITAL_BUTTON_MACRO_4, 191 IO_DIGITAL_BUTTON_MACRO_5, 192 IO_DIGITAL_BUTTON_MACRO_6, 193 IO_DIGITAL_BUTTON_MACRO_7, 194 IO_DIGITAL_BUTTON_MACRO_1FINGER, 195 IO_DIGITAL_BUTTON_MACRO_2FINGER, 196 IO_DIGITAL_COUNT 197} DigitalIO ; 198 199// Enumeration of generic analog inputs - not all of these will be supported on all controllers (only add to this enum and never change the order) 200typedef enum 201{ 202 IO_ANALOG_LEFT_STICK_X, 203 IO_ANALOG_LEFT_STICK_Y, 204 IO_ANALOG_RIGHT_STICK_X, 205 IO_ANALOG_RIGHT_STICK_Y, 206 IO_ANALOG_LEFT_TRIGGER, 207 IO_ANALOG_RIGHT_TRIGGER, 208 IO_MOUSE1_X, 209 IO_MOUSE1_Y, 210 IO_MOUSE1_Z, 211 IO_ACCEL_X, 212 IO_ACCEL_Y, 213 IO_ACCEL_Z, 214 IO_GYRO_X, 215 IO_GYRO_Y, 216 IO_GYRO_Z, 217 IO_GYRO_QUAT_W, 218 IO_GYRO_QUAT_X, 219 IO_GYRO_QUAT_Y, 220 IO_GYRO_QUAT_Z, 221 IO_GYRO_STEERING_VEC, 222 IO_RAW_TRIGGER_LEFT, 223 IO_RAW_TRIGGER_RIGHT, 224 IO_RAW_JOYSTICK_X, 225 IO_RAW_JOYSTICK_Y, 226 IO_GYRO_TILT_VEC, 227 IO_PRESSURE_LEFT_PAD, 228 IO_PRESSURE_RIGHT_PAD, 229 IO_PRESSURE_LEFT_BUMPER, 230 IO_PRESSURE_RIGHT_BUMPER, 231 IO_PRESSURE_LEFT_GRIP, 232 IO_PRESSURE_RIGHT_GRIP, 233 IO_ANALOG_LEFT_TRIGGER_THRESHOLD, 234 IO_ANALOG_RIGHT_TRIGGER_THRESHOLD, 235 IO_PRESSURE_RIGHT_PAD_THRESHOLD, 236 IO_PRESSURE_LEFT_PAD_THRESHOLD, 237 IO_PRESSURE_RIGHT_BUMPER_THRESHOLD, 238 IO_PRESSURE_LEFT_BUMPER_THRESHOLD, 239 IO_PRESSURE_RIGHT_GRIP_THRESHOLD, 240 IO_PRESSURE_LEFT_GRIP_THRESHOLD, 241 IO_PRESSURE_RIGHT_PAD_RAW, 242 IO_PRESSURE_LEFT_PAD_RAW, 243 IO_PRESSURE_RIGHT_BUMPER_RAW, 244 IO_PRESSURE_LEFT_BUMPER_RAW, 245 IO_PRESSURE_RIGHT_GRIP_RAW, 246 IO_PRESSURE_LEFT_GRIP_RAW, 247 IO_PRESSURE_RIGHT_GRIP2_THRESHOLD, 248 IO_PRESSURE_LEFT_GRIP2_THRESHOLD, 249 IO_PRESSURE_LEFT_GRIP2, 250 IO_PRESSURE_RIGHT_GRIP2, 251 IO_PRESSURE_RIGHT_GRIP2_RAW, 252 IO_PRESSURE_LEFT_GRIP2_RAW, 253 IO_ANALOG_COUNT 254} AnalogIO; 255 256 257// Contains list of all types of devices that the controller emulates (only add to this enum and never change the order) 258enum DeviceTypes 259{ 260 DEVICE_KEYBOARD, 261 DEVICE_MOUSE, 262 DEVICE_GAMEPAD, 263 DEVICE_MODE_ADJUST, 264 DEVICE_COUNT 265}; 266 267// Scan codes for HID keyboards 268enum HIDKeyboardKeys 269{ 270 KEY_INVALID, 271 KEY_FIRST = 0x04, 272 KEY_A = KEY_FIRST, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, 273 KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, KEY_1, KEY_2, 274 KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0, KEY_RETURN, KEY_ESCAPE, KEY_BACKSPACE, KEY_TAB, KEY_SPACE, KEY_DASH, KEY_EQUALS, KEY_LEFT_BRACKET, 275 KEY_RIGHT_BRACKET, KEY_BACKSLASH, KEY_UNUSED1, KEY_SEMICOLON, KEY_SINGLE_QUOTE, KEY_BACK_TICK, KEY_COMMA, KEY_PERIOD, KEY_FORWARD_SLASH, KEY_CAPSLOCK, KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, 276 KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_F11, KEY_F12, KEY_PRINT_SCREEN, KEY_SCROLL_LOCK, KEY_BREAK, KEY_INSERT, KEY_HOME, KEY_PAGE_UP, KEY_DELETE, KEY_END, KEY_PAGE_DOWN, KEY_RIGHT_ARROW, 277 KEY_LEFT_ARROW, KEY_DOWN_ARROW, KEY_UP_ARROW, KEY_NUM_LOCK, KEY_KEYPAD_FORWARD_SLASH, KEY_KEYPAD_ASTERISK, KEY_KEYPAD_DASH, KEY_KEYPAD_PLUS, KEY_KEYPAD_ENTER, KEY_KEYPAD_1, KEY_KEYPAD_2, KEY_KEYPAD_3, KEY_KEYPAD_4, KEY_KEYPAD_5, KEY_KEYPAD_6, KEY_KEYPAD_7, 278 KEY_KEYPAD_8, KEY_KEYPAD_9, KEY_KEYPAD_0, KEY_KEYPAD_PERIOD, 279 KEY_LALT, 280 KEY_LSHIFT, 281 KEY_LWIN, 282 KEY_LCONTROL, 283 KEY_RALT, 284 KEY_RSHIFT, 285 KEY_RWIN, 286 KEY_RCONTROL, 287 KEY_VOLUP, 288 KEY_VOLDOWN, 289 KEY_MUTE, 290 KEY_PLAY, 291 KEY_STOP, 292 KEY_NEXT, 293 KEY_PREV, 294 KEY_LAST = KEY_PREV 295}; 296 297enum ModifierMasks 298{ 299 KEY_LCONTROL_MASK = (1<<0), 300 KEY_LSHIFT_MASK = (1<<1), 301 KEY_LALT_MASK = (1<<2), 302 KEY_LWIN_MASK = (1<<3), 303 KEY_RCONTROL_MASK = (1<<4), 304 KEY_RSHIFT_MASK = (1<<5), 305 KEY_RALT_MASK = (1<<6), 306 KEY_RWIN_MASK = (1<<7) 307}; 308 309// Standard mouse buttons as specified in the HID mouse spec 310enum MouseButtons 311{ 312 MOUSE_BTN_LEFT, 313 MOUSE_BTN_RIGHT, 314 MOUSE_BTN_MIDDLE, 315 MOUSE_BTN_BACK, 316 MOUSE_BTN_FORWARD, 317 MOUSE_SCROLL_UP, 318 MOUSE_SCROLL_DOWN, 319 MOUSE_BTN_COUNT 320}; 321 322// Gamepad buttons 323enum GamepadButtons 324{ 325 GAMEPAD_BTN_TRIGGER_LEFT=1, 326 GAMEPAD_BTN_TRIGGER_RIGHT, 327 GAMEPAD_BTN_A, 328 GAMEPAD_BTN_B, 329 GAMEPAD_BTN_Y, 330 GAMEPAD_BTN_X, 331 GAMEPAD_BTN_SHOULDER_LEFT, 332 GAMEPAD_BTN_SHOULDER_RIGHT, 333 GAMEPAD_BTN_LEFT_JOYSTICK, 334 GAMEPAD_BTN_RIGHT_JOYSTICK, 335 GAMEPAD_BTN_START, 336 GAMEPAD_BTN_SELECT, 337 GAMEPAD_BTN_STEAM, 338 GAMEPAD_BTN_DPAD_UP, 339 GAMEPAD_BTN_DPAD_DOWN, 340 GAMEPAD_BTN_DPAD_LEFT, 341 GAMEPAD_BTN_DPAD_RIGHT, 342 GAMEPAD_BTN_LSTICK_UP, 343 GAMEPAD_BTN_LSTICK_DOWN, 344 GAMEPAD_BTN_LSTICK_LEFT, 345 GAMEPAD_BTN_LSTICK_RIGHT, 346 GAMEPAD_BTN_RSTICK_UP, 347 GAMEPAD_BTN_RSTICK_DOWN, 348 GAMEPAD_BTN_RSTICK_LEFT, 349 GAMEPAD_BTN_RSTICK_RIGHT, 350 GAMEPAD_BTN_COUNT 351}; 352 353// Mode adjust 354enum ModeAdjustModes 355{ 356 MODE_ADJUST_SENSITIVITY=1, 357 MODE_ADJUST_LEFT_PAD_SECONDARY_MODE, 358 MODE_ADJUST_RIGHT_PAD_SECONDARY_MODE, 359 MODE_ADJUST_COUNT 360}; 361 362// Read-only attributes of controllers (only add to this enum and never change the order) 363typedef enum 364{ 365 ATTRIB_UNIQUE_ID, 366 ATTRIB_PRODUCT_ID, 367 ATTRIB_PRODUCT_REVISION, // deprecated 368 ATTRIB_CAPABILITIES = ATTRIB_PRODUCT_REVISION, // intentional aliasing 369 ATTRIB_FIRMWARE_VERSION, // deprecated 370 ATTRIB_FIRMWARE_BUILD_TIME, 371 ATTRIB_RADIO_FIRMWARE_BUILD_TIME, 372 ATTRIB_RADIO_DEVICE_ID0, 373 ATTRIB_RADIO_DEVICE_ID1, 374 ATTRIB_DONGLE_FIRMWARE_BUILD_TIME, 375 ATTRIB_BOARD_REVISION, 376 ATTRIB_BOOTLOADER_BUILD_TIME, 377 ATTRIB_CONNECTION_INTERVAL_IN_US, 378 ATTRIB_COUNT 379} ControllerAttributes; 380 381// Read-only string attributes of controllers (only add to this enum and never change the order) 382typedef enum 383{ 384 ATTRIB_STR_BOARD_SERIAL, 385 ATTRIB_STR_UNIT_SERIAL, 386 ATTRIB_STR_COUNT 387} ControllerStringAttributes; 388 389typedef enum 390{ 391 STATUS_CODE_NORMAL, 392 STATUS_CODE_CRITICAL_BATTERY, 393 STATUS_CODE_GYRO_INIT_ERROR, 394} ControllerStatusEventCodes; 395 396typedef enum 397{ 398 STATUS_STATE_LOW_BATTERY=0, 399} ControllerStatusStateFlags; 400 401typedef enum { 402 TRACKPAD_ABSOLUTE_MOUSE, 403 TRACKPAD_RELATIVE_MOUSE, 404 TRACKPAD_DPAD_FOUR_WAY_DISCRETE, 405 TRACKPAD_DPAD_FOUR_WAY_OVERLAP, 406 TRACKPAD_DPAD_EIGHT_WAY, 407 TRACKPAD_RADIAL_MODE, 408 TRACKPAD_ABSOLUTE_DPAD, 409 TRACKPAD_NONE, 410 TRACKPAD_GESTURE_KEYBOARD, 411 TRACKPAD_NUM_MODES 412} TrackpadDPadMode; 413 414typedef enum 415{ 416 LIZARD_MODE_OFF, 417 LIZARD_MODE_ON, 418} LizardModeState_t; 419 420// Read-write controller settings (only add to this enum and never change the order) 421typedef enum 422{ 423 SETTING_MOUSE_SENSITIVITY, 424 SETTING_MOUSE_ACCELERATION, 425 SETTING_TRACKBALL_ROTATION_ANGLE, 426 SETTING_HAPTIC_INTENSITY_UNUSED, 427 SETTING_LEFT_GAMEPAD_STICK_ENABLED, 428 SETTING_RIGHT_GAMEPAD_STICK_ENABLED, 429 SETTING_USB_DEBUG_MODE, 430 SETTING_LEFT_TRACKPAD_MODE, 431 SETTING_RIGHT_TRACKPAD_MODE, 432 SETTING_LIZARD_MODE, 433 434 // 10 435 SETTING_DPAD_DEADZONE, 436 SETTING_MINIMUM_MOMENTUM_VEL, 437 SETTING_MOMENTUM_DECAY_AMOUNT, 438 SETTING_TRACKPAD_RELATIVE_MODE_TICKS_PER_PIXEL, 439 SETTING_HAPTIC_INCREMENT, 440 SETTING_DPAD_ANGLE_SIN, 441 SETTING_DPAD_ANGLE_COS, 442 SETTING_MOMENTUM_VERTICAL_DIVISOR, 443 SETTING_MOMENTUM_MAXIMUM_VELOCITY, 444 SETTING_TRACKPAD_Z_ON, 445 446 // 20 447 SETTING_TRACKPAD_Z_OFF, 448 SETTING_SENSITIVITY_SCALE_AMOUNT, 449 SETTING_LEFT_TRACKPAD_SECONDARY_MODE, 450 SETTING_RIGHT_TRACKPAD_SECONDARY_MODE, 451 SETTING_SMOOTH_ABSOLUTE_MOUSE, 452 SETTING_STEAMBUTTON_POWEROFF_TIME, 453 SETTING_UNUSED_1, 454 SETTING_TRACKPAD_OUTER_RADIUS, 455 SETTING_TRACKPAD_Z_ON_LEFT, 456 SETTING_TRACKPAD_Z_OFF_LEFT, 457 458 // 30 459 SETTING_TRACKPAD_OUTER_SPIN_VEL, 460 SETTING_TRACKPAD_OUTER_SPIN_RADIUS, 461 SETTING_TRACKPAD_OUTER_SPIN_HORIZONTAL_ONLY, 462 SETTING_TRACKPAD_RELATIVE_MODE_DEADZONE, 463 SETTING_TRACKPAD_RELATIVE_MODE_MAX_VEL, 464 SETTING_TRACKPAD_RELATIVE_MODE_INVERT_Y, 465 SETTING_TRACKPAD_DOUBLE_TAP_BEEP_ENABLED, 466 SETTING_TRACKPAD_DOUBLE_TAP_BEEP_PERIOD, 467 SETTING_TRACKPAD_DOUBLE_TAP_BEEP_COUNT, 468 SETTING_TRACKPAD_OUTER_RADIUS_RELEASE_ON_TRANSITION, 469 470 // 40 471 SETTING_RADIAL_MODE_ANGLE, 472 SETTING_HAPTIC_INTENSITY_MOUSE_MODE, 473 SETTING_LEFT_DPAD_REQUIRES_CLICK, 474 SETTING_RIGHT_DPAD_REQUIRES_CLICK, 475 SETTING_LED_BASELINE_BRIGHTNESS, 476 SETTING_LED_USER_BRIGHTNESS, 477 SETTING_ENABLE_RAW_JOYSTICK, 478 SETTING_ENABLE_FAST_SCAN, 479 SETTING_IMU_MODE, 480 SETTING_WIRELESS_PACKET_VERSION, 481 482 // 50 483 SETTING_SLEEP_INACTIVITY_TIMEOUT, 484 SETTING_TRACKPAD_NOISE_THRESHOLD, 485 SETTING_LEFT_TRACKPAD_CLICK_PRESSURE, 486 SETTING_RIGHT_TRACKPAD_CLICK_PRESSURE, 487 SETTING_LEFT_BUMPER_CLICK_PRESSURE, 488 SETTING_RIGHT_BUMPER_CLICK_PRESSURE, 489 SETTING_LEFT_GRIP_CLICK_PRESSURE, 490 SETTING_RIGHT_GRIP_CLICK_PRESSURE, 491 SETTING_LEFT_GRIP2_CLICK_PRESSURE, 492 SETTING_RIGHT_GRIP2_CLICK_PRESSURE, 493 494 // 60 495 SETTING_PRESSURE_MODE, 496 SETTING_CONTROLLER_TEST_MODE, 497 SETTING_TRIGGER_MODE, 498 SETTING_TRACKPAD_Z_THRESHOLD, 499 SETTING_FRAME_RATE, 500 SETTING_TRACKPAD_FILT_CTRL, 501 SETTING_TRACKPAD_CLIP, 502 SETTING_DEBUG_OUTPUT_SELECT, 503 SETTING_TRIGGER_THRESHOLD_PERCENT, 504 SETTING_TRACKPAD_FREQUENCY_HOPPING, 505 506 // 70 507 SETTING_HAPTICS_ENABLED, 508 SETTING_STEAM_WATCHDOG_ENABLE, 509 SETTING_TIMP_TOUCH_THRESHOLD_ON, 510 SETTING_TIMP_TOUCH_THRESHOLD_OFF, 511 SETTING_FREQ_HOPPING, 512 SETTING_TEST_CONTROL, 513 SETTING_HAPTIC_MASTER_GAIN_DB, 514 SETTING_THUMB_TOUCH_THRESH, 515 SETTING_DEVICE_POWER_STATUS, 516 SETTING_HAPTIC_INTENSITY, 517 518 // 80 519 SETTING_STABILIZER_ENABLED, 520 SETTING_TIMP_MODE_MTE, 521 SETTING_COUNT, 522 523 // This is a special setting value use for callbacks and should not be set/get explicitly. 524 SETTING_ALL=0xFF 525} ControllerSettings; 526 527typedef enum 528{ 529 SETTING_DEFAULT, 530 SETTING_MIN, 531 SETTING_MAX, 532 SETTING_DEFAULTMINMAXCOUNT 533} SettingDefaultMinMax; 534 535// Bitmask that define which IMU features to enable. 536typedef enum 537{ 538 SETTING_GYRO_MODE_OFF = 0x0000, 539 SETTING_GYRO_MODE_STEERING = 0x0001, 540 SETTING_GYRO_MODE_TILT = 0x0002, 541 SETTING_GYRO_MODE_SEND_ORIENTATION = 0x0004, 542 SETTING_GYRO_MODE_SEND_RAW_ACCEL = 0x0008, 543 SETTING_GYRO_MODE_SEND_RAW_GYRO = 0x0010, 544} SettingGyroMode; 545 546// Bitmask for haptic pulse flags 547typedef enum 548{ 549 HAPTIC_PULSE_NORMAL = 0x0000, 550 HAPTIC_PULSE_HIGH_PRIORITY = 0x0001, 551 HAPTIC_PULSE_VERY_HIGH_PRIORITY = 0x0002, 552 HAPTIC_PULSE_IGNORE_USER_PREFS = 0x0003, 553} SettingHapticPulseFlags; 554 555typedef struct 556{ 557 // default,min,max in this array in that order 558 short defaultminmax[SETTING_DEFAULTMINMAXCOUNT]; 559} SettingValueRange_t; 560 561// below is from controller_constants.c which should be compiled into any code that uses this 562extern const SettingValueRange_t g_DefaultSettingValues[SETTING_COUNT]; 563 564// Read-write settings for dongle (only add to this enum and never change the order) 565typedef enum 566{ 567 DONGLE_SETTING_MOUSE_KEYBOARD_ENABLED, 568 DONGLE_SETTING_COUNT, 569} DongleSettings; 570 571typedef enum 572{ 573 AUDIO_STARTUP = 0, 574 AUDIO_SHUTDOWN = 1, 575 AUDIO_PAIR = 2, 576 AUDIO_PAIR_SUCCESS = 3, 577 AUDIO_IDENTIFY = 4, 578 AUDIO_LIZARDMODE = 5, 579 AUDIO_NORMALMODE = 6, 580 581 AUDIO_MAX_SLOT = 15 582} ControllerAudio; 583 584#ifdef __cplusplus 585} 586#endif 587 588#endif // _CONTROLLER_CONSTANTS_H 589
[FILE END]
(C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.