// ConnectionManager.h: interface for the CConnectionManager class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_CONNECTIONMANAGER_H__8FACE5B4_E24D_43D5_904F_A4E33CF3D53B__INCLUDED_) #define AFX_CONNECTIONMANAGER_H__8FACE5B4_E24D_43D5_904F_A4E33CF3D53B__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "UserThread.h" #include "ProcessUserData.h" class CMgrNVE; class CConnectionManager { public: CConnectionManager(); virtual ~CConnectionManager(); public: BOOL ProcessSetup(); BOOL ProcessEndup(); BOOL ProcessRun(); BOOL ProcessStop(); BOOL Init(IUnknown *pUnknown, LPCSTR addr, ULONG uProtocol, LPCTSTR pID, LPCTSTR pPW, ULONG linCh, CMgrNVE *pMgrNVE, ULONG uCh); void Release(); LPCTSTR GetServerAddr() { return m_ServerIP; } BOOL IsSameAddress(LPCSTR Addr); ULONG GetServerIndex() { return m_uServerIndex; } ULONG GetProcessState() { return m_uProcessState; } void SetProcessState(ULONG uState) { m_uProcessState = uState; } BOOL IsCapture() { return m_bCapture; } BOOL GetMediaInfo(ULONG uChannel); BOOL IsFirstCh() { return m_bFirstCh; } NVE_GLOBAL_SETTINGS *GetGlobalSettings() { return &m_GlobalSettings; } NVE_MEDIA_SETTINGS *GetMediaSettings(ULONG uChannel) { return &m_MediaSettings[uChannel]; } COD5_BOARD_INFO *GetBoardInfo() { return &m_BoardInfo; } NVE_MD_INFO *GetMDInfo() { return m_MDInfo; } CMclCritSec *GetCritSec() { return &m_CritSec; } BOOL IsRack() { return m_bRack; } BOOL IsAudioOut() { return m_bAudioOut; } BOOL IsSetup() { return m_bSetupSuccess[0]; } CMgrNVE *GetMgrNVE() { return m_pMgrNVE; } CMN5_SYSTEM_INFO *GetSystemInfo() { return &m_SystemInfo; } INet5 *GetNet5Api() { return m_pNet5Api; } ICod5 *GetCod5Api() { return m_pCod5Api; } void SetDefaultSettings(); void Reconnect(); BOOL ApplyProc(CParamDlg *pDlg); private: BOOL GetProperties(ULONG uChannel); BOOL GetAdjusts(ULONG uChannel); BOOL SetupProc(); BOOL RunProc(); static DWORD WINAPI ThreadSetupProcStub(LPVOID lpParameter); DWORD WINAPI ThreadSetupProc(LPVOID lpParameter); static DWORD WINAPI ThreadRunProcStub(LPVOID lpParameter); DWORD WINAPI ThreadRunProc(LPVOID lpParameter); static DWORD WINAPI ThreadReconnectProcStub(LPVOID lpParameter); DWORD WINAPI ThreadReconnectProc(LPVOID lpParameter); private: CMgrNVE *m_pMgrNVE; IMessageManager *m_pMsgMgr; CProcessUserData m_ProcUserData; NVE_GLOBAL_SETTINGS m_GlobalSettings; NVE_MEDIA_SETTINGS m_MediaSettings[NVE_MAX_CHANNEL]; CMN5_SYSTEM_INFO m_SystemInfo; COD5_BOARD_INFO m_BoardInfo; NVE_MD_INFO m_MDInfo[MAX_LAYER_COUNT]; CMclCritSec m_CritSec; ICod5* m_pCod5Api; INet5* m_pNet5Api; HANDLE m_hCodEvent; HANDLE m_hNetEvent; HANDLE m_hSensorEvent; HANDLE m_hVStatusEvent; CUserThread m_SetupThread[NVE_MAX_CHANNEL]; CUserThread m_RunThread[NVE_MAX_CHANNEL]; CUserThread m_ReconnectThread; char m_ServerIP[NVE_MAX_STR_LENGTH]; char m_szUserID[NVE_MAX_STR_LENGTH]; char m_szUserPW[NVE_MAX_STR_LENGTH]; ULONG m_uServerIndex; ULONG m_uProcessState; ULONG m_uChannel[NVE_MAX_CHANNEL]; BOOL m_bCapture; BOOL m_bSetupSuccess[NVE_MAX_CHANNEL]; BOOL m_bSetupWait[NVE_MAX_CHANNEL]; BOOL m_bFirstCh; ULONG m_uProtocol; BOOL m_bReconnect; BOOL m_bRack; BOOL m_bAudioOut; BOOL m_bReconnecting; }; #endif // !defined(AFX_CONNECTIONMANAGER_H__8FACE5B4_E24D_43D5_904F_A4E33CF3D53B__INCLUDED_)