////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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 V5.5.1 (2411131018)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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

#include "iotglobalelements.h"
#include "parametersetmanager.h"

IOTGLOBALELEMENTS_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// SetValue/GetValue Functions
/// Gets or sets the requested value
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
bool HDRTriggerPointType::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;

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

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

    return __result;
}

bool HDRTriggerPointType::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;

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

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

    return __result;
}

bool HDRTriggerPointType::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;

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

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

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

    return __result;
}

bool LuxIdxTriggerPointType::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;

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

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

    return __result;
}

bool LuxIdxTriggerPointType::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;

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

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

    return __result;
}

bool LuxIdxTriggerPointType::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;

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

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

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

    return __result;
}



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load HDRTriggerPointType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
bool HDRTriggerPointType::Load(
    ParameterFileSymbolTableEntry* const entry,
    BYTE const alignment)
{
    bool result = true;

    PARAMETER_INITIALIZE(exp_ratio_start);
    PARAMETER_INITIALIZE(exp_ratio_end);

    SYMBOL_TABLE_ENTRY_READ(entry, result, exp_ratio_start, alignment)
    SYMBOL_TABLE_ENTRY_READ(entry, result, exp_ratio_end, alignment)

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load LuxIdxTriggerPointType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
bool LuxIdxTriggerPointType::Load(
    ParameterFileSymbolTableEntry* const entry,
    BYTE const alignment)
{
    bool result = true;

    PARAMETER_INITIALIZE(exp_ratio_start);
    PARAMETER_INITIALIZE(exp_ratio_end);

    SYMBOL_TABLE_ENTRY_READ(entry, result, exp_ratio_start, alignment)
    SYMBOL_TABLE_ENTRY_READ(entry, result, exp_ratio_end, alignment)

    return result;
}
IOTGLOBALELEMENTS_NAMESPACE_END
