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 recognize 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 product 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 platform:

  • "PC"
  • "XBOX"
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 priority 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 R-STICK_1.svg would be given as:

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