////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
// All rights reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: Parameter Parser V7.4.1 (8cca6579792b9fcef3bc725ff070c5ec453c7c85)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  dpp_1_0_0.cpp
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include "dpp_1_0_0.h"
#include "parametersetmanager.h"

DPP_1_0_0_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// SetValue/GetValue Functions
/// Gets or sets the requested value
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
bool chromatix_dpp10_reserveType::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "holes_fill_and_spatial") == 0)
    {
        __result = holes_fill_and_spatial.GetValue(&__path[__pos], __value, __size);
    }

    return __result;
}

bool chromatix_dpp10_reserveType::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "holes_fill_and_spatial") == 0)
    {
        __result = holes_fill_and_spatial.SetValue(&__path[__pos], __value);
    }

    return __result;
}

bool chromatix_dpp10_reserveType::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // holes_fill_and_spatial
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("holes_fill_and_spatial", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "holes_fill_and_spatial") == 0)
    {
        __result = holes_fill_and_spatial.GetInfo(&__path[__pos], __info);
    }

    return __result;
}

bool chromatix_dpp10_reserveType::holes_fill_and_spatialStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_special_border_section_1") == 0)
    {
        ParameterUtils::DoubleToString((double)adapt_lambda_special_border_section_1, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_special_border_section_2") == 0)
    {
        ParameterUtils::DoubleToString((double)adapt_lambda_special_border_section_2, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "special_border_side") == 0)
    {
        ParameterUtils::DoubleToString((double)special_border_side, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_section") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_special_border_close_section, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_1") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_special_border_section_1, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_2") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_special_border_section_2, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_3") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_special_border_section_3, __value, __size);
        __result = true;
    }

    return __result;
}

bool chromatix_dpp10_reserveType::holes_fill_and_spatialStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_special_border_section_1") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            adapt_lambda_special_border_section_1 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_special_border_section_2") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            adapt_lambda_special_border_section_2 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "special_border_side") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            special_border_side = (UINT32)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_section") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_special_border_close_section = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_1") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_special_border_section_1 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_2") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_special_border_section_2 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_3") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_special_border_section_3 = (float)dblValue; 
        }
    }

    return __result;
}

bool chromatix_dpp10_reserveType::holes_fill_and_spatialStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // adapt_lambda_special_border_section_1
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_special_border_section_1", ParameterParserDataType::Float, (double)adapt_lambda_special_border_section_1));
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_special_border_section_1") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)adapt_lambda_special_border_section_1));
    }

    // adapt_lambda_special_border_section_2
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_special_border_section_2", ParameterParserDataType::Float, (double)adapt_lambda_special_border_section_2));
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_special_border_section_2") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)adapt_lambda_special_border_section_2));
    }

    // special_border_side
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("special_border_side", ParameterParserDataType::UInt32, (double)special_border_side, 0));
    }
    else if (PARAMETER_STRCMP(__name, "special_border_side") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)special_border_side, 0));
    }

    // hf_conf_special_border_close_section
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_special_border_close_section", ParameterParserDataType::Float, (double)hf_conf_special_border_close_section));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_section") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_conf_special_border_close_section));
    }

    // hf_special_border_section_1
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_special_border_section_1", ParameterParserDataType::Float, (double)hf_special_border_section_1));
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_1") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_special_border_section_1));
    }

    // hf_special_border_section_2
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_special_border_section_2", ParameterParserDataType::Float, (double)hf_special_border_section_2));
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_2") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_special_border_section_2));
    }

    // hf_special_border_section_3
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_special_border_section_3", ParameterParserDataType::Float, (double)hf_special_border_section_3));
    }
    else if (PARAMETER_STRCMP(__name, "hf_special_border_section_3") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_special_border_section_3));
    }

    return __result;
}

bool dpp10_rgn_dataType::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "processing_enable") == 0)
    {
        __result = processing_enable.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "common_params") == 0)
    {
        __result = common_params.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing") == 0)
    {
        __result = pre_processing.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "holes_fill_and_spatial") == 0)
    {
        __result = holes_fill_and_spatial.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "disparity_map_merge") == 0)
    {
        __result = disparity_map_merge.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "tnr") == 0)
    {
        __result = tnr.GetValue(&__path[__pos], __value, __size);
    }

    return __result;
}

bool dpp10_rgn_dataType::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "processing_enable") == 0)
    {
        __result = processing_enable.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "common_params") == 0)
    {
        __result = common_params.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing") == 0)
    {
        __result = pre_processing.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "holes_fill_and_spatial") == 0)
    {
        __result = holes_fill_and_spatial.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "disparity_map_merge") == 0)
    {
        __result = disparity_map_merge.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "tnr") == 0)
    {
        __result = tnr.SetValue(&__path[__pos], __value);
    }

    return __result;
}

bool dpp10_rgn_dataType::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // processing_enable
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("processing_enable", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "processing_enable") == 0)
    {
        __result = processing_enable.GetInfo(&__path[__pos], __info);
    }

    // common_params
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("common_params", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "common_params") == 0)
    {
        __result = common_params.GetInfo(&__path[__pos], __info);
    }

    // pre_processing
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pre_processing", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing") == 0)
    {
        __result = pre_processing.GetInfo(&__path[__pos], __info);
    }

    // holes_fill_and_spatial
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("holes_fill_and_spatial", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "holes_fill_and_spatial") == 0)
    {
        __result = holes_fill_and_spatial.GetInfo(&__path[__pos], __info);
    }

    // disparity_map_merge
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("disparity_map_merge", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "disparity_map_merge") == 0)
    {
        __result = disparity_map_merge.GetInfo(&__path[__pos], __info);
    }

    // tnr
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("tnr", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "tnr") == 0)
    {
        __result = tnr.GetInfo(&__path[__pos], __info);
    }

    return __result;
}

bool dpp10_rgn_dataType::processing_enableStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "depth_processing_en") == 0)
    {
        ParameterUtils::DoubleToString((double)depth_processing_en, __value, __size, 0);
        __result = true;
    }

    return __result;
}

bool dpp10_rgn_dataType::processing_enableStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "depth_processing_en") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            depth_processing_en = (float)dblValue; 
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::processing_enableStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // depth_processing_en
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("depth_processing_en", ParameterParserDataType::UInt32, (double)depth_processing_en, 0));
    }
    else if (PARAMETER_STRCMP(__name, "depth_processing_en") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)depth_processing_en, 0));
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "focus_roi_disp_calc_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)focus_roi_disp_calc_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "focus_roi_disp_calc_param") == 0)
    {
        ParameterUtils::DoubleToString((double)focus_roi_disp_calc_param, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "disp_map_range_factor") == 0)
    {
        ParameterUtils::DoubleToString((double)disp_map_range_factor, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "lnr_grid_luma_tab") == 0)
    {
        __result = lnr_grid_luma_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "lnr_grid_chroma_tab") == 0)
    {
        __result = lnr_grid_chroma_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_12") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_12, __value, __size);
        __result = true;
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "focus_roi_disp_calc_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            focus_roi_disp_calc_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "focus_roi_disp_calc_param") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            focus_roi_disp_calc_param = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "disp_map_range_factor") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            disp_map_range_factor = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "lnr_grid_luma_tab") == 0)
    {
        __result = lnr_grid_luma_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "lnr_grid_chroma_tab") == 0)
    {
        __result = lnr_grid_chroma_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_12") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_12 = (float)dblValue; 
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // focus_roi_disp_calc_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("focus_roi_disp_calc_mode", ParameterParserDataType::UInt32, (double)focus_roi_disp_calc_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "focus_roi_disp_calc_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)focus_roi_disp_calc_mode, 0));
    }

    // focus_roi_disp_calc_param
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("focus_roi_disp_calc_param", ParameterParserDataType::UInt32, (double)focus_roi_disp_calc_param, 0));
    }
    else if (PARAMETER_STRCMP(__name, "focus_roi_disp_calc_param") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)focus_roi_disp_calc_param, 0));
    }

    // disp_map_range_factor
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("disp_map_range_factor", ParameterParserDataType::Float, (double)disp_map_range_factor));
    }
    else if (PARAMETER_STRCMP(__name, "disp_map_range_factor") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)disp_map_range_factor));
    }

    // lnr_grid_luma_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("lnr_grid_luma_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "lnr_grid_luma_tab") == 0)
    {
        __result = lnr_grid_luma_tab.GetInfo(&__path[__pos], __info);
    }

    // lnr_grid_chroma_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("lnr_grid_chroma_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "lnr_grid_chroma_tab") == 0)
    {
        __result = lnr_grid_chroma_tab.GetInfo(&__path[__pos], __info);
    }

    // reserved_param_12
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_12", ParameterParserDataType::Float, (double)reserved_param_12));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_12") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_12));
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::lnr_grid_luma_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "lnr_grid_luma") == 0)
    {
        if (__index < lnr_grid_lumaFixedCount)
        {
            ParameterUtils::DoubleToString((double)lnr_grid_luma[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < lnr_grid_lumaFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)lnr_grid_luma[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::lnr_grid_luma_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "lnr_grid_luma") == 0)
    {
        if (__index < lnr_grid_lumaFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                lnr_grid_luma[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < lnr_grid_lumaFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    lnr_grid_luma[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::lnr_grid_luma_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // lnr_grid_luma
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("lnr_grid_luma", ParameterParserDataType::Float, true, false, lnr_grid_lumaFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::lnr_grid_chroma_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "lnr_grid_chroma") == 0)
    {
        if (__index < lnr_grid_chromaFixedCount)
        {
            ParameterUtils::DoubleToString((double)lnr_grid_chroma[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < lnr_grid_chromaFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)lnr_grid_chroma[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::lnr_grid_chroma_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "lnr_grid_chroma") == 0)
    {
        if (__index < lnr_grid_chromaFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                lnr_grid_chroma[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < lnr_grid_chromaFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    lnr_grid_chroma[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::common_paramsStruct::lnr_grid_chroma_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // lnr_grid_chroma
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("lnr_grid_chroma", ParameterParserDataType::Float, true, false, lnr_grid_chromaFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::pre_processingStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pre_processing_en") == 0)
    {
        ParameterUtils::DoubleToString((double)pre_processing_en, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)pre_processing_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing_func_tab") == 0)
    {
        __result = pre_processing_func_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_1") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_1, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_2") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_2, __value, __size);
        __result = true;
    }

    return __result;
}

bool dpp10_rgn_dataType::pre_processingStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pre_processing_en") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            pre_processing_en = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            pre_processing_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing_func_tab") == 0)
    {
        __result = pre_processing_func_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_1") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_1 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_2") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_2 = (float)dblValue; 
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::pre_processingStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // pre_processing_en
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pre_processing_en", ParameterParserDataType::UInt32, (double)pre_processing_en, 0));
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing_en") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)pre_processing_en, 0));
    }

    // pre_processing_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pre_processing_mode", ParameterParserDataType::UInt32, (double)pre_processing_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)pre_processing_mode, 0));
    }

    // pre_processing_func_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pre_processing_func_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "pre_processing_func_tab") == 0)
    {
        __result = pre_processing_func_tab.GetInfo(&__path[__pos], __info);
    }

    // reserved_param_1
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_1", ParameterParserDataType::Float, (double)reserved_param_1));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_1") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_1));
    }

    // reserved_param_2
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_2", ParameterParserDataType::Float, (double)reserved_param_2));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_2") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_2));
    }

    return __result;
}

