Ejemplo n.º 1
0
        // 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);
        }
Ejemplo n.º 2
0
        private ResultCode CheckCameraHandle(IrCameraHandle irCameraHandle)
        {
            if (irCameraHandle.DeviceType == 1 || (PlayerIndex)irCameraHandle.PlayerNumber >= PlayerIndex.Unknown)
            {
                return(ResultCode.InvalidCameraHandle);
            }

            return(ResultCode.Success);
        }
Ejemplo n.º 3
0
        // 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);
        }
Ejemplo n.º 4
0
        // 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);
        }