/**
* Copyright(c) 2012 Sunmedia Technologies - All Rights Reserved.
*
* @file 
*
* @brief this file defines closed caption and vchip interface for app layer.
*
* The file supports the closed caption and vchip functions by used for app layer. 
* The datas related closed caption functions include analog and digitial datas and
* the datas related vchip functions include analog datas only.
*/

#ifndef __AI_CLOSEDCAPTION_H__
#define __AI_CLOSEDCAPTION_H__

#include "al_basictypes.h"
#ifdef CONFIG_ATSC_SYSTEM
#include "psip.h"
#endif
#include "mid_cc.h"

#ifdef __cplusplus
	extern "C"{
#endif

/**
* @brief closed caption init function.
* 
* This api is used to create mutex for protecting the shared resource.
* the closed caption decoder task
* 
* @param al_void.
*
* @return AL_SUCCESS if initialization is successful, AL_FAILURE
* otherwise.
*/
AL_Return_t AI_CC_Init(Vchip_Callback_f VChip_CallBack);

/**
* @brief closed caption uninit function.
* 
* This api is used to delete mutex for protecting the shared resource 
* and so on.
* 
* @param al_void.
*
* @return AL_SUCCESS if uninitialization is successful, AL_FAILURE 
* otherwise.
*/
AL_Return_t AI_CC_Uninit(al_void);

/**
* @brief the function will get digital caption service descriptor information.
*
* @param *CCDescInfo gotten the caption service descriptor information.
*
* @return AL_SUCCESS if gotten descriptor information is successful, AL_FAILURE 
* otherwise.
*/
#ifdef CONFIG_ATSC_SYSTEM
AL_Return_t AI_CC_GetDescInfo(CaptionServiceDesc_t *CCDescInfo);
#endif
#ifdef __cplusplus
}
#endif
#endif
