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

📄 zzconnectdlg.h

📁 组拨技术
💻 H
字号:
// ZZConnectDlg.h : header file
//

#if !defined(AFX_ZZCONNECTDLG_H__29A7CAD1_885E_436E_B719_D0723886A794__INCLUDED_)
#define AFX_ZZCONNECTDLG_H__29A7CAD1_885E_436E_B719_D0723886A794__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000



#pragma pack(8)

//#define SWAP
//PACKET头
#ifndef SWAP
typedef struct tagTSHeader
{
	unsigned int sync_byte:8;					//同步字节
	unsigned int error_indicator:1;			//错误指示信息
	unsigned int payload_indicator:1;			//负载单元开始标志
	unsigned int transport_priority:1;			//传输优先级标志
	unsigned int PID:13;						//PID,唯一的号码对应不同的包
	unsigned int scrambling:2;					//2字节加密标志
	unsigned int adaptation_field:2;			//附加区域控制
	unsigned int counter:4;					//包递增计数器
}TSHeader;
#else
typedef struct tagTSHeader
{
	unsigned long counter:4;					//包递增计数器
	unsigned long adaptation_field:2;			//附加区域控制
	unsigned long scrambling:2;					//2字节加密标志
	unsigned long PID:13;						//PID,唯一的号码对应不同的包
	unsigned long transport_priority:1;			//传输优先级标志
	unsigned long payload_indicator:1;			//负载单元开始标志
	unsigned long error_indicator:1;			//错误指示信息
	unsigned long sync_byte:8;					//同步字节
}TSHeader;
#endif


//8字节,PAT前8字节
typedef struct tagPAT
{
	UINT64 table_id:8;						//标志本表格类型,应该是Ox00
	UINT64 syntax_indacator:1;				//段语法标志,应该是1
	UINT64 zero:1;							//固定的0
	UINT64 reserved:2;						//保留
	UINT64 section_length:12;				//段大小,单位字节
	UINT64 transport_stream:16;				//当前六的ID,DVB内唯一(事实上很多都是自定义的TSID)
	UINT64 reserved1:2;						//保留
	UINT64 version_number:5;				//版本号码,很有用,改变时说明TS流中节目已发生变化,必须重新搜索节目
	UINT64 current_next:1;					//当前还是未来使用标志,一般为0
	UINT64 section_number:8;				//当前段号码
	UINT64 last_section_number:8;			//最后段号码,section_number和last_section_number的功能是当PAT内容大于184字节时,PAT表会分成多个段(sections),解复用程序必须在全部接收完成后再进行PAT的分析
}PAT;


//PAT循环部分
typedef struct tagPATCIRCLE
{
	unsigned long program_number:16;				//节目号
	unsigned long reserved:3;						//保留
	unsigned long PID:13;							//节目号对应的PID
}PATCIRCLE;


//PMT列表
typedef struct tagPMTPIDITEM
{
	int channel_number;		//频道号
	int pmt_pid;			//对应channel_number频道号的PMT的PID
}PMTPIDITEM;



//PMT数据
typedef struct tagPMTDATA
{
	UINT64 table_id:8;						//ID,应该是Ox02
	UINT64 syntax_indacator:1;				//段语法标志,应该是1
	UINT64 zero:1;							//固定是0,如果不是说明数据有错
	UINT64 reserved:2;						//保留位
	UINT64 section_length:12;				//段大小,单位字节
	UINT64 program_number:16;				//频道号码,表示当前PMT关联到的频道,就是当前描述的就是program_number频道的信息
	UINT64 reserved1:2;						//保留
	UINT64 version_number:5;				//版本号码,如果PMT有更新,则此变量递增1,通知解复用程序需要更新接受节目信息,否则是固定不变的
	UINT64 current_next:1;					//当前未来标志符,一般是0
	UINT64 section_number:8;				//当前段号码
	UINT64 last_section_number:8;			//最后段号码,含义和PAT中的对应段相同


}PMTDATA;

//PMT数据1
typedef struct tagPMTDATA1
{
	unsigned long reserved2:3;							//保留
	unsigned long PCR_PID:13;							//解复用程序不使用该参数
	unsigned long recerved:4;							//保留
	unsigned long program_info_length:12;				//节目信息长度(N个描述符总的长度,一般忽略,单位字节)
}PMTDATA1;

//PMT数据循环
typedef struct tagPMTDATACIRCLE
{				
	unsigned long reserved:3;						
	unsigned long elemantry_pid:13;					
	unsigned long reserved1:4;						
	unsigned long es_info_length:12;				
}PMTDATACIRCLE;


//视频音频的PID
typedef struct tagDATAPID
{				
	int type;						
	int pid;						
}DATAPID;

#pragma pack()


int InitSms();

int InitZJ();



#include "SocketMul.h"
//#include "ReceiveManager.h"

//ReceiveManager		m_receiveManager;

/////////////////////////////////////////////////////////////////////////////
// CZZConnectDlg dialog

class CZZConnectDlg : public CDialog
{
// Construction
public:
	CZZConnectDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CZZConnectDlg)
	enum { IDD = IDD_ZZCONNECT_DIALOG };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CZZConnectDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CZZConnectDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnClose();
	afx_msg void OnDestroy();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

protected:
	CSocketMul		m_socketMul;

};

//{{AFX_INSERT_LOCATION}}
// Microsoft eMbedded Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_ZZCONNECTDLG_H__29A7CAD1_885E_436E_B719_D0723886A794__INCLUDED_)

⌨️ 快捷键说明

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