⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvbdata.h

📁 MiniWinOuterSM MiniWinOuterSM
💻 H
字号:
// dvbdata.h: interface for the dvbdata class.
//
//////////////////////////////////////////////////////////////////////

#ifndef __DVB_DATA_H__
#define __DVB_DATA_H__
#include "SITable.h"
#include "secdb.h"
#include "PrTuner.h"      
#include "Prtypes.h"
#define MAX_TSPROGRAM 32
#define SND_LEFT  0x8000
#define SND_RIGHT 0x4000
#define SND_ALL	  0xC000
#define CH_LOCK	  0x2000
#define CH_VOLUME 0x00FF
//分组方式系统分组最高位置1
//用户Favirate分组第30位置1 即BouquetFavID=BouquetID|0x40000000
//BAT分组高16位为0,低16位为BouquetID值
#define SYSGROUP_FAVID_PREFIX 0x80000000
#define BOUQUET_FAVID_PREFIX  0x40000000

#define GROUP_ALL		(SYSGROUP_FAVID_PREFIX|1)
#define GROUP_VIDEO		(SYSGROUP_FAVID_PREFIX|2)
#define GROUP_AUDIO		(SYSGROUP_FAVID_PREFIX|3)
#define GROUP_NVOD		(SYSGROUP_FAVID_PREFIX|4)
#define GROUP_TELETEXT  (SYSGROUP_FAVID_PREFIX|5)
#define GROUP_DATA		(SYSGROUP_FAVID_PREFIX|6)


#define ST_VIDEO		1	//以下为service type定义 
#define ST_AUDIO		2
#define ST_TELETEXT		3
#define ST_NVODREF		4
#define ST_NVODSHIFT	5
#define ST_MOSAIC		6
#define ST_FMRADIO		0xA	 
#define ST_DATA			0x0C
#define ST_MHP			0x10
typedef struct {
	USHORT netId;
	USHORT tsId;
	USHORT serviceId;
}SERVICELOCATOR;
typedef struct TSData{
	USHORT netId,tsId;
	//unsigned int frequency,symbol,modualation;
	PRTunerParams tunerParams;
	USHORT States[MAX_TSPROGRAM];
	SECTIONDB*pat;
	SECTIONDB*pmt;
	SECTIONDB*sdt;
	struct TSData*next;
	PRMutex lock;
}TSDATA;
typedef int (*SIRECEIVEPROC)(TSDATA*ts,void*params);

#ifdef __cplusplus
extern "C"{
#endif
	int CreateSystemDB(void);
	int ResetSystemDB(void);
	int DestroySystemDB(void);
	TSDATA*FindTS(UINT16 netId,UINT16 tsId);//查找一个TS
	TSDATA*FindTSByFrequency(UINT32 freq);
	TSDATA*CreateTS(UINT16 netId,UINT16 tsId);//建立一个新的TS;
	TSDATA*GetFirstTS(void);
	void FreeTSData(TSDATA*ts);//释放TS结构的所有内存但不包括TS结构本身
	void FreeAllTS(void);//释放所有TS的数据包括TS本身 

	int GetServiceInfo(const SERVICELOCATOR*sloc,DVBService*service);//
	//失败返回0,成功返回1和2。如果只能找到PMT返回1,能找到SDT则返回2
	int GetServiceName(SERVICELOCATOR*sloc,char*provider,char*sname,UCHAR*lan);
	int GetServiceType(SERVICELOCATOR*service);
	int GetNvodTimeShiftService(SERVICELOCATOR*refService,SERVICELOCATOR*timeShifts);
	//查找refService的所有TimeShift Service,timeShifts输出所有TimeShift Service可以为空,返回TimeShift Service数量
	int GetServiceParams(const SERVICELOCATOR*sloc,UINT32*pids);
	//获取一个Service的所有PID,高16位为streamType,低16位为PID值,返回PID总数量
	int GetServicePIDS(const SERVICELOCATOR*sloc,UINT16*pcrPID,UINT16*vID,UINT16*aIDs);
	//获取一个Service的音视频PID,高16位为streamType,低16位为PID值
	//如果返回值n大于3表示有多个(n-3+1)音频PID;
	USHORT GetServicePmtPID(SERVICELOCATOR*sloc);
	USHORT GetServiceState(SERVICELOCATOR*service,UINT16 mask);
	USHORT SetServiceState(SERVICELOCATOR*sloc,UINT16 mask);
	

	SECTIONDB*GetBouquetDB(void);
	SECTIONDB*GetNetworkDB(void);
	int CreateGroupByBouquet(void);
	int GetBouquetName(UINT16 bouquetId,char*name,char*lan);
	//根据Bouquet自动建立/更新分组。返回建立的Group数量

	int LoadDVBData(UCHAR*data);
	int SaveDVBData(UCHAR*data);
#ifdef __cplusplus
}
#endif
#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -