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 = |