bool dpp10_rgn_dataType::pre_processingStruct::pre_processing_func_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pre_processing_func") == 0)
    {
        if (__index < pre_processing_funcFixedCount)
        {
            ParameterUtils::DoubleToString((double)pre_processing_func[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < pre_processing_funcFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)pre_processing_func[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::pre_processingStruct::pre_processing_func_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pre_processing_func") == 0)
    {
        if (__index < pre_processing_funcFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                pre_processing_func[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < pre_processing_funcFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    pre_processing_func[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::pre_processingStruct::pre_processing_func_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // pre_processing_func
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pre_processing_func", ParameterParserDataType::Float, true, false, pre_processing_funcFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "spatial_filter_en") == 0)
    {
        ParameterUtils::DoubleToString((double)spatial_filter_en, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)spatial_filter_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_sigmas_tab") == 0)
    {
        __result = spatial_filter_sigmas_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_lambdas_tab") == 0)
    {
        __result = spatial_filter_lambdas_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_num_iterations") == 0)
    {
        ParameterUtils::DoubleToString((double)spatial_filter_num_iterations, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "post_spatial_filter_en") == 0)
    {
        ParameterUtils::DoubleToString((double)post_spatial_filter_en, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "post_spatial_filter_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)post_spatial_filter_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_ens_tab") == 0)
    {
        __result = adapt_lambda_ens_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_modes_tab") == 0)
    {
        __result = adapt_lambda_modes_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_sig_func_tab") == 0)
    {
        __result = adapt_lambda_sig_func_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_flat_func_tab") == 0)
    {
        __result = adapt_lambda_flat_func_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "hf_en") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_en, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_lambda") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_lambda, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_sigma") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_sigma, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_adapt_lambda_en") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_adapt_lambda_en, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_adapt_lambda_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_adapt_lambda_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_hor") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_special_border_close_hor, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_ver") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_special_border_close_ver, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_low_thresh") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_low_thresh, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_high_thresh") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_high_thresh, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_low") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_hist_low, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_high") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_hist_high, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_close_hor") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_hist_close_hor, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_close_ver") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_conf_hist_close_ver, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "hf_and_spatial_chroma_saturation_factor") == 0)
    {
        ParameterUtils::DoubleToString((double)hf_and_spatial_chroma_saturation_factor, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_3") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_3, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_4") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_4, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_5") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_5, __value, __size);
        __result = true;
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "spatial_filter_en") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            spatial_filter_en = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            spatial_filter_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_sigmas_tab") == 0)
    {
        __result = spatial_filter_sigmas_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_lambdas_tab") == 0)
    {
        __result = spatial_filter_lambdas_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_num_iterations") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            spatial_filter_num_iterations = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "post_spatial_filter_en") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            post_spatial_filter_en = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "post_spatial_filter_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            post_spatial_filter_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_ens_tab") == 0)
    {
        __result = adapt_lambda_ens_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_modes_tab") == 0)
    {
        __result = adapt_lambda_modes_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_sig_func_tab") == 0)
    {
        __result = adapt_lambda_sig_func_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_flat_func_tab") == 0)
    {
        __result = adapt_lambda_flat_func_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "hf_en") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_en = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_lambda") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_lambda = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_sigma") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_sigma = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_adapt_lambda_en") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_adapt_lambda_en = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_adapt_lambda_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_adapt_lambda_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_hor") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_special_border_close_hor = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_ver") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_special_border_close_ver = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_low_thresh") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_low_thresh = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_high_thresh") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_high_thresh = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_low") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_hist_low = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_high") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_hist_high = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_close_hor") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_hist_close_hor = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_close_ver") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_conf_hist_close_ver = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "hf_and_spatial_chroma_saturation_factor") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            hf_and_spatial_chroma_saturation_factor = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_3") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_3 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_4") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_4 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_5") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_5 = (float)dblValue; 
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // spatial_filter_en
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("spatial_filter_en", ParameterParserDataType::UInt32, (double)spatial_filter_en, 0));
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_en") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)spatial_filter_en, 0));
    }

    // spatial_filter_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("spatial_filter_mode", ParameterParserDataType::UInt32, (double)spatial_filter_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)spatial_filter_mode, 0));
    }

    // spatial_filter_sigmas_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("spatial_filter_sigmas_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_sigmas_tab") == 0)
    {
        __result = spatial_filter_sigmas_tab.GetInfo(&__path[__pos], __info);
    }

    // spatial_filter_lambdas_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("spatial_filter_lambdas_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_lambdas_tab") == 0)
    {
        __result = spatial_filter_lambdas_tab.GetInfo(&__path[__pos], __info);
    }

    // spatial_filter_num_iterations
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("spatial_filter_num_iterations", ParameterParserDataType::UInt32, (double)spatial_filter_num_iterations, 0));
    }
    else if (PARAMETER_STRCMP(__name, "spatial_filter_num_iterations") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)spatial_filter_num_iterations, 0));
    }

    // post_spatial_filter_en
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("post_spatial_filter_en", ParameterParserDataType::UInt32, (double)post_spatial_filter_en, 0));
    }
    else if (PARAMETER_STRCMP(__name, "post_spatial_filter_en") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)post_spatial_filter_en, 0));
    }

    // post_spatial_filter_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("post_spatial_filter_mode", ParameterParserDataType::UInt32, (double)post_spatial_filter_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "post_spatial_filter_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)post_spatial_filter_mode, 0));
    }

    // adapt_lambda_ens_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_ens_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_ens_tab") == 0)
    {
        __result = adapt_lambda_ens_tab.GetInfo(&__path[__pos], __info);
    }

    // adapt_lambda_modes_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_modes_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_modes_tab") == 0)
    {
        __result = adapt_lambda_modes_tab.GetInfo(&__path[__pos], __info);
    }

    // adapt_lambda_sig_func_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_sig_func_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_sig_func_tab") == 0)
    {
        __result = adapt_lambda_sig_func_tab.GetInfo(&__path[__pos], __info);
    }

    // adapt_lambda_flat_func_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_flat_func_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "adapt_lambda_flat_func_tab") == 0)
    {
        __result = adapt_lambda_flat_func_tab.GetInfo(&__path[__pos], __info);
    }

    // hf_en
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_en", ParameterParserDataType::UInt32, (double)hf_en, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_en") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_en, 0));
    }

    // hf_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_mode", ParameterParserDataType::UInt32, (double)hf_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_mode, 0));
    }

    // hf_lambda
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_lambda", ParameterParserDataType::Float, (double)hf_lambda));
    }
    else if (PARAMETER_STRCMP(__name, "hf_lambda") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_lambda));
    }

    // hf_sigma
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_sigma", ParameterParserDataType::Float, (double)hf_sigma));
    }
    else if (PARAMETER_STRCMP(__name, "hf_sigma") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_sigma));
    }

    // hf_adapt_lambda_en
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_adapt_lambda_en", ParameterParserDataType::UInt32, (double)hf_adapt_lambda_en, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_adapt_lambda_en") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_adapt_lambda_en, 0));
    }

    // hf_adapt_lambda_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_adapt_lambda_mode", ParameterParserDataType::UInt32, (double)hf_adapt_lambda_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_adapt_lambda_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_adapt_lambda_mode, 0));
    }

    // hf_conf_special_border_close_hor
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_special_border_close_hor", ParameterParserDataType::UInt32, (double)hf_conf_special_border_close_hor, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_hor") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_conf_special_border_close_hor, 0));
    }

    // hf_conf_special_border_close_ver
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_special_border_close_ver", ParameterParserDataType::UInt32, (double)hf_conf_special_border_close_ver, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_special_border_close_ver") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_conf_special_border_close_ver, 0));
    }

    // hf_conf_low_thresh
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_low_thresh", ParameterParserDataType::UInt32, (double)hf_conf_low_thresh, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_low_thresh") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_conf_low_thresh, 0));
    }

    // hf_conf_high_thresh
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_high_thresh", ParameterParserDataType::UInt32, (double)hf_conf_high_thresh, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_high_thresh") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_conf_high_thresh, 0));
    }

    // hf_conf_hist_low
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_hist_low", ParameterParserDataType::Float, (double)hf_conf_hist_low));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_low") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_conf_hist_low));
    }

    // hf_conf_hist_high
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_hist_high", ParameterParserDataType::Float, (double)hf_conf_hist_high));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_high") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_conf_hist_high));
    }

    // hf_conf_hist_close_hor
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_hist_close_hor", ParameterParserDataType::UInt32, (double)hf_conf_hist_close_hor, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_close_hor") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_conf_hist_close_hor, 0));
    }

    // hf_conf_hist_close_ver
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_conf_hist_close_ver", ParameterParserDataType::UInt32, (double)hf_conf_hist_close_ver, 0));
    }
    else if (PARAMETER_STRCMP(__name, "hf_conf_hist_close_ver") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)hf_conf_hist_close_ver, 0));
    }

    // hf_and_spatial_chroma_saturation_factor
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hf_and_spatial_chroma_saturation_factor", ParameterParserDataType::Float, (double)hf_and_spatial_chroma_saturation_factor));
    }
    else if (PARAMETER_STRCMP(__name, "hf_and_spatial_chroma_saturation_factor") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)hf_and_spatial_chroma_saturation_factor));
    }

    // reserved_param_3
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_3", ParameterParserDataType::Float, (double)reserved_param_3));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_3") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_3));
    }

    // reserved_param_4
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_4", ParameterParserDataType::Float, (double)reserved_param_4));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_4") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_4));
    }

    // reserved_param_5
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_5", ParameterParserDataType::Float, (double)reserved_param_5));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_5") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_5));
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_sigmas_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "spatial_filter_sigmas") == 0)
    {
        if (__index < spatial_filter_sigmasFixedCount)
        {
            ParameterUtils::DoubleToString((double)spatial_filter_sigmas[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < spatial_filter_sigmasFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)spatial_filter_sigmas[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_sigmas_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "spatial_filter_sigmas") == 0)
    {
        if (__index < spatial_filter_sigmasFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                spatial_filter_sigmas[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < spatial_filter_sigmasFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    spatial_filter_sigmas[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_sigmas_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // spatial_filter_sigmas
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("spatial_filter_sigmas", ParameterParserDataType::Float, true, false, spatial_filter_sigmasFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_lambdas_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "spatial_filter_lambdas") == 0)
    {
        if (__index < spatial_filter_lambdasFixedCount)
        {
            ParameterUtils::DoubleToString((double)spatial_filter_lambdas[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < spatial_filter_lambdasFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)spatial_filter_lambdas[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_lambdas_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "spatial_filter_lambdas") == 0)
    {
        if (__index < spatial_filter_lambdasFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                spatial_filter_lambdas[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < spatial_filter_lambdasFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    spatial_filter_lambdas[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_lambdas_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // spatial_filter_lambdas
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("spatial_filter_lambdas", ParameterParserDataType::Float, true, false, spatial_filter_lambdasFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_ens_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_ens") == 0)
    {
        if (__index < adapt_lambda_ensFixedCount)
        {
            ParameterUtils::DoubleToString((double)adapt_lambda_ens[__index], __value, __size, 0);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < adapt_lambda_ensFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)adapt_lambda_ens[i], &__value[__valuePos], (INT32)(__size - __valuePos), 0);
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_ens_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_ens") == 0)
    {
        if (__index < adapt_lambda_ensFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                adapt_lambda_ens[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < adapt_lambda_ensFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    adapt_lambda_ens[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_ens_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // adapt_lambda_ens
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_ens", ParameterParserDataType::UInt32, true, false, adapt_lambda_ensFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_modes_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_modes") == 0)
    {
        if (__index < adapt_lambda_modesFixedCount)
        {
            ParameterUtils::DoubleToString((double)adapt_lambda_modes[__index], __value, __size, 0);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < adapt_lambda_modesFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)adapt_lambda_modes[i], &__value[__valuePos], (INT32)(__size - __valuePos), 0);
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_modes_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_modes") == 0)
    {
        if (__index < adapt_lambda_modesFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                adapt_lambda_modes[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < adapt_lambda_modesFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    adapt_lambda_modes[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_modes_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // adapt_lambda_modes
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_modes", ParameterParserDataType::UInt32, true, false, adapt_lambda_modesFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_sig_func_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_sig_func") == 0)
    {
        if (__index < adapt_lambda_sig_funcFixedCount)
        {
            ParameterUtils::DoubleToString((double)adapt_lambda_sig_func[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < adapt_lambda_sig_funcFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)adapt_lambda_sig_func[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_sig_func_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_sig_func") == 0)
    {
        if (__index < adapt_lambda_sig_funcFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                adapt_lambda_sig_func[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < adapt_lambda_sig_funcFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    adapt_lambda_sig_func[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_sig_func_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // adapt_lambda_sig_func
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_sig_func", ParameterParserDataType::Float, true, false, adapt_lambda_sig_funcFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_flat_func_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_flat_func") == 0)
    {
        if (__index < adapt_lambda_flat_funcFixedCount)
        {
            ParameterUtils::DoubleToString((double)adapt_lambda_flat_func[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < adapt_lambda_flat_funcFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)adapt_lambda_flat_func[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_flat_func_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "adapt_lambda_flat_func") == 0)
    {
        if (__index < adapt_lambda_flat_funcFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                adapt_lambda_flat_func[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < adapt_lambda_flat_funcFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    adapt_lambda_flat_func[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_flat_func_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // adapt_lambda_flat_func
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("adapt_lambda_flat_func", ParameterParserDataType::Float, true, false, adapt_lambda_flat_funcFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::disparity_map_mergeStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pd_merge_en") == 0)
    {
        ParameterUtils::DoubleToString((double)pd_merge_en, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "pd_merge_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)pd_merge_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "pd_merge_level") == 0)
    {
        ParameterUtils::DoubleToString((double)pd_merge_level, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "pd_map_func_tab") == 0)
    {
        __result = pd_map_func_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_6") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_6, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_7") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_7, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_8") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_8, __value, __size);
        __result = true;
    }

    return __result;
}

bool dpp10_rgn_dataType::disparity_map_mergeStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pd_merge_en") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            pd_merge_en = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "pd_merge_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            pd_merge_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "pd_merge_level") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            pd_merge_level = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "pd_map_func_tab") == 0)
    {
        __result = pd_map_func_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_6") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_6 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_7") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_7 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_8") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_8 = (float)dblValue; 
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::disparity_map_mergeStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // pd_merge_en
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pd_merge_en", ParameterParserDataType::UInt32, (double)pd_merge_en, 0));
    }
    else if (PARAMETER_STRCMP(__name, "pd_merge_en") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)pd_merge_en, 0));
    }

    // pd_merge_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pd_merge_mode", ParameterParserDataType::UInt32, (double)pd_merge_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "pd_merge_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)pd_merge_mode, 0));
    }

    // pd_merge_level
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pd_merge_level", ParameterParserDataType::Float, (double)pd_merge_level));
    }
    else if (PARAMETER_STRCMP(__name, "pd_merge_level") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)pd_merge_level));
    }

    // pd_map_func_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pd_map_func_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "pd_map_func_tab") == 0)
    {
        __result = pd_map_func_tab.GetInfo(&__path[__pos], __info);
    }

    // reserved_param_6
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_6", ParameterParserDataType::Float, (double)reserved_param_6));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_6") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_6));
    }

    // reserved_param_7
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_7", ParameterParserDataType::Float, (double)reserved_param_7));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_7") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_7));
    }

    // reserved_param_8
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_8", ParameterParserDataType::Float, (double)reserved_param_8));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_8") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_8));
    }

    return __result;
}

bool dpp10_rgn_dataType::disparity_map_mergeStruct::pd_map_func_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pd_map_func") == 0)
    {
        if (__index < pd_map_funcFixedCount)
        {
            ParameterUtils::DoubleToString((double)pd_map_func[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < pd_map_funcFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)pd_map_func[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::disparity_map_mergeStruct::pd_map_func_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pd_map_func") == 0)
    {
        if (__index < pd_map_funcFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                pd_map_func[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < pd_map_funcFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    pd_map_func[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::disparity_map_mergeStruct::pd_map_func_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // pd_map_func
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pd_map_func", ParameterParserDataType::Float, true, false, pd_map_funcFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "tnr_en") == 0)
    {
        ParameterUtils::DoubleToString((double)tnr_en, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "tnr_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)tnr_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "oof_pixels_noise_adj1") == 0)
    {
        ParameterUtils::DoubleToString((double)oof_pixels_noise_adj1, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "oof_pixels_noise_adj2") == 0)
    {
        ParameterUtils::DoubleToString((double)oof_pixels_noise_adj2, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "alpha_lut_tab") == 0)
    {
        __result = alpha_lut_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "luma_noise_low_thr_lut_tab") == 0)
    {
        __result = luma_noise_low_thr_lut_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "luma_noise_high_thr_lut_tab") == 0)
    {
        __result = luma_noise_high_thr_lut_tab.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "alpha_post_calc_win_size") == 0)
    {
        ParameterUtils::DoubleToString((double)alpha_post_calc_win_size, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "alpha_post_calc_filter_sigma") == 0)
    {
        ParameterUtils::DoubleToString((double)alpha_post_calc_filter_sigma, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_win_size") == 0)
    {
        ParameterUtils::DoubleToString((double)diff_im_filter_win_size, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_sigma_luma") == 0)
    {
        ParameterUtils::DoubleToString((double)diff_im_filter_sigma_luma, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_sigma_chroma") == 0)
    {
        ParameterUtils::DoubleToString((double)diff_im_filter_sigma_chroma, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "chroma_noise_factor") == 0)
    {
        ParameterUtils::DoubleToString((double)chroma_noise_factor, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "boundary_treatment_mode") == 0)
    {
        ParameterUtils::DoubleToString((double)boundary_treatment_mode, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "luma_avg_filter_win_size") == 0)
    {
        ParameterUtils::DoubleToString((double)luma_avg_filter_win_size, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "tnr_chroma_saturation_factor") == 0)
    {
        ParameterUtils::DoubleToString((double)tnr_chroma_saturation_factor, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_filter_win_size") == 0)
    {
        ParameterUtils::DoubleToString((double)diff_map_filter_win_size, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_alpha_factor_max") == 0)
    {
        ParameterUtils::DoubleToString((double)diff_map_alpha_factor_max, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_thr_low") == 0)
    {
        ParameterUtils::DoubleToString((double)diff_map_thr_low, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_thr_high") == 0)
    {
        ParameterUtils::DoubleToString((double)diff_map_thr_high, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_9") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_9, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_10") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_10, __value, __size);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_11") == 0)
    {
        ParameterUtils::DoubleToString((double)reserved_param_11, __value, __size);
        __result = true;
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "tnr_en") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            tnr_en = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "tnr_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            tnr_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "oof_pixels_noise_adj1") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            oof_pixels_noise_adj1 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "oof_pixels_noise_adj2") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            oof_pixels_noise_adj2 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "alpha_lut_tab") == 0)
    {
        __result = alpha_lut_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "luma_noise_low_thr_lut_tab") == 0)
    {
        __result = luma_noise_low_thr_lut_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "luma_noise_high_thr_lut_tab") == 0)
    {
        __result = luma_noise_high_thr_lut_tab.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "alpha_post_calc_win_size") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            alpha_post_calc_win_size = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "alpha_post_calc_filter_sigma") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            alpha_post_calc_filter_sigma = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_win_size") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            diff_im_filter_win_size = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_sigma_luma") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            diff_im_filter_sigma_luma = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_sigma_chroma") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            diff_im_filter_sigma_chroma = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "chroma_noise_factor") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            chroma_noise_factor = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "boundary_treatment_mode") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            boundary_treatment_mode = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "luma_avg_filter_win_size") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            luma_avg_filter_win_size = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "tnr_chroma_saturation_factor") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            tnr_chroma_saturation_factor = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_filter_win_size") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            diff_map_filter_win_size = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_alpha_factor_max") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            diff_map_alpha_factor_max = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_thr_low") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            diff_map_thr_low = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_thr_high") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            diff_map_thr_high = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_9") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_9 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_10") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_10 = (float)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_11") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            reserved_param_11 = (float)dblValue; 
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // tnr_en
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("tnr_en", ParameterParserDataType::UInt32, (double)tnr_en, 0));
    }
    else if (PARAMETER_STRCMP(__name, "tnr_en") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)tnr_en, 0));
    }

    // tnr_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("tnr_mode", ParameterParserDataType::UInt32, (double)tnr_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "tnr_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)tnr_mode, 0));
    }

    // oof_pixels_noise_adj1
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("oof_pixels_noise_adj1", ParameterParserDataType::Float, (double)oof_pixels_noise_adj1));
    }
    else if (PARAMETER_STRCMP(__name, "oof_pixels_noise_adj1") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)oof_pixels_noise_adj1));
    }

    // oof_pixels_noise_adj2
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("oof_pixels_noise_adj2", ParameterParserDataType::Float, (double)oof_pixels_noise_adj2));
    }
    else if (PARAMETER_STRCMP(__name, "oof_pixels_noise_adj2") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)oof_pixels_noise_adj2));
    }

    // alpha_lut_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("alpha_lut_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "alpha_lut_tab") == 0)
    {
        __result = alpha_lut_tab.GetInfo(&__path[__pos], __info);
    }

    // luma_noise_low_thr_lut_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("luma_noise_low_thr_lut_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "luma_noise_low_thr_lut_tab") == 0)
    {
        __result = luma_noise_low_thr_lut_tab.GetInfo(&__path[__pos], __info);
    }

    // luma_noise_high_thr_lut_tab
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("luma_noise_high_thr_lut_tab", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "luma_noise_high_thr_lut_tab") == 0)
    {
        __result = luma_noise_high_thr_lut_tab.GetInfo(&__path[__pos], __info);
    }

    // alpha_post_calc_win_size
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("alpha_post_calc_win_size", ParameterParserDataType::UInt32, (double)alpha_post_calc_win_size, 0));
    }
    else if (PARAMETER_STRCMP(__name, "alpha_post_calc_win_size") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)alpha_post_calc_win_size, 0));
    }

    // alpha_post_calc_filter_sigma
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("alpha_post_calc_filter_sigma", ParameterParserDataType::Float, (double)alpha_post_calc_filter_sigma));
    }
    else if (PARAMETER_STRCMP(__name, "alpha_post_calc_filter_sigma") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)alpha_post_calc_filter_sigma));
    }

    // diff_im_filter_win_size
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("diff_im_filter_win_size", ParameterParserDataType::UInt32, (double)diff_im_filter_win_size, 0));
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_win_size") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)diff_im_filter_win_size, 0));
    }

    // diff_im_filter_sigma_luma
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("diff_im_filter_sigma_luma", ParameterParserDataType::Float, (double)diff_im_filter_sigma_luma));
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_sigma_luma") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)diff_im_filter_sigma_luma));
    }

    // diff_im_filter_sigma_chroma
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("diff_im_filter_sigma_chroma", ParameterParserDataType::Float, (double)diff_im_filter_sigma_chroma));
    }
    else if (PARAMETER_STRCMP(__name, "diff_im_filter_sigma_chroma") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)diff_im_filter_sigma_chroma));
    }

    // chroma_noise_factor
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("chroma_noise_factor", ParameterParserDataType::Float, (double)chroma_noise_factor));
    }
    else if (PARAMETER_STRCMP(__name, "chroma_noise_factor") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)chroma_noise_factor));
    }

    // boundary_treatment_mode
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("boundary_treatment_mode", ParameterParserDataType::UInt32, (double)boundary_treatment_mode, 0));
    }
    else if (PARAMETER_STRCMP(__name, "boundary_treatment_mode") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)boundary_treatment_mode, 0));
    }

    // luma_avg_filter_win_size
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("luma_avg_filter_win_size", ParameterParserDataType::UInt32, (double)luma_avg_filter_win_size, 0));
    }
    else if (PARAMETER_STRCMP(__name, "luma_avg_filter_win_size") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)luma_avg_filter_win_size, 0));
    }

    // tnr_chroma_saturation_factor
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("tnr_chroma_saturation_factor", ParameterParserDataType::Float, (double)tnr_chroma_saturation_factor));
    }
    else if (PARAMETER_STRCMP(__name, "tnr_chroma_saturation_factor") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)tnr_chroma_saturation_factor));
    }

    // diff_map_filter_win_size
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("diff_map_filter_win_size", ParameterParserDataType::UInt32, (double)diff_map_filter_win_size, 0));
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_filter_win_size") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)diff_map_filter_win_size, 0));
    }

    // diff_map_alpha_factor_max
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("diff_map_alpha_factor_max", ParameterParserDataType::Float, (double)diff_map_alpha_factor_max));
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_alpha_factor_max") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)diff_map_alpha_factor_max));
    }

    // diff_map_thr_low
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("diff_map_thr_low", ParameterParserDataType::UInt32, (double)diff_map_thr_low, 0));
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_thr_low") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)diff_map_thr_low, 0));
    }

    // diff_map_thr_high
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("diff_map_thr_high", ParameterParserDataType::UInt32, (double)diff_map_thr_high, 0));
    }
    else if (PARAMETER_STRCMP(__name, "diff_map_thr_high") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::UInt32, (double)diff_map_thr_high, 0));
    }

    // reserved_param_9
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_9", ParameterParserDataType::Float, (double)reserved_param_9));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_9") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_9));
    }

    // reserved_param_10
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_10", ParameterParserDataType::Float, (double)reserved_param_10));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_10") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_10));
    }

    // reserved_param_11
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("reserved_param_11", ParameterParserDataType::Float, (double)reserved_param_11));
    }
    else if (PARAMETER_STRCMP(__name, "reserved_param_11") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Float, (double)reserved_param_11));
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::alpha_lut_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "alpha_lut") == 0)
    {
        if (__index < alpha_lutFixedCount)
        {
            ParameterUtils::DoubleToString((double)alpha_lut[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < alpha_lutFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)alpha_lut[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::alpha_lut_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "alpha_lut") == 0)
    {
        if (__index < alpha_lutFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                alpha_lut[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < alpha_lutFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    alpha_lut[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::alpha_lut_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // alpha_lut
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("alpha_lut", ParameterParserDataType::Float, true, false, alpha_lutFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::luma_noise_low_thr_lut_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "luma_noise_low_thr_lut") == 0)
    {
        if (__index < luma_noise_low_thr_lutFixedCount)
        {
            ParameterUtils::DoubleToString((double)luma_noise_low_thr_lut[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < luma_noise_low_thr_lutFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)luma_noise_low_thr_lut[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::luma_noise_low_thr_lut_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "luma_noise_low_thr_lut") == 0)
    {
        if (__index < luma_noise_low_thr_lutFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                luma_noise_low_thr_lut[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < luma_noise_low_thr_lutFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    luma_noise_low_thr_lut[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::luma_noise_low_thr_lut_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // luma_noise_low_thr_lut
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("luma_noise_low_thr_lut", ParameterParserDataType::Float, true, false, luma_noise_low_thr_lutFixedCount));
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::luma_noise_high_thr_lut_tabStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "luma_noise_high_thr_lut") == 0)
    {
        if (__index < luma_noise_high_thr_lutFixedCount)
        {
            ParameterUtils::DoubleToString((double)luma_noise_high_thr_lut[__index], __value, __size);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < luma_noise_high_thr_lutFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)luma_noise_high_thr_lut[i], &__value[__valuePos], (INT32)(__size - __valuePos));
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::luma_noise_high_thr_lut_tabStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "luma_noise_high_thr_lut") == 0)
    {
        if (__index < luma_noise_high_thr_lutFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                luma_noise_high_thr_lut[__index] = (float)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < luma_noise_high_thr_lutFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    luma_noise_high_thr_lut[__index] = (float)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool dpp10_rgn_dataType::tnrStruct::luma_noise_high_thr_lut_tabStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // luma_noise_high_thr_lut
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("luma_noise_high_thr_lut", ParameterParserDataType::Float, true, false, luma_noise_high_thr_lutFixedCount));
    }

    return __result;
}

bool mod_dpp10_aec_dataType::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "aec_trigger") == 0)
    {
        __result = aec_trigger.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "dpp10_rgn_data") == 0)
    {
        __result = dpp10_rgn_data.GetValue(&__path[__pos], __value, __size);
    }

    return __result;
}

bool mod_dpp10_aec_dataType::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "aec_trigger") == 0)
    {
        __result = aec_trigger.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "dpp10_rgn_data") == 0)
    {
        __result = dpp10_rgn_data.SetValue(&__path[__pos], __value);
    }

    return __result;
}

