// RecorderTestDlg.h : header file // #if !defined(AFX_RECORDERTESTDLG_H__DC5EB023_223B_485E_99D2_54E27A09C54A__INCLUDED_) #define AFX_RECORDERTESTDLG_H__DC5EB023_223B_485E_99D2_54E27A09C54A__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "PlayWnd.h" #include "StorageParserLib.h" ///////////////////////////////////////////////////////////////////////////// // CRecorderTestDlg dialog class CRecorderTestDlg : public CDialog { // Construction public: CRecorderTestDlg(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(CRecorderTestDlg) enum { IDD = IDD_RECORDERTEST_DIALOG }; CButton m_btnLocalPlay; CButton m_btnPause; CComboBox m_cbPlaySpeed; CComboBox m_cbPlayMode; CComboBox m_cbPlayDirection; CButton m_btnStartRecord; CButton m_btnStartPlay; CButton m_btnConnect; CButton m_btnMount; CButton m_btnNextFrame; CComboBox m_cbSearchDataType; CComboBox m_cbPropRecycle; CComboBox m_cbPropAction; CString m_strIP; UINT m_uPlayCh; UINT m_uPort; UINT m_uPropCh; UINT m_uPropFileSize; CString m_strPropList; UINT m_uPropNumList; UINT m_uPropPort; UINT m_uRecCh; UINT m_uSearchCh; CString m_strRequest; CString m_strResponse; CString m_strSearchStart; CString m_strSearchStop; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CRecorderTestDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: HICON m_hIcon; // Generated message map functions //{{AFX_MSG(CRecorderTestDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnButtonSearch(); afx_msg void OnButtonPropApply(); afx_msg void OnDestroy(); afx_msg void OnCheckConnect(); afx_msg void OnSelchangeComboPropAction(); afx_msg void OnButtonClear(); afx_msg void OnButtonNextFrame(); afx_msg void OnCheckMount(); afx_msg void OnCheckStartRecord(); afx_msg void OnCheckStartPlay(); afx_msg void OnButtonDelete(); afx_msg void OnCheckPausePlay(); afx_msg void OnButtonBrowse(); afx_msg void OnCheckLocalPlay(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: static DWORD WINAPI ThreadGetStreamStub(LPVOID lpParam); DWORD WINAPI ThreadGetStream(); static DWORD WINAPI ThreadLocalPlayingStub(LPVOID lpParam); DWORD WINAPI ThreadLocalPlaying(); BOOL StartGetStreamThread(); void StopGetStreamThread(BOOL bKill); BOOL StartLocalPlayingThread(); void StopLocalPlayingThread(BOOL bKill); BOOL SendCommand(); void ShowHeaderInfo(REC_DATA_HEADER *pHeader); private: CPlayWnd *m_pPlayWnd; WSADATA m_WsaData; ULONG m_uCmdSock, m_uStreamSock; char m_szCmd[1024]; char m_szName[32], m_szValue[32]; REC_DATA_HEADER m_Header; struct sockaddr_in m_CmdAddr, m_StreamAddr; FILE *m_fp[MAX_CHANNEL]; HANDLE m_hThreadGetStream; HANDLE m_hKillGetStream; HANDLE m_hThreadLocalPlaying; HANDLE m_hKillLocalPlaying; ULONG m_uPlayingCh; BOOL m_bPlaying; BOOL m_bForceStop; char m_szLocalPath[MAX_PATH]; }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_RECORDERTESTDLG_H__DC5EB023_223B_485E_99D2_54E27A09C54A__INCLUDED_)