enum EInputMode {
k_EInputModeUnknown = 0;
k_EInputModeMouse = 1;
k_EInputModeController = 2;
k_EInputModeMouseAndController = 3;
}
enum EMouseMode {
k_EMouseModeUnknown = 0;
k_EMouseModeRelativeCursor = 1;
k_EMouseModeAbsoluteCursor = 2;
k_EMouseModeTouch = 3;
k_EMouseModeRelative = 4;
}
enum EControllerElementType {
k_EControllerElementTypeNone = -1;
k_EControllerElementTypeThumb = 0;
k_EControllerElementTypeButtonSteam = 1;
k_EControllerElementTypeJoystickLeft = 2;
k_EControllerElementTypeButtonJoystickLeft = 3;
k_EControllerElementTypeJoystickRight = 4;
k_EControllerElementTypeButtonJoystickRight = 5;
k_EControllerElementTypeDPad = 6;
k_EControllerElementTypeButtonA = 7;
k_EControllerElementTypeButtonB = 8;
k_EControllerElementTypeButtonX = 9;
k_EControllerElementTypeButtonY = 10;
k_EControllerElementTypeButtonSelect = 11;
k_EControllerElementTypeButtonStart = 12;
k_EControllerElementTypeButtonTriggerLeft = 13;
k_EControllerElementTypeButtonTriggerRight = 14;
k_EControllerElementTypeButtonBumperLeft = 15;
k_EControllerElementTypeButtonBumperRight = 16;
k_EControllerElementTypeButtonMacro0 = 17;
k_EControllerElementTypeButtonMacro1 = 18;
k_EControllerElementTypeButtonMacro2 = 19;
k_EControllerElementTypeButtonMacro3 = 20;
k_EControllerElementTypeButtonMacro4 = 21;
k_EControllerElementTypeButtonMacro5 = 22;
k_EControllerElementTypeButtonMacro6 = 23;
k_EControllerElementTypeButtonMacro7 = 24;
k_EControllerElementTypeTrackpadCenter = 25;
k_EControllerElementTypeTrackpadLeft = 26;
k_EControllerElementTypeTrackpadRight = 27;
k_EControllerElementTypeKeyboard = 28;
k_EControllerElementTypeMagnifyingGlass = 29;
k_EControllerElementTypeButtonMacro1Finger = 30;
k_EControllerElementTypeButtonMacro2Finger = 31;
k_EControllerElementTypeRecordInput = 32;
k_EControllerElementTypePlaybackInput = 33;
k_EControllerElementTypePaste = 34;
k_EControllerElementTypeMax = 35;
}
message CVirtualControllerElement {
optional .EControllerElementType type = 1 [default = k_EControllerElementTypeNone];
optional bool visible = 2;
optional float x_position = 3;
optional float y_position = 4;
optional float x_scale = 5 [default = 1];
optional float y_scale = 6 [default = 1];
}
message CVirtualControllerColor {
optional float r = 1 [default = 1];
optional float g = 2 [default = 1];
optional float b = 3 [default = 1];
optional float a = 4 [default = 1];
}
message CVirtualControllerLayout {
optional int32 layout_version = 1;
optional int32 actionset_id = 2;
repeated .CVirtualControllerElement elements = 4;
optional .CVirtualControllerColor color = 5;
}
message CVirtualControllerLayouts {
repeated .CVirtualControllerLayout layouts = 1;
optional .EInputMode input_mode = 2 [default = k_EInputModeController];
optional .EMouseMode mouse_mode = 3 [default = k_EMouseModeUnknown];
optional float trackpad_sensitivity = 4 [default = 1];
optional bool pinch_zoom_enabled = 5 [default = false];
optional float pinch_zoom_x = 6 [default = 0];
optional float pinch_zoom_y = 7 [default = 0];
optional float pinch_zoom_scale = 8 [default = 1];
optional bool shaken = 9;
optional bool mouse_offscreen = 10;
}
message CVirtualControllerConfig {
message Control {
optional string name = 1;
optional string icon = 2;
optional int32 input_source = 3;
optional int32 input_mode = 4;
optional int32 input_element = 5;
optional int32 output_gamepad = 6;
optional int32 output_keyboard = 7;
optional int32 output_mouse = 8;
optional string icon_foreground = 9;
optional string icon_background = 10;
optional bool input_toggle = 11;
optional int32 input_activate_stick_or_trackpad = 12;
optional int32 activation_type = 13;
optional int32 long_press_ms = 14;
optional int32 double_press_ms = 15;
}
message ActionSet {
optional int32 id = 1;
optional int32 parent_id = 2;
optional string name = 3;
repeated .CVirtualControllerConfig.Control controls = 4;
}
optional string name = 1;
repeated .CVirtualControllerConfig.ActionSet actionsets = 2;
optional .EMouseMode default_mouse_mode = 3 [default = k_EMouseModeAbsoluteCursor];
}
message CVirtualControllerLayoutPackage {
optional uint32 appid = 1;
optional uint64 creator = 2;
optional uint32 initial_revision = 3;
optional uint32 saved_revision = 4;
optional .CVirtualControllerConfig config = 5;
optional .CVirtualControllerLayouts layouts = 6;
}
message CVirtualControllerGlobalConfig {
optional bool feedback_enabled = 1;
optional bool gyroscope_enabled = 2 [default = true];
optional bool auto_fade_enabled = 3 [default = true];
optional bool rumble_enabled = 4 [default = true];
optional bool shake_fade_enabled = 5;
}