bool mod_dpp10_aec_dataType::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // aec_trigger
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("aec_trigger", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "aec_trigger") == 0)
    {
        __result = aec_trigger.GetInfo(&__path[__pos], __info);
    }

    // dpp10_rgn_data
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("dpp10_rgn_data", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "dpp10_rgn_data") == 0)
    {
        __result = dpp10_rgn_data.GetInfo(&__path[__pos], __info);
    }

    return __result;
}

bool mod_dpp10_hdr_aec_dataType::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "hdr_aec_trigger") == 0)
    {
        __result = hdr_aec_trigger.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "hdr_aec_data") == 0)
    {
        __result = hdr_aec_data.GetValue(&__path[__pos], __value, __size);
    }

    return __result;
}

bool mod_dpp10_hdr_aec_dataType::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "hdr_aec_trigger") == 0)
    {
        __result = hdr_aec_trigger.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "hdr_aec_data") == 0)
    {
        __result = hdr_aec_data.SetValue(&__path[__pos], __value);
    }

    return __result;
}

bool mod_dpp10_hdr_aec_dataType::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // hdr_aec_trigger
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hdr_aec_trigger", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "hdr_aec_trigger") == 0)
    {
        __result = hdr_aec_trigger.GetInfo(&__path[__pos], __info);
    }

    // hdr_aec_data
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("hdr_aec_data", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "hdr_aec_data") == 0)
    {
        __result = hdr_aec_data.GetInfo(&__path[__pos], __info);
    }

    return __result;
}

