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

📄 videocommdlg.h

📁 这是G.723和G.729的音频编解码的源代码
💻 H
字号:
// VideoCommDlg.h : header file
//
//{{AFX_INCLUDES()
#include "mscomm.h"
//}}AFX_INCLUDES

#if !defined(AFX_VIDEOCOMMDLG_H__60922606_147B_11D3_8FE8_0080C8EC4019__INCLUDED_)
#define AFX_VIDEOCOMMDLG_H__60922606_147B_11D3_8FE8_0080C8EC4019__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CVideoCommDlg dialog


#include "CCapture.h"
#include "datacomm.h"

#include "RemoteScreen.h"
#include "expandingdialog.h"
#include "portstatus.h"
#include "commondef.h"
#include "mytoolbar.h"
#include "filetransmit.h"

class CVideoCommDlg;
extern CVideoCommDlg * pVideoCommDlg;

class CVideoCommDlg : public CDialog
{
	friend class CRemoteScreen;	

public:
	void DataServiceToChannel(BYTE* pContent, UINT nLength);
	int ChannelToDataService(BYTE* pFrame, int nLength);
	int  WaveInToAudioEnc(char * pWave,int nSize);
	int  AudioDecToWaveOut(char* pWave,int nSize);
	void ChannelToAudioDec(BYTE*  pFrame,int nSize);
	void ChannelToVideoDec(BYTE*  pFrame,int nSize);
	void ChannelToCommandDec(BYTE*  pFrame,int nSize);
	void VideoToChannel(BYTE * pContent, UINT nLength);	
	void ChannelToFileData(BYTE* pFrame, int nLength);
	void FileDataToChannel(BYTE* pContent, UINT nLength);

public:
	BOOL m_bHaveStartVideoAudio;
	BOOL m_bDeleting;
	BOOL m_bCreating;
	BOOL m_bBegin;

	int   m_nQuant;
	int		m_nPortRate;
	CString	m_MyName;	

	UINT m_uFrameCount;
	//UINT  m_nTimerID;
	//UINT  m_nTimerElapse;

	char m_pInputAudio[480];
	char m_pOutputAudio[480];

	BOOL CreateObject();
	void DeleteObject();
	HANDLE m_hFinishFileTransmit;
	
	CLoopElementBuffer<26,10> *  m_pAudioDecodeBuffer;	
	CSafeList<CPacket>        *  m_pVideoDecodeBuffer;

	CG723Decoder    * m_pG723Decoder;
	CG723Encoder    * m_pG723Encoder;
	CH263Encoder    * m_pH263Encoder;
	CH263Displayer  * m_pDisplay;

	CReceiveChannel * m_pAudioReceiveChannel;
	CSendChannel    * m_pAudioSendChannel;
	CReceiveChannel * m_pVideoReceiveChannel;
	CSendChannel    * m_pVideoSendChannel;
	CReceiveChannel * m_pDataReceiveChannel;
	CSendChannel    * m_pDataSendChannel;
	CReceiveChannel * m_pCommandReceiveChannel;
	CSendChannel    * m_pCommandSendChannel;
	CReceiveChannel * m_pFileReceiveChannel;
	CSendChannel    * m_pFileSendChannel;
	CCapture        * m_pVideoCapture;

	CMultiplex      * m_pMultiplex;
	CDemultiplex    * m_pDemultiplex;
	
	CWaveIn         * m_pWaveIn;
	CWaveOut        * m_pWaveOut;	
	CTheInterfaceToBoard * m_pInterfaceToBoard;

	CRemoteScreen     m_RemoteScreen;
	CDataComm*            m_pDataComm;
	CFileTransmit* m_pFileTransmit;


// Construction
public:			
	CVideoCommDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CVideoCommDlg)
	enum { IDD = IDD_VIDEOCOMM_DIALOG };
	CStatic	m_DisplayInfo;
	CButton	m_IsWatched;
	CButton	m_WantWatchOK;
	CListBox	m_NameInConference;
	CButton	m_IsBroadcasting;
	CButton	m_HaveAddConference;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CVideoCommDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;
	void OnBarBegin();
	void OnEnd();

	// Generated message map functions
	//{{AFX_MSG(CVideoCommDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnDestroy();
	afx_msg void OnBegin();
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnMove(int x, int y);
	afx_msg void OnChangeName();
	afx_msg void OnSelChangeName();
	afx_msg void OnDblClkName();
	afx_msg void OnAddConference();
	afx_msg void OnExitConference();
	afx_msg void OnBroadcast();
	afx_msg void OnStopBroadcast();
	afx_msg void OnWatchOne();
	afx_msg void OnStopWatchOne();
	afx_msg void OnData();
	afx_msg void OnAdvanced();
	afx_msg void OnFileTransmit();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnCancelMode();
	afx_msg void OnCaptureChanged(CWnd *pWnd);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

//Toolbar
private:
	CPaletteBar     m_PaletteBar;
	CToolTipCtrl    m_ToolTip;

//C&I transact function		
private:
	int InitComm(int nPort = 2);
	BYTE m_nTotalAddTerminalCount;
	char AllTerminalName[MAXPORTNUMBER][MAXPORTNAME];//Save all terminal have added to conference
	CPortStatus m_TPortStatus;
	struct ALLNAMENUMBER{
		CString Name;
		BYTE Number;
	}NameNumber[MAXPORTNUMBER];
public:
	void DisplayInfo(LPCTSTR lpsStr, BOOL bAlert = FALSE);
	int ReceiveFromSerial(BYTE* pData, BYTE* pLength);
	void CommandCallBack(BYTE* pFrame,int nLength,BOOL                                                                                                                                                                                                bFrameState, int nFromWhere);

//Serial commnunication, data service
private:
	BOOL m_bSoftAudio;
	BOOL m_bVideoCRC;
	BYTE m_byAction;
	BOOL m_bIsMulticast;
	BOOL m_bIsWatched;
	BOOL GetUserSetting();
	BOOL m_bIsSendingCommand;
	int m_nNowCommand;
	BOOL m_bHaveAnswer;
	int m_nSendCommandCount;
	int m_byCILength;
	BYTE m_pbyCommandFrame[MAXCOMMANDFRAMELENGTH];
	int StrToByte(CString str, BYTE* byCon, int nLength);
	int ByteToStr(BYTE* pFrame, char* Msg, int nLength);
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_VIDEOCOMMDLG_H__60922606_147B_11D3_8FE8_0080C8EC4019__INCLUDED_)

⌨️ 快捷键说明

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