#ifndef WMMCONFIG_H
#define WMMCONFIG_H

#include "sysdef.h"

#define ORDER_CONFIG_DAC_SWITCH 0x0301 // DAC开关(对应目前网管的功放开关3)
#define ORDER_CONFIG_DAC_GAIN 0x0302   // DAC增益（对应目前网管功放增益微调1）

#define ORDER_CONFIG_PA_SWITCH 0x0303 // PA开关(对应目前网管的功放开关1)
#define ORDER_CONFIG_PA_GAIN 0x0304   // PA增益（对应目前网管功放增益1）

#define ORDER_CONFIG_RESET_PARAM 0x03FD // 参数复位
#define ORDER_CONFIG_RESET 0x03FE       // 设备复位
#define ORDER_CONFIG_SAVE 0x03FF        // 保存参数

// 增益参数结构
typedef struct
{
    uint8 byDacSwitch; // DAC声道开关，0：关闭，1：打开
    uint8 byDacGain;   // DAC左声道增益，0x00-0xFF，表示-95.5db到32db增益，0xBF：标识0dB

    uint8 byPaSwitch; // PA左声道开关，0：关闭，1：打开
    uint8 byPaGain;   // PA左声道增益，20,26,32,36

    uint8 abyReserve[20]; // 保留，确保4字节对齐
} SAVE_CONFIG_T;

/*********************************************************
函数定义声明
**********************************************************/
// 供外部使用的接口
void wmm_config_init();
void wmm_config_set_param_with_default_data();
void wmm_config_set_param_with_flash_data(uint8 *pbyData);
SAVE_CONFIG_T *wmm_config_query_param(); // 查询配置参数
void wmm_config_query(uint16 wCommand, uint8 *pbyLtv);
void wmm_config_config(uint16 wCommand, uint8 *pbyLtv);

// 内部接口
void wmm_config_restart();

#endif
