Enhanced Raw Input 1.2
Enhanced Raw Input for Unreal Engine
Loading...
Searching...
No Matches
EnhancedRawInputSettings.h
1// (c) 2025 by Lemontree Softworks - All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "InputCoreTypes.h"
7#include "Engine/DeveloperSettings.h"
8#include "InputCoreTypes.h"
9
10#include "EnhancedRawInputSettings.generated.h"
11
12UENUM(BlueprintType)
14enum class EControllerMode : uint8
15{
17 Standard,
19 SharedDevice,
21 MultiDevice,
22};
23
24UENUM(BlueprintType)
26enum class ERawInputAxisOutputType : uint8
27{
29 Raw,
31 Gamepad,
33 Axis
34};
35
36UENUM(BlueprintType)
38enum class ERawInputPovOutputType : uint8
39{
41 Raw,
43 Gamepad,
45 Axis,
47 POV
48};
49
50
51UENUM(BlueprintType)
53enum class EHidAxisUsages : uint8
54{
55 None = 0x00 UMETA(DisplayName = "None"),
56 XAxis = 0x30 UMETA(DisplayName = "X Axis"),
57 YAxis = 0x31 UMETA(DisplayName = "Y Axis"),
58 ZAxis = 0x32 UMETA(DisplayName = "Z Axis"),
59 RxAxis = 0x33 UMETA(DisplayName = "RX Axis"),
60 RyAxis = 0x34 UMETA(DisplayName = "RY Axis"),
61 RzAxis = 0x35 UMETA(DisplayName = "RZ Axis"),
62 Slider = 0x36 UMETA(DisplayName = "Slider"),
63 Dial = 0x37 UMETA(DisplayName = "Dial"),
64 Wheel = 0x38 UMETA(DisplayName = "Wheel")
65};
66
68USTRUCT(BlueprintType)
69struct ENHANCEDRAWINPUT_API FProductIdentification
70{
71 GENERATED_BODY()
72
73
74 UPROPERTY(EditAnywhere, Category="Product Identification")
75 int32 VendorId;
76
78 UPROPERTY(EditAnywhere, Category="Product Identification")
79 int32 ProductId;
80};
81
83USTRUCT()
84struct ENHANCEDRAWINPUT_API FEnhancedRawInputAxisProperties
85{
86 GENERATED_BODY()
87
88 FEnhancedRawInputAxisProperties()
89 : bEnabled(true),
90 HidUsage(),
91 bInverted(false),
92 Type(ERawInputAxisOutputType::Gamepad),
93 Offset(0.f)
94 {
95 }
96
98 UPROPERTY(EditAnywhere, Category="Axis Properties")
100
102 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
103 EHidAxisUsages HidUsage;
104
106 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
107 FKey Key;
108
110 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
112
114 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
115 ERawInputAxisOutputType Type;
116
118 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
119 float Offset;
120};
121
123USTRUCT()
124struct ENHANCEDRAWINPUT_API FEnhancedRawInputButtonProperties
125{
126 GENERATED_BODY()
127
128 FEnhancedRawInputButtonProperties()
129 : bEnabled(true)
130 {}
131
133 UPROPERTY(EditAnywhere, Category="Button Properties")
135
137 UPROPERTY(EditAnywhere, Category="Button Properties", meta=(EditCondition="bEnabled"))
138 FKey Key;
139};
140
142USTRUCT()
143struct ENHANCEDRAWINPUT_API FEnhancedInputPovProperties
144{
145 GENERATED_BODY()
146
147 FEnhancedInputPovProperties()
148 : bEnabled(true),
149 bAxisInverted(false),
150 OutputType(ERawInputPovOutputType::POV),
151 AxisOffset(0)
152 {}
153
155 UPROPERTY(EditAnywhere, Category="POV Properties")
157
159 UPROPERTY(EditAnywhere, EditFixedSize, NoClear, Category="POV Button Properties", meta=(EditCondition="bEnabled"))
160 TArray<FKey> ButtonKeys;
161
163 UPROPERTY(EditAnywhere, Category="POV Axis Properties", meta=(EditCondition="bEnabled"))
165
167 UPROPERTY(EditAnywhere, Category="POV Axis Properties", meta=(EditCondition="bEnabled"))
169
171 UPROPERTY(EditAnywhere, Category="POV Axis Properties", meta=(EditCondition="bEnabled"))
172 ERawInputPovOutputType OutputType;
173
175 UPROPERTY(EditAnywhere, Category="POV Axis Properties", meta=(EditCondition="bEnabled"))
177};
178
180USTRUCT()
181struct ENHANCEDRAWINPUT_API FEnhancedRawInputDeviceConfiguration
182{
183 GENERATED_BODY()
184
185 FEnhancedRawInputDeviceConfiguration();
186
188 UPROPERTY(EditAnywhere, Category="Device Config")
190
192 UPROPERTY(EditAnywhere, Category="Device Config")
194
196 UPROPERTY(EditAnywhere, Category="Device Config")
198
200 UPROPERTY(EditAnywhere, Category="Device Config", DisplayName="POV Properties")
202};
203
205UCLASS(config=Input, defaultConfig)
206class ENHANCEDRAWINPUT_API UEnhancedRawInputSettings : public UDeveloperSettings
207{
208 GENERATED_BODY()
209
210public:
211 UEnhancedRawInputSettings();
212
213#if WITH_EDITOR
214 // Begin UObject Interface
215 virtual void PostEditChangeChainProperty(struct FPropertyChangedChainEvent& PropertyChangedEvent ) override;
216 // End UObject Interface
217#endif
218
219 // Begin UDeveloperSettings Interface
220 virtual FName GetCategoryName() const override;
221#if WITH_EDITOR
222 virtual FText GetSectionText() const override;
223#endif
224 // End UDeveloperSettings Interface
225
228 UPROPERTY(config, EditAnywhere, Category="Device Configurations")
230
236 UPROPERTY(config, EditAnywhere, Category = "Device Configurations", meta = (ConfigRestartRequired = true))
237 EControllerMode ControllerMode = EControllerMode::Standard;
238
241 UPROPERTY(config, EditAnywhere, Category="Device Configurations", meta=(EditCondition="bRegisterAllDevices"))
243
248 UPROPERTY(config, EditAnywhere, Category="Device Configurations")
250
252 UPROPERTY(config, EditAnywhere, Category="Device Configurations", meta=(ConfigRestartRequired=true))
254
257 UPROPERTY(config, EditAnywhere, Category="Device Configurations")
259};
bool bAutoAssignControllers
Definition EnhancedRawInputSettings.h:249
bool bReceiveControllerInputsInBackground
Definition EnhancedRawInputSettings.h:253
bool bRegisterAllDevices
Definition EnhancedRawInputSettings.h:229
TArray< FProductIdentification > ExcludedControllers
Definition EnhancedRawInputSettings.h:242
TArray< FEnhancedRawInputDeviceConfiguration > DeviceConfigurations
Definition EnhancedRawInputSettings.h:258
EControllerMode ControllerMode
Definition EnhancedRawInputSettings.h:237
POV settings.
Definition EnhancedRawInputSettings.h:144
TArray< FKey > ButtonKeys
Definition EnhancedRawInputSettings.h:160
bool bAxisInverted
Definition EnhancedRawInputSettings.h:168
FKey AxisKey
Definition EnhancedRawInputSettings.h:164
ERawInputPovOutputType OutputType
Definition EnhancedRawInputSettings.h:172
bool bEnabled
Definition EnhancedRawInputSettings.h:156
float AxisOffset
Definition EnhancedRawInputSettings.h:176
Axis settings.
Definition EnhancedRawInputSettings.h:85
bool bEnabled
Definition EnhancedRawInputSettings.h:99
EHidAxisUsages HidUsage
Definition EnhancedRawInputSettings.h:103
bool bInverted
Definition EnhancedRawInputSettings.h:111
float Offset
Definition EnhancedRawInputSettings.h:119
FKey Key
Definition EnhancedRawInputSettings.h:107
ERawInputAxisOutputType Type
Definition EnhancedRawInputSettings.h:115
Button settings, used in Unreal Editor.
Definition EnhancedRawInputSettings.h:125
bool bEnabled
Definition EnhancedRawInputSettings.h:134
FKey Key
Definition EnhancedRawInputSettings.h:138
Device settings, used in Unreal Editor.
Definition EnhancedRawInputSettings.h:182
TArray< FEnhancedRawInputAxisProperties > AxisProperties
Definition EnhancedRawInputSettings.h:193
TArray< FEnhancedInputPovProperties > PovProperties
Definition EnhancedRawInputSettings.h:201
TArray< FEnhancedRawInputButtonProperties > ButtonProperties
Definition EnhancedRawInputSettings.h:197
FProductIdentification ProductId
Definition EnhancedRawInputSettings.h:189
Identifies a HID Device.
Definition EnhancedRawInputSettings.h:70
int32 VendorId
Definition EnhancedRawInputSettings.h:75
int32 ProductId
Definition EnhancedRawInputSettings.h:79