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

📄 netsdkdemodlg.h

📁 它是一个可以实时交互的嵌入式软件系统
💻 H
📖 第 1 页 / 共 2 页
字号:
// NetSDKDemoDlg.h : header file
//

#if !defined(AFX_NETSDKDEMODLG_H__874C22A9_455C_4113_9954_FDC1528EE15D__INCLUDED_)
#define AFX_NETSDKDEMODLG_H__874C22A9_455C_4113_9954_FDC1528EE15D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "searchrecord.h"
#include "clientState.h"
#include "BtnST.h"
#include "exbutton.h"
#include "systemconfig.h"
#include "PlayWnd.h"
#include "ScreenPannel.h"
#include "PTZPannel.h"
#include "ColorPannel.h"
#include "PlayCtrlPannel.h"
#include "NormalBtnPannel.h"
#include "AdvanceBtnPannel.h"
#include "SaveDataPannel.h"
#include "SelectPannel.h"
#include "RuntimeMsgPannel.h"
#include "IrDlg.h"
#include "NetSDKDemo.h"
/////////////////////////////////////////////////////////////////////////////
// CNetSDKDemoDlg dialog

#define TIMER_KBPS 1999

//画面分割类型
enum{
	SPLIT1 = 0,
	SPLIT4,
	SPLIT9,
	SPLIT16,	
	SPLIT_TOTAL
};

//播放控制类型
enum{
	STATUS_STOP,
	STATUS_PAUSE,
	STATUS_PLAY,
	STATUS_STEP,
};

//设置视频参数
enum{
	VIDEO_BRIGHT = 0,
	VIDEO_CONTRAST,
	VIDEO_HUE,
	VIDEO_SATURATION,
	VIDEO_TOTAL
};

//云台控制操作
enum{
	PTZ_START,
	PTZ_STOP
};
//监视信息参数
typedef struct _SplitMonitorParam
{
	DeviceNode *pDevice;  //设备指针
	int iChannel;   //对应的设备中的通道序号
	BOOL  isTalkOpen;  //是否打开语音对讲
}SplitMonitorParam;

//网络回放信息参数
typedef struct _SplitNetPlayParam
{
//	DWORD iFilePos;  //文件信息列表position/
	FileInfoNode *pFileInfo;   //文件信息指针
	int   iStatus;  //播放状态 正常/暂停/快放/慢放
	int   iPlayPos;  //当前播放的位置
}SplitNetPlayParam;

//通过时间回放录象参数
typedef struct _SplitPBByTimeParam
{
	DeviceNode *pDevice;
	NET_TIME starttime;
	NET_TIME endtime;
	int nChannel;
	int npos;
	int iStatus;
}SplitPBByTimeParam;

//多画面预览信息参数
typedef struct _SplitMulitPlayParam
{
	DeviceNode *pDevice;  //设备指针
}SplitMultiPlayParam;

//轮循监视信息参数
typedef struct _CycleChannelInfo
{
	DWORD dwDeviceID;
	int iChannel;
}CycleChannelInfo;
typedef struct _SplitCycleParam
{
	DeviceNode *pDevice;	//设备指针
	CPtrList *pChannelList;	//轮循通道列表
	int iChannelCount;		//通道数
	int iCurPosition;		//当前监视通道在数组里的位置
	UINT iInterval;			//画面切换间隔时间(秒)
}SplitCycleParam;	

class CNetSDKDemoDlg : public CDialog
{
// Construction
	int m_connectwaittime;  //设置连接等待时间
	int m_curScreen;   //当前显示画面序号
	int m_curSoundSplit;  //当前声音输出所在的画面序号

	//内部根据设计需要的子功能函数
	void *GetCurDeviceInfo();  //获得当前设备列表选择的设备的信息指针
	void *FindDeviceInfo(LONG lLoginID, char *sDVRIP,LONG nDVRPort); //根据设备id获得设备信息指针
	int GetHandleSplit(LONG lPlayHandle);   //根据id,获得当前画面序号
	BOOL CheckCurSplitAndClose();  //检查当前画面并关闭图像显示;
	BOOL IsCycling(DWORD deviceID, int channelNo);   //是否在轮训通道
	int  GetCurSplitStart(int nScreen, int nSplit);   //获取当前画面分割模式的指定画面的起始画面序号
	int  PlayStop(int iScreen, BOOL bDis = FALSE);    //播放停止

