/*
 ******************************************************************************
 *
 * @file     VOX_Module.h
 * @brief    VOL/R module
 *                 
 *
 * @version  1.0
 * @date     2022/07/18   09:59:40
 * @author   Alex Xu
 *
 * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd.
 * All Rights Reserved
 *
 * History:
 * Revision          Date           Author            Desc
 * 1.0.0            2022/07/18      Alex          build this file
 ******************************************************************************
 */
#ifndef __VOX_MODULE_H__
#define __VOX_MODULE_H__

#include "define.h"

sbit COM_CTRL = P1^0;

extern bit Vor_Vout_Enable;						//Vor功率输出标志位
extern bit Vol_Vout_Enable;						//Vol功率输出标志位;

extern bit Vor_Chg_Flag; 					 //耳机出入盒标志位
extern bit Vol_Chg_Flag; 	

#if VOX_ENABLE
/******************************************************************************\
						  Macro definitions
\******************************************************************************/
/*
VOX过流档位设置，在系统初始化中(Vox_init())通过配置VOX_CON0，

SFRADDR = VOX_CON0;    //设置VOX输出500mA，负载识别电流2.5uA。
SFRDATA &= 0xE0;
SFRDATA |= (VOX_IOUT_500MA << 3) | VOX_ADT_Cur_2_5UA;

*/
#define VOX_IOUT_200MA	0x00				
#define VOX_IOUT_300MA	0x01
#define VOX_IOUT_400MA	0x02
#define VOX_IOUT_500MA	0x03

#define	VOX_ADT_Cur_0_5UA	0x00
#define	VOX_ADT_Cur_1_5UA	0x01
#define	VOX_ADT_Cur_2_5UA	0x02
#define	VOX_ADT_Cur_3_5UA	0x03
#define	VOX_ADT_Cur_4_5UA	0x04
#define	VOX_ADT_Cur_5_5UA	0x05
#define	VOX_ADT_Cur_6_5UA	0x06
#define	VOX_ADT_Cur_7_5UA	0x07


 /******************************************************************************\
							  Variables definitions
 \******************************************************************************/



/* VOL Enable Type */
typedef enum {

     VOX_VOUT_Mode = 0x00,						//VOx 5V 输出使能
     VOX_ADT_Mode,						//VOx 负载接入、存在识别功能使能，负载自动识别
     
} VOX_Enable_Mode_e;


typedef enum {
	
	VOX_GET_INTO_BOX = 0,				//耳机入仓
	VOX_STAY_IN_BOX,					//耳机在仓
	//VOX_GET_OUTPUT_BOX,					//耳机出仓
    VOX_NONE_IN_BOX,					//空仓
    
}Vox_State_e;
	
extern Vox_State_e Vol_State;
extern Vox_State_e Vor_State;

 /******************************************************************************\
							  UserCfg.Functions definitions
 \******************************************************************************/
 
 extern void Vox_init(void);

 extern void VOL_EN_Type(VOX_Enable_Mode_e VOL_Enable_Mode);
 extern void VOR_EN_Type(VOX_Enable_Mode_e VOL_Enable_Mode);

 extern void Vol_Det_Machine(void);
 extern void Vor_Det_Machine(void);

#endif

#endif