bool mod_dpp10_hdr_aec_dataType::hdr_aec_dataStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "mod_dpp10_aec_data") == 0)
    {
        if (__index < mod_dpp10_aec_dataCount)
        {
            __result = mod_dpp10_aec_data[__index].GetValue(&__path[__pos], __value, __size);
        }
    }

    return __result;
}

bool mod_dpp10_hdr_aec_dataType::hdr_aec_dataStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "mod_dpp10_aec_data") == 0)
    {
        if (__index < mod_dpp10_aec_dataCount)
        {
            __result = mod_dpp10_aec_data[__index].SetValue(&__path[__pos], __value);
        }
    }

    return __result;
}

bool mod_dpp10_hdr_aec_dataType::hdr_aec_dataStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // mod_dpp10_aec_data
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("mod_dpp10_aec_data", ParameterParserDataType::Structure, true, false, mod_dpp10_aec_dataCount));
    }
    else if (PARAMETER_STRCMP(__name, "mod_dpp10_aec_data") == 0)
    {
        if (__index < mod_dpp10_aec_dataCount)
        {
            __result = mod_dpp10_aec_data[__index].GetInfo(&__path[__pos], __info);
        }
        else
        {
            __result = true;
            __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Structure, true, false, mod_dpp10_aec_dataCount));
        }
    }

    return __result;
}

bool mod_dpp10_pre_scale_ratio_dataType::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pre_scale_ratio_trigger") == 0)
    {
        __result = pre_scale_ratio_trigger.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "pre_scale_ratio_data") == 0)
    {
        __result = pre_scale_ratio_data.GetValue(&__path[__pos], __value, __size);
    }

    return __result;
}

bool mod_dpp10_pre_scale_ratio_dataType::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "pre_scale_ratio_trigger") == 0)
    {
        __result = pre_scale_ratio_trigger.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "pre_scale_ratio_data") == 0)
    {
        __result = pre_scale_ratio_data.SetValue(&__path[__pos], __value);
    }

    return __result;
}

bool mod_dpp10_pre_scale_ratio_dataType::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // pre_scale_ratio_trigger
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pre_scale_ratio_trigger", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "pre_scale_ratio_trigger") == 0)
    {
        __result = pre_scale_ratio_trigger.GetInfo(&__path[__pos], __info);
    }

    // pre_scale_ratio_data
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("pre_scale_ratio_data", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "pre_scale_ratio_data") == 0)
    {
        __result = pre_scale_ratio_data.GetInfo(&__path[__pos], __info);
    }

    return __result;
}

bool mod_dpp10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "mod_dpp10_hdr_aec_data") == 0)
    {
        if (__index < mod_dpp10_hdr_aec_dataCount)
        {
            __result = mod_dpp10_hdr_aec_data[__index].GetValue(&__path[__pos], __value, __size);
        }
    }

    return __result;
}

bool mod_dpp10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "mod_dpp10_hdr_aec_data") == 0)
    {
        if (__index < mod_dpp10_hdr_aec_dataCount)
        {
            __result = mod_dpp10_hdr_aec_data[__index].SetValue(&__path[__pos], __value);
        }
    }

    return __result;
}

bool mod_dpp10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // mod_dpp10_hdr_aec_data
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("mod_dpp10_hdr_aec_data", ParameterParserDataType::Structure, true, false, mod_dpp10_hdr_aec_dataCount));
    }
    else if (PARAMETER_STRCMP(__name, "mod_dpp10_hdr_aec_data") == 0)
    {
        if (__index < mod_dpp10_hdr_aec_dataCount)
        {
            __result = mod_dpp10_hdr_aec_data[__index].GetInfo(&__path[__pos], __info);
        }
        else
        {
            __result = true;
            __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Structure, true, false, mod_dpp10_hdr_aec_dataCount));
        }
    }

    return __result;
}

bool chromatix_dpp10_coreType::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "mod_dpp10_pre_scale_ratio_data") == 0)
    {
        if (__index < mod_dpp10_pre_scale_ratio_dataCount)
        {
            __result = mod_dpp10_pre_scale_ratio_data[__index].GetValue(&__path[__pos], __value, __size);
        }
    }

    return __result;
}

bool chromatix_dpp10_coreType::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "mod_dpp10_pre_scale_ratio_data") == 0)
    {
        if (__index < mod_dpp10_pre_scale_ratio_dataCount)
        {
            __result = mod_dpp10_pre_scale_ratio_data[__index].SetValue(&__path[__pos], __value);
        }
    }

    return __result;
}

bool chromatix_dpp10_coreType::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // mod_dpp10_pre_scale_ratio_data
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("mod_dpp10_pre_scale_ratio_data", ParameterParserDataType::Structure, true, false, mod_dpp10_pre_scale_ratio_dataCount));
    }
    else if (PARAMETER_STRCMP(__name, "mod_dpp10_pre_scale_ratio_data") == 0)
    {
        if (__index < mod_dpp10_pre_scale_ratio_dataCount)
        {
            __result = mod_dpp10_pre_scale_ratio_data[__index].GetInfo(&__path[__pos], __info);
        }
        else
        {
            __result = true;
            __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Structure, true, false, mod_dpp10_pre_scale_ratio_dataCount));
        }
    }

    return __result;
}

bool chromatix_dpp10Type::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "module_version") == 0)
    {
        __result = module_version.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "parameter_version") == 0)
    {
        __result = parameter_version.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "control_variables") == 0)
    {
        __result = control_variables.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "control_method") == 0)
    {
        __result = control_method.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "chromatix_dpp10_reserve") == 0)
    {
        __result = chromatix_dpp10_reserve.GetValue(&__path[__pos], __value, __size);
    }
    else if (PARAMETER_STRCMP(__name, "chromatix_dpp10_core") == 0)
    {
        __result = chromatix_dpp10_core.GetValue(&__path[__pos], __value, __size);
    }

    return __result;
}

bool chromatix_dpp10Type::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "module_version") == 0)
    {
        __result = module_version.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "parameter_version") == 0)
    {
        __result = parameter_version.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "control_variables") == 0)
    {
        __result = control_variables.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "control_method") == 0)
    {
        __result = control_method.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "chromatix_dpp10_reserve") == 0)
    {
        __result = chromatix_dpp10_reserve.SetValue(&__path[__pos], __value);
    }
    else if (PARAMETER_STRCMP(__name, "chromatix_dpp10_core") == 0)
    {
        __result = chromatix_dpp10_core.SetValue(&__path[__pos], __value);
    }

    return __result;
}

bool chromatix_dpp10Type::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    const UINT32 __pos = ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // module_version
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("module_version", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "module_version") == 0)
    {
        __result = module_version.GetInfo(&__path[__pos], __info);
    }

    // parameter_version
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("parameter_version", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "parameter_version") == 0)
    {
        __result = parameter_version.GetInfo(&__path[__pos], __info);
    }

    // control_variables
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("control_variables", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "control_variables") == 0)
    {
        __result = control_variables.GetInfo(&__path[__pos], __info);
    }

    // control_method
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("control_method", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "control_method") == 0)
    {
        __result = control_method.GetInfo(&__path[__pos], __info);
    }

    // chromatix_dpp10_reserve
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("chromatix_dpp10_reserve", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "chromatix_dpp10_reserve") == 0)
    {
        __result = chromatix_dpp10_reserve.GetInfo(&__path[__pos], __info);
    }

    // chromatix_dpp10_core
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("chromatix_dpp10_core", ParameterParserDataType::Structure));
    }
    else if (PARAMETER_STRCMP(__name, "chromatix_dpp10_core") == 0)
    {
        __result = chromatix_dpp10_core.GetInfo(&__path[__pos], __info);
    }

    return __result;
}

bool chromatix_dpp10Type::module_versionStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "major_revision") == 0)
    {
        ParameterUtils::DoubleToString((double)major_revision, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "minor_revision") == 0)
    {
        ParameterUtils::DoubleToString((double)minor_revision, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "incr_revision") == 0)
    {
        ParameterUtils::DoubleToString((double)incr_revision, __value, __size, 0);
        __result = true;
    }

    return __result;
}

bool chromatix_dpp10Type::module_versionStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "major_revision") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            major_revision = (INT32)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "minor_revision") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            minor_revision = (INT32)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "incr_revision") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            incr_revision = (INT32)dblValue; 
        }
    }

    return __result;
}

bool chromatix_dpp10Type::module_versionStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // major_revision
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("major_revision", ParameterParserDataType::Int32, (double)major_revision, 0));
    }
    else if (PARAMETER_STRCMP(__name, "major_revision") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Int32, (double)major_revision, 0));
    }

    // minor_revision
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("minor_revision", ParameterParserDataType::Int32, (double)minor_revision, 0));
    }
    else if (PARAMETER_STRCMP(__name, "minor_revision") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Int32, (double)minor_revision, 0));
    }

    // incr_revision
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("incr_revision", ParameterParserDataType::Int32, (double)incr_revision, 0));
    }
    else if (PARAMETER_STRCMP(__name, "incr_revision") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Int32, (double)incr_revision, 0));
    }

    return __result;
}

bool chromatix_dpp10Type::parameter_versionStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "revision") == 0)
    {
        PARAMETER_STRCPY(__value, __size, revision);
        __result = true;
    }

    return __result;
}

