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_ */