Enhanced Raw Input 1.0
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 "Engine/DeveloperSettings.h"
7#include "InputCoreTypes.h"
8
9#include "EnhancedRawInputSettings.generated.h"
10
11UENUM(BlueprintType)
13enum class ERawInputAxisOutputType : uint8
14{
16 Raw,
18 Gamepad,
20 Axis
21};
22
23UENUM(BlueprintType)
25enum class ERawInputPovOutputType : uint8
26{
28 Raw,
30 Gamepad,
32 Axis,
34 POV
35};
36
37
38UENUM(BlueprintType)
40enum class EHidAxisUsages : uint8
41{
42 None = 0x00 UMETA(DisplayName = "None"),
43 XAxis = 0x30 UMETA(DisplayName = "X Axis"),
44 YAxis = 0x31 UMETA(DisplayName = "Y Axis"),
45 ZAxis = 0x32 UMETA(DisplayName = "Z Axis"),
46 RxAxis = 0x33 UMETA(DisplayName = "RX Axis"),
47 RyAxis = 0x34 UMETA(DisplayName = "RY Axis"),
48 RzAxis = 0x35 UMETA(DisplayName = "RZ Axis"),
49 Slider = 0x36 UMETA(DisplayName = "Slider"),
50 Dial = 0x37 UMETA(DisplayName = "Dial"),
51 Wheel = 0x38 UMETA(DisplayName = "Wheel")
52};
53
55USTRUCT(BlueprintType)
56struct ENHANCEDRAWINPUT_API FProductIdentification
57{
58 GENERATED_BODY()
59
60
61 UPROPERTY(EditAnywhere, Category="Product Identification")
62 int32 VendorId;
63
65 UPROPERTY(EditAnywhere, Category="Product Identification")
66 int32 ProductId;
67};
68
70USTRUCT()
71struct ENHANCEDRAWINPUT_API FEnhancedRawInputAxisProperties
72{
73 GENERATED_BODY()
74
75 FEnhancedRawInputAxisProperties()
76 : bEnabled(true),
77 HidUsage(),
78 bInverted(false),
79 Type(ERawInputAxisOutputType::Gamepad),
80 Offset(0.f)
81 {
82 }
83
85 UPROPERTY(EditAnywhere, Category="Axis Properties")
87
89 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
90 EHidAxisUsages HidUsage;
91
93 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
94 FKey Key;
95
97 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
99
101 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
102 ERawInputAxisOutputType Type;
103
105 UPROPERTY(EditAnywhere, Category="Axis Properties", meta=(EditCondition="bEnabled"))
106 float Offset;
107};
108
110USTRUCT()
111struct ENHANCEDRAWINPUT_API FEnhancedRawInputButtonProperties
112{
113 GENERATED_BODY()
114
115 FEnhancedRawInputButtonProperties()
116 : bEnabled(true)
117 {}
118
120 UPROPERTY(EditAnywhere, Category="Button Properties")
122
124 UPROPERTY(EditAnywhere, Category="Button Properties", meta=(EditCondition="bEnabled"))
125 FKey Key;
126};
127
129USTRUCT()
130struct ENHANCEDRAWINPUT_API FEnhancedInputPovProperties
131{
132 GENERATED_BODY()
133
134 FEnhancedInputPovProperties()
135 : bEnabled(true),
136 bAxisInverted(false),
137 OutputType(ERawInputPovOutputType::POV),
138 AxisOffset(0)
139 {}
140
142 UPROPERTY(EditAnywhere, Category="POV Properties")
144
146 UPROPERTY(EditAnywhere, EditFixedSize, NoClear, Category="POV Button Properties", meta=(EditCondition="bEnabled"))
147 TArray<FKey> ButtonKeys;
148
150 UPROPERTY(EditAnywhere, Category="POV Axis Properties", meta=(EditCondition="bEnabled"))
152
154 UPROPERTY(EditAnywhere, Category="POV Axis Properties", meta=(EditCondition="bEnabled"))
156
158 UPROPERTY(EditAnywhere, Category="POV Axis Properties", meta=(EditCondition="bEnabled"))
159 ERawInputPovOutputType OutputType;
160
162 UPROPERTY(EditAnywhere, Category="POV Axis Properties", meta=(EditCondition="bEnabled"))
164};
165
167USTRUCT()
168struct ENHANCEDRAWINPUT_API FEnhancedRawInputDeviceConfiguration
169{
170 GENERATED_BODY()
171
172 FEnhancedRawInputDeviceConfiguration();
173
175 UPROPERTY(EditAnywhere, Category="Device Config")
177
179 UPROPERTY(EditAnywhere, Category="Device Config")
181
183 UPROPERTY(EditAnywhere, Category="Device Config")
185
187 UPROPERTY(EditAnywhere, Category="Device Config", DisplayName="POV Properties")
189};
190
192UCLASS(config=Input, defaultConfig)
193class ENHANCEDRAWINPUT_API UEnhancedRawInputSettings : public UDeveloperSettings
194{
195 GENERATED_BODY()
196
197public:
198 UEnhancedRawInputSettings();
199
200#if WITH_EDITOR
201 // Begin UObject Interface
202 virtual void PostEditChangeChainProperty(struct FPropertyChangedChainEvent& PropertyChangedEvent ) override;
203 // End UObject Interface
204#endif
205
206 // Begin UDeveloperSettings Interface
207 virtual FName GetCategoryName() const override;
208#if WITH_EDITOR
209 virtual FText GetSectionText() const override;
210#endif
211 // End UDeveloperSettings Interface
212
215 UPROPERTY(config, EditAnywhere, Category="Device Configurations")
217
221 UPROPERTY(config, EditAnywhere, Category = "Device Configurations", meta = (ConfigRestartRequired = true))
222 bool bUseSharedDevice = false;
223
226 UPROPERTY(config, EditAnywhere, Category="Device Configurations", meta=(EditCondition="bRegisterAllDevices"))
228
233 UPROPERTY(config, EditAnywhere, Category="Device Configurations")
235
237 UPROPERTY(config, EditAnywhere, Category="Device Configurations", meta=(ConfigRestartRequired=true))
239
242 UPROPERTY(config, EditAnywhere, Category="Device Configurations")
244};
bool bUseSharedDevice
Definition EnhancedRawInputSettings.h:222
bool bAutoAssignControllers
Definition EnhancedRawInputSettings.h:234
bool bReceiveControllerInputsInBackground
Definition EnhancedRawInputSettings.h:238
bool bRegisterAllDevices
Definition EnhancedRawInputSettings.h:216
TArray< FProductIdentification > ExcludedControllers
Definition EnhancedRawInputSettings.h:227
TArray< FEnhancedRawInputDeviceConfiguration > DeviceConfigurations
Definition EnhancedRawInputSettings.h:243
POV settings.
Definition EnhancedRawInputSettings.h:131
TArray< FKey > ButtonKeys
Definition EnhancedRawInputSettings.h:147
bool bAxisInverted
Definition EnhancedRawInputSettings.h:155
FKey AxisKey
Definition EnhancedRawInputSettings.h:151
ERawInputPovOutputType OutputType
Definition EnhancedRawInputSettings.h:159
bool bEnabled
Definition EnhancedRawInputSettings.h:143
float AxisOffset
Definition EnhancedRawInputSettings.h:163
Axis settings.
Definition EnhancedRawInputSettings.h:72
bool bEnabled
Definition EnhancedRawInputSettings.h:86
EHidAxisUsages HidUsage
Definition EnhancedRawInputSettings.h:90
bool bInverted
Definition EnhancedRawInputSettings.h:98
float Offset
Definition EnhancedRawInputSettings.h:106
FKey Key
Definition EnhancedRawInputSettings.h:94
ERawInputAxisOutputType Type
Definition EnhancedRawInputSettings.h:102
Button settings, used in Unreal Editor.
Definition EnhancedRawInputSettings.h:112
bool bEnabled
Definition EnhancedRawInputSettings.h:121
FKey Key
Definition EnhancedRawInputSettings.h:125
Device settings, used in Unreal Editor.
Definition EnhancedRawInputSettings.h:169
TArray< FEnhancedRawInputAxisProperties > AxisProperties
Definition EnhancedRawInputSettings.h:180
TArray< FEnhancedInputPovProperties > PovProperties
Definition EnhancedRawInputSettings.h:188
TArray< FEnhancedRawInputButtonProperties > ButtonProperties
Definition EnhancedRawInputSettings.h:184
FProductIdentification ProductId
Definition EnhancedRawInputSettings.h:176
Identifies a HID Device.
Definition EnhancedRawInputSettings.h:57
int32 VendorId
Definition EnhancedRawInputSettings.h:62
int32 ProductId
Definition EnhancedRawInputSettings.h:66