bool chromatix_dpp10Type::parameter_versionStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const /*__value*/)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "revision") == 0)
    {
        // Cannot modify strings, risk of memory leaks or corruption
    }

    return __result;
}

bool chromatix_dpp10Type::parameter_versionStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // revision
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("revision", ParameterParserDataType::String, revision));
    }
    else if (PARAMETER_STRCMP(__name, "revision") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::String, revision));
    }

    return __result;
}

bool chromatix_dpp10Type::control_variablesStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "control_var_type") == 0)
    {
        if (__index < control_var_typeFixedCount)
        {
            ParameterUtils::DoubleToString((double)(UINT32)control_var_type[__index], __value, __size, 0);
            __result = true;
        }
        else
        {
            SIZE_T __valuePos = 0;
            for (UINT32 i = 0; i < control_var_typeFixedCount; i++)
            {
                if (i > 0)
                {
                    PARAMETER_STRCAT(__value, __size, ",");
                    __valuePos = PARAMETER_STRLEN(__value);
                }
                ParameterUtils::DoubleToString((double)(UINT32)control_var_type[i], &__value[__valuePos], (INT32)(__size - __valuePos), 0);
            }
            __result = true;
        }
    }

    return __result;
}

bool chromatix_dpp10Type::control_variablesStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "control_var_type") == 0)
    {
        if (__index < control_var_typeFixedCount)
        {
            const double dblValue = ParameterUtils::StringToDouble(__value, __result);
            if (__result)
            {
                control_var_type[__index] = (control_var_typeEnum)(UINT32)dblValue; 
            }
        }
        else
        {
            const SIZE_T __valueLen = PARAMETER_STRLEN(__value);
            UINT32 __valuePos = 0;

            __index = 0;
            while (__valuePos < __valueLen && __index < control_var_typeFixedCount)
            {
                CHAR __valueStr[MAX_SIZE];

                __valuePos += ParameterUtils::GetSubString(&__value[__valuePos], ',', __valueStr, MAX_SIZE);
                __valuePos++;

                const double dblValue = ParameterUtils::StringToDouble(__valueStr, __result);
                if (__result)
                {
                    control_var_type[__index] = (control_var_typeEnum)(UINT32)dblValue; 
                }
                __index++;
            }
            __result = true;
        }
    }

    return __result;
}

bool chromatix_dpp10Type::control_variablesStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // control_var_type
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("control_var_type", ParameterParserDataType::Enum, true, false, control_var_typeFixedCount));
    }

    return __result;
}

bool chromatix_dpp10Type::control_methodStruct::GetValue(
    const CHAR* const __path,
    CHAR* const       __value,
    UINT32 const      __size)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "aec_exp_control") == 0)
    {
        ParameterUtils::DoubleToString((double)(UINT32)aec_exp_control, __value, __size, 0);
        __result = true;
    }
    else if (PARAMETER_STRCMP(__name, "aec_hdr_control") == 0)
    {
        ParameterUtils::DoubleToString((double)(UINT32)aec_hdr_control, __value, __size, 0);
        __result = true;
    }

    return __result;
}

bool chromatix_dpp10Type::control_methodStruct::SetValue(
    const CHAR* const __path,
    const CHAR* const __value)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    if (PARAMETER_STRCMP(__name, "aec_exp_control") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            aec_exp_control = (ispglobalelements::tuning_control_aec_type)(UINT32)dblValue; 
        }
    }
    else if (PARAMETER_STRCMP(__name, "aec_hdr_control") == 0)
    {
        const double dblValue = ParameterUtils::StringToDouble(__value, __result);
        if (__result)
        {
            aec_hdr_control = (ispglobalelements::tuning_control_aec_hdr_type)(UINT32)dblValue; 
        }
    }

    return __result;
}

