/*
 * @file hv_app_OsdDynamicUpdate.h
 * @brief Header file of osd dynamic component update.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 * (+) Use Hv_App_Cb_OsdUpdateTextByUserdata() to update Text component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateTextListByUserdata() to update TextList component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateNumberByUserdata() to update Number component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateAsciiStringByUserdata() to update AsciiString component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateIconByUserdata() to update Icon component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateIconListByUserdata() to update IconList component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateBmpByUserdata() to update Bmp component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateBmpListByUserdata() to update BmpList component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateRectByUserdata() to update Rect component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateRectGridByUserdata() to update RectGrid component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateLineGridByUserdata() to update LineGrid component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateLineByUserdata() to update Line component by userdata.
 * (+) Use Hv_App_Cb_OsdUpdateTextCustom() to update Text component custom.
 * (+) Use Hv_App_Cb_OsdUpdateTextListCustom() to update TextList component custom.
 * (+) Use Hv_App_Cb_OsdUpdateNumberCustom() to update Number component custom.
 * (+) Use Hv_App_Cb_OsdUpdateAsciiStringCustom() to update AsciiString component custom.
 * (+) Use Hv_App_Cb_OsdUpdateIconCustom() to update Icon component custom.
 * (+) Use Hv_App_Cb_OsdUpdateIconListCustom() to update IconList component custom.
 * (+) Use Hv_App_Cb_OsdUpdateBmpCustom() to update Bmp component custom.
 * (+) Use Hv_App_Cb_OsdUpdateBmpListCustom() to update BmpList component custom.
 * (+) Use Hv_App_Cb_OsdUpdateRectCustom() to update Rect component custom.
 * (+) Use Hv_App_Cb_OsdUpdateRectGridCustom() to update RectGrid component custom.
 * (+) Use Hv_App_Cb_OsdUpdateLineGridCustom() to update LineGrid component custom.
 * (+) Use Hv_App_Cb_OsdUpdateLineCustom() to update Line component custom.
 *
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2022-09-01
 */

#ifndef _HV_APP_OSD_DYNAMIC_UPDATE_H
#define _HV_APP_OSD_DYNAMIC_UPDATE_H

#include "hv_mw_OsdComm.h"
#include "hv_app_Function.h"

/**
 * @brief 根据userdata的值更新组件Text
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateTextByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件TextList
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateTextListByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件Number
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateNumberByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件AsciiString
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateAsciiStringByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件Icon
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateIconByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件IconLis
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateIconListByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件Bmp
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateBmpByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件BmpLis
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateBmpListByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件Rect
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateRectByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件RectGrid
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateRectGridByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件LineGrid
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateLineGridByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 根据userdata的值更新组件Line
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 * @param[in] pstUserdata userdata数据
 */
VOID Hv_App_Cb_OsdUpdateLineByUserdata(VOID *pstCpProp, USHORT16 usId, UserdataProp *pstUserdata);

/**
 * @brief 自定义更新组件Text
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateTextCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件TextList
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateTextListCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件Number
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateNumberCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件AsciiString
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateAsciiStringCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件Icon
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateIconCustom(VOID *pstCpProp, USHORT16 usId);
/**
 * @brief 自定义更新组件IconList
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateIconListCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件Bmp
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateBmpCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件BmpList
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateBmpListCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件Rect
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateRectCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件RectGrid
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateRectGridCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件LineGrid
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateLineGridCustom(VOID *pstCpProp, USHORT16 usId);

/**
 * @brief 自定义更新组件Line
 * @param[in] pstCpProp 组件属性数据
 * @param[in] usId 组件序号
 */
VOID Hv_App_Cb_OsdUpdateLineCustom(VOID *pstCpProp, USHORT16 usId);

#endif
