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

📄 cdxgraph.h

📁 WINCE下的播放器
💻 H
字号:
//
// CDXGraph.h
//

#ifndef __H_CDXGraph__
#define __H_CDXGraph__

#include "MemFilter.h"

// Filter graph notification to the specified window
#define WM_GRAPHNOTIFY  (WM_USER+20)

class CDataAdmin;

class CDXGraph
{
private:
	
	IGraphBuilder *     mGraph; // graph builder interface
	IMediaControl *		mMediaControl;//媒体控制接口
	IMediaEventEx *		mEvent;//支持当FGP有事件发生时以窗口消息的方式通知应用程序
	IBasicAudio *		mBasicAudio;
	IMediaSeeking *		mSeeking;//媒体配置接口,让应用程序指定播放的流的部分

	// Filter init flag
	bool             m_bInit;

	CDataAdmin *     m_pDataList;
	// Memory stream
	CMemStream *     m_pSourceStream;
	// source filter
	CMemReader *     m_pSourceReader;

public:
	CDXGraph(CDataAdmin *inBuffer);
	virtual ~CDXGraph();

public:
	virtual bool Create(void);
	virtual void Release(void);
	bool StartGraph(void);
	bool ResetGraph(void); // Re-build filter graph
//	virtual bool Attach(IGraphBuilder * inGraphBuilder);

	IGraphBuilder * GetGraph(void); // Not outstanding reference count
	IMediaEventEx * GetEventHandle(void);

	bool ConnectFilters(IPin * inOutputPin, IPin * inInputPin, const AM_MEDIA_TYPE * inMediaType = 0);
	void DisconnectFilters(IPin * inOutputPin);

	bool Run(void);        // Control filter graph
	bool Stop(void);
	bool Pause(void);
	bool IsRunning(void);  // Filter graph status
	bool IsStopped(void);
	bool IsPaused(void);


	// IMediaSeeking
	bool GetCurrentPosition(double * outPosition);
	bool GetStopPosition(double * outPosition);
	bool SetCurrentPosition(double inPosition);
	bool SetStartStopPosition(double inStart, double inStop);
	bool GetDuration(double * outDuration);
	bool SetPlaybackRate(double inRate);


	static UINT WaitingThrd(void * pParam);
	

	bool RenderFile(const char * inFile);

};

#endif // __H_CDXGraph__

⌨️ 快捷键说明

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