bool chromatix_dpp10Type::control_methodStruct::GetInfo(
    const CHAR* const           __path,
    PList<ParameterParserInfo>& __info)
{
    constexpr SIZE_T MAX_SIZE = 129;
    CHAR   __name[MAX_SIZE] = "";
    UINT32 __index          = MAX_UINT;
    bool   __result         = false;

    (void)ParameterUtils::GetVariable(__path, __name, __index, MAX_SIZE);

    // aec_exp_control
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("aec_exp_control", ParameterParserDataType::Enum, (double)(UINT32)aec_exp_control, 0));
    }
    else if (PARAMETER_STRCMP(__name, "aec_exp_control") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Enum, (double)(UINT32)aec_exp_control, 0));
    }

    // aec_hdr_control
    if (__name[0] == '\0')
    {
        __result = true;
        __info.Add(ParameterParserInfo("aec_hdr_control", ParameterParserDataType::Enum, (double)(UINT32)aec_hdr_control, 0));
    }
    else if (PARAMETER_STRCMP(__name, "aec_hdr_control") == 0)
    {
        __result = true;
        __info.Add(ParameterParserInfo(nullptr, ParameterParserDataType::Enum, (double)(UINT32)aec_hdr_control, 0));
    }

    return __result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Default Constructor
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
chromatix_dpp10TypeClass::chromatix_dpp10TypeClass(
    const CHAR* name)
    : ParameterModule(name, MAJOR, MINOR, PATCH, nullptr)
{
    PARAMETER_INITIALIZE(SymbolTableID);
    PARAMETER_INITIALIZE(module_version);
    PARAMETER_INITIALIZE(parameter_version);
    PARAMETER_INITIALIZE(control_variables);
    PARAMETER_INITIALIZE(control_method);
    PARAMETER_INITIALIZE(chromatix_dpp10_reserve);
    PARAMETER_INITIALIZE(chromatix_dpp10_core);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Constructor
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
chromatix_dpp10TypeClass::chromatix_dpp10TypeClass(
    const CHAR*       name,
    ModuleData* const moduleData)
    : ParameterModule(name, MAJOR, MINOR, PATCH, moduleData)
{
    PARAMETER_INITIALIZE(SymbolTableID);
    PARAMETER_INITIALIZE(module_version);
    PARAMETER_INITIALIZE(parameter_version);
    PARAMETER_INITIALIZE(control_variables);
    PARAMETER_INITIALIZE(control_method);
    PARAMETER_INITIALIZE(chromatix_dpp10_reserve);
    PARAMETER_INITIALIZE(chromatix_dpp10_core);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Destructor
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
chromatix_dpp10TypeClass::~chromatix_dpp10TypeClass()
{
    if (Loaded)
    {
        UnloadModule();
    }
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load chromatix_dpp10_reserveType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10_reserveType::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(holes_fill_and_spatial);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0xf74b9dbf700604b9;
        holes_fill_and_spatial.Load(localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void chromatix_dpp10_reserveType::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        chromatix_dpp10_reserveType* arrayPtr = (chromatix_dpp10_reserveType*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* chromatix_dpp10_reserveType::AllocArray(
    UINT32 __count)
{
    chromatix_dpp10_reserveType* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW chromatix_dpp10_reserveType[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load chromatix_dpp10_reserveType_holes_fill_and_spatialStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10_reserveType::holes_fill_and_spatialStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(adapt_lambda_special_border_section_1);
    PARAMETER_INITIALIZE(adapt_lambda_special_border_section_2);
    PARAMETER_INITIALIZE(special_border_side);
    PARAMETER_INITIALIZE(hf_conf_special_border_close_section);
    PARAMETER_INITIALIZE(hf_special_border_section_1);
    PARAMETER_INITIALIZE(hf_special_border_section_2);
    PARAMETER_INITIALIZE(hf_special_border_section_3);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xb4ed787dc76c7018;
        entry->ReadSimpleTypeFixedArray(&adapt_lambda_special_border_section_1, 1, localParams);
        localParams.NameHash = 0xfdc1c71cda208c16;
        entry->ReadSimpleTypeFixedArray(&adapt_lambda_special_border_section_2, 1, localParams);
        localParams.NameHash = 0x9fe5ef9ccb704bb2;
        entry->ReadSimpleTypeFixedArray(&special_border_side, 1, localParams);
        localParams.NameHash = 0xedc69eefaed501cb;
        entry->ReadSimpleTypeFixedArray(&hf_conf_special_border_close_section, 1, localParams);
        localParams.NameHash = 0xee03e65fccfc8651;
        entry->ReadSimpleTypeFixedArray(&hf_special_border_section_1, 1, localParams);
        localParams.NameHash = 0xa72f593ed1b07a5f;
        entry->ReadSimpleTypeFixedArray(&hf_special_border_section_2, 1, localParams);
        localParams.NameHash = 0x9fcb33e1da8bd1a5;
        entry->ReadSimpleTypeFixedArray(&hf_special_border_section_3, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void chromatix_dpp10_reserveType::holes_fill_and_spatialStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        holes_fill_and_spatialStruct* arrayPtr = (holes_fill_and_spatialStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* chromatix_dpp10_reserveType::holes_fill_and_spatialStruct::AllocArray(
    UINT32 __count)
{
    holes_fill_and_spatialStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW holes_fill_and_spatialStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(processing_enable);
    PARAMETER_INITIALIZE(common_params);
    PARAMETER_INITIALIZE(pre_processing);
    PARAMETER_INITIALIZE(holes_fill_and_spatial);
    PARAMETER_INITIALIZE(disparity_map_merge);
    PARAMETER_INITIALIZE(tnr);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0xc7c62407b7ca6341;
        processing_enable.Load(localParams);
        localParams.NameHash        = 0xaddeb99e46cabc44;
        common_params.Load(localParams);
        localParams.NameHash        = 0xb2d034fdfb5dd105;
        pre_processing.Load(localParams);
        localParams.NameHash        = 0xf74b9dbf700604b9;
        holes_fill_and_spatial.Load(localParams);
        localParams.NameHash        = 0xd2d62510cb66e445;
        disparity_map_merge.Load(localParams);
        localParams.NameHash        = 0x9a75a9a3f344693f;
        tnr.Load(localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        dpp10_rgn_dataType* arrayPtr = (dpp10_rgn_dataType*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::AllocArray(
    UINT32 __count)
{
    dpp10_rgn_dataType* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW dpp10_rgn_dataType[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_processing_enableStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::processing_enableStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(depth_processing_en);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xcf6ec06587e16d00;
        entry->ReadSimpleTypeFixedArray(&depth_processing_en, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::processing_enableStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        processing_enableStruct* arrayPtr = (processing_enableStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::processing_enableStruct::AllocArray(
    UINT32 __count)
{
    processing_enableStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW processing_enableStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_common_paramsStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::common_paramsStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(focus_roi_disp_calc_mode);
    PARAMETER_INITIALIZE(focus_roi_disp_calc_param);
    PARAMETER_INITIALIZE(disp_map_range_factor);
    PARAMETER_INITIALIZE(lnr_grid_luma_tab);
    PARAMETER_INITIALIZE(lnr_grid_chroma_tab);
    PARAMETER_INITIALIZE(reserved_param_12);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0x8a3001da4c5c74f3;
        entry->ReadSimpleTypeFixedArray(&focus_roi_disp_calc_mode, 1, localParams);
        localParams.NameHash = 0xb771d08648da99c0;
        entry->ReadSimpleTypeFixedArray(&focus_roi_disp_calc_param, 1, localParams);
        localParams.NameHash = 0xb619e5ebdb770050;
        entry->ReadSimpleTypeFixedArray(&disp_map_range_factor, 1, localParams);
        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0x893921b50c7da54e;
        lnr_grid_luma_tab.Load(localParams);
        localParams.NameHash        = 0xb147125018f061d2;
        lnr_grid_chroma_tab.Load(localParams);
        localParams.NameHash = 0xd4ef2b812ee2887e;
        entry->ReadSimpleTypeFixedArray(&reserved_param_12, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::common_paramsStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        common_paramsStruct* arrayPtr = (common_paramsStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::common_paramsStruct::AllocArray(
    UINT32 __count)
{
    common_paramsStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW common_paramsStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_common_paramsStruct_lnr_grid_luma_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::common_paramsStruct::lnr_grid_luma_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(lnr_grid_luma);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xac363674467987b5;
        entry->ReadSimpleTypeFixedArray<float>(lnr_grid_luma, lnr_grid_lumaFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::common_paramsStruct::lnr_grid_luma_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        lnr_grid_luma_tabStruct* arrayPtr = (lnr_grid_luma_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::common_paramsStruct::lnr_grid_luma_tabStruct::AllocArray(
    UINT32 __count)
{
    lnr_grid_luma_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW lnr_grid_luma_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_common_paramsStruct_lnr_grid_chroma_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::common_paramsStruct::lnr_grid_chroma_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(lnr_grid_chroma);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0x8edf0899a20d2915;
        entry->ReadSimpleTypeFixedArray<float>(lnr_grid_chroma, lnr_grid_chromaFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::common_paramsStruct::lnr_grid_chroma_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        lnr_grid_chroma_tabStruct* arrayPtr = (lnr_grid_chroma_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::common_paramsStruct::lnr_grid_chroma_tabStruct::AllocArray(
    UINT32 __count)
{
    lnr_grid_chroma_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW lnr_grid_chroma_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_pre_processingStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::pre_processingStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(pre_processing_en);
    PARAMETER_INITIALIZE(pre_processing_mode);
    PARAMETER_INITIALIZE(pre_processing_func_tab);
    PARAMETER_INITIALIZE(reserved_param_1);
    PARAMETER_INITIALIZE(reserved_param_2);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xbb271b267eb3900d;
        entry->ReadSimpleTypeFixedArray(&pre_processing_en, 1, localParams);
        localParams.NameHash = 0x8c3264a9c3d4754c;
        entry->ReadSimpleTypeFixedArray(&pre_processing_mode, 1, localParams);
        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0xa5ed44d1a17e2f84;
        pre_processing_func_tab.Load(localParams);
        localParams.NameHash = 0xe9c7a40a05ab5602;
        entry->ReadSimpleTypeFixedArray(&reserved_param_1, 1, localParams);
        localParams.NameHash = 0xa0eb1b6b18e7aa0c;
        entry->ReadSimpleTypeFixedArray(&reserved_param_2, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::pre_processingStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        pre_processingStruct* arrayPtr = (pre_processingStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::pre_processingStruct::AllocArray(
    UINT32 __count)
{
    pre_processingStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW pre_processingStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_pre_processingStruct_pre_processing_func_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::pre_processingStruct::pre_processing_func_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(pre_processing_func);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xb3713ad664037dbe;
        entry->ReadSimpleTypeFixedArray<float>(pre_processing_func, pre_processing_funcFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::pre_processingStruct::pre_processing_func_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        pre_processing_func_tabStruct* arrayPtr = (pre_processing_func_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::pre_processingStruct::pre_processing_func_tabStruct::AllocArray(
    UINT32 __count)
{
    pre_processing_func_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW pre_processing_func_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_holes_fill_and_spatialStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::holes_fill_and_spatialStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(spatial_filter_en);
    PARAMETER_INITIALIZE(spatial_filter_mode);
    PARAMETER_INITIALIZE(spatial_filter_sigmas_tab);
    PARAMETER_INITIALIZE(spatial_filter_lambdas_tab);
    PARAMETER_INITIALIZE(spatial_filter_num_iterations);
    PARAMETER_INITIALIZE(post_spatial_filter_en);
    PARAMETER_INITIALIZE(post_spatial_filter_mode);
    PARAMETER_INITIALIZE(adapt_lambda_ens_tab);
    PARAMETER_INITIALIZE(adapt_lambda_modes_tab);
    PARAMETER_INITIALIZE(adapt_lambda_sig_func_tab);
    PARAMETER_INITIALIZE(adapt_lambda_flat_func_tab);
    PARAMETER_INITIALIZE(hf_en);
    PARAMETER_INITIALIZE(hf_mode);
    PARAMETER_INITIALIZE(hf_lambda);
    PARAMETER_INITIALIZE(hf_sigma);
    PARAMETER_INITIALIZE(hf_adapt_lambda_en);
    PARAMETER_INITIALIZE(hf_adapt_lambda_mode);
    PARAMETER_INITIALIZE(hf_conf_special_border_close_hor);
    PARAMETER_INITIALIZE(hf_conf_special_border_close_ver);
    PARAMETER_INITIALIZE(hf_conf_low_thresh);
    PARAMETER_INITIALIZE(hf_conf_high_thresh);
    PARAMETER_INITIALIZE(hf_conf_hist_low);
    PARAMETER_INITIALIZE(hf_conf_hist_high);
    PARAMETER_INITIALIZE(hf_conf_hist_close_hor);
    PARAMETER_INITIALIZE(hf_conf_hist_close_ver);
    PARAMETER_INITIALIZE(hf_and_spatial_chroma_saturation_factor);
    PARAMETER_INITIALIZE(reserved_param_3);
    PARAMETER_INITIALIZE(reserved_param_4);
    PARAMETER_INITIALIZE(reserved_param_5);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xa2aa287b8259151a;
        entry->ReadSimpleTypeFixedArray(&spatial_filter_en, 1, localParams);
        localParams.NameHash = 0x9ce51632fa2c75bd;
        entry->ReadSimpleTypeFixedArray(&spatial_filter_mode, 1, localParams);
        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0x9703ae0134913ad3;
        spatial_filter_sigmas_tab.Load(localParams);
        localParams.NameHash        = 0xba77a29d52a5c7c0;
        spatial_filter_lambdas_tab.Load(localParams);
        localParams.NameHash = 0xac6c77458606b513;
        entry->ReadSimpleTypeFixedArray(&spatial_filter_num_iterations, 1, localParams);
        localParams.NameHash = 0xd5adff20100b4f0f;
        entry->ReadSimpleTypeFixedArray(&post_spatial_filter_en, 1, localParams);
        localParams.NameHash = 0xc057d6a4f1e516bb;
        entry->ReadSimpleTypeFixedArray(&post_spatial_filter_mode, 1, localParams);
        localParams.NameHash        = 0x9381406988b6a70f;
        adapt_lambda_ens_tab.Load(localParams);
        localParams.NameHash        = 0x85cf6af70b31abb4;
        adapt_lambda_modes_tab.Load(localParams);
        localParams.NameHash        = 0xcf89b12518fe730c;
        adapt_lambda_sig_func_tab.Load(localParams);
        localParams.NameHash        = 0x95c0ea80c64cae3d;
        adapt_lambda_flat_func_tab.Load(localParams);
        localParams.NameHash = 0xbdbba7d816f0a4c1;
        entry->ReadSimpleTypeFixedArray(&hf_en, 1, localParams);
        localParams.NameHash = 0xc1cabb10aff3bb44;
        entry->ReadSimpleTypeFixedArray(&hf_mode, 1, localParams);
        localParams.NameHash = 0xe6f711d6281766ad;
        entry->ReadSimpleTypeFixedArray(&hf_lambda, 1, localParams);
        localParams.NameHash = 0x89e6294ddd08d1a9;
        entry->ReadSimpleTypeFixedArray(&hf_sigma, 1, localParams);
        localParams.NameHash = 0xab6788408dc1df8e;
        entry->ReadSimpleTypeFixedArray(&hf_adapt_lambda_en, 1, localParams);
        localParams.NameHash = 0xb8da7324d801b050;
        entry->ReadSimpleTypeFixedArray(&hf_adapt_lambda_mode, 1, localParams);
        localParams.NameHash = 0xdf6d618c8c44a427;
        entry->ReadSimpleTypeFixedArray(&hf_conf_special_border_close_hor, 1, localParams);
        localParams.NameHash = 0xac2b636978d19a39;
        entry->ReadSimpleTypeFixedArray(&hf_conf_special_border_close_ver, 1, localParams);
        localParams.NameHash = 0xe1db7d4cab64a905;
        entry->ReadSimpleTypeFixedArray(&hf_conf_low_thresh, 1, localParams);
        localParams.NameHash = 0xabc0b796ac285486;
        entry->ReadSimpleTypeFixedArray(&hf_conf_high_thresh, 1, localParams);
        localParams.NameHash = 0x8b888e7ddbac1e8c;
        entry->ReadSimpleTypeFixedArray(&hf_conf_hist_low, 1, localParams);
        localParams.NameHash = 0xe45873e3f2e77ef4;
        entry->ReadSimpleTypeFixedArray(&hf_conf_hist_high, 1, localParams);
        localParams.NameHash = 0xe06425d38a925e71;
        entry->ReadSimpleTypeFixedArray(&hf_conf_hist_close_hor, 1, localParams);
        localParams.NameHash = 0x932227367e07606f;
        entry->ReadSimpleTypeFixedArray(&hf_conf_hist_close_ver, 1, localParams);
        localParams.NameHash = 0xcf8eb156d05a9da4;
        entry->ReadSimpleTypeFixedArray(&hf_and_spatial_chroma_saturation_factor, 1, localParams);
        localParams.NameHash = 0x980f71b413dc01f6;
        entry->ReadSimpleTypeFixedArray(&reserved_param_3, 1, localParams);
        localParams.NameHash = 0xb753a67e71aa3f37;
        entry->ReadSimpleTypeFixedArray(&reserved_param_4, 1, localParams);
        localParams.NameHash = 0x8fb7cca17a9194cd;
        entry->ReadSimpleTypeFixedArray(&reserved_param_5, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::holes_fill_and_spatialStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        holes_fill_and_spatialStruct* arrayPtr = (holes_fill_and_spatialStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::holes_fill_and_spatialStruct::AllocArray(
    UINT32 __count)
{
    holes_fill_and_spatialStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW holes_fill_and_spatialStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_holes_fill_and_spatialStruct_spatial_filter_sigmas_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_sigmas_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(spatial_filter_sigmas);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xbdee9d0aa0704bb4;
        entry->ReadSimpleTypeFixedArray<float>(spatial_filter_sigmas, spatial_filter_sigmasFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_sigmas_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        spatial_filter_sigmas_tabStruct* arrayPtr = (spatial_filter_sigmas_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_sigmas_tabStruct::AllocArray(
    UINT32 __count)
{
    spatial_filter_sigmas_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW spatial_filter_sigmas_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_holes_fill_and_spatialStruct_spatial_filter_lambdas_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_lambdas_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(spatial_filter_lambdas);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xf3d0e08084ba2d8f;
        entry->ReadSimpleTypeFixedArray<float>(spatial_filter_lambdas, spatial_filter_lambdasFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_lambdas_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        spatial_filter_lambdas_tabStruct* arrayPtr = (spatial_filter_lambdas_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::holes_fill_and_spatialStruct::spatial_filter_lambdas_tabStruct::AllocArray(
    UINT32 __count)
{
    spatial_filter_lambdas_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW spatial_filter_lambdas_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_holes_fill_and_spatialStruct_adapt_lambda_ens_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_ens_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(adapt_lambda_ens);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xc9b72cb1dd5a4201;
        entry->ReadSimpleTypeFixedArray<float>(adapt_lambda_ens, adapt_lambda_ensFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_ens_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        adapt_lambda_ens_tabStruct* arrayPtr = (adapt_lambda_ens_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_ens_tabStruct::AllocArray(
    UINT32 __count)
{
    adapt_lambda_ens_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW adapt_lambda_ens_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_holes_fill_and_spatialStruct_adapt_lambda_modes_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_modes_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(adapt_lambda_modes);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xc4dafe96e1f3e479;
        entry->ReadSimpleTypeFixedArray<float>(adapt_lambda_modes, adapt_lambda_modesFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_modes_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        adapt_lambda_modes_tabStruct* arrayPtr = (adapt_lambda_modes_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_modes_tabStruct::AllocArray(
    UINT32 __count)
{
    adapt_lambda_modes_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW adapt_lambda_modes_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_holes_fill_and_spatialStruct_adapt_lambda_sig_func_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_sig_func_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(adapt_lambda_sig_func);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xb59282aaf2d440f0;
        entry->ReadSimpleTypeFixedArray<float>(adapt_lambda_sig_func, adapt_lambda_sig_funcFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_sig_func_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        adapt_lambda_sig_func_tabStruct* arrayPtr = (adapt_lambda_sig_func_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_sig_func_tabStruct::AllocArray(
    UINT32 __count)
{
    adapt_lambda_sig_func_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW adapt_lambda_sig_func_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_holes_fill_and_spatialStruct_adapt_lambda_flat_func_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_flat_func_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(adapt_lambda_flat_func);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0x911642ad3b691ccc;
        entry->ReadSimpleTypeFixedArray<float>(adapt_lambda_flat_func, adapt_lambda_flat_funcFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_flat_func_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        adapt_lambda_flat_func_tabStruct* arrayPtr = (adapt_lambda_flat_func_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::holes_fill_and_spatialStruct::adapt_lambda_flat_func_tabStruct::AllocArray(
    UINT32 __count)
{
    adapt_lambda_flat_func_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW adapt_lambda_flat_func_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_disparity_map_mergeStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::disparity_map_mergeStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(pd_merge_en);
    PARAMETER_INITIALIZE(pd_merge_mode);
    PARAMETER_INITIALIZE(pd_merge_level);
    PARAMETER_INITIALIZE(pd_map_func_tab);
    PARAMETER_INITIALIZE(reserved_param_6);
    PARAMETER_INITIALIZE(reserved_param_7);
    PARAMETER_INITIALIZE(reserved_param_8);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xd6fb0a39ebf268a6;
        entry->ReadSimpleTypeFixedArray(&pd_merge_en, 1, localParams);
        localParams.NameHash = 0x80cb68d26e08f91d;
        entry->ReadSimpleTypeFixedArray(&pd_merge_mode, 1, localParams);
        localParams.NameHash = 0xb305d2f801bcc0fa;
        entry->ReadSimpleTypeFixedArray(&pd_merge_level, 1, localParams);
        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0xd53f6527c7b85e3f;
        pd_map_func_tab.Load(localParams);
        localParams.NameHash = 0xc69b73c067dd68c3;
        entry->ReadSimpleTypeFixedArray(&reserved_param_6, 1, localParams);
        localParams.NameHash = 0xfe7f191f6ce6c339;
        entry->ReadSimpleTypeFixedArray(&reserved_param_7, 1, localParams);
        localParams.NameHash = 0x9822dc54a3311541;
        entry->ReadSimpleTypeFixedArray(&reserved_param_8, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::disparity_map_mergeStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        disparity_map_mergeStruct* arrayPtr = (disparity_map_mergeStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::disparity_map_mergeStruct::AllocArray(
    UINT32 __count)
{
    disparity_map_mergeStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW disparity_map_mergeStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_disparity_map_mergeStruct_pd_map_func_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::disparity_map_mergeStruct::pd_map_func_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(pd_map_func);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xdf041dfee1142a06;
        entry->ReadSimpleTypeFixedArray<float>(pd_map_func, pd_map_funcFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::disparity_map_mergeStruct::pd_map_func_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        pd_map_func_tabStruct* arrayPtr = (pd_map_func_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::disparity_map_mergeStruct::pd_map_func_tabStruct::AllocArray(
    UINT32 __count)
{
    pd_map_func_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW pd_map_func_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_tnrStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::tnrStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(tnr_en);
    PARAMETER_INITIALIZE(tnr_mode);
    PARAMETER_INITIALIZE(oof_pixels_noise_adj1);
    PARAMETER_INITIALIZE(oof_pixels_noise_adj2);
    PARAMETER_INITIALIZE(alpha_lut_tab);
    PARAMETER_INITIALIZE(luma_noise_low_thr_lut_tab);
    PARAMETER_INITIALIZE(luma_noise_high_thr_lut_tab);
    PARAMETER_INITIALIZE(alpha_post_calc_win_size);
    PARAMETER_INITIALIZE(alpha_post_calc_filter_sigma);
    PARAMETER_INITIALIZE(diff_im_filter_win_size);
    PARAMETER_INITIALIZE(diff_im_filter_sigma_luma);
    PARAMETER_INITIALIZE(diff_im_filter_sigma_chroma);
    PARAMETER_INITIALIZE(chroma_noise_factor);
    PARAMETER_INITIALIZE(boundary_treatment_mode);
    PARAMETER_INITIALIZE(luma_avg_filter_win_size);
    PARAMETER_INITIALIZE(tnr_chroma_saturation_factor);
    PARAMETER_INITIALIZE(diff_map_filter_win_size);
    PARAMETER_INITIALIZE(diff_map_alpha_factor_max);
    PARAMETER_INITIALIZE(diff_map_thr_low);
    PARAMETER_INITIALIZE(diff_map_thr_high);
    PARAMETER_INITIALIZE(reserved_param_9);
    PARAMETER_INITIALIZE(reserved_param_10);
    PARAMETER_INITIALIZE(reserved_param_11);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xf8ace4b2ce8aa76c;
        entry->ReadSimpleTypeFixedArray(&tnr_en, 1, localParams);
        localParams.NameHash = 0x8c347309a0cf36d9;
        entry->ReadSimpleTypeFixedArray(&tnr_mode, 1, localParams);
        localParams.NameHash = 0xddb7a92c5c44b548;
        entry->ReadSimpleTypeFixedArray(&oof_pixels_noise_adj1, 1, localParams);
        localParams.NameHash = 0x949b164d41084946;
        entry->ReadSimpleTypeFixedArray(&oof_pixels_noise_adj2, 1, localParams);
        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0xb6cebb9136d3975e;
        alpha_lut_tab.Load(localParams);
        localParams.NameHash        = 0xc76796a8e90bda6c;
        luma_noise_low_thr_lut_tab.Load(localParams);
        localParams.NameHash        = 0xf1e1ad9f90e0cbb1;
        luma_noise_high_thr_lut_tab.Load(localParams);
        localParams.NameHash = 0xf1aca12f67e9142c;
        entry->ReadSimpleTypeFixedArray(&alpha_post_calc_win_size, 1, localParams);
        localParams.NameHash = 0xab501522fc565bad;
        entry->ReadSimpleTypeFixedArray(&alpha_post_calc_filter_sigma, 1, localParams);
        localParams.NameHash = 0x85bd4618a0a4ea25;
        entry->ReadSimpleTypeFixedArray(&diff_im_filter_win_size, 1, localParams);
        localParams.NameHash = 0xcd308f5aaca94dfc;
        entry->ReadSimpleTypeFixedArray(&diff_im_filter_sigma_luma, 1, localParams);
        localParams.NameHash = 0xac5015fdd844ffe9;
        entry->ReadSimpleTypeFixedArray(&diff_im_filter_sigma_chroma, 1, localParams);
        localParams.NameHash = 0xc03568e526e03fda;
        entry->ReadSimpleTypeFixedArray(&chroma_noise_factor, 1, localParams);
        localParams.NameHash = 0xc17fb31656134325;
        entry->ReadSimpleTypeFixedArray(&boundary_treatment_mode, 1, localParams);
        localParams.NameHash = 0xe62ec61a5964092e;
        entry->ReadSimpleTypeFixedArray(&luma_avg_filter_win_size, 1, localParams);
        localParams.NameHash = 0xb4448c7b8e8d419f;
        entry->ReadSimpleTypeFixedArray(&tnr_chroma_saturation_factor, 1, localParams);
        localParams.NameHash = 0xd1322c960bec0442;
        entry->ReadSimpleTypeFixedArray(&diff_map_filter_win_size, 1, localParams);
        localParams.NameHash = 0xccd2b09a8d29985e;
        entry->ReadSimpleTypeFixedArray(&diff_map_alpha_factor_max, 1, localParams);
        localParams.NameHash = 0xab4f0ebbcf8ea87d;
        entry->ReadSimpleTypeFixedArray(&diff_map_thr_low, 1, localParams);
        localParams.NameHash = 0x92ed315d60fc23e2;
        entry->ReadSimpleTypeFixedArray(&diff_map_thr_high, 1, localParams);
        localParams.NameHash = 0xa0c6b68ba80abebb;
        entry->ReadSimpleTypeFixedArray(&reserved_param_9, 1, localParams);
        localParams.NameHash = 0xa527fe3f3895df8a;
        entry->ReadSimpleTypeFixedArray(&reserved_param_10, 1, localParams);
        localParams.NameHash = 0x9dc394e033ae7470;
        entry->ReadSimpleTypeFixedArray(&reserved_param_11, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::tnrStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        tnrStruct* arrayPtr = (tnrStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::tnrStruct::AllocArray(
    UINT32 __count)
{
    tnrStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW tnrStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_tnrStruct_alpha_lut_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::tnrStruct::alpha_lut_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(alpha_lut);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0x9733de37329f189f;
        entry->ReadSimpleTypeFixedArray<float>(alpha_lut, alpha_lutFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::tnrStruct::alpha_lut_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        alpha_lut_tabStruct* arrayPtr = (alpha_lut_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::tnrStruct::alpha_lut_tabStruct::AllocArray(
    UINT32 __count)
{
    alpha_lut_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW alpha_lut_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_tnrStruct_luma_noise_low_thr_lut_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::tnrStruct::luma_noise_low_thr_lut_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(luma_noise_low_thr_lut);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xc2c54fa7501772bc;
        entry->ReadSimpleTypeFixedArray<float>(luma_noise_low_thr_lut, luma_noise_low_thr_lutFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::tnrStruct::luma_noise_low_thr_lut_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        luma_noise_low_thr_lut_tabStruct* arrayPtr = (luma_noise_low_thr_lut_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::tnrStruct::luma_noise_low_thr_lut_tabStruct::AllocArray(
    UINT32 __count)
{
    luma_noise_low_thr_lut_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW luma_noise_low_thr_lut_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dpp10_rgn_dataType_tnrStruct_luma_noise_high_thr_lut_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void dpp10_rgn_dataType::tnrStruct::luma_noise_high_thr_lut_tabStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(luma_noise_high_thr_lut);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xb886abb0bd0e56d1;
        entry->ReadSimpleTypeFixedArray<float>(luma_noise_high_thr_lut, luma_noise_high_thr_lutFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void dpp10_rgn_dataType::tnrStruct::luma_noise_high_thr_lut_tabStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        luma_noise_high_thr_lut_tabStruct* arrayPtr = (luma_noise_high_thr_lut_tabStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* dpp10_rgn_dataType::tnrStruct::luma_noise_high_thr_lut_tabStruct::AllocArray(
    UINT32 __count)
{
    luma_noise_high_thr_lut_tabStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW luma_noise_high_thr_lut_tabStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_dpp10_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_aec_dataType::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(aec_trigger);
    PARAMETER_INITIALIZE(dpp10_rgn_data);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0xfa863f69da71cf5f;
        aec_trigger.Load(localParams);
        localParams.NameHash        = 0xaacf40df93b9b68e;
        dpp10_rgn_data.Load(localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void mod_dpp10_aec_dataType::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        mod_dpp10_aec_dataType* arrayPtr = (mod_dpp10_aec_dataType*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* mod_dpp10_aec_dataType::AllocArray(
    UINT32 __count)
{
    mod_dpp10_aec_dataType* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW mod_dpp10_aec_dataType[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_dpp10_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_hdr_aec_dataType::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(hdr_aec_trigger);
    PARAMETER_INITIALIZE(hdr_aec_data);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0x89f6cf4f3987c29f;
        hdr_aec_trigger.Load(localParams);
        localParams.NameHash        = 0xcf314a4f79fbcaf4;
        hdr_aec_data.Load(localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void mod_dpp10_hdr_aec_dataType::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        mod_dpp10_hdr_aec_dataType* arrayPtr = (mod_dpp10_hdr_aec_dataType*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* mod_dpp10_hdr_aec_dataType::AllocArray(
    UINT32 __count)
{
    mod_dpp10_hdr_aec_dataType* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW mod_dpp10_hdr_aec_dataType[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_dpp10_hdr_aec_dataType_hdr_aec_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_hdr_aec_dataType::hdr_aec_dataStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(mod_dpp10_aec_dataCount);
    PARAMETER_INITIALIZE(mod_dpp10_aec_data);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xa4a2784954aff314;
        entry->ReadStructureArray(mod_dpp10_aec_data, mod_dpp10_aec_dataCount, mod_dpp10_aec_dataID, 1, localParams, __COUNTER__);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void mod_dpp10_hdr_aec_dataType::hdr_aec_dataStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        hdr_aec_dataStruct* arrayPtr = (hdr_aec_dataStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* mod_dpp10_hdr_aec_dataType::hdr_aec_dataStruct::AllocArray(
    UINT32 __count)
{
    hdr_aec_dataStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW hdr_aec_dataStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_dpp10_pre_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_pre_scale_ratio_dataType::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(pre_scale_ratio_trigger);
    PARAMETER_INITIALIZE(pre_scale_ratio_data);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0xd6b0789858377e86;
        pre_scale_ratio_trigger.Load(localParams);
        localParams.NameHash        = 0xe5d7ca035cf3b703;
        pre_scale_ratio_data.Load(localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void mod_dpp10_pre_scale_ratio_dataType::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        mod_dpp10_pre_scale_ratio_dataType* arrayPtr = (mod_dpp10_pre_scale_ratio_dataType*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* mod_dpp10_pre_scale_ratio_dataType::AllocArray(
    UINT32 __count)
{
    mod_dpp10_pre_scale_ratio_dataType* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW mod_dpp10_pre_scale_ratio_dataType[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_dpp10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(mod_dpp10_hdr_aec_dataCount);
    PARAMETER_INITIALIZE(mod_dpp10_hdr_aec_data);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xbce013ebbba025ec;
        entry->ReadStructureArray(mod_dpp10_hdr_aec_data, mod_dpp10_hdr_aec_dataCount, mod_dpp10_hdr_aec_dataID, 1, localParams, __COUNTER__);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void mod_dpp10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        pre_scale_ratio_dataStruct* arrayPtr = (pre_scale_ratio_dataStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* mod_dpp10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct::AllocArray(
    UINT32 __count)
{
    pre_scale_ratio_dataStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW pre_scale_ratio_dataStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load chromatix_dpp10_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10_coreType::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(mod_dpp10_pre_scale_ratio_dataCount);
    PARAMETER_INITIALIZE(mod_dpp10_pre_scale_ratio_data);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xeefead872468c792;
        entry->ReadStructureArray(mod_dpp10_pre_scale_ratio_data, mod_dpp10_pre_scale_ratio_dataCount, mod_dpp10_pre_scale_ratio_dataID, 1, localParams, __COUNTER__);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void chromatix_dpp10_coreType::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        chromatix_dpp10_coreType* arrayPtr = (chromatix_dpp10_coreType*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* chromatix_dpp10_coreType::AllocArray(
    UINT32 __count)
{
    chromatix_dpp10_coreType* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW chromatix_dpp10_coreType[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load chromatix_dpp10Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10Type::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(module_version);
    PARAMETER_INITIALIZE(parameter_version);
    PARAMETER_INITIALIZE(control_variables);
    PARAMETER_INITIALIZE(control_method);
    PARAMETER_INITIALIZE(chromatix_dpp10_reserve);
    PARAMETER_INITIALIZE(chromatix_dpp10_core);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.UseParent       = false;
        localParams.UseParentOffset = true;
        localParams.NameHash        = 0xe11cd9f365a2599f;
        module_version.Load(localParams);
        localParams.NameHash        = 0xca3106e199a12935;
        parameter_version.Load(localParams);
        localParams.NameHash        = 0xaff2265ba7135b1d;
        control_variables.Load(localParams);
        localParams.NameHash        = 0xef1d240624a40cbc;
        control_method.Load(localParams);
        localParams.NameHash        = 0xe55fb881f39be268;
        chromatix_dpp10_reserve.Load(localParams);
        localParams.NameHash        = 0xba3ba3ee2f834e5e;
        chromatix_dpp10_core.Load(localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void chromatix_dpp10Type::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        chromatix_dpp10Type* arrayPtr = (chromatix_dpp10Type*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* chromatix_dpp10Type::AllocArray(
    UINT32 __count)
{
    chromatix_dpp10Type* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW chromatix_dpp10Type[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load module_versionStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10Type::module_versionStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(major_revision);
    PARAMETER_INITIALIZE(minor_revision);
    PARAMETER_INITIALIZE(incr_revision);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xcd66249477636693;
        entry->ReadSimpleTypeFixedArray(&major_revision, 1, localParams);
        localParams.NameHash = 0xc5497493137a9c25;
        entry->ReadSimpleTypeFixedArray(&minor_revision, 1, localParams);
        localParams.NameHash = 0xb27b8a668efb2a56;
        entry->ReadSimpleTypeFixedArray(&incr_revision, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void chromatix_dpp10Type::module_versionStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        module_versionStruct* arrayPtr = (module_versionStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* chromatix_dpp10Type::module_versionStruct::AllocArray(
    UINT32 __count)
{
    module_versionStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW module_versionStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load parameter_versionStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10Type::parameter_versionStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(revision);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xd594eed07a5650c5;
        entry->ReadStringFixedArray(&revision, 1, localParams, __COUNTER__);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void chromatix_dpp10Type::parameter_versionStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        parameter_versionStruct* arrayPtr = (parameter_versionStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* chromatix_dpp10Type::parameter_versionStruct::AllocArray(
    UINT32 __count)
{
    parameter_versionStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW parameter_versionStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load control_variablesStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10Type::control_variablesStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(control_var_type);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xb4deb5959bf2270d;
        entry->ReadEnumFixedArray(control_var_type, control_var_typeFixedCount,
            localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void chromatix_dpp10Type::control_variablesStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        control_variablesStruct* arrayPtr = (control_variablesStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* chromatix_dpp10Type::control_variablesStruct::AllocArray(
    UINT32 __count)
{
    control_variablesStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW control_variablesStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load control_methodStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10Type::control_methodStruct::Load(
    ParameterLoadParameters& parentParams)
{
    PARAMETER_INITIALIZE(aec_exp_control);
    PARAMETER_INITIALIZE(aec_hdr_control);

    ParameterFileSymbolTableEntry* const entry = parentParams.Entry;
    ParameterLoadParameters localParams(parentParams);
    localParams.Element   = nullptr;
    localParams.UseParent = false;
    localParams.Index     = 0;

    if (parentParams.Element != nullptr)
    {
        bool _posChanged = false;
        localParams.Element = entry->AdjustPositionAndGetElement(parentParams, true, _posChanged);
    }

    // If parentParams.Element != null && localParams.Element == null, then this element is not defined in the binary file.
    // If parentParams.Element == null then this binary file does not contain a definition table or
    // the full backwards compatibility feature is disabled (for memory or performance reasons)
    if (parentParams.Element == nullptr || parentParams.Element->Verified || localParams.Element != nullptr)
    {
        localParams.Position      = entry->Position;
        localParams.LoadDataLimit = entry->ReadLoadDataLimit(parentParams.LoadDataLimit);

        localParams.NameHash = 0xe20fd59961067dba;
        entry->ReadEnumFixedArray(&aec_exp_control, 1, localParams);
        localParams.NameHash = 0xea1401064346fecd;
        entry->ReadEnumFixedArray(&aec_hdr_control, 1, localParams);

        entry->UpdatePosition(localParams.LoadDataLimit);
    }
    else
    {
        PARAMETER_LOG_ERROR(entry->Table->SetManager, "%s: 0x%llx entry not found in the binary file, all values will be 0\n",
            __FUNCTION__, parentParams.NameHash);
    }
}

void chromatix_dpp10Type::control_methodStruct::LoadArray(
    ParameterLoadParameters& __params,
    void*                    __array,
    UINT32                   __count)
{
    if (__array != nullptr)
    {
        control_methodStruct* arrayPtr = (control_methodStruct*)__array;
        for (UINT32 i = 0; i < __count; i++)
        {
            __params.Index = i;
            arrayPtr[i].Load(__params);
        }
    }
}

void* chromatix_dpp10Type::control_methodStruct::AllocArray(
    UINT32 __count)
{
    control_methodStruct* result = nullptr;
    if (__count > 0)
    {
        result = PARAMETER_NEW control_methodStruct[__count];
    }
    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_dpp10_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_hdr_aec_dataType::Unload(ParameterFileSymbolTable* const __table)
{
    hdr_aec_data.Unload(__table);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_dpp10_hdr_aec_dataType_hdr_aec_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_hdr_aec_dataType::hdr_aec_dataStruct::Unload(ParameterFileSymbolTable* const __table)
{
    ParameterFileSymbolTable::ReleaseObject(__table, mod_dpp10_aec_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_dpp10_pre_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_pre_scale_ratio_dataType::Unload(ParameterFileSymbolTable* const __table)
{
    pre_scale_ratio_data.Unload(__table);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_dpp10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void mod_dpp10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct::Unload(ParameterFileSymbolTable* const __table)
{
    for (UINT32 i = 0; mod_dpp10_hdr_aec_data != nullptr && i < mod_dpp10_hdr_aec_dataCount; i++)
    {
        mod_dpp10_hdr_aec_data[i].Unload(__table);
    }
    ParameterFileSymbolTable::ReleaseObject(__table, mod_dpp10_hdr_aec_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload chromatix_dpp10_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10_coreType::Unload(ParameterFileSymbolTable* const __table)
{
    for (UINT32 i = 0; mod_dpp10_pre_scale_ratio_data != nullptr && i < mod_dpp10_pre_scale_ratio_dataCount; i++)
    {
        mod_dpp10_pre_scale_ratio_data[i].Unload(__table);
    }
    ParameterFileSymbolTable::ReleaseObject(__table, mod_dpp10_pre_scale_ratio_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload chromatix_dpp10Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10Type::Unload(ParameterFileSymbolTable* const __table)
{
    parameter_version.Unload(__table);
    chromatix_dpp10_core.Unload(__table);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload parameter_versionStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10Type::parameter_versionStruct::Unload(ParameterFileSymbolTable* const __table)
{
    ParameterFileSymbolTable::ReleaseObject(__table, revision);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Release the ParameterModule object
/// Requires that this object was created via a ParameterSetManager::GetModule call
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10Type::Release()
{
    ((chromatix_dpp10TypeClass*)this)->Release();
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Returns the ParameterModule::Modified value
/// The Modified value is incremented when the module's data or pointer values change
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
UINT32 chromatix_dpp10Type::GetModified()
{
    return ((chromatix_dpp10TypeClass*)this)->Modified;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// GetModuleName: Returns ParameterModule::Name variable
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const CHAR* chromatix_dpp10Type::GetModuleName()
{
    return ((chromatix_dpp10TypeClass*)this)->Name;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// GetModuleName: Returns ParameterModule::NameHash variable
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
UINT64 chromatix_dpp10Type::GetModuleNameHash()
{
    return ((chromatix_dpp10TypeClass*)this)->NameHash;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Create module, and return a new object
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ParameterModule* chromatix_dpp10TypeClass::Create(
    ModuleData* const    moduleData,
    DefaultModule* const defModule) const
{
    chromatix_dpp10TypeClass* cls = nullptr;

    if (IsModuleMatch(moduleData) && Version.Value == moduleData->Version.Value)
    {
        const UINT32 id = moduleData->DuplicateID > 0 ? moduleData->DuplicateID : moduleData->ID;

        ParameterModule* const module = defModule->Find(id);
        if (module != nullptr)
        {
            cls = (chromatix_dpp10TypeClass*)module;
        }
        else
        {
            cls = PARAMETER_NEW chromatix_dpp10TypeClass(Name, moduleData);
            cls->SymbolTableID = id;
            defModule->AddModule((ParameterModule*)cls);
        }
    }
    else if (Version.Value != moduleData->Version.Value)
    {
        PARAMETER_LOG_ERROR(moduleData->SetManager, "Unable to create chromatix_dpp10TypeClass, binary version (%lld) does not match source version (%lld)\n",
            moduleData->Version.Value, Version.Value);
    }
    else
    {
        PARAMETER_LOG_ERROR(moduleData->SetManager, "Unable to create chromatix_dpp10TypeClass, binary name hash (0x%016llx) does not match source name hash (0x%016llx)\n",
            moduleData->NameHash, NameHash);
    }

    return (ParameterModule*)cls;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load module data, return true is successful
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
bool chromatix_dpp10TypeClass::LoadModule(
    ParameterFileSymbolTable* const table)
{
    bool result = true;

#ifdef PARAMETER_USE_MUTEX
    ParameterMutexLocker lock(Mutex); // Unique LOCK
#endif

    if (!Loaded)
    {
        chromatix_dpp10TypeClass* const cls = this;

        ParameterFileSymbolTableEntry  entryObj;
        ParameterFileSymbolTableEntry* const entry = &entryObj;
        // With EzTune enabled, the unused upper byte of SymbolTableID value can change, so clear it
        result = table->Find(entryObj, SymbolTableID & 0x00ffffffU);

        if (!result)
        {
            PARAMETER_LOG_ERROR(entry->Table->SetManager, "chromatix_dpp10TypeClass::LoadModule Failed to find module ID (%d) in Symbol Table\n", SymbolTableID);
        }


        ParameterDefinitionElement* _element = nullptr;
        if (table->ModuleDefinitions != nullptr && !table->ModuleDefinitions->empty())
        {
            _element = table->BuildModuleElement(NameHash);
        }

        ParameterLoadParameters parentParams(entry, NameHash, true, true, _element, entry->Position, 0, ParameterFileSymbolTableEntry::LOAD_LIMIT_MAX);
        cls->Load(parentParams);
        PARAMETER_DELETE _element;
        Modified++;
        Loaded = true;
    }

    if (!result)
    {
        /// Module failed to fully load, unload it
        UnloadModule();
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload module data
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10TypeClass::UnloadModule()
{
#ifdef PARAMETER_USE_MUTEX
    ParameterMutexLocker lock(Mutex); // Unique LOCK
#endif

    if (Loaded)
    {
        if (Data != nullptr && Data->SymbolTable != nullptr)
        {
            Unload(Data->SymbolTable);
        }
        else
        {
            PARAMETER_LOG_ERROR(Data != nullptr ? Data->SetManager : nullptr, "UnloadModule %s called with nullptr "
                "Data->SymbolTable object\n", Name);
            Unload(nullptr);
        }
        Loaded = false;
    }
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// /// Release the ParameterModule object
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_dpp10TypeClass::Release()
{
    ParameterModule::Release();
}

DPP_1_0_0_NAMESPACE_END
