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

📄 gsmedia.h

📁 连连看这个游戏都玩过吧
💻 H
字号:
// GsMedia.h: interface for the CGsMedia class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GSMEDIA_H__82BD71A2_AB4C_48C5_A8FB_A6052AFFAE77__INCLUDED_)
#define AFX_GSMEDIA_H__82BD71A2_AB4C_48C5_A8FB_A6052AFFAE77__INCLUDED_

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

class GSLIB_API CGsMedia  
{
public:
	VOID UpdateOwner();
	HRESULT SetPositions(LONGLONG pos);
	HRESULT GetDuration(LONGLONG& duration);
	HRESULT GetPositions(LONGLONG &Current, LONGLONG &length);
	VOID UpdateBounds();
//	HRESULT PlayLoop(LONG volume = 0);
	HRESULT Resume();
	HRESULT Pause();
	HRESULT Stop();
	HRESULT Play();
	LONG	GetVolume();
	HRESULT	SetVolume(LONG volume = 0);
	BOOL	IsPause()						{return m_filter_state==State_Paused;}
	BOOL	IsPlaying()						{return m_filter_state==State_Running;}
	LONG	GetLooping()					{return m_isLooping;}
	VOID	SetLooping(BOOL bLoop = TRUE)	{m_isLooping = bLoop;}
	BOOL	IsVideo()	{return m_isVideo;}
	HRESULT HandleGraphEvent();
	HRESULT FreeDirectShow();
	HRESULT InitDirectShow();

	virtual BOOL SetStreamSource(const char* strSource);

	virtual VOID Cleanup();
	CGsMedia(CGsEngine* pEngine);
	virtual ~CGsMedia();


protected:
	IGraphBuilder	*m_pGB;
	IMediaSeeking	*m_pMS;
	IMediaControl	*m_pMC;
	IMediaEventEx	*m_pME;
	IBasicVideo		*m_pBV;
	IVideoWindow	*m_pVW;

	CGsEngine*		m_pEngine;
	KEY				m_key_source;

	BOOL			m_isLooping;
	BOOL			m_isVideo;
	LONG			m_volume;

	ID				m_ID;
	FILTER_STATE	m_filter_state;
};


class GSLIB_API GS_Media_DxVideo : public CGsMedia  
{
	CDxSurface* m_apBuf[2];
	VOID*		m_pVR;
public:
	virtual HRESULT RestoreObjects();
	virtual HRESULT ReleaseObjects();
	BOOL CreateTextureBuffers( DWORD width, DWORD height, DXSF dxsf=D3DX_SF_A8R8G8B8);
	BOOL CreateSurfaceBuffers(int width, int height, BOOL bUseVideoMem = FALSE);
	virtual BOOL SetStreamSource(const char* strSource);
	BOOL SetDxSurface(CDxSurface* pSurface_1, CDxSurface* pSurface_2);
	CDxSurface* GetFrontSurface();
	GS_Media_DxVideo(CGsEngine* pEngine);
	virtual ~GS_Media_DxVideo();

};

#endif // !defined(AFX_GSMEDIA_H__82BD71A2_AB4C_48C5_A8FB_A6052AFFAE77__INCLUDED_)

⌨️ 快捷键说明

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