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

📄 clientdlg.h

📁 实现视频点播功能,c_s结构,服务器端共享文件,客户端可以播放,媒体数据传输通过RTP协议,播放通过Directshow
💻 H
字号:
// ClientDlg.h : header file
//

#if !defined(AFX_CLIENTDLG_H__F596363B_D2AF_4ED8_A322_B95D9BE04432__INCLUDED_)
#define AFX_CLIENTDLG_H__F596363B_D2AF_4ED8_A322_B95D9BE04432__INCLUDED_

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

/////////////////////////////////////////////////////////////////////////////
// CClientDlg dialog
#include <afxtempl.h>
#include "CClientSocket.h"
#include "CMsgReceiver.h"
#include "CMediaInfo.h"
#include "CFilterNetReceiver.h"
class CClientDlg : public CDialog,public CMsgReceiver
{
// Construction
public:
	void SendProgress(int pos);
	void Deactivate();
	BOOL mAudioIsOK;
	BOOL mVideoIsOK;

	BOOL SetDisplayWindow(HWND inWindow);
	BOOL CompleteAudioReceivingGraph();
	BOOL CompleteVideoReceivingGraph();
	BOOL AfterBuildGraph();
	BOOL CreateFilters();
	BOOL CreateGraph();
	BOOL Activate();
	BOOL ConnectAudioSocket();
	BOOL ConnectVideoSocket();
	CClientDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CClientDlg)
	enum { IDD = IDD_CLIENT_DIALOG };
	CSliderCtrl	mSliderTimer;
	CButton	mBtnDisconnect;
	CButton	mBtnConnect;
	CStatic	mVideoWnd;
	CListCtrl	mProgramListCtrl;
	//}}AFX_DATA

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

// Implementation
protected:
	HICON m_hIcon;
	long			mPlayingPID; 
	long			mMediaType; 

	enum {PLAY, PAUSE, STOP} mState;
	CList<CMediaInfo,CMediaInfo&> mPrgrmList;
	BOOL SendSimpleCommand(long inCommand);
	void AddProgramItem(CMediaInfo & inMedia);
	DWORD mServerIP;
	CClientSocket mControll;
	CClientSocket mVideo;
	CClientSocket mAudio;

	IGraphBuilder *     mGraph;
	IMediaControl *		mMediaControl;

	CFilterNetReceiver * mVideoReceiver;
	CFilterNetReceiver * mAudioReceiver;

	IBaseFilter * mVideoDecom;
	IBaseFilter * mAudioDecom;

	IBaseFilter * mVideoRenderer;
	IBaseFilter * mAudioRenderer;

	void ProcessCommand(void * inCommand);

	BOOL SendMediaControlCommand(long inCommand);
	virtual bool ReceiveMessage(MessageT inMessage, void * ioParam, void * ioParam2);
	// Generated message map functions
	//{{AFX_MSG(CClientDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnBtnConnect();
	afx_msg void OnBtnRefresh();
	afx_msg void OnBtnPlay();
	afx_msg void OnDestroy();
	afx_msg void OnBtnStop();
	afx_msg void OnBtndisconnect();
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_CLIENTDLG_H__F596363B_D2AF_4ED8_A322_B95D9BE04432__INCLUDED_)

⌨️ 快捷键说明

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