/**
 * @file hv_cal_LedComm.h
 * @brief Header file of tlc5971 led driver cal module.
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2023-12-16
 */

#ifndef _HV_CAL_LEDCOMM_H_
#define _HV_CAL_LEDCOMM_H_
#include "Common/hv_comm_DataType.h"

/* Standard LED colors */
#define LED_COLOR_ID_WHITE      0
#define LED_COLOR_ID_RED        1
#define LED_COLOR_ID_GREEN      2
#define LED_COLOR_ID_BLUE       3
#define LED_COLOR_ID_AMBER      4
#define LED_COLOR_ID_VIOLET     5
#define LED_COLOR_ID_YELLOW     6
#define LED_COLOR_ID_IR         7
#define LED_COLOR_ID_MAX        8

typedef enum _LedDeviceId
{
    LED_DEVICE_ID_0 = 0,
    LED_DEVICE_ID_1,
    LED_DEVICE_ID_2, 
    LED_DEVICE_ID_3,
    LED_DEVICE_ID_MAX
}LedDeviceId;

typedef enum _LedChannelId
{
    LED_CH_ID_0 = 0,
    LED_CH_ID_1,
    LED_CH_ID_2, 
    LED_CH_ID_3,
    LED_CH_ID_MAX
}LedChannelId;

/**
 * @brief Color value for a single RGB LED.
 */
typedef struct _LedColor
{
    UCHAR8 ucRed;   /* Red channel */
    UCHAR8 ucGreen; /* Green channel */
    UCHAR8 ucBlue;  /* Blue channel */
} LedColor;

/**
 * @brief Global brightness control value for a single RGB LED.
 */
typedef struct _LedGlBc
{
    UCHAR8 ucRedGbc;    /* Red channel */
    UCHAR8 ucGreenGbc;  /* Green channel */
    UCHAR8 ucBlueGbc;   /* Blue channel */
} LedGlBc;
#endif /* _HV_CAL_LEDCOMM_H_ */
