HID services: Difference between revisions

No edit summary
Line 1,248: Line 1,248:
|}
|}


The maximum element count is 6 for [[#PointingProcessorState]] or 5 for any of the other states.
The maximum element count is 6 for [[#PointingProcessorMarkerState]] or 5 for any of the other states.


ProcessorState is specialized depending on the value of [[#IrSensorMode]].
ProcessorState is specialized depending on the value of [[#IrSensorMode]].
Line 1,330: Line 1,330:
|}
|}


===== PointingProcessorState =====
===== PointingProcessorMarkerState =====
This is "nn::irsensor::PointingProcessorState" and "nn::irsensor::PointingProcessorMarkerState".
This is "nn::irsensor::PointingProcessorMarkerState".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,343: Line 1,343:
| 0x10 || 0x1 || PointingStatus
| 0x10 || 0x1 || PointingStatus
|-
|-
| 0x11 || 0x3 || Reserved
| 0x11 || 0xB || Reserved
|-
| 0x1C || 0x4 || float PositionX
|-
| 0x20 || 0x4 || float PositionY
|-
|-
| 0x14 || 0x1C || Position
| 0x24 || 0xC || Reserved
|-
|-
| 0x30 || 0x1 || PointingStatus
| 0x30 || 0x1 || PointingStatus
|-
|-
| 0x31 || 0x3 || Reserved
| 0x31 || 0xB || Reserved
|-
|-
| 0x34 || 0x1C || Position
| 0x3C || 0x4 || float PositionX
|-
| 0x40 || 0x4 || float PositionY
|-
| 0x44 || 0xC || Reserved
|-
|-
| 0x50 || 0x1 || PointingStatus
| 0x50 || 0x1 || PointingStatus
|-
|-
| 0x51 || 0x3 || Reserved
| 0x51 || 0xB || Reserved
|-
| 0x5C || 0x4 || float PositionX
|-
| 0x60 || 0x4 || float PositionY
|-
| 0x64 || 0xC || Reserved
|}
 
===== PointingProcessorState =====
This is "nn::irsensor::PointingProcessorState".
 
This is created from [[#PointingProcessorMarkerState]].
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x8 || SamplingNumber
|-
|-
| 0x54 || 0x1C || Position
| 0x8 || 0x8 || TimeStamp
|-
| 0x10 || 0x4 || PointingStatus
|-
| 0x14 || 0x4 || float PositionX
|-
| 0x18 || 0x4 || float PositionY
|-
| 0x1C || 0x4 || Reserved
|}
|}


Line 2,630: Line 2,664:


= IrCameraHandle =
= IrCameraHandle =
This is "nn::irsensor::IrCameraHandle". This is an u32.
This is "nn::irsensor::IrCameraHandle".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,644: Line 2,678:


= IrCameraStatus =
= IrCameraStatus =
This is "nn::irsensor::IrCameraStatus". This is an u32.
This is "nn::irsensor::IrCameraStatus".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,658: Line 2,692:


= IrCameraInternalStatus =
= IrCameraInternalStatus =
This is "nn::irsensor::IrCameraInternalStatus". This is an u32.
This is "nn::irsensor::IrCameraInternalStatus".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,684: Line 2,718:


= IrSensorMode =
= IrSensorMode =
This is "nn::irsensor::detail::StatusManager::IrSensorMode". This is an u32.
This is "nn::irsensor::detail::StatusManager::IrSensorMode".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,698: Line 2,732:
| 3 || [[#ImageTransferProcessorState|ImageTransferProcessor]]
| 3 || [[#ImageTransferProcessorState|ImageTransferProcessor]]
|-
|-
| 4 || [[#PointingProcessorState|PointingProcessor]]
| 4 || [[#PointingProcessorMarkerState|PointingProcessorMarker]]
|-
|-
| 5 || [[#TeraPluginProcessorState|TeraPluginProcessor]]
| 5 || [[#TeraPluginProcessorState|TeraPluginProcessor]]
Line 2,706: Line 2,740:


= ImageProcessorStatus =
= ImageProcessorStatus =
This is "nn::irsensor::ImageProcessorStatus". This is an u32.
This is "nn::irsensor::ImageProcessorStatus".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,718: Line 2,752:


= ImageTransferProcessorFormat =
= ImageTransferProcessorFormat =
This is "nn::irsensor::ImageTransferProcessorFormat". This is an u32.
This is "nn::irsensor::ImageTransferProcessorFormat".


This controls the IR Sensor image resolution.
This controls the IR Sensor image resolution.
Line 2,768: Line 2,802:


= PackedMomentProcessorConfig =
= PackedMomentProcessorConfig =
This is "nn::irsensor::PackedMomentProcessorConfig". This is a 0x20-byte struct.  
This is "nn::irsensor::PackedMomentProcessorConfig".


This is converted from [[#MomentProcessorConfig]].
This is converted from [[#MomentProcessorConfig]].
Line 2,838: Line 2,872:


= PackedClusteringProcessorConfig =
= PackedClusteringProcessorConfig =
This is "nn::irsensor::PackedClusteringProcessorConfig". This is a 0x28-byte struct.
This is "nn::irsensor::PackedClusteringProcessorConfig".


This is converted from [[#ClusteringProcessorConfig]].
This is converted from [[#ClusteringProcessorConfig]].
Line 2,898: Line 2,932:


= PackedImageTransferProcessorConfig =
= PackedImageTransferProcessorConfig =
This is "nn::irsensor::PackedImageTransferProcessorConfig". This is a 0x18-byte struct.
This is "nn::irsensor::PackedImageTransferProcessorConfig".


This is converted from [[#ImageTransferProcessorConfig]].
This is converted from [[#ImageTransferProcessorConfig]].
Line 2,924: Line 2,958:


= ImageTransferProcessorState =
= ImageTransferProcessorState =
This is "nn::irsensor::ImageTransferProcessorState". This is a 0x10-byte struct.
This is "nn::irsensor::ImageTransferProcessorState".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,954: Line 2,988:


= PackedTeraPluginProcessorConfig =
= PackedTeraPluginProcessorConfig =
This is "nn::irsensor::PackedTeraPluginProcessorConfig". This is a 0x8-byte struct.
This is "nn::irsensor::PackedTeraPluginProcessorConfig".


This is converted from [[#TeraPluginProcessorConfig]]. The data starting at offset 0x5 is only initialized by the user-process with [6.0.0+].
This is converted from [[#TeraPluginProcessorConfig]]. The data starting at offset 0x5 is only initialized by the user-process with [6.0.0+].
Line 2,973: Line 3,007:
|-
|-
| 0x7 || 0x1 ||  
| 0x7 || 0x1 ||  
|}
= PointingProcessorConfig =
This is "nn::irsensor::PointingProcessorConfig".
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || WindowOfInterestX (default is 0)
|-
| 0x2 || 0x2 || WindowOfInterestY (default is 0)
|-
| 0x4 || 0x2 || WindowOfInterestWidth (default is 320)
|-
| 0x6 || 0x2 || WindowOfInterestHeight (default is 240)
|}
|}


= PackedPointingProcessorConfig =
= PackedPointingProcessorConfig =
This is "nn::irsensor::PackedPointingProcessorConfig". This is a 0xC-byte struct.
This is "nn::irsensor::PackedPointingProcessorConfig".
 
This is converted from [[#PointingProcessorConfig]].


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,982: Line 3,034:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x2 || WindowOfInterestX? (default is 0)
| 0x0 || 0x2 || WindowOfInterestX (default is 0)
|-
|-
| 0x2 || 0x2 || WindowOfInterestY? (default is 0)
| 0x2 || 0x2 || WindowOfInterestY (default is 0)
|-
|-
| 0x4 || 0x2 || WindowOfInterestWidth? (default is 320)
| 0x4 || 0x2 || WindowOfInterestWidth (default is 320)
|-
|-
| 0x6 || 0x2 || WindowOfInterestHeight? (default is 240)
| 0x6 || 0x2 || WindowOfInterestHeight (default is 240)
|-
|-
| 0x8 || 0x4 || [[#PackedMcuVersion|RequiredMcuVersion]]
| 0x8 || 0x4 || [[#PackedMcuVersion|RequiredMcuVersion]]
Line 2,994: Line 3,046:


= PackedMcuVersion =
= PackedMcuVersion =
This is "nn::irsensor::PackedMcuVersion". This is an u32.
This is "nn::irsensor::PackedMcuVersion".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 3,080: Line 3,132:


= PackedImageTransferProcessorExConfig =
= PackedImageTransferProcessorExConfig =
This is "nn::irsensor::PackedImageTransferProcessorExConfig". This is a 0x20-byte struct.
This is "nn::irsensor::PackedImageTransferProcessorExConfig".


This is converted from [[#ImageTransferProcessorExConfig]].
This is converted from [[#ImageTransferProcessorExConfig]].
Line 3,124: Line 3,176:


= PackedIrLedProcessorConfig =
= PackedIrLedProcessorConfig =
This is "nn::irsensor::PackedIrLedProcessorConfig". This is a 0x8-byte struct.
This is "nn::irsensor::PackedIrLedProcessorConfig".


This is converted from [[#IrLedProcessorConfig]].
This is converted from [[#IrLedProcessorConfig]].
Line 3,212: Line 3,264:


= BusHandle =
= BusHandle =
This is "nn::hidbus::BusHandle". This is 0x8-bytes.
This is "nn::hidbus::BusHandle".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 3,230: Line 3,282:


= JoyPollingReceivedData =
= JoyPollingReceivedData =
This is "nn::hidbus::JoyPollingReceivedData". This is 0x40-bytes.
This is "nn::hidbus::JoyPollingReceivedData".


This is copied from the entries in [[#EnableJoyPollingReceiveMode|TransferMemory]] by GetJoyPollingReceivedData.
This is copied from the entries in [[#EnableJoyPollingReceiveMode|TransferMemory]] by GetJoyPollingReceivedData.
Line 3,246: Line 3,298:


= BusType =
= BusType =
This is "nn::hidbus::BusType". This is an u32.
This is "nn::hidbus::BusType".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 3,260: Line 3,312:


= JoyPollingMode =
= JoyPollingMode =
This is "nn::hidbus::JoyPollingMode". This is an u32. This must be one of the below values otherwise [[#EnableJoyPollingReceiveMode]] will assert.
This is "nn::hidbus::JoyPollingMode".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 3,272: Line 3,324:
| 2 || [6.0.0+] sdknso uses <code>GetJoyButtonOnlyPollingDataAccessor</code> with this.
| 2 || [6.0.0+] sdknso uses <code>GetJoyButtonOnlyPollingDataAccessor</code> with this.
|}
|}
Other values causes [[#EnableJoyPollingReceiveMode]] to assert.


= ExternalDevices =
= ExternalDevices =