controllers/npad: Add DeviceHandle struct
A DeviceHandle describes a vibration device or six-axis sensor based on the npad type, npad id, and device index/position
This commit is contained in:
		
							parent
							
								
									ceb7b11f16
								
							
						
					
					
						commit
						0a966e2cac
					
				| @ -39,6 +39,61 @@ public: | ||||
|     // Called when input devices should be loaded
 | ||||
|     void OnLoadInputDevices() override; | ||||
| 
 | ||||
|     enum class NPadControllerType { | ||||
|         None, | ||||
|         ProController, | ||||
|         Handheld, | ||||
|         JoyDual, | ||||
|         JoyLeft, | ||||
|         JoyRight, | ||||
|         Pokeball, | ||||
|     }; | ||||
| 
 | ||||
|     enum class NpadType : u8 { | ||||
|         ProController = 3, | ||||
|         Handheld = 4, | ||||
|         JoyconDual = 5, | ||||
|         JoyconLeft = 6, | ||||
|         JoyconRight = 7, | ||||
|         Pokeball = 9, | ||||
|     }; | ||||
| 
 | ||||
|     enum class DeviceIndex : u8 { | ||||
|         Left = 0, | ||||
|         Right = 1, | ||||
|         None = 2, | ||||
|     }; | ||||
| 
 | ||||
|     enum class GyroscopeZeroDriftMode : u32 { | ||||
|         Loose = 0, | ||||
|         Standard = 1, | ||||
|         Tight = 2, | ||||
|     }; | ||||
| 
 | ||||
|     enum class NpadHoldType : u64 { | ||||
|         Vertical = 0, | ||||
|         Horizontal = 1, | ||||
|     }; | ||||
| 
 | ||||
|     enum class NPadAssignments : u32 { | ||||
|         Dual = 0, | ||||
|         Single = 1, | ||||
|     }; | ||||
| 
 | ||||
|     enum class NpadHandheldActivationMode : u64 { | ||||
|         Dual = 0, | ||||
|         Single = 1, | ||||
|         None = 2, | ||||
|     }; | ||||
| 
 | ||||
|     struct DeviceHandle { | ||||
|         NpadType npad_type{}; | ||||
|         u8 npad_id{}; | ||||
|         DeviceIndex device_index{}; | ||||
|         INSERT_PADDING_BYTES(1); | ||||
|     }; | ||||
|     static_assert(sizeof(DeviceHandle) == 4, "DeviceHandle is an invalid size"); | ||||
| 
 | ||||
|     struct NPadType { | ||||
|         union { | ||||
|             u32_le raw{}; | ||||
| @ -62,38 +117,6 @@ public: | ||||
|     }; | ||||
|     static_assert(sizeof(Vibration) == 0x10, "Vibration is an invalid size"); | ||||
| 
 | ||||
|     enum class GyroscopeZeroDriftMode : u32 { | ||||
|         Loose = 0, | ||||
|         Standard = 1, | ||||
|         Tight = 2, | ||||
|     }; | ||||
| 
 | ||||
|     enum class NpadHoldType : u64 { | ||||
|         Vertical = 0, | ||||
|         Horizontal = 1, | ||||
|     }; | ||||
| 
 | ||||
|     enum class NPadAssignments : u32_le { | ||||
|         Dual = 0, | ||||
|         Single = 1, | ||||
|     }; | ||||
| 
 | ||||
|     enum class NpadHandheldActivationMode : u64 { | ||||
|         Dual = 0, | ||||
|         Single = 1, | ||||
|         None = 2, | ||||
|     }; | ||||
| 
 | ||||
|     enum class NPadControllerType { | ||||
|         None, | ||||
|         ProController, | ||||
|         Handheld, | ||||
|         JoyDual, | ||||
|         JoyLeft, | ||||
|         JoyRight, | ||||
|         Pokeball, | ||||
|     }; | ||||
| 
 | ||||
|     struct LedPattern { | ||||
|         explicit LedPattern(u64 light1, u64 light2, u64 light3, u64 light4) { | ||||
|             position1.Assign(light1); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Morph
						Morph