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

📄 net_cmdtcp.h

📁 实时监控
💻 H
字号:
#ifndef _CMDTCP_H
#define _CMDTCP_H

#include "../notif/notif_net.h"
#include "../notif/notif_cmd.h"
#include "../notif/notif_av.h"
#include "net_bktcp.h"
#include "net.h"

#include "net_av.h"
#include "net_logintcp.h"
#include "alarm server.h"
#include "vector"
#include "timer.h"

class net_avtcp;
class net_av;
class net_bktcp;

#define IPPORT ULONG rip, USHORT rport

class login_information
{
public:

  ULONG				ip;

  USHORT			port;

  ULONG             m_id;

  PRIVILEGE			priv;

  net_logintcp	*	p;

  TREC_ALARMINFO	alarm_info ;
};

class bak_talk_information
{
public:

  ULONG			ip;

  USHORT		port;

  net_bktcp		*p;
};

typedef std::vector<login_information> login_list;
typedef login_list::iterator kit;

typedef std::vector<bak_talk_information> bak_talk_list;
typedef bak_talk_list::iterator dbit;

//##ModelId=3F9A1D230004
class net_cmdtcp
{
	enum 
	{
		max_channel=256, 
	};

	UINT tcp_bitrate;
	
	net_alarmserver * palarmserver;

	net_avtcp* avtcp[max_channel];

	int last_group;

	int vod_group;

	bool shake_exit;

	HANDLE shake_handle;

	CMD_CALLEE cmdcb;
	
	OPT_GET_CALLEE gc;
	
	OPT_SET_CALLEE sc;

	login_list login_list;

	/// Backup
	BACKUP_CALLEE bkcb ;

	//Talking
	BACKUP_CALLEE talkcb ;

	friend DWORD CALLBACK shake_hand_tcp(LPVOID dwUser);

	bool creat_shakehand_thread();

	void close_shake_handle();
	
	void send_cmd(IPPORT, char cmd, const char* data, int datalen);

	void send_cmd_data(int group, char cmd, const char* data, int datalen);

	void send_vodcmd_data(int group, char cmd, const char* data, int datalen);

	void send_cmd_bak(ULONG rip, USHORT rport, char cmd, const char* data, int datalen,  bak_talk_list & list);

	void close_vod();

	void close_vod(int group);

	void shake_hand();
	
	void process_alarm(ULONG ip, USHORT port, byte* data);

	ULONG send_open_channel(IPPORT);

	ULONG operation_btye(int m);

	kit find_login(ULONG ip, USHORT port);

	bool delete_login(ULONG ip, USHORT port);

	void send_vodcmd_speed(int group, LONG speed);

	void insert_login(ULONG ip, USHORT port, ULONG id, PRIVILEGE priv = privNONE);
 
	int get_vod_windows_counts(ULONG ip, USHORT port);

	dbit find_bak_talk_inf(ULONG ip, USHORT port,  bak_talk_list & list);

	void insert_bak_talk_inf(ULONG ip, USHORT port, net_bktcp *p, bak_talk_list & list);
	
public:
	
	bak_talk_list bak_list;

	net_cmdtcp();
	
	virtual ~net_cmdtcp();

	BOOL create(IPPORT, CMD_CALLEE cb);

	static net_cmdtcp * m_netcmdp;
	
	friend class CSoundintcp;

	virtual void destroy();

	HWND get_cmdhwnd() { return cmdcb; }

	BOOL login(IPPORT, LPCTSTR user, LPCTSTR password);

	BOOL logout(IPPORT, BOOL close_remote);

	BOOL open_remote_channel(IPPORT, 
		LONG channel_idx, 
		LONG group, 
		VIDEO_CALLEE cb,BOOL bUdpav);


	BOOL close_remote_channel(LONG group);
	
	BOOL close_local_channel(LONG group);

	void update_window(int group);
	
	//##ModelId=3F9A1D2302DF
	void set_option(IPPORT, NET_OPTIONS no, void* stuff, OPT_SET_CALLEE cb);
	//##ModelId=3F9A1D230307
	void get_option(IPPORT, NET_OPTIONS no, int channel, OPT_GET_CALLEE cb);

	bool delete_bak_talk_inf(ULONG ip, USHORT port, bak_talk_list & list, bool m_bool);

	virtual void on_net_tcp_recv(byte* buf, int length, ULONG from_ip, USHORT from_port, int group);

	void get_options_file(IPPORT, byte * m_byte, OPT_GET_CALLEE cb);

	void get_options_backup_file(IPPORT, byte * m_byte, OPT_GET_CALLEE cb);

	//##ModelId=3F9A1D23032F
	void switch_audio(int group);
	//##ModelId=3F9A1D230339
	void mute(BOOL mute);
	//##ModelId=3F9A1D23034D
	int get_audio_group();

	void clear_alarm(ULONG ip, USHORT port);
	
	//##ModelId=3F9A1D23034E
	VOD_SPEED get_vod_speed(ULONG ip,int group);
	//##ModelId=3F9A1D230357
	void request_vod(ULONG rip, LONG rport, 
		const TREC_FILETIME* ft, 
		VOD_CMD cmd, 
		int group,
		VIDEO_CALLEE cb,BOOL bUdpav);

	//##ModelId=3F9A1D230393
	void start_local_record(int group, TCHAR drive);
	//##ModelId=3F9A1D2303A7
	void stop_local_record(int group);
	//##ModelId=3F9A1D2303BB
	void get_local_record(int group, TCHAR* drive);

	bool check_vod_send_cmd(LONG speed, int time_nub);

	void start_backup(IPPORT, TREC_BACKUPTIME* opt, BACKUP_CALLEE cb) ;

	void stop_backup(ULONG rip, USHORT rport) ;

	void start_talk(IPPORT,int channel, BACKUP_CALLEE cb) ;

	void stop_talk(ULONG rip, USHORT rport) ;

	bak_talk_list talk_list;

	//##ModelId=3F9A1D240006
	bool snapshot(int group, LPCTSTR bmpfile);

	//##ModelId=3F9A1D24001A
	void set_video_renderer(COLOR_SPACE cs, BOOL video_mem);

	void get_disk_info(ULONG rip, ULONG rport);

	//##ModelId=3F9A1D240037
	PRIVILEGE get_privilege(ULONG ip, USHORT port);

	//##ModelId=3F9A1D24004B
	BOOL is_muted();

	void on_disconnect(ULONG ip, USHORT port);

	void post_alarm_message(ULONG ip, USHORT m_new, USHORT m_type);

	void get_zh_decstate(ULONG ip, USHORT port, int address);

	ULONG get_host_by_name(LPCTSTR m_name);

	BOOL set_cb_showhandle(int group, VIDEO_CALLEE cb);

	BOOL set_callbackfn(int group, PCALLBACKSTREAMPROD p, DWORD d1, DWORD d2);

	BOOL set_decodedcallbackfn(int group, PCALLBACKDECODEDSTREAMPROD p, DWORD d1, DWORD d2);

	BOOL setdrawaddimagecallback(int group, pDraw_Add_Image pimage, DWORD d1, DWORD d2);

	BOOL open_alarm_server(USHORT bindport);

	BOOL close_alarm_server();

	BOOL set_update_statue(ULONG ip, USHORT port);

	BOOL set_netclub_info(ULONG ip, USHORT port, void * buf, int len);

	BOOL set_dvrrestart(ULONG ip, USHORT port);

	BOOL sendcardid(ULONG ip, USHORT port, void * buf);

	BOOL opennet_alarm(ULONG ip, USHORT port, int channel);

	BOOL closenet_alarm(ULONG ip, USHORT port, int channel);

	BOOL openalarm_output(ULONG ip, USHORT port, int output);

	UINT get_bitrate(int group);

	UINT tcp_get_bitrate();

	BOOL is_opened(int group);

};




#undef IPPORT
#endif	// _CMD_H

⌨️ 快捷键说明

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