📄 netsdkdemo.h
字号:
// NetSDKDemo.h : main header file for the NETSDKDEMO application
//
#if !defined(AFX_NETSDKDEMO_H__F984CDA1_DB9B_44E5_ADD8_44A8BB6D6E9D__INCLUDED_)
#define AFX_NETSDKDEMO_H__F984CDA1_DB9B_44E5_ADD8_44A8BB6D6E9D__INCLUDED_
//new
#define WM_IR_RECIEVE (WM_USER+110)
#define COUNT_BUTTON 18 //注意18个按键前7个是发射给电视机的,后11个是控制电脑的
#define REMOTE_CONTROL "遥控器"
//new
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
#include "ComPort.h"
/////////////////////////////////////////////////////////////////////////////
// CNetSDKDemoApp:
// See NetSDKDemo.cpp for the implementation of this class
//
//设备信息列表结构
typedef struct _DeviceNode {
char UserNanme[20]; //登录用户名
char Name[20]; //设备名称
char IP[20]; //设备IP地址字符
LONG LoginID; //设备登录iD
NET_DEVICEINFO Info; //设备信息
NET_CLIENT_STATE State; //设备状态
DWORD TotalKbps; //设备当前总码流
DWORD Max_Kbps; //设置最大网络流量
}DeviceNode;
//当前画面显示内容的类型
typedef enum _SplitType{
SPLIT_TYPE_NULL = 0, //空白
SPLIT_TYPE_MONITOR, //网络监视
SPLIT_TYPE_NETPLAY, //网络回放
SPLIT_TYPE_MULTIPLAY, //网络预览
SPLIT_TYPE_FILEPLAY, //本地文件播放
SPLIT_TYPE_CYCLEMONITOR, //轮循监视
SPLIT_TYPE_PBBYTIME //通过时间回放
}SplitType;
//视频参数结构
typedef union _VideoParam{
BYTE bParam[4];
DWORD dwParam; //视频参数
}VideoParam;
//画面分割通道显示信息(可以定义成type/param,param自定义)
typedef struct _SplitInfoNode
{
SplitType Type; //显示类型 空白/监视/网络回放/本地回放等
DWORD iHandle; //用于记录通道id(监视通道ID/播放文件iD等)
// DWORD nTimeCount; //时间计数,用于码流统计
// DWORD nKBPS; //码流统计//sdk增加接口后不用应用层统计
int isSaveData; //数据是否保存(直接sdk保存)
FILE *SavecbFileRaw; //保存回调原始数据
FILE *SavecbFileStd; //保存回调mp4数据
FILE *SavecbFileYUV; //保存回调yuv数据
FILE *SavecbFilePcm; //保存回调pcm数据
VideoParam nVideoParam; //视频参数
void *Param; //信息参数,对于不同的显示有不同的参数
}SplitInfoNode;
class CNetSDKDemoApp : public CWinApp
{
public:
CNetSDKDemoApp();
//new
bool m_preview;
void SelDvr(int Dvr);
void RemoteControl(int button);
void InitComm(int port);
LsComm::CComPort m_ComPort;
CByteArray m_ir_data[COUNT_BUTTON]; //红外线按键码
CByteArray m_tv_data[7]; //电视遥控器的按键,2006/10/25
CByteArray m_learn_data[3]; //学习的3次按键码
int m_learn_count; //学习次数
bool m_learn; //是否学习模式
int m_ir_fn; //遥控器当前的功能建
bool m_OnOff; //遥控器开关按动次数
HANDLE irEvent;
//new
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CNetSDKDemoApp)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CNetSDKDemoApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/*
class CDeviceListProtector //全局变量保护类
{
public:
CDeviceListProtector(CPtrList **list):m_ptrdevicelist(list)
{
*m_ptrdevicelist = new CPtrList(sizeof(DeviceNode));
*list = *m_ptrdevicelist;
}
~CDeviceListProtector()
{
int count = (*m_ptrdevicelist)->GetCount();
for (int i = 0; i < count; i++)
{
delete (DeviceNode *)((*m_ptrdevicelist)->GetTail());
(*m_ptrdevicelist)->RemoveTail();
}
(*m_ptrdevicelist)->RemoveAll();
delete (*m_ptrdevicelist);
}
private:
CPtrList **m_ptrdevicelist;
};
class CCSLock
{
public:
CCSLock(CRITICAL_SECTION& cs):m_cs(cs)
{
EnterCriticalSection(&m_cs);
}
~CCSLock()
{
LeaveCriticalSection(&m_cs);
}
private:
CRITICAL_SECTION& m_cs;
};
*/
//extern CRITICAL_SECTION g_cs;
//全局变量,用于保存程序所在目录的路径名
extern CString g_strWorkDir;
//全局变量,用于保存设备列表
//extern CPtrList *g_ptrdevicelist ;
//全局函数,将系统时间格式转换为大华定义的网络时间格式
void g_systimetodhtime(SYSTEMTIME *systime , NET_TIME *dhtime);
//全局函数,将大华定义的网络时间格式转换为系统时间格式
void g_dhtimetosystime(NET_TIME *dhtime , SYSTEMTIME *systime);
//全局函数,将大华定义的网络时间转换为字符串显示
CString g_TimeOutString(NET_TIME *dhtime );
//全局函数, 计算两时间点之差
DWORD g_IntervalTime(NET_TIME *stime, NET_TIME *etime );
void g_SetWndStaticText(CWnd * pWnd);
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_NETSDKDEMO_H__F984CDA1_DB9B_44E5_ADD8_44A8BB6D6E9D__INCLUDED_)
//new
void OnReceiveData(LPVOID pSender,void* pBuf,DWORD InBufferCount);
//new
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -