📄 cdxgraph.h
字号:
//
// CDXGraph.h
//
#ifndef __H_CDXGraph__
#define __H_CDXGraph__
// Filter graph notification to the specified window
#define WM_GRAPHNOTIFY (WM_USER+20)
#include <streams.h>
#include "CMsgStation.h"
class CDXGraph : public CMsgStation
{
private:
IGraphBuilder * mGraph;
IMediaControl * mMediaControl;
IMediaEventEx * mEvent;
IBasicVideo * mBasicVideo;
IBasicAudio * mBasicAudio;
IVideoWindow * mVideoWindow;
IMediaSeeking * mSeeking;
DWORD mObjectTableEntry;
// For fast reference!
enum {GS_Stopped, GS_Paused, GS_Running} mGraphState;
public:
CDXGraph();
virtual ~CDXGraph();
public:
virtual BOOL Create(void);
virtual void Release(void);
virtual BOOL Attach(IGraphBuilder * inGraphBuilder);
IGraphBuilder * GetGraph(void); // Not outstanding reference count
BOOL AddFilter(IBaseFilter * inFilter, LPCWSTR inName);
BOOL ConnectFilters(IPin * inOutputPin, IPin * inInputPin, const AM_MEDIA_TYPE * inMediaType = 0);
void DisconnectFilters(IPin * inOutputPin);
BOOL SetDisplayWindow(HWND inWindow);
BOOL SetNotifyWindow(HWND inWindow);
BOOL ResizeVideoWindow(long inLeft, long inTop, long inWidth, long inHeight);
void HandleEvent(WPARAM inWParam, LPARAM inLParam);
BOOL Run(void); // Control filter graph
BOOL Stop(void);
BOOL Pause(void);
BOOL IsRunning(void); // Filter graph status
BOOL IsStopped(void);
BOOL IsPaused(void);
BOOL SetFullScreen(BOOL inEnabled);
BOOL GetFullScreen(void);
BOOL SetSyncSource(IBaseFilter * inFilter);
BOOL SetDefaultSyncSource(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);
// Attention: range from -10000 to 0, and 0 is FULL_VOLUME.
BOOL SetAudioVolume(long inVolume);
long GetAudioVolume(void);
// Attention: range from -10000(left) to 10000(right), and 0 is both.
BOOL SetAudioBalance(long inBalance);
long GetAudioBalance(void);
// When using VMR, it's reliable!
BOOL GetCurrentImage(const char * inFile);
private:
void AddToObjectTable(void) ;
void RemoveFromObjectTable(void);
BOOL QueryInterfaces(void);
};
#endif // __H_CDXGraph__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -