#ifndef _DEVINFO_H
#define _DEVINFO_H
#include "NetSDKDLL.h"
class CAVPlayer
{
public:
	CAVPlayer(HWND hWnd);
	~CAVPlayer();

	//void SetPlayHandle(long lPlayHandle);
//	char *pAVParam;	// 流媒体参数

	HWND m_hWnd; // 播放窗口
	//long m_lPlayHandle; // 播放句柄
	long m_lPlayID; // 播放器ID
	BOOL m_bLocal;
	long m_playState; //1:播放  2:暂停
	
};

class CDevInfo
{
public:
	CDevInfo(IPC_ENTRY *pEntry);

	~CDevInfo();
	
	void ReInit();
	void IPModify(const char *pIP);
	int  AddPresetList(CString &StrPreset);// 返回0表示相等，非0表示不相等 
	IPC_ENTRY m_IPCEntry;
	/* 公共属性 */
	long iUserID;				// 0值  无效;
	char *pDevceIP;				// 设备IP
	char *pRecordFileList;		// 录像文件列表
	char *pLogFileList;			// 日志文件列表
	char *pPresetList;			// 预置点列表
	int iStatusEvent;			// 文件下载状态
	int iUpgradeEvent;			// 升级状态
	BOOL bAddTalk;				// 加入对讲
	int iVideoChannle;			// DVS时：0,1,2,3,4 IPC时：0,1
	int iDevType;				// 设备类型可以是0，1；0表示IPC，1表示DVS。
	int iLoginStatus;			// 0 未收到登陆状态，-1 登陆失败，1 登陆成功。
	int iOpenStream;			// 0 未进行取流操作，-1 取流失败，1 取流成功。
	int iDownLoad;				// 0 没有任何任务，-1 下载中断，1 正在下载。
	HTREEITEM hTreeItem;		// 树控件的位置
	HTREEITEM hSubItem;			// 树控件的位置
	BOOL bDVSDevice;			// 是否是DVS
	int iAlive;					// 在线状态: 0 -- 不在线， 1 -- 在线，-1 -- 设备重连中， 2 -- 实时视频中， -2 -- 实时视频异常断开 
	BOOL bAutoReconnect;		// 自动重连
	BOOL bSubStream;			// 是否是子码流连接
	BOOL bTCPConnect;			// 是否TCP连接
	/*实时播放*/
	long lRealHandle;			// 取流句柄,0值无效
	char *pAVParam;				// 实时流媒体参数
	long lPlayerID;				// 播放器ID 1 - 9999
	HWND hRealPlayWnd;			// Real play
	int iOpenAudio;				// 音频控制

	/* 输入流对象 */
	long lInputStreamHandle;	// 输入流录像

	/* 远程回放 */
	CAVPlayer *m_pRemotePlayBack; //

	int isNVR;					//是否NVR设备，0:不是  1:NVR服务器  2:NVR通道
	int iNVRChannelNums;		//NVR通道数量
	char szNVRCHStatus[64];		//NVR通道状态
#if 0
	union
	{
		CDevInfo* pNVRParent;		//通道的父设备 isNVR为2时使用
		CDevInfo* PNVRCHannel[64];  //NVRR的通道   isNVR为1时使用
	};
#endif
};

#endif