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

📄 ni_streamserver.h

📁 视频播放控制器程序
💻 H
字号:
// NI_StreamServer.h: interface for the NI_StreamServer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_NI_STREAMSERVER_H__13CD780E_F2D7_4383_9B63_6D9BBDE03BD4__INCLUDED_)
#define AFX_NI_STREAMSERVER_H__13CD780E_F2D7_4383_9B63_6D9BBDE03BD4__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "SendDataPool.h"
#define WM_NI_RECV_MSG			(WM_USER+1)
#define NI_CONNECT		1
#define NI_CONNECT_TIMEOUT				 1

#define NI_WORKSTATE	2
#define NI_WORKSTATE_TYPE_NORMAL		 1
#define NI_WORKSTATE_TYPE_STOPED		 2
#define NI_WORKSTATE_TYPE_SCHE_START	 3
#define NI_WORKSTATE_TYPE_SCHE_STOP		 4
#define NI_WORKSTATE_TYPE_SCHE_PLAY		 5
#define NI_WORKSTATE_TYPE_SCHE_PLAY_OVER 6
#define NI_WORKSTATE_TYPE_SCHE_PLAY_ERR	 7
#define NI_WORKSTATE_TYPE_ERROR			 8

class NI_WMsg
{
public:
	int m_nMsgType;
	DWORD m_dwParam1;
	DWORD m_dwParam2;
	CString m_strParam;
};

//////////////////////////////////////////////////////////////////////////
class NI_StreamServer
{
public:
	NI_StreamServer( HWND hWnd );
	virtual ~NI_StreamServer();

	BOOL SetAddress( LPCTSTR serve_ip, unsigned short serve_port );
	BOOL InitSocket();
	BOOL SendDevCtrl( int nOpt );
	BOOL SendStreamCtrl( int nOpt, DWORD nScheID, DWORD nPlayID=0 );

	BOOL _TrytoReceive();
	BOOL _OnRecvAck( char *pBufIndex );
	BOOL _OnRecvWorkState( char *pBufIndex );

	BOOL _DoNewSendTask();
	BOOL _SendTask( SD_DATA_CELL *pCell );
	BOOL _SendAckofPacket( int nSerial );
	BOOL _SendDevCtrl( SD_DATA_CELL *pCell );
	BOOL _SendStreamCtrl( SD_DATA_CELL *pCell );
	void ReleasePoolCell( SD_DATA_CELL *pCell );
	void EmptyProfPool( CSendDataPool *pPool );
	
	// Thread control
	BOOL StartThread();
	void StopThread();
	BOOL _CheckThreadStop();
	static DWORD WINAPI ThreadFunc( LPVOID lpParam );

	int m_nRunningState;
	HANDLE m_hThreadID;
	ZGMP_HEAD _mpHead;
	HWND m_hwndNotify;
	HANDLE m_hStopEvent;
	SOCKET m_Socket;
	sockaddr_in m_addrLocal;
	sockaddr_in m_addrRemote;
	fd_set _fdRead, _fdWrite;
	struct timeval _Timeout_Recv;
	struct timeval _Timeout_Send;
	char *_szRecvBuf;
	DWORD _nPSerial;
	CSendDataPool m_SendDataPool;
};

#endif // !defined(AFX_NI_STREAMSERVER_H__13CD780E_F2D7_4383_9B63_6D9BBDE03BD4__INCLUDED_)

⌨️ 快捷键说明

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