// GetImageTransferProcessorState(pid, nn::irsensor::IrCameraHandle, nn::applet::AppletResourceUserId) public ResultCode GetImageTransferProcessorState(ServiceCtx context) { IrCameraHandle irCameraHandle = context.RequestData.ReadStruct <IrCameraHandle>(); ulong appletResourceUserId = context.RequestData.ReadUInt64(); // ulong imageTransferBufferAddress = context.Request.ReceiveBuff[0].Position; ulong imageTransferBufferSize = context.Request.ReceiveBuff[0].Size; if (imageTransferBufferSize == 0) { return(ResultCode.InvalidBufferSize); } CheckCameraHandle(irCameraHandle); Logger.Stub?.PrintStub(LogClass.ServiceIrs, new { appletResourceUserId, irCameraHandle.PlayerNumber, irCameraHandle.DeviceType }); // TODO: Uses the buffer to copy the JoyCon IR data (by using a JoyCon driver) and update the following struct. context.ResponseData.WriteStruct(new ImageTransferProcessorState() { SamplingNumber = 0, AmbientNoiseLevel = 0 }); return(ResultCode.Success); }
private ResultCode CheckCameraHandle(IrCameraHandle irCameraHandle) { if (irCameraHandle.DeviceType == 1 || (PlayerIndex)irCameraHandle.PlayerNumber >= PlayerIndex.Unknown) { return(ResultCode.InvalidCameraHandle); } return(ResultCode.Success); }
// StopImageProcessor(pid, nn::irsensor::IrCameraHandle, nn::applet::AppletResourceUserId) public ResultCode StopImageProcessor(ServiceCtx context) { IrCameraHandle irCameraHandle = context.RequestData.ReadStruct <IrCameraHandle>(); ulong appletResourceUserId = context.RequestData.ReadUInt64(); CheckCameraHandle(irCameraHandle); Logger.Stub?.PrintStub(LogClass.ServiceIrs, new { appletResourceUserId, irCameraHandle.PlayerNumber, irCameraHandle.DeviceType }); return(ResultCode.Success); }
// RunClusteringProcessor(pid, nn::irsensor::IrCameraHandle, nn::applet::AppletResourceUserId, PackedClusteringProcessorConfig) public ResultCode RunClusteringProcessor(ServiceCtx context) { IrCameraHandle irCameraHandle = context.RequestData.ReadStruct <IrCameraHandle>(); ulong appletResourceUserId = context.RequestData.ReadUInt64(); var packedClusteringProcessorConfig = context.RequestData.ReadStruct <PackedClusteringProcessorConfig>(); CheckCameraHandle(irCameraHandle); Logger.Stub?.PrintStub(LogClass.ServiceIrs, new { appletResourceUserId, irCameraHandle.PlayerNumber, irCameraHandle.DeviceType, packedClusteringProcessorConfig.ExposureTime }); return(ResultCode.Success); }