📄 hxcleng.h
字号:
* Method:
* IHXClientEngine::GetPlayerCount
* Purpose:
* Returns the current number of IHXPlayer instances supported by
* this client engine instance.
*/
STDMETHOD_(UINT16, GetPlayerCount)(THIS);
/************************************************************************
* Method:
* IHXClientEngine::GetPlayer
* Purpose:
* Returns the Nth IHXPlayer instances supported by this client
* engine instance.
*/
STDMETHOD(GetPlayer) (THIS_
UINT16 nPlayerNumber,
REF(IUnknown*) pUnknown);
/************************************************************************
* Method:
* IHXClientEngine::EventOccurred
* Purpose:
* Clients call this to pass OS events to all players. HXxEvent
* defines a cross-platform event.
*/
STDMETHOD(EventOccurred) (THIS_
HXxEvent* /*IN*/ pEvent);
/*
* IHXMimeTypeMapper methods
*/
STDMETHOD(MapFromExtToMime) (THIS_
const char* /*IN*/ pExtension,
REF(const char*) /*OUT*/ pMimeType);
#ifdef _UNIX
STDMETHOD_(INT32,Select) (THIS_
INT32 n,
fd_set* readfds,
fd_set* writefds,
fd_set* exceptfds,
struct timeval* timeout);
STDMETHOD(Add) (THIS_
IHXCallback* pCallback,
INT32 lFileDescriptor,
UINT32 ulFlags);
STDMETHOD(Remove) (THIS_
INT32 lFileDescriptor,
UINT32 ulFlags);
CHXSimpleList* m_select_callbacks;
#endif
/*
* IHXClientEngineSetup methods
*/
/************************************************************************
* Method:
* IHXClientEngineSetup::Setup
* Purpose:
* Top level clients use this interface to over-ride certain basic
* interfaces are: IHXPreferences, IHXHyperNavigate
*/
STDMETHOD(Setup) (THIS_
IUnknown* pContext);
/*
* IHXInterruptState methods
*/
STDMETHOD_(BOOL,AtInterruptTime) (THIS);
STDMETHOD(EnterInterruptState) (THIS);
STDMETHOD(LeaveInterruptState) (THIS);
STDMETHOD(EnableInterrupt) (THIS_
BOOL bEnable);
STDMETHOD_(BOOL, IsInterruptEnabled) (THIS);
/*
* IHXShutDownEverything methods
*/
/************************************************************************
* Method:
* IHXShutDownEverything::ShutDown
* Purpose:
* Shutdown all the renderers/fileformats
*
*/
STDMETHOD(ShutDown) (THIS);
/************************************************************************
* Method:
* IHXShutDownEverything::StopAllOtherPlayers
* Purpose:
* Stop all the players in other processes if they use audio
*
*/
STDMETHOD(StopAllOtherPlayers) (THIS);
/************************************************************************
* Method:
* IHXShutDownEverything::AskAllOtherPlayersToReload
* Purpose:
* Ask all other players in other processes to reload their
* DLLs.
*
*/
STDMETHOD(AskAllOtherPlayersToReload) (THIS);
/************************************************************************
* Method:
* IHXShutDownEverything::AskAllOtherPlayersToUnload
* Purpose:
* Ask all other players in other processes to unload their
* unused DLLs.
*
*/
STDMETHOD(AskAllOtherPlayersToUnload) (THIS);
/*
* IHXOverrideDefaultServices methods
*/
/************************************************************************
* Method:
* IHXOverrideDefaultServices::OverrideServices
* Purpose:
* Override default services provided by the G2 system.
*
*/
STDMETHOD(OverrideServices) (THIS_
IUnknown* pContext);
/*
* IHXErrorMessages methods
*/
/************************************************************************
* Method:
* IHXErrorMessages::Report
* Purpose:
* Call this method to report an error, event, or status message.
* Parameters:
*
* const UINT8 unSeverity
* Type of report. This value will impact how the player, tool, or
* server will react to the report. Possible values are described
* above. Depending on the error type, an error message with the
* RMA code, anda string translation of that code will be displayed.
* The error dialog includes a "more info" section that displays the
* user code and string, and a link to the more info URL. In the
* server these messages are logged to the log file.
*
* const ULONG32 ulHXCode
* Well known RMA error code. This will be translated to a text
* representation for display in an error dialog box or log file.
*
* const ULONG32 ulUserCode
* User specific error code. This will NOT be translated to a text
* representation. This can be any value the caller wants, it will
* be logged or displayed but not interpretted.
*
* const char* pUserString
* User specific error string. This will NOT be translated or
* modified. This can be any value the caller wants, it will
* be logged or displayed but not interpretted.
*
* const char* pMoreInfoURL
* User specific more info URL string.
*
*/
STDMETHOD(Report) (THIS_
const UINT8 unSeverity,
HX_RESULT ulHXCode,
const ULONG32 ulUserCode,
const char* pUserString,
const char* pMoreInfoURL);
/************************************************************************
* Method:
* IHXErrorMessages::GetErrorText
* Purpose:
* Call this method to get the text description of a RMA error code.
* Parameters:
* HX_RESULT ulHXCode (A RMA error code)
* Return Value:
* IHXBuffer* containing error text.
*/
STDMETHOD_(IHXBuffer*, GetErrorText) (THIS_
HX_RESULT ulHXCode);
/************************************************************************
* Method:
* IHXClientEngineMapper::GetPlayerBySite
* Purpose:
* Returns the IHXPlayer instance supported by this client
* engine instance that contains the specified IHXSite.
*/
STDMETHOD(GetPlayerBySite) (THIS_
IHXSite* pSite,
REF(IUnknown*) pUnknown);
/************************************************************************
* Method:
* IHXCoreMutex::LockCoreMutex
* Purpose:
* Call this method to lock the client engine's core mutex.
*/
STDMETHOD(LockCoreMutex) (THIS);
/************************************************************************
* Method:
* IHXCoreMutex::UnlockCoreMutex
* Purpose:
* Call this method to unlock the client engine's core mutex.
*/
STDMETHOD(UnlockCoreMutex) (THIS);
#if defined(_MACINTOSH) && defined(_CARBON) && defined(THREADS_SUPPORTED)
/************************************************************************
* Method:
* IHXMacBlitMutex::LockMacBlitMutex
* Purpose:
* Call this method to lock the Mac blitting mutex
*/
STDMETHOD(LockMacBlitMutex) (THIS);
/************************************************************************
* Method:
* IHXMacBlitMutex::UnlockMacBlitMutex
* Purpose:
* Call this method to unlock the Mac blitting mutex
*/
STDMETHOD(UnlockMacBlitMutex) (THIS);
#endif
STDMETHOD(StopAudioPlayback) (THIS);
virtual void Close();
HXMutex* GetCoreMutex() {return m_pCoreMutex;};
CHXResMgr* GetResMgr() {return m_pResMgr;};
void NotifyPlayState(BOOL bInPlayingState);
HXCookies* GetCookies() {return m_pCookies;};
UINT32 m_lROBActive;
protected:
void _Initialize();
virtual CHXAudioSession* NewAudioSession();
virtual HXPlayer* NewPlayer();
virtual HXCookies* NewCookies();
void CreatePrefIfNoExist(const char* pName, const char* pValue);
void CreatePluginDir();
void CreateCodecDir();
void InitializeThreadedObjects();
void InitializeRegistry();
IHXBuffer* CreateBufferAndSetToString(const char* pStr);
void InitPaths();
CHXSimpleList m_PlayerList;
HX_RESULT m_LastError;
HX_BITFIELD m_bIsSchedulerStarted : 1;
HX_BITFIELD m_bInitialized : 1;
BOOL m_bUseCoreThread;
HX_BITFIELD m_bUseCoreThreadExternallySet : 1;
HXCoreComm* m_pCoreComm;
HXMutex* m_pCoreMutex;
#if defined(_MACINTOSH) && defined(_CARBON) && defined(THREADS_SUPPORTED)
BOOL m_bUseMacBlitMutex;
HXMutex* m_pMacBlitMutex;
#endif
const char* m_AUName;
};
#endif // HXClientEngine
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -