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

📄 net_avtcp.h

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

#define USE_SOUNDOUTx

#include "../notif/notif_av.h"
#include "../notif/notif_cmd.h"
#include "../av/_video_buf.h"
#include "cs.h"
#include "net.h"
#include "net_clienttcp.h"
#include "thread.h"

// added 2003-10-25, for another decoder lib
class decoder;
class sd_base;



//##ModelId=3F9A1D2401E6
class net_avtcp: public net_clienttcp		
{
	//////////////////////////////////////////////////////////////////////////
	// added 2003-10-25, for another decoder lib
	//##ModelId=3F9A1D2401FB
	decoder* dec;
	int last1_len,last2_len;
	//////////////////////////////////////////////////////////////////////////
	
	//##ModelId=3F9A1D240204
	volatile bool exit;
	
	//#ifdef _DEBUG
	//##ModelId=3F9A1D240222
	int index;
	//#endif
	ULONG VOD_id;

	//##ModelId=3F9A1D24022C
	ULONG remote_ip;
	//##ModelId=3F9A1D240236
	USHORT remote_port;
	//##ModelId=3F9A1D240240
	int chnl;
	
	// 事件, 收到多播数据
	//##ModelId=3F9A1D240254
	virtual void on_disconnect(ULONG from_ip, USHORT from_port);


	virtual bool on_net_tcp_recv(byte* buf, int length, ULONG from_ip, USHORT from_port);
	
	//##ModelId=3F9A1D240331
	critical_section cs_draw;

	//##ModelId=3F9A1D240345
	static COLOR_SPACE cs;
	//##ModelId=3F9A1D240358
	static BOOL video_mem;	// video memory or system memory
	
public:
	UINT	bits;//接收到的视音频数据大小
	UINT	bitrate;//码流大小
	UINT	bitrate_1;
	UINT	bitrate_2;
	UINT	bitrate_3;
	UINT	bitrate_4;
	//##ModelId=3F9A1D240395
	static void switch_audio(int group);
	//##ModelId=3F9A1D24039F
	static void mute_toggle();
	//##ModelId=3F9A1D2403AA
	static void mute();
	//##ModelId=3F9A1D2403BD
	static void unmute();
	//##ModelId=3F9A1D2403C7
	static bool is_muted();
	//##ModelId=3F9A1D2403DB
	static int get_audio_group();
	
	//////////////////////////////////////////////////////////////////////////
	// added 2003-10-25, for another decoder lib
	//bool lc_is_recording() {return lc.lr_is_recording();}
	void lr_begin(TCHAR drive);
	void lr_end();
	void lr_get_drive(TCHAR* drive);
	BOOL join(ULONG ip,USHORT port);
	
	SOCKET get_socket();
	BOOL create_udp_socket(ULONG ip,USHORT port);
	//////////////////////////////////////////////////////////////////////////

	//##ModelId=3F9A1D2403E5
	net_avtcp(int idx);
	//##ModelId=3F9A1D250007
	virtual ~net_avtcp();
	
	//##ModelId=3F9A1D250011
	bool create(ULONG ip, USHORT port,BOOL bUdpav);
	//##ModelId=3F9A1D25001C
	virtual void destroy();
	//##ModelId=3F9A1D250043
	virtual void leave();

	//##ModelId=3F9A1D250045
	bool open_channel(ULONG mip, USHORT mport, int channel,BOOL bUdpav);
	//##ModelId=3F9A1D25006B
	void close_channel(ULONG ip, USHORT port, int channel);
	//##ModelId=3F9A1D250080
	void logout(ULONG ip, USHORT port);
	
	//##ModelId=3F9A1D250093
	ULONG svr_ip() const;
	//##ModelId=3F9A1D25009D
	USHORT svr_port() const;
	//##ModelId=3F9A1D25009F
	int svr_chnl() const;
	//##ModelId=3F9A1D2500A8
	bool is_opened() const;
	
	bool is_vod() const;
	//##ModelId=3F9A1D2500BB
	bool snapshot(LPCTSTR bmpfile);
	
	//##ModelId=3F9A1D2500C5
	void set_cb(VIDEO_CALLEE vcb, ULONG ip, USHORT port, LONG channel);

	void set_cb(VIDEO_CALLEE vcb);

	BOOL set_cb_showhandle(VIDEO_CALLEE cb);
	
	//##ModelId=3F9A1D2500CF
	void update_window();

	void set_play_mode(int mode);

	int get_play_mode();

	void set_vod_id(ULONG id);

	ULONG get_vod_id();
	
	//##ModelId=3F9A1D2500D0
	static void set_video_renderer(COLOR_SPACE _cs, BOOL _video_mem);

	void go();
	void draw();
	VIDEO_CALLEE cb;
	
private:
	//##ModelId=3F9A1D250120
	
	CRITICAL_SECTION m_cs;	//互斥变量
	int avtcp_mode;

//	static sd_base* snd_decoder;
};

#endif	// _NET_AV_H

⌨️ 快捷键说明

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