| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499 |
- /*
- Simple DirectMedia Layer
- Copyright (C) 2021 Valve Corporation
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
- */
- #ifndef _CONTROLLER_CONSTANTS_
- #define _CONTROLLER_CONSTANTS_
- #include "controller_structs.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define FEATURE_REPORT_SIZE 64
- #define VALVE_USB_VID 0x28DE
- // Frame update rate (in ms).
- #define FAST_SCAN_INTERVAL 6
- #define SLOW_SCAN_INTERVAL 9
- // Contains each of the USB PIDs for Valve controllers (only add to this enum and never change the order)
- enum ValveControllerPID
- {
- BASTILLE_PID = 0x2202,
- CHELL_PID = 0x1101,
- D0G_PID = 0x1102,
- ELI_PID = 0x1103,
- FREEMAN_PID = 0x1104,
- D0G_BLE_PID = 0x1105,
- D0G_BLE2_PID = 0x1106,
- D0GGLE_PID = 0x1142,
- };
- // This enum contains all of the messages exchanged between the host and the target (only add to this enum and never change the order)
- enum FeatureReportMessageIDs
- {
- ID_SET_DIGITAL_MAPPINGS = 0x80,
- ID_CLEAR_DIGITAL_MAPPINGS = 0x81,
- ID_GET_DIGITAL_MAPPINGS = 0x82,
- ID_GET_ATTRIBUTES_VALUES = 0x83,
- ID_GET_ATTRIBUTE_LABEL = 0x84,
- ID_SET_DEFAULT_DIGITAL_MAPPINGS = 0x85,
- ID_FACTORY_RESET = 0x86,
- ID_SET_SETTINGS_VALUES = 0x87,
- ID_CLEAR_SETTINGS_VALUES = 0x88,
- ID_GET_SETTINGS_VALUES = 0x89,
- ID_GET_SETTING_LABEL = 0x8A,
- ID_GET_SETTINGS_MAXS = 0x8B,
- ID_GET_SETTINGS_DEFAULTS = 0x8C,
- ID_SET_CONTROLLER_MODE = 0x8D,
- ID_LOAD_DEFAULT_SETTINGS = 0x8E,
- ID_TRIGGER_HAPTIC_PULSE = 0x8F,
- ID_TURN_OFF_CONTROLLER = 0x9F,
- ID_GET_DEVICE_INFO = 0xA1,
-
- ID_CALIBRATE_TRACKPADS = 0xA7,
- ID_RESERVED_0 = 0xA8,
- ID_SET_SERIAL_NUMBER = 0xA9,
- ID_GET_TRACKPAD_CALIBRATION = 0xAA,
- ID_GET_TRACKPAD_FACTORY_CALIBRATION = 0xAB,
- ID_GET_TRACKPAD_RAW_DATA = 0xAC,
- ID_ENABLE_PAIRING = 0xAD,
- ID_GET_STRING_ATTRIBUTE = 0xAE,
- ID_RADIO_ERASE_RECORDS = 0xAF,
- ID_RADIO_WRITE_RECORD = 0xB0,
- ID_SET_DONGLE_SETTING = 0xB1,
- ID_DONGLE_DISCONNECT_DEVICE = 0xB2,
- ID_DONGLE_COMMIT_DEVICE = 0xB3,
- ID_DONGLE_GET_WIRELESS_STATE = 0xB4,
- ID_CALIBRATE_GYRO = 0xB5,
- ID_PLAY_AUDIO = 0xB6,
- ID_AUDIO_UPDATE_START = 0xB7,
- ID_AUDIO_UPDATE_DATA = 0xB8,
- ID_AUDIO_UPDATE_COMPLETE = 0xB9,
- ID_GET_CHIPID = 0xBA,
- ID_CALIBRATE_JOYSTICK = 0xBF,
- ID_CALIBRATE_ANALOG_TRIGGERS = 0xC0,
- ID_SET_AUDIO_MAPPING = 0xC1,
- ID_CHECK_GYRO_FW_LOAD = 0xC2,
- ID_CALIBRATE_ANALOG = 0xC3,
- ID_DONGLE_GET_CONNECTED_SLOTS = 0xC4,
- };
- // Enumeration of all wireless dongle events
- typedef enum WirelessEventTypes
- {
- WIRELESS_EVENT_DISCONNECT = 1,
- WIRELESS_EVENT_CONNECT = 2,
- WIRELESS_EVENT_PAIR = 3,
- } EWirelessEventType;
- // 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)
- typedef enum
- {
- IO_DIGITAL_BUTTON_NONE = -1,
- IO_DIGITAL_BUTTON_RIGHT_TRIGGER,
- IO_DIGITAL_BUTTON_LEFT_TRIGGER,
- IO_DIGITAL_BUTTON_1,
- IO_DIGITAL_BUTTON_Y=IO_DIGITAL_BUTTON_1,
- IO_DIGITAL_BUTTON_2,
- IO_DIGITAL_BUTTON_B=IO_DIGITAL_BUTTON_2,
- IO_DIGITAL_BUTTON_3,
- IO_DIGITAL_BUTTON_X=IO_DIGITAL_BUTTON_3,
- IO_DIGITAL_BUTTON_4,
- IO_DIGITAL_BUTTON_A=IO_DIGITAL_BUTTON_4,
- IO_DIGITAL_BUTTON_RIGHT_BUMPER,
- IO_DIGITAL_BUTTON_LEFT_BUMPER,
- IO_DIGITAL_BUTTON_LEFT_JOYSTICK_CLICK,
- IO_DIGITAL_BUTTON_ESCAPE,
- IO_DIGITAL_BUTTON_STEAM,
- IO_DIGITAL_BUTTON_MENU,
- IO_DIGITAL_STICK_UP,
- IO_DIGITAL_STICK_DOWN,
- IO_DIGITAL_STICK_LEFT,
- IO_DIGITAL_STICK_RIGHT,
- IO_DIGITAL_TOUCH_1,
- IO_DIGITAL_BUTTON_UP=IO_DIGITAL_TOUCH_1,
- IO_DIGITAL_TOUCH_2,
- IO_DIGITAL_BUTTON_RIGHT=IO_DIGITAL_TOUCH_2,
- IO_DIGITAL_TOUCH_3,
- IO_DIGITAL_BUTTON_LEFT=IO_DIGITAL_TOUCH_3,
- IO_DIGITAL_TOUCH_4,
- IO_DIGITAL_BUTTON_DOWN=IO_DIGITAL_TOUCH_4,
- IO_DIGITAL_BUTTON_BACK_LEFT,
- IO_DIGITAL_BUTTON_BACK_RIGHT,
- IO_DIGITAL_LEFT_TRACKPAD_N,
- IO_DIGITAL_LEFT_TRACKPAD_NE,
- IO_DIGITAL_LEFT_TRACKPAD_E,
- IO_DIGITAL_LEFT_TRACKPAD_SE,
- IO_DIGITAL_LEFT_TRACKPAD_S,
- IO_DIGITAL_LEFT_TRACKPAD_SW,
- IO_DIGITAL_LEFT_TRACKPAD_W,
- IO_DIGITAL_LEFT_TRACKPAD_NW,
- IO_DIGITAL_RIGHT_TRACKPAD_N,
- IO_DIGITAL_RIGHT_TRACKPAD_NE,
- IO_DIGITAL_RIGHT_TRACKPAD_E,
- IO_DIGITAL_RIGHT_TRACKPAD_SE,
- IO_DIGITAL_RIGHT_TRACKPAD_S,
- IO_DIGITAL_RIGHT_TRACKPAD_SW,
- IO_DIGITAL_RIGHT_TRACKPAD_W,
- IO_DIGITAL_RIGHT_TRACKPAD_NW,
- IO_DIGITAL_LEFT_TRACKPAD_DOUBLE_TAP,
- IO_DIGITAL_RIGHT_TRACKPAD_DOUBLE_TAP,
- IO_DIGITAL_LEFT_TRACKPAD_OUTER_RADIUS,
- IO_DIGITAL_RIGHT_TRACKPAD_OUTER_RADIUS,
- IO_DIGITAL_LEFT_TRACKPAD_CLICK,
- IO_DIGITAL_RIGHT_TRACKPAD_CLICK,
- IO_DIGITAL_BATTERY_LOW,
- IO_DIGITAL_LEFT_TRIGGER_THRESHOLD,
- IO_DIGITAL_RIGHT_TRIGGER_THRESHOLD,
- IO_DIGITAL_BUTTON_BACK_LEFT2,
- IO_DIGITAL_BUTTON_BACK_RIGHT2,
- IO_DIGITAL_BUTTON_ALWAYS_ON,
- IO_DIGITAL_BUTTON_ANCILLARY_1,
- IO_DIGITAL_BUTTON_MACRO_0,
- IO_DIGITAL_BUTTON_MACRO_1,
- IO_DIGITAL_BUTTON_MACRO_2,
- IO_DIGITAL_BUTTON_MACRO_3,
- IO_DIGITAL_BUTTON_MACRO_4,
- IO_DIGITAL_BUTTON_MACRO_5,
- IO_DIGITAL_BUTTON_MACRO_6,
- IO_DIGITAL_BUTTON_MACRO_7,
- IO_DIGITAL_BUTTON_MACRO_1FINGER,
- IO_DIGITAL_BUTTON_MACRO_2FINGER,
- IO_DIGITAL_COUNT
- } DigitalIO ;
- // 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)
- typedef enum
- {
- IO_ANALOG_LEFT_STICK_X,
- IO_ANALOG_LEFT_STICK_Y,
- IO_ANALOG_RIGHT_STICK_X,
- IO_ANALOG_RIGHT_STICK_Y,
- IO_ANALOG_LEFT_TRIGGER,
- IO_ANALOG_RIGHT_TRIGGER,
- IO_MOUSE1_X,
- IO_MOUSE1_Y,
- IO_MOUSE1_Z,
- IO_ACCEL_X,
- IO_ACCEL_Y,
- IO_ACCEL_Z,
- IO_GYRO_X,
- IO_GYRO_Y,
- IO_GYRO_Z,
- IO_GYRO_QUAT_W,
- IO_GYRO_QUAT_X,
- IO_GYRO_QUAT_Y,
- IO_GYRO_QUAT_Z,
- IO_GYRO_STEERING_VEC,
- IO_RAW_TRIGGER_LEFT,
- IO_RAW_TRIGGER_RIGHT,
- IO_RAW_JOYSTICK_X,
- IO_RAW_JOYSTICK_Y,
- IO_GYRO_TILT_VEC,
- IO_ANALOG_COUNT
- } AnalogIO;
- // Contains list of all types of devices that the controller emulates (only add to this enum and never change the order)
- enum DeviceTypes
- {
- DEVICE_KEYBOARD,
- DEVICE_MOUSE,
- DEVICE_GAMEPAD,
- DEVICE_MODE_ADJUST,
- DEVICE_COUNT
- };
- // Scan codes for HID keyboards
- enum HIDKeyboardKeys
- {
- KEY_INVALID,
- KEY_FIRST = 0x04,
- 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,
- 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,
- 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,
- 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,
- 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,
- 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,
- KEY_KEYPAD_8, KEY_KEYPAD_9, KEY_KEYPAD_0, KEY_KEYPAD_PERIOD,
- KEY_LALT,
- KEY_LSHIFT,
- KEY_LWIN,
- KEY_LCONTROL,
- KEY_RALT,
- KEY_RSHIFT,
- KEY_RWIN,
- KEY_RCONTROL,
- KEY_VOLUP,
- KEY_VOLDOWN,
- KEY_MUTE,
- KEY_PLAY,
- KEY_STOP,
- KEY_NEXT,
- KEY_PREV,
- KEY_LAST = KEY_PREV
- };
- enum ModifierMasks
- {
- KEY_LCONTROL_MASK = (1<<0),
- KEY_LSHIFT_MASK = (1<<1),
- KEY_LALT_MASK = (1<<2),
- KEY_LWIN_MASK = (1<<3),
- KEY_RCONTROL_MASK = (1<<4),
- KEY_RSHIFT_MASK = (1<<5),
- KEY_RALT_MASK = (1<<6),
- KEY_RWIN_MASK = (1<<7)
- };
- // Standard mouse buttons as specified in the HID mouse spec
- enum MouseButtons
- {
- MOUSE_BTN_LEFT,
- MOUSE_BTN_RIGHT,
- MOUSE_BTN_MIDDLE,
- MOUSE_BTN_BACK,
- MOUSE_BTN_FORWARD,
- MOUSE_SCROLL_UP,
- MOUSE_SCROLL_DOWN,
- MOUSE_BTN_COUNT
- };
- // Gamepad buttons
- enum GamepadButtons
- {
- GAMEPAD_BTN_TRIGGER_LEFT=1,
- GAMEPAD_BTN_TRIGGER_RIGHT,
- GAMEPAD_BTN_A,
- GAMEPAD_BTN_B,
- GAMEPAD_BTN_Y,
- GAMEPAD_BTN_X,
- GAMEPAD_BTN_SHOULDER_LEFT,
- GAMEPAD_BTN_SHOULDER_RIGHT,
- GAMEPAD_BTN_LEFT_JOYSTICK,
- GAMEPAD_BTN_RIGHT_JOYSTICK,
- GAMEPAD_BTN_START,
- GAMEPAD_BTN_SELECT,
- GAMEPAD_BTN_STEAM,
- GAMEPAD_BTN_DPAD_UP,
- GAMEPAD_BTN_DPAD_DOWN,
- GAMEPAD_BTN_DPAD_LEFT,
- GAMEPAD_BTN_DPAD_RIGHT,
- GAMEPAD_BTN_LSTICK_UP,
- GAMEPAD_BTN_LSTICK_DOWN,
- GAMEPAD_BTN_LSTICK_LEFT,
- GAMEPAD_BTN_LSTICK_RIGHT,
- GAMEPAD_BTN_RSTICK_UP,
- GAMEPAD_BTN_RSTICK_DOWN,
- GAMEPAD_BTN_RSTICK_LEFT,
- GAMEPAD_BTN_RSTICK_RIGHT,
- GAMEPAD_BTN_COUNT
- };
- // Mode adjust
- enum ModeAdjustModes
- {
- MODE_ADJUST_SENSITITY=1,
- MODE_ADJUST_LEFT_PAD_SECONDARY_MODE,
- MODE_ADJUST_RIGHT_PAD_SECONDARY_MODE,
- MODE_ADJUST_COUNT
- };
- // Read-only attributes of controllers (only add to this enum and never change the order)
- typedef enum
- {
- ATTRIB_UNIQUE_ID,
- ATTRIB_PRODUCT_ID,
- ATTRIB_PRODUCT_REVISON, // deprecated
- ATTRIB_CAPABILITIES = ATTRIB_PRODUCT_REVISON, // intentional aliasing
- ATTRIB_FIRMWARE_VERSION, // deprecated
- ATTRIB_FIRMWARE_BUILD_TIME,
- ATTRIB_RADIO_FIRMWARE_BUILD_TIME,
- ATTRIB_RADIO_DEVICE_ID0,
- ATTRIB_RADIO_DEVICE_ID1,
- ATTRIB_DONGLE_FIRMWARE_BUILD_TIME,
- ATTRIB_BOARD_REVISION,
- ATTRIB_BOOTLOADER_BUILD_TIME,
- ATTRIB_CONNECTION_INTERVAL_IN_US,
- ATTRIB_COUNT
- } ControllerAttributes;
- // Read-only string attributes of controllers (only add to this enum and never change the order)
- typedef enum
- {
- ATTRIB_STR_BOARD_SERIAL,
- ATTRIB_STR_UNIT_SERIAL,
- ATTRIB_STR_COUNT
- } ControllerStringAttributes;
- typedef enum
- {
- STATUS_CODE_NORMAL,
- STATUS_CODE_CRITICAL_BATTERY,
- STATUS_CODE_GYRO_INIT_ERROR,
- } ControllerStatusEventCodes;
- typedef enum
- {
- STATUS_STATE_LOW_BATTERY=0,
- } ControllerStatusStateFlags;
- typedef enum {
- TRACKPAD_ABSOLUTE_MOUSE,
- TRACKPAD_RELATIVE_MOUSE,
- TRACKPAD_DPAD_FOUR_WAY_DISCRETE,
- TRACKPAD_DPAD_FOUR_WAY_OVERLAP,
- TRACKPAD_DPAD_EIGHT_WAY,
- TRACKPAD_RADIAL_MODE,
- TRACKPAD_ABSOLUTE_DPAD,
- TRACKPAD_NONE,
- TRACKPAD_GESTURE_KEYBOARD,
- TRACKPAD_NUM_MODES
- } TrackpadDPadMode;
- // Read-write controller settings (only add to this enum and never change the order)
- typedef enum
- {
- SETTING_MOUSE_SENSITIVITY,
- SETTING_MOUSE_ACCELERATION,
- SETTING_TRACKBALL_ROTATION_ANGLE,
- SETTING_HAPTIC_INTENSITY,
- SETTING_LEFT_GAMEPAD_STICK_ENABLED,
- SETTING_RIGHT_GAMEPAD_STICK_ENABLED,
- SETTING_USB_DEBUG_MODE,
- SETTING_LEFT_TRACKPAD_MODE,
- SETTING_RIGHT_TRACKPAD_MODE,
- SETTING_MOUSE_POINTER_ENABLED,
- SETTING_DPAD_DEADZONE,
- SETTING_MINIMUM_MOMENTUM_VEL,
- SETTING_MOMENTUM_DECAY_AMMOUNT,
- SETTING_TRACKPAD_RELATIVE_MODE_TICKS_PER_PIXEL,
- SETTING_HAPTIC_INCREMENT,
- SETTING_DPAD_ANGLE_SIN,
- SETTING_DPAD_ANGLE_COS,
- SETTING_MOMENTUM_VERTICAL_DIVISOR,
- SETTING_MOMENTUM_MAXIMUM_VELOCITY,
- SETTING_TRACKPAD_Z_ON,
- SETTING_TRACKPAD_Z_OFF,
- SETTING_SENSITIVY_SCALE_AMMOUNT,
- SETTING_LEFT_TRACKPAD_SECONDARY_MODE,
- SETTING_RIGHT_TRACKPAD_SECONDARY_MODE,
- SETTING_SMOOTH_ABSOLUTE_MOUSE,
- SETTING_STEAMBUTTON_POWEROFF_TIME,
- SETTING_UNUSED_1,
- SETTING_TRACKPAD_OUTER_RADIUS,
- SETTING_TRACKPAD_Z_ON_LEFT,
- SETTING_TRACKPAD_Z_OFF_LEFT,
- SETTING_TRACKPAD_OUTER_SPIN_VEL,
- SETTING_TRACKPAD_OUTER_SPIN_RADIUS,
- SETTING_TRACKPAD_OUTER_SPIN_HORIZONTAL_ONLY,
- SETTING_TRACKPAD_RELATIVE_MODE_DEADZONE,
- SETTING_TRACKPAD_RELATIVE_MODE_MAX_VEL,
- SETTING_TRACKPAD_RELATIVE_MODE_INVERT_Y,
- SETTING_TRACKPAD_DOUBLE_TAP_BEEP_ENABLED,
- SETTING_TRACKPAD_DOUBLE_TAP_BEEP_PERIOD,
- SETTING_TRACKPAD_DOUBLE_TAP_BEEP_COUNT,
- SETTING_TRACKPAD_OUTER_RADIUS_RELEASE_ON_TRANSITION,
- SETTING_RADIAL_MODE_ANGLE,
- SETTING_HAPTIC_INTENSITY_MOUSE_MODE,
- SETTING_LEFT_DPAD_REQUIRES_CLICK,
- SETTING_RIGHT_DPAD_REQUIRES_CLICK,
- SETTING_LED_BASELINE_BRIGHTNESS,
- SETTING_LED_USER_BRIGHTNESS,
- SETTING_ENABLE_RAW_JOYSTICK,
- SETTING_ENABLE_FAST_SCAN,
- SETTING_GYRO_MODE,
- SETTING_WIRELESS_PACKET_VERSION,
- SETTING_SLEEP_INACTIVITY_TIMEOUT,
- SETTING_COUNT,
-
- // This is a special setting value use for callbacks and should not be set/get explicitly.
- SETTING_ALL=0xFF
- } ControllerSettings;
- typedef enum
- {
- SETTING_DEFAULT,
- SETTING_MIN,
- SETTING_MAX,
- SETTING_DEFAULTMINMAXCOUNT
- } SettingDefaultMinMax;
- // Bitmask that define which IMU features to enable.
- typedef enum
- {
- SETTING_GYRO_MODE_OFF = 0x0000,
- SETTING_GYRO_MODE_STEERING = 0x0001,
- SETTING_GYRO_MODE_TILT = 0x0002,
- SETTING_GYRO_MODE_SEND_ORIENTATION = 0x0004,
- SETTING_GYRO_MODE_SEND_RAW_ACCEL = 0x0008,
- SETTING_GYRO_MODE_SEND_RAW_GYRO = 0x0010,
- } SettingGyroMode;
- // Bitmask for haptic pulse flags
- typedef enum
- {
- HAPTIC_PULSE_NORMAL = 0x0000,
- HAPTIC_PULSE_HIGH_PRIORITY = 0x0001,
- HAPTIC_PULSE_VERY_HIGH_PRIORITY = 0x0002,
- } SettingHapticPulseFlags;
- typedef struct
- {
- // default,min,max in this array in that order
- short defaultminmax[SETTING_DEFAULTMINMAXCOUNT];
- } SettingValueRange_t;
- // below is from controller_constants.c which should be compiled into any code that uses this
- extern const SettingValueRange_t g_DefaultSettingValues[SETTING_COUNT];
- // Read-write settings for dongle (only add to this enum and never change the order)
- typedef enum
- {
- DONGLE_SETTING_MOUSE_KEYBOARD_ENABLED,
- DONGLE_SETTING_COUNT,
- } DongleSettings;
- typedef enum
- {
- AUDIO_STARTUP = 0,
- AUDIO_SHUTDOWN = 1,
- AUDIO_PAIR = 2,
- AUDIO_PAIR_SUCCESS = 3,
- AUDIO_IDENTIFY = 4,
- AUDIO_LIZARDMODE = 5,
- AUDIO_NORMALMODE = 6,
- AUDIO_MAX_SLOT = 15
- } ControllerAudio;
- #ifdef __cplusplus
- }
- #endif
- #endif // _CONTROLLER_CONSTANTS_H
|