DEVICECONFIG XML PROPERTIES
The DeviceConfig.xml file is used to determine how different device profiles will be displayed within the UI. Each device input package should only ever have one of these files, and it must always be named "DeviceConfig" for the simulation to recgnise it.
To use this file you will need to have created the necessary Input Configuration XML, which is done using the Input Application. You can find a tutorial on how to create input profiles on the following page:
The DeviceConfig.xml
file has the following schematic structure:
<?xml version= "1.0" encoding= "utf-8" ?>
<DeviceConfig>
<!-- List Of Devices -->
<Device [attributes] />
<Device [attributes] />
...
<!-- List Of Devices And Associated Icons-->
<Device [attributes] >
<MergeIcons [attibutes]/>
<MergeIcons [attibutes]/>
...
</Device>
...
</DeviceConfig>
<DeviceConfig>
This is a container element where you will place one or more <Device>
sub-elements. This element has no attributes.
<Device>
This element is a sub-element of <DeviceConfig>
and is used to setup a specific device definition for use in the simulation UI. If the device has no icons then the element is self-closing, otherwise it will have one or more <MergeIcons>
sub-elements. Note that if the device is Keyboard or Mouse then you cannot use the <MergeIcons>
sub-element as these inputs will always use the default UI icons.
It can have the following attributes:
Attribute | Description | Type | Required |
---|---|---|---|
ProductID |
This is the prodcut ID for the device being defined. The ID should be formatted as a hexadecimal value, prefixed by "0x". You can find the product ID from the device properties in the Input Application (you will need to do the conversion to hexadecimal as the Input App shows a decimal). For example, if the Product ID is 767 you would have: ProductID="0x02FF" |
String | Yes |
Platform |
This sets the platform(s) that the device can be used on. If the device can be used on all platforms, this attribute can be omitted, otherwise you can use one of the following strings to limit the device to that platfrom:
|
String | No |
CompositeID |
This is the composite ID for the device being defined, expressed as an integer. You can find the composite ID from the device properties in the Input Application. | Integer | No |
DisplayName |
This is the name of the device that will be displayed in the UI. | String | Yes |
TextureFolder |
This is the relative path to the texture folder where the required images and optional icons can be found. Each device requires a unique folder which should be named the same as the Input Configuration XML file. | String | Yes |
Priority |
This sets the prioity in the UI for the device profile, expressed as an integer, where a lower value will represent a higher priority in the UI list. If this attribute is not included, then the default priority is 0. | Integer | No |
<MergeIcons>
This is a sub-element of <Device>
and is used to define one or more icons that can be used to represent a button, axis or slider on the device being defined. The icons to be used should be placed within the folder defined in the <Device>
attributes.
It can have the following attributes:
Attribute | Description | Type | Required |
---|---|---|---|
SourceIcons |
A combination of "keys" which represent specific in-sim actions. These "keys" will be bound to the target icon and text. See the section on keys below for more information. For multiple keys, they should be concatenated using the "&" symbol, for example: SourceIcons="R-STICK LEFT&R-STICK RIGHT" |
String | Yes |
TargetIcon |
This is the name of the SVG file that should be linked to the source icon key. The name is given without the file extension, for example, the file TargetIcon="R-STICK_1" |
String | Yes |
TargetTT |
This is a localisable string that describes the action/icon. | String | Yes |
SourceIcons Keys
There are a number of predefined keys available to you to use to bind one or more inputs to a given icon. The tables below show the keys for the different input devices, along with the Input Application binding they are associated with. Note that there are no tables for mouse or Keyboard input, as those devices will use the default UI icons.
Controller (XBox One for Windows)
SourceIcon Key | Input Application Binding | Controller Input |
---|---|---|
A | Button1 | |
B | Button2 | |
X | Button3 | |
Y | Button4 | |
LB | Button5 | |
RB | Button6 | |
LT | Axis Z Axis Z+ |
|
RT | Axis Z Axis Z- |
|
L-STICK | Button9 | |
R-STICK | Button10 | |
BACK | Button7 | |
START | Button8 | |
D-PAD LEFT | POV1 POV1_LEFT |
|
D-PAD RIGHT | POV1 POV1_RIGHT |
|
D-PAD UP | POV1 POV1_UP |
|
D-PAD DOWN | POV1 POV1_DOWN |
|
L-STICK LEFT | Axis X- | |
L-STICK RIGHT | Axis X+ | |
L-STICK UP | Axis Y- | |
L-STICK DOWN | Axis Y+ | |
R-STICK LEFT | Rotation X- | |
R-STICK RIGHT | Rotation X+ | |
R-STICK UP | Rotation Y- | |
R-STICK DOWN | Rotation Y+ | |
L-STICK X | Axis X | |
L-STICK Y | Axis Y | |
R-STICK X | Rotation X | |
R-STICK Y | Rotation Y |
Xinput Controller / XBox Series Gamepad
SourceIcon Key | Input Application Binding |
---|---|
A | A |
B | B |
X | X |
Y | Y |
LB | LB |
RB | RB |
LT | LT |
RT | RT |
L-STICK | LSTICK |
R-STICK | RSTICK |
BACK | BACK |
START | START |
D-PAD LEFT | LEFT |
D-PAD RIGHT | RIGHT |
D-PAD UP | UP |
D-PAD DOWN | DOWN |
L-STICK LEFT | LANALOG_LEFT |
L-STICK RIGHT | LANALOG_RIGHT |
L-STICK UP | LANALOG_UP |
L-STICK DOWN | LANALOG_DOWN |
R-STICK LEFT | RANALOG_LEFT |
R-STICK RIGHT | RANALOG_RIGHT |
R-STICK UP | RANALOG_UP |
R-STICK DOWN | RANALOG_DOWN |
L-STICK X | LANALOG_X |
L-STICK Y | LANALOG_Y |
R-STICK X | RANALOG_X |
R-STICK Y | RANALOG_Y |
XBox Series Stick
SourceIcon Key | Input Application Binding |
---|---|
String | Yes |
XR Controller Left / XR Controller Right
SourceIcon Key | Input Application Binding |
---|---|
Click A | A_CLICK |
Touch A | A_TOUCH |
Click B | B_CLICK |
Touch B | B_TOUCH |
Back | BACK_CLICK |
Menu | MENU_CLICK |
Select | SELECT_CLICK |
Click Squeeze | SQUEEZE_CLICK |
Force Squeeze | SQUEEZE_FORCE |
Value Squeeze | SQUEEZE_VALUE |
Click System | SYSTEM_CLICK |
Touch System | SYSTEM_TOUCH |
Touch Thumbrest | THUMBREST_TOUCH |
Click Thumbstick | THUMBSTICK_CLICK |
Touch Thumbstick | THUMBSTICK_TOUCH |
Horizontal Thumbstick | THUMBSTICK_X |
Vertical Tumbstick | THUMBSTICK_Y |
Click Trackpad | TRACKPAD_CLICK |
Force Trackpad | TRACKPAD_FORCE |
Touch Trackpad | TRACKPAD_TOUCH |
Horizontal Trackpad | TRACKPAD_X |
Vertical Trackpad | TRACKPAD_Y |
Click Trigger | TRIGGER_CLICK |
Touch Trigger | TRIGGER_TOUCH |
Value Trigger | TRIGGER_VALUE |
Click X | X_CLICK |
Touch X | X_TOUCH |
Click Y | Y_CLICK |
Touch Y | Y_TOUCH |
Trackpack Left | TRACKPAD_LEFT_CLICK |
Trackpack Right | TRACKPAD_RIGHT_CLICK |
Trackpack Down | TRACKPAD_UP_CLICK |
Trackpack Up | TRACKPAD_DOWN_CLICK |