www.pudn.com > tvctrl.rar > atvdtv.h


#ifndef _ATVDTV_H_  
#define _ATVDTV_H_  
  
#ifndef HW_HANDLE   
#define HW_HANDLE unsigned long  
#endif  
#include   
#include   
#include   
  
#define TVTYPE_ATV		0x00	// 模拟电视  
#define TVTYPE_DTV		0x01	// 数字电视  
#define TVTYPE_FTV		0x02	// 功能电视  
  
#define ATV_CHANNELID_START	0  
#define ATV_CHANNELID_END	299  
  
#define DTV_CHANNELID_START	300  
#define DTV_CHANNELID_END	899  
  
#define FTV_CHANNELID_START	1000  
#define FTV_CHANNELID_END	2000  
  
typedef struct tagTVSpecial  
{  
	int tvtype;/*是否是数字电视状态下*/  
	union  
	{  
		ATVSpecial atv; /*模拟电视信息*/  
		DTVSpecial dtv; /*数字电视信息*/  
	}special;  
}TVSpecial,*PTVSpecial;  
  
typedef struct tagTVChannelInfo  
{  
	int tvtype; /*电视状态(模拟、数字或功能)*/  
	union  
	{  
		ATVChannelInfo atv; /*模拟电视节目信息*/  
		DTVChannelInfo dtv; /*数字电视节目信息*/  
		FUNCITEM		ftv;/*功能电视节目信息*/  
	}info;  
}TVChannelInfo,*PTVChannelInfo;  
  
typedef enum tagSEARCH_STATUS  
{  
	TV_SEARCH_FINISH = 0,  
	TV_SEARCH_CONT,  
	TV_SEARCH_IDLE,  
	TV_SEARCH_BREAK,  
	TV_SEARCH_FAILED,  
}SEARCH_STATUS;  
	  
#ifdef __cplusplus  
extern "C" {  
#endif  
/*搜台时的回调函数  
handle:当前搜台所打开的电视;  
tvinfo:搜到了一个台的信息;  
status:搜台过程中的状态信息参见SEARCH_STATUS结构;  
返回:当返回为0时,中止搜台过程;*/  
typedef int (*LPFUNCTVSEARCH)(HW_HANDLE handle,TVChannelInfo * tvinfo,unsigned int status);   
  
/*打开电视句柄,path:电视所在通道号,bDTV是否是数字电视,返回打开的句柄,须调用Hw_CloseTV()关闭。*/  
//1、	  
HW_HANDLE Hw_OpenTV(int path,int bDTV);  
  
/*与Hw_OpenTV()成对出现*/  
//2、	  
int Hw_CloseTV(HW_HANDLE handle);  
  
/*设置电视的详细相关信息,handle是Hw_OpenTV打开后的句柄*/  
//3、	  
int Hw_SetTVSpecial(HW_HANDLE handle,TVSpecial *pspecial);  
//4、	  
int Hw_GetTVSpecial(HW_HANDLE handle,TVSpecial ** ppspecial);  
  
/*切换到指定频道:handle是Open函数打开后的句柄,tvinfo是要打开的节目的详细物理信息*/  
//5、	  
int Hw_TuneToTV(HW_HANDLE handle,TVChannelInfo* tvinfo);  
  
/*取得高频道状态*/  
//6、  
int Hw_TuneStateGet(HW_HANDLE handle, int *state) ;  
  
/*搜台:handle是打开的句柄,  
searchtype:0:普通搜台,1快速搜台;  
callback:是接收搜台信息用的回调函数*/  
//6、	  
int Hw_TVSearch(HW_HANDLE handle,  
				int searchtype,LPFUNCTVSEARCH callback);  
  
/*  
四、	调台模块:  
*/  
  
/*切换到指定频道的电视,handle是调用Hw_OpenTV ()打开的句柄;  
tvid:频道号,1~300是模拟电视频道,300~900是数字电视,1000以上是功能频道*/  
//1、	  
int TuneToTV(HW_HANDLE handle,int tvid);  
  
/*相对当前频道换台,step>0向前步进,<0向后步进*/  
//2、	  
int TuneStepTV (HW_HANDLE handle,int step);  
  
/*相对当前频道微调,substep为微调值,以1/16MHZ为单位。>0几前调,<0向后调*/  
/*resultdiv为实际频率值,以1/16MHZ为单位*/  
//3.1、  
int TuneSubTV(HW_HANDLE handle,int substep, int *resultdiv) ;  
/*相对当前频道微调,divbase 起始频点,以1/16MHZ为单位; substep为微调值,以1/16MHZ为单位。>0几前调,<0向后调*/  
/*resultdiv为实际频率值,以1/16MHZ为单位*/  
//3.2、  
int TuneSubTVEx(HW_HANDLE handle,int divbase, int substep, int *resultdiv) ;  
  
/*取得高频道状态*/  
//4、  
int TuneStateGet(HW_HANDLE handle, int *state) ;  
  
  
/*参照高频头控制模块,回调函数由应用界面调用,一般用于显示节目信息给用户,并可被用户中断搜台过程。*/  
/*****SearchTV()相关回调函数说明: 使用SearchTV()时,若返回值>=0则继续电视搜台,否则中止*****/  
//1、	  
int SearchTV(HW_HANDLE handle, int type, LPFUNCTVSEARCH callback,  
			unsigned int status);  
  
  
/* 新增函数 */  
  
/* 设置图像模式,高频头相关,暂时未用 */  
int Hw_SetChannelPicMode(HW_HANDLE handle, int mode) ;  
  
/* 设置声音模式,高频头相关 */  
int Hw_SetChannelSndMode(HW_HANDLE handle, int mode) ;  
  
/* 设置7400的信源 */  
int Hw_Set7400Source(HW_HANDLE handle, int source) ;  
  
/* 初始化9332 */  
int Hw_Init9332(HW_HANDLE handle) ;  
  
  
#ifdef __cplusplus  
}  
#endif  
  
#endif /* end #ifndef _ATVDTV_H_ */