HID services: Difference between revisions

No edit summary
Line 2,724: Line 2,724:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x1 || Bool flag
| 0x0 || 0x1 || IsConnected
|-
|-
| 0x1 || 0x3 || Padding
| 0x1 || 0x3 || Reserved
|-
|-
| 0x4 || 0x4 || Result
| 0x4 || 0x4 || IsConnectedResult
|-
|-
| 0x8 || 0x1 || DeviceEnabled. Bool flag indicating whether a device is [[#EnableExternalDevice|enabled]].
| 0x8 || 0x1 || IsEnabled. Bool flag indicating whether a device is [[#EnableExternalDevice|enabled]].
|-
|-
| 0x9 || 0x1 || IsValid. Bool flag indicating whether this entry is valid.
| 0x9 || 0x1 || IsInFocus. Bool flag indicating whether this entry is valid.
|-
|-
| 0xA || 0x1 || PollingEnabled. Bool flag indicating whether polling is [[#EnableJoyPollingReceiveMode|enabled]].
| 0xA || 0x1 || IsPollingMode. Bool flag indicating whether polling is [[#EnableJoyPollingReceiveMode|enabled]].
|-
|-
| 0xB || 0x1 || Unknown / padding?
| 0xB || 0x1 || Reserved
|-
|-
| 0xC || 0x4 || [[#JoyPollingMode]]
| 0xC || 0x4 || [[#JoyPollingMode|PollingMode]]
|}
|}


Line 5,481: Line 5,481:


= TouchScreenConfigurationForNx =
= TouchScreenConfigurationForNx =
This is "nn::hid::TouchScreenConfigurationForNx". This is a 0x10-byte struct with 1-byte alignment.
This is "nn::hid::TouchScreenConfigurationForNx".
 
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x1
| [[#TouchScreenModeForNx|Mode]]
|-
| 0x8
| 0xF
| Reserved
|}
 
= TouchScreenModeForNx =
This is "nn::hid::TouchScreenModeForNx".
 
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 || UseSystemSetting
|-
| 1 || Finger
|-
| 2 || Heat2
|}


= InputSourceState =
= InputSourceState =
Line 5,878: Line 5,907:
= KeyboardKeySet =
= KeyboardKeySet =
This is "nn::hid::KeyboardKeySet". This is a BitFlagSet object for [[#KeyboardKey]].
This is "nn::hid::KeyboardKeySet". This is a BitFlagSet object for [[#KeyboardKey]].
= KeyboardLockKeyEventSet =
This is "nn::hid::system::KeyboardLockKeyEventSet". This is a BitFlagSet object for [[#KeyboardLockKeyEvent]].


= KeyboardLockKeyEvent =
= KeyboardLockKeyEvent =
This is "nn::hid::KeyboardLockKeyEvent" / "nn::hid::system::KeyboardLockKeyEvent".
This is "nn::hid::system::KeyboardLockKeyEvent". This is a 32-bit flag.
 
{| class="wikitable" border="1"
|-
! Bit
! Description
|-
| 0
| NumLockOn
|-
| 1
| NumLockOff
|-
| 2
| NumLockToggle
|-
| 3
| CapsLockOn
|-
| 4
| CapsLockOff
|-
| 5
| CapsLockToggle
|-
| 6
| ScrollLockOn
|-
| 7
| ScrollLockOff
|-
| 8
| ScrollLockToggle
|}


= BasicXpadButtonSet =
= BasicXpadButtonSet =
Line 6,284: Line 6,349:
!  Description
!  Description
|-
|-
| 0 ||  
| 0 || 5ms
|-
|-
| 1 ||  
| 1 || 10ms
|-
|-
| 2 ||  
| 2 || 15ms
|-
|-
| 3 ||  
| 3 || Default
|}
|}


Line 6,757: Line 6,822:
| 0x0 || 0x1 || NpadStyleIndex
| 0x0 || 0x1 || NpadStyleIndex
|-
|-
| 0x1 || 0x1 || PlayerNumber / [[#NpadIdType]]
| 0x1 || 0x1 || [[#NpadIdType|PlayerNumber]]
|-
|-
| 0x2 || 0x1 || Idx
| 0x2 || 0x1 || DeviceIdx
|}
|}


Line 6,861: Line 6,926:
= AccelerometerPlayMode =
= AccelerometerPlayMode =
This is "nn::hid::debug::AccelerometerPlayMode" (pre-10.0.0 this is "nn::hid::AccelerometerPlayMode").
This is "nn::hid::debug::AccelerometerPlayMode" (pre-10.0.0 this is "nn::hid::AccelerometerPlayMode").
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 || Loose
|-
| 1 || Tight
|}


= GyroscopeZeroDriftMode =
= GyroscopeZeroDriftMode =
Line 6,957: Line 7,031:


= DebugPadAutoPilotState =
= DebugPadAutoPilotState =
This is "nn::hid::debug::DebugPadAutoPilotState". This is a 0x18-byte struct with 4-byte alignment.
This is "nn::hid::debug::DebugPadAutoPilotState"
 
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| [[#DebugPadAttributeSet|Attributes]]
|-
| 0x4
| 0x4
| [[#DebugPadButtonSet|Buttons]]
|-
| 0x8
| 0x8
| [[#AnalogStickState|AnalogStickR]]
|-
| 0x10
| 0x8
| [[#AnalogStickState|AnalogStickL]]
|}


= MouseAutoPilotState =
= MouseAutoPilotState =
This is "nn::hid::debug::MouseAutoPilotState". This is a 0x1C-byte struct with 4-byte alignment.
This is "nn::hid::debug::MouseAutoPilotState".
 
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| X
|-
| 0x4
| 0x4
| Y
|-
| 0x8
| 0x4
| DeltaX
|-
| 0xC
| 0x4
| DeltaY
|-
| 0x10
| 0x4
| WheelDeltaX
|-
| 0x14
| 0x4
| WheelDeltaY
|-
| 0x18
| 0x4
| [[#MouseButtonSet|Buttons]]
|-
| 0x1C
| 0x4
| [[#MouseAttributeSet|Attributes]]
|}


= KeyboardAutoPilotState =
= KeyboardAutoPilotState =
This is "nn::hid::debug::KeyboardAutoPilotState". This is a 0x28-byte struct with 8-byte alignment.
This is "nn::hid::debug::KeyboardAutoPilotState".
 
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x8
| [[#KeyboardModifierSet|Modifiers]]
|-
| 0x8
| 0x20
| [[#KeyboardKeySet|Keys]]
|}


= HdlsHandle =
= HdlsHandle =
Line 7,359: Line 7,510:
!  Description
!  Description
|-
|-
| 0 || DigitalButtonAssignment_A
| 0 || A
|-
|-
| 1 || DigitalButtonAssignment_B
| 1 || B
|-
|-
| 2 || DigitalButtonAssignment_X
| 2 || X
|-
|-
| 3 || DigitalButtonAssignment_Y
| 3 || Y
|-
|-
| 4 || DigitalButtonAssignment_StickL
| 4 || StickL
|-
|-
| 5 || DigitalButtonAssignment_StickR
| 5 || StickR
|-
|-
| 6 || DigitalButtonAssignment_L
| 6 || L
|-
|-
| 7 || DigitalButtonAssignment_R
| 7 || R
|-
|-
| 8 || DigitalButtonAssignment_ZL
| 8 || ZL
|-
|-
| 9 || DigitalButtonAssignment_ZR
| 9 || ZR
|-
|-
| 10 || DigitalButtonAssignment_Select
| 10 || Select
|-
|-
| 11 || DigitalButtonAssignment_Start
| 11 || Start
|-
|-
| 12 || DigitalButtonAssignment_Left
| 12 || Left
|-
|-
| 13 || DigitalButtonAssignment_Up
| 13 || Up
|-
|-
| 14 || DigitalButtonAssignment_Right
| 14 || Right
|-
|-
| 15 || DigitalButtonAssignment_Down
| 15 || Down
|-
|-
| 16 || DigitalButtonAssignment_LeftSL
| 16 || LeftSL
|-
|-
| 17 || DigitalButtonAssignment_LeftSR
| 17 || LeftSR
|-
|-
| 18 || DigitalButtonAssignment_RightSL
| 18 || RightSL
|-
|-
| 19 || DigitalButtonAssignment_RightSR
| 19 || RightSR
|-
|-
| 20 || DigitalButtonAssignment_HomeButton
| 20 || HomeButton
|-
|-
| 21 || DigitalButtonAssignment_CaptureButton
| 21 || CaptureButton
|-
|-
| 22 || DigitalButtonAssignment_Invalid
| 22 || Invalid
|}
|}


Line 7,417: Line 7,568:
| 0x4 || 0x1 || IsPairedStickAssigned
| 0x4 || 0x1 || IsPairedStickAssigned
|-
|-
| 0x5 || 0x3 || Padding
| 0x5 || 0x3 || Reserved
|}
|}


Line 7,427: Line 7,578:
!  Description
!  Description
|-
|-
| 0 || AnalogStickRotation_None
| 0 || None
|-
|-
| 1 || AnalogStickRotation_Clockwise90
| 1 || Clockwise90
|-
|-
| 2 || AnalogStickRotation_Anticlockwise90
| 2 || Anticlockwise90
|}
|}


Line 8,132: Line 8,283:
| 0x0 || 0x30 || Data
| 0x0 || 0x30 || Data
|-
|-
| 0x30 || 0x8 || Size of data.
| 0x30 || 0x8 || OutSize
|-
|-
| 0x38 || 0x8 || Timestamp
| 0x38 || 0x8 || SamplingNumber
|}
|}


Line 8,144: Line 8,295:
!  Description
!  Description
|-
|-
| 0 || JoyLeftRail
| 0 || LeftJoyRail
|-
|-
| 1 || JoyRightRail
| 1 || RightJoyRail
|-
|-
| 2 || [6.0.0+] LarkRightRail (for microphone)
| 2 || [6.0.0+] RightLarkRail (for microphone)
|}
|}


Line 8,158: Line 8,309:
!  Description
!  Description
|-
|-
| 0 || JoyPollingMode_SixAxisSensorDisable
| 0 || SixAxisSensorDisable
|-
|-
| 1 || JoyPollingMode_SixAxisSensorEnable
| 1 || SixAxisSensorEnable
|-
|-
| 2 || JoyPollingMode_ButtonOnly
| 2 || ButtonOnly
|}
|}