www.pudn.com > AVChat0926.rar > CRoleAdmin.h


// 
// CRoleAdmin.h 
// 
 
#ifndef __H_CRoleAdmin__ 
#define __H_CRoleAdmin__ 
 
#include "CPreviewAdmin.h" 
#include "CUDPManager.h" 
#include "CMsgReceiver.h" 
#include "CMsgStation.h" 
#include "CStreamSocket.h" 
 
class CDXGraph; 
class CFilterNetReceiver; 
class CFilterNetSender; 
class CRoleAdmin : public CPreviewAdmin, public CMsgReceiver 
			     , public CMsgStation 
{ 
protected: 
	long			mDeviceConfig; 
	CUDPManager		mUdpManager; 
	 
	WORD			mLocalUDPPort; 
	WORD			mTargetUDPPort; 
	DWORD			mTargetIP; 
	DWORD           mMulticastIP;	//多播组地址 
 
	CDXGraph *		mRemoteAudioGraph;  
	CDXGraph *		mLocalAudioGraph; 
 
	CFilterNetReceiver *	mAudioReceiver; 
	CFilterNetSender *		mAudioSender; 
 
	CStreamSocket	mAudioStream; 
 
public: 
	CRoleAdmin(); 
	virtual ~CRoleAdmin(); 
 
	// Has audio? Has Video? (local and remote) 
	void SetDeviceConfig(long inConfig); 
	void SetTargetIP(DWORD inTarget); 
 
	virtual BOOL Init(void); 
	virtual void Uninit(void); 
 
	virtual BOOL CallServer(void); 
	virtual void Disconnect(BOOL inNotifyPeer = TRUE); 
 
	virtual BOOL StopGraph(void); 
 
protected: 
	virtual bool ReceiveMessage(MessageT inMessage, void * ioParam,  
		void * ioParam2); 
 
	BOOL SendSimpleCommand(long inCommand); 
	BOOL SendLocalDeviceConfigToPeer(void); 
	void CompleteAudioReceivingGraph(void); 
 
	virtual BOOL CreateGraph(void); 
	virtual void DeleteGraph(void); 
 
	virtual BOOL CreateInputFilters(void); 
	virtual void ReleaseInputFilters(void); 
 
	virtual BOOL CreateOutputFilters(void); 
	virtual void ReleaseOutputFilters(void); 
 
	virtual BOOL ConnectFilters(void); 
	virtual BOOL AfterBuildGraph(void); 
 
	virtual WORD GetVideoStreamReceivePort(void); 
	virtual SOCKET GetVideoStreamSocketSender(void); 
	virtual WORD GetAudioStreamReceivePort(void); 
	virtual SOCKET GetAudioStreamSocketSender(void); 
	virtual SOCKADDR_IN GetAudioTargetAddr(void); 
	virtual SOCKADDR_IN GetVideoTargetAddr(void); 
public: 
	// 开始语音视频通信,建立发送和接收用的SOCKET和线程 
	BOOL StartAVChat(void); 
	// 停止语音视频通信 
	void StopAVChat(void); 
}; 
 
#endif // __H_CRoleAdmin__