	//各类更新操作函数
	void UpdateVideoCtrl(int nMode);      //刷新视频参数控制区
	void UpdateDeviceList();     //刷新设备列表
	void UpdateDeviceState(void *pDevice, char *pBuf, DWORD dwBufLen); //更新设备的状态
	
public:
	CNetSDKDemoDlg(CWnd* pParent = NULL);	// standard constructor
	//sxw
	CImageList m_theImageList;//树形控件图像列表
	HTREEITEM activeItem;//活动子项
	HTREEITEM activeparentItem;//活动父项

	//用于回调的接口
	void DeviceDisConnect(LONG lLoginID, char *sDVRIP,LONG nDVRPort);
	void ReceiveRealData(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize);
	BOOL ReceiveMessage(LONG lLoginID, LONG lCommand, char *pchDVRIP, LONG nDVRPort, 
		char *pBuf, DWORD dwBufLen);
	void AddDisplayInfo(LONG lLoginID, LONG lPlayHandle, HDC hDC);  //叠加字符或图片
	void ReceivePlayPos(LONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize);

	//用于删除轮循画面的参数
	void DeleteCycleParam(int nScreen);

	//设备断开时回调函数,可以用来处理断开后设备列表的更新及设备的删除操作
	friend void CALLBACK DisConnectFunc(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);
	//监视数据回调函数,可以用来将回调数据保存成文件
	friend void CALLBACK RealDataCallBack(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, 
		DWORD dwBufSize, DWORD dwUser);
	//回放数据回调函数,demo里将数据保存成文件
	friend int CALLBACK PBDataCallBack(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, 
		DWORD dwBufSize, DWORD dwUser);
	friend void CALLBACK RealDataCallBackEx(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, 
		DWORD dwBufSize, LONG lParam, DWORD dwUser);
	//消息回调处理函数,是对整个sdk应用的回调,用来处理回调出来的报警信息
	friend BOOL CALLBACK MessCallBack(LONG lCommand, LONG lLoginID, char *pBuf, 
		DWORD dwBufLen, char *pchDVRIP, LONG nDVRPort);
	//自定义画板回调,可以用来显示通道名称
	friend void CALLBACK ChannelAutoDraw(LONG lLoginID, LONG lPlayHandle, HDC hDC, DWORD dwUser);
		//播放进度状态回调函数,用来处理进度条显示
	friend void CALLBACK PlayCallBack(LONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize, DWORD dwUser);

	//两个页面
	CClientState  m_ClientStateDlg;
	
//	CSystemConfig m_SysConfig;
	// Dialog Data
	//{{AFX_DATA(CNetSDKDemoDlg)
	enum { IDD = IDD_NETSDKDEMO_DIALOG };
	CButtonST	m_btn_down;
	CButtonST	m_btn_cnl;
	CButtonST	m_btn_vod;
	CButtonST	m_btn_up;
	CButtonST	m_btn_right;
	CButtonST	m_btn_ok;
	CButtonST	m_btn_left;
	CButtonST	m_btn_fos;
	CButtonST	m_btn_dvr;
	CButtonST	m_btn_ptz;
	CButtonST	m_btn_setup;
	CButtonST	m_btn_min;
	CButtonST	m_btn_close;
	CStatic	m_logopic;	
	CStatic	m_toppic;
	CStatic	m_rightpic;
	CStatic	m_leftpic;
	CStatic	m_rmtctl;
	CExButton	m_ptz_righttop;
	CExButton	m_ptz_rightdown;
	CExButton	m_ptz_lefttop;
	CExButton	m_ptz_leftdown;
	CExButton	m_zoom_wide;
	CExButton	m_zoom_tele;
	CExButton	m_focus_near;
	CExButton	m_focus_far;
	CExButton	m_iris_open;
	CExButton	m_iris_close;
	CExButton	m_ptz_up;
	CExButton	m_ptz_right;
	CExButton	m_ptz_left;
	CExButton	m_ptz_down;
	CComboBox	m_channelsel;
	CTreeCtrl	m_devicelist;

⌨️ 快捷键说明

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