HID services: Difference between revisions
No edit summary |
|||
Line 1,179: | Line 1,179: | ||
| 314 || [3.0.0+] [[#CheckFirmwareVersion]] | | 314 || [3.0.0+] [[#CheckFirmwareVersion]] | ||
|- | |- | ||
| 315 || [4.0.0+] SetFunctionLevel | | 315 || [4.0.0+] [[#SetFunctionLevel]] | ||
|- | |- | ||
| 316 || [4.0.0+] RunImageTransferExProcessor | | 316 || [4.0.0+] [[#RunImageTransferExProcessor]] | ||
|- | |- | ||
| 317 || [4.0.0+] RunIrLedProcessor | | 317 || [4.0.0+] [[#RunIrLedProcessor]] | ||
|- | |- | ||
| 318 || [4.0.0+] StopImageProcessorAsync | | 318 || [4.0.0+] [[#StopImageProcessorAsync]] | ||
|- | |- | ||
| 319 || [4.0.0+] ActivateIrsensorWithFunctionLevel | | 319 || [4.0.0+] [[#ActivateIrsensorWithFunctionLevel]] | ||
|} | |} | ||
Line 1,222: | Line 1,222: | ||
== GetNpadIrCameraHandle == | == GetNpadIrCameraHandle == | ||
Takes an input | Takes an input [[#NpadIdType]]. Returns an output [[#IrCameraHandle]]. | ||
== RunPointingProcessor == | == RunPointingProcessor == | ||
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[# | Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedPointingProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output. | ||
== SuspendImageProcessor == | == SuspendImageProcessor == | ||
Line 1,233: | Line 1,233: | ||
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedMcuVersion]], and an [[AM_services|AppletResourceUserId]]. No output. | Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedMcuVersion]], and an [[AM_services|AppletResourceUserId]]. No output. | ||
== | == SetFunctionLevel == | ||
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedFunctionLevel]], and an [[AM_services|AppletResourceUserId]]. No output. | |||
== | == RunImageTransferExProcessor == | ||
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], a [[#PackedImageTransferProcessorExConfig]], an u64 for the TransferMemory_size, and a TransferMemory handle. No output. | |||
= | Official sw creates the TransferMemory with an user-specified buffer and permissions=0. | ||
== | == RunIrLedProcessor == | ||
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedIrLedProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output. | |||
== | == StopImageProcessorAsync == | ||
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output. | |||
== | == ActivateIrsensorWithFunctionLevel == | ||
Takes a PID-descriptor, an [[#PackedFunctionLevel]], and an [[AM_services|AppletResourceUserId]]. No output. | |||
= irs:sys = | = irs:sys = | ||
Line 1,258: | Line 1,257: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 500 || SetAppletResourceUserId | | 500 || [[#SetAppletResourceUserId]] | ||
|- | |- | ||
| 501 || RegisterAppletResourceUserId | | 501 || [[#RegisterAppletResourceUserId]] | ||
|- | |- | ||
| 502 || UnregisterAppletResourceUserId | | 502 || [[#UnregisterAppletResourceUserId]] | ||
|- | |- | ||
| 503 || EnableAppletToGetInput | | 503 || [[#EnableAppletToGetInput]] | ||
|} | |} | ||
== SetAppletResourceUserId == | |||
Takes an [[AM_services|AppletResourceUserId]]. No output. | |||
== RegisterAppletResourceUserId == | |||
Takes a bool and an [[AM_services|AppletResourceUserId]]. No output. | |||
== UnregisterAppletResourceUserId == | |||
Takes an [[AM_services|AppletResourceUserId]]. No output. | |||
== EnableAppletToGetInput == | |||
Takes a bool and an [[AM_services|AppletResourceUserId]]. No output. | |||
= ahid:cd = | = ahid:cd = | ||
Line 2,341: | Line 2,352: | ||
= PackedMomentProcessorConfig = | = PackedMomentProcessorConfig = | ||
This is a 0x20-byte struct. This is | This is "nn::irsensor::PackedMomentProcessorConfig". This is a 0x20-byte struct. | ||
{| class="wikitable" border="1" | |||
|- | |||
! Offset || Size || Description | |||
|- | |||
| 0x0 || 0x8 || ExposureTime (default is 0x493E0) | |||
|- | |||
| 0x8 || 0x1 || LightTarget (default is 0) | |||
|- | |||
| 0x9 || 0x1 || Gain (default is 0x8) | |||
|- | |||
| 0xA || 0x1 || IsNegativeImageUsed (default is 0) | |||
|- | |||
| 0xB || 0x5 || Padding | |||
|- | |||
| 0x10 || 0x2 || WindowOfInterestX (default is 0) | |||
|- | |||
| 0x12 || 0x2 || WindowOfInterestY (default is 0) | |||
|- | |||
| 0x14 || 0x2 || WindowOfInterestWidth (default is 0x140) | |||
|- | |||
| 0x16 || 0x2 || WindowOfInterestHeight (default is 0xF0) | |||
|- | |||
| 0x18 || 0x4 || Unknown (always 0xA0003) | |||
|- | |||
| 0x1C || 0x1 || Preprocess (default is 0x1) | |||
|- | |||
| 0x1D || 0x1 || PreprocessIntensityThreshold (default is 0x50) | |||
|- | |||
| 0x1E || 0x2 || Padding | |||
|} | |||
= PackedClusteringProcessorConfig = | |||
This is "nn::irsensor::PackedClusteringProcessorConfig". This is a 0x28-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset || Size || Description | |||
|- | |||
| 0x0 || 0x8 || ExposureTime | |||
|- | |||
| 0x8 || 0x1 || LightTarget | |||
|- | |||
| 0x9 || 0x1 || Gain | |||
|- | |||
| 0xA || 0x1 || IsNegativeImageUsed | |||
|- | |||
| 0xB || 0x5 || Padding | |||
|- | |||
| 0x10 || 0x2 || WindowOfInterestX | |||
|- | |||
| 0x12 || 0x2 || WindowOfInterestY | |||
|- | |||
| 0x14 || 0x2 || WindowOfInterestWidth | |||
|- | |||
| 0x16 || 0x2 || WindowOfInterestHeight | |||
|- | |||
| 0x18 || 0x4 || Unknown (always 0xA0003) | |||
|- | |||
| 0x1C || 0x4 || ObjectPixelCountMin | |||
|- | |||
| 0x20 || 0x4 || ObjectPixelCountMax | |||
|- | |||
| 0x24 || 0x1 || ObjectIntensityMin | |||
|- | |||
| 0x25 || 0x1 || IsExternalLightFilterEnabled | |||
|- | |||
| 0x26 || 0x2 || Padding | |||
|} | |||
= PackedImageTransferProcessorConfig = | |||
This is "nn::irsensor::PackedImageTransferProcessorConfig". This is a 0x18-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset || Size || Description | |||
|- | |||
| 0x0 || 0x8 || ExposureTime | |||
|- | |||
| 0x8 || 0x1 || LightTarget | |||
|- | |||
| 0x9 || 0x1 || Gain | |||
|- | |||
| 0xA || 0x1 || IsNegativeImageUsed | |||
|- | |||
| 0xB || 0x5 || Padding | |||
|- | |||
| 0x10 || 0x4 || Unknown (always 0xA0003) | |||
|- | |||
| 0x14 || 0x1 || Format | |||
|- | |||
| 0x15 || 0x3 || Padding | |||
|} | |||
= ImageTransferProcessorState = | |||
This is "nn::irsensor::ImageTransferProcessorState". This is a 0x10-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset || Size || Description | |||
|- | |||
| 0x0 || 0x8 || SamplingNumber | |||
|- | |||
| 0x8 || 0x1 || AmbientNoiseLevel | |||
|- | |||
| 0x9 || 0x7 || Padding | |||
|} | |||
= PackedTeraPluginProcessorConfig = | |||
This is "nn::irsensor::PackedTeraPluginProcessorConfig". This is an u64. | |||
= PackedPointingProcessorConfig = | |||
This is "nn::irsensor::PackedPointingProcessorConfig". This is a 0x10-byte struct. | |||
= PackedMcuVersion = | |||
This is "nn::irsensor::PackedMcuVersion". This is an u32. | |||
= PackedFunctionLevel = | |||
This is nn::irsensor::PackedFunctionLevel. This is an u32. | |||
= PackedImageTransferProcessorExConfig = | |||
This is "nn::irsensor::PackedImageTransferProcessorExConfig". This is a 0x20-byte struct. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Offset || Size || Description | ! Offset || Size || Description | ||
|- | |- | ||
| 0x0 || 0x8 || | | 0x0 || 0x8 || ExposureTime | ||
|- | |- | ||
| 0x8 || 0x1 || | | 0x8 || 0x1 || LightTarget | ||
|- | |- | ||
| 0x9 || 0x1 || | | 0x9 || 0x1 || Gain | ||
|- | |- | ||
| 0xA || 0x1 || | | 0xA || 0x1 || IsNegativeImageUsed | ||
|- | |- | ||
| 0xB || 0x5 || Padding | | 0xB || 0x5 || Padding | ||
|- | |- | ||
| 0x10 || | | 0x10 || 0x4 || Unknown (always 0xA0003) | ||
|- | |- | ||
| | | 0x14 || 0x1 || OrigFormat | ||
|- | |- | ||
| | | 0x15 || 0x1 || TrimmingFormat | ||
|- | |- | ||
| | | 0x16 || 0x2 || TrimmingStartX | ||
|- | |- | ||
| | | 0x18 || 0x2 || TrimmingStartY | ||
|- | |||
| 0x1A || 0x1 || IsExternalLightFilterEnabled | |||
|- | |||
| 0x1B || 0x5 || Padding | |||
|} | |} | ||
= PackedIrLedProcessorConfig = | |||
This is "nn::irsensor::PackedIrLedProcessorConfig". This is a 0x10-byte struct. | |||
= BusHandle = | = BusHandle = |