📄 cdxgraph.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 + -