6 #ifndef _INC_cDirectShow_H
7 #define _INC_cDirectShow_H
12 #include "../AV/cSoundBase.h"
14 #if defined(USE_DX_SHOW)
15 #include "../WinAPI/WinTypes.h"
21 MIDL_INTERFACE(
"56a868a9-0ad4-11ce-b03a-0020af0ba770") IGraphBuilder;
22 MIDL_INTERFACE("56a868b1-0ad4-11ce-b03a-0020af0ba770") IMediaControl;
23 MIDL_INTERFACE("56a868c0-0ad4-11ce-b03a-0020af0ba770") IMediaEventEx;
24 MIDL_INTERFACE("56a868b2-0ad4-11ce-b03a-0020af0ba770") IMediaPosition;
25 typedef
double REFTIME;
46 static const GUID k_CLSID_GraphBuilder;
50 cIUnkPtr<IGraphBuilder> m_pGraph;
51 #ifdef USE_DX_GraphROT
55 cIUnkPtr<IMediaControl> m_pMediaControl;
56 cIUnkPtr<IMediaEventEx> m_pMediaEvent;
57 cIUnkPtr<IMediaPosition> m_pMediaPosition;
60 void OnGraphEventObj();
63 virtual ~cDirectShowObj(
void);
65 #ifdef USE_DX_GraphROT
67 static void GRAYCALL RemoveGraphROT(DWORD dwRegister);
69 void RemoveGraphROT();
72 IGraphBuilder* get_Graph()
const
79 bool CanPlay(
void)
const noexcept
81 return((m_eState == STATE_STOPPED) || (m_eState == STATE_PAUSED));
83 bool CanPause(
void)
const noexcept
85 return((m_eState >= STATE_PLAYING) || (m_eState == STATE_STOPPED));
87 bool CanStop(
void)
const noexcept
89 return((m_eState >= STATE_PLAYING) || (m_eState == STATE_PAUSED));
91 bool isInitialized(
void)
const
93 if ( m_eState == STATE_UNINITIALIZED)
101 bool isStopped(
void)
const noexcept
103 return( m_eState == STATE_STOPPED );
105 bool isPaused(
void)
const noexcept
107 return( m_eState == STATE_PAUSED);
109 bool isPlaying(
void)
const noexcept
111 return( m_eState >= STATE_PLAYING );
113 bool isPlayingLoop(
void)
const noexcept
115 return( m_eState == STATE_PLAYING_LOOP );
117 bool CheckCompleted(
TIMESYSD_t dwTimeout=0 )
const;
120 HRESULT PlayShow(
bool bLoop =
false );
127 HRESULT GetTimeDuration( REFTIME *plength )
const;
128 HRESULT SeekTime( REFTIME tpos );
130 static void GRAYCALL OnGraphEvent( LPARAM dwInstance );
138 class GRAYLIB_LINK cDirectShowFile :
public cDirectShowObj
MIDL_INTERFACE("7ED943DD-52E8-40b5-A8D8-76685C406330") ID3DXBaseMesh
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
UINT WINMSG_t
Supplement _WIN32 "windows.h".
Definition: WinTypes.h:111
#define WM_NULL
Windows HWND messages not always defined.
Definition: WinTypes.h:115
#define ASSERT(exp)
Definition: cDebugAssert.h:87
#define WINHANDLE_NULL
HWND, HPEN, etc are NOT OS Handles. like HWND_DESKTOP. like HANDLEPTR_NULL. This is a WINAPI void* ha...
Definition: cOSHandle.h:23
#define UNITTEST_FRIEND(n)
Define this in the class body to be unit tested. Allow the unit test to access private/protected stuf...
Definition: cUnitTestDecl.h:17
Definition: IUnknown.h:68
WORD SOUND_VOL_t
Mono Attenuation of the audio. linear perception 0 to k_VOL_MAX(0xffff). NOT decibels.
Definition: cSoundBase.h:29
cStringT< FILECHAR_t > cStringF
A file name. checks USE_UNICODE_FN. related to cFilePath.
Definition: cFilePath.h:17
INT32 TIMESYSD_t
Time delta. signed milli-Seconds Span. cTimeSys::k_DMAX, cTimeSys::k_INF = MAILSLOT_WAIT_FOREVER.
Definition: cTimeSys.h:28
Definition: IUnknown.h:34