[CommandHipc(2102)] // 5.0.0+
        // ConvertScalingMode(u32 source_scaling_mode) -> u64 destination_scaling_mode
        public ResultCode ConvertScalingMode(ServiceCtx context)
        {
            SourceScalingMode scalingMode = (SourceScalingMode)context.RequestData.ReadInt32();

            DestinationScalingMode?convertedScalingMode = scalingMode switch
            {
                SourceScalingMode.None => DestinationScalingMode.None,
                SourceScalingMode.Freeze => DestinationScalingMode.Freeze,
                SourceScalingMode.ScaleAndCrop => DestinationScalingMode.ScaleAndCrop,
                SourceScalingMode.ScaleToWindow => DestinationScalingMode.ScaleToWindow,
                SourceScalingMode.PreserveAspectRatio => DestinationScalingMode.PreserveAspectRatio,
                _ => null,
            };

            if (!convertedScalingMode.HasValue)
            {
                // Scaling mode out of the range of valid values.
                return(ResultCode.InvalidArguments);
            }

            if (scalingMode != SourceScalingMode.ScaleToWindow && scalingMode != SourceScalingMode.PreserveAspectRatio)
            {
                // Invalid scaling mode specified.
                return(ResultCode.InvalidScalingMode);
            }

            context.ResponseData.Write((ulong)convertedScalingMode);

            return(ResultCode.Success);
        }
        private DestinationScalingMode?ConvertScalingMode(SourceScalingMode source)
        {
            switch (source)
            {
            case SourceScalingMode.None:                return(DestinationScalingMode.None);

            case SourceScalingMode.Freeze:              return(DestinationScalingMode.Freeze);

            case SourceScalingMode.ScaleAndCrop:        return(DestinationScalingMode.ScaleAndCrop);

            case SourceScalingMode.ScaleToWindow:       return(DestinationScalingMode.ScaleToWindow);

            case SourceScalingMode.PreserveAspectRatio: return(DestinationScalingMode.PreserveAspectRatio);
            }

            return(null);
        }