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

📄 hxcleng.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* ***** BEGIN LICENSE BLOCK ***** 
 * Version: RCSL 1.0/RPSL 1.0 
 *  
 * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
 *      
 * The contents of this file, and the files included with this file, are 
 * subject to the current version of the RealNetworks Public Source License 
 * Version 1.0 (the "RPSL") available at 
 * http://www.helixcommunity.org/content/rpsl unless you have licensed 
 * the file under the RealNetworks Community Source License Version 1.0 
 * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
 * in which case the RCSL will apply. You may also obtain the license terms 
 * directly from RealNetworks.  You may not use this file except in 
 * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
 * applicable to this file, the RCSL.  Please see the applicable RPSL or 
 * RCSL for the rights, obligations and limitations governing use of the 
 * contents of the file.  
 *  
 * This file is part of the Helix DNA Technology. RealNetworks is the 
 * developer of the Original Code and owns the copyrights in the portions 
 * it created. 
 *  
 * This file, and the files included with this file, is distributed and made 
 * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
 * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
 * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
 * 
 * Technology Compatibility Kit Test Suite(s) Location: 
 *    http://www.helixcommunity.org/content/tck 
 * 
 * Contributor(s): 
 *  
 * ***** END LICENSE BLOCK ***** */ 

#ifndef _HXCLIENTENGINE_
#define _HXCLIENTENGINE_

#include "chxelst.h"
#include "hxmon.h"
#include "hxclreg.h"
#include "statinfo.h"
#include "strminfo.h"
#include "hxshtdn.h"
#include "hxupgrd.h"
#include "hxerror.h"
#if defined(HELIX_FEATURE_LITEPREFS)
#include "chxliteprefs.h"
#endif

#ifdef _UNIX
#include "hxengin.h"
#endif

class	HXCommonClassFactory;
class	HXScheduler;
class   HXOptimizedSchedulerBase;
class	HXPreferences;
class	HXNetworkServices;
class	HXHyperNavigate;
class	HXThreadHyperNavigate;
class	HXClientRegistry;
class	CHXAudioSession;
class	HXCoreGuiHook;
class	Plugin2Handler;
class	HXPluginManager;
class	BaseHandler;
class	HXAutoConfig;
class	CHXPlayerSinkControl;
class	HXCoreComm;
class   HXMutex;
class	HXValidator;
class	HXExternalResourceManager;
class	CHXCredentialsCache;
class	CHXResMgr;
class	HXXMLParser;
class	HXCookies;
class	HXCookiesHelper;
class	HXPreferredTransportManager;
class	HXProxyManager;
class	CMediumBlockAllocator;
class	HXViewSource;
class	CHXMapStringToOb;
class   HXOverlayManager;
class	HXNetInterface;
class	HXPlayer;
class	HXCookies;

struct	IHXClientAdviseSink;
struct	IHXErrorMessages;
struct	IHXCommonClassFactory;
struct	IHXClientEngine;
struct	IHXMimeTypeMapper;
struct	IHXRegistry;
struct	IHXHyperNavigate;
struct  IHXPreferences;
struct  IHXShutDownEverything;
struct	IHXValidator;
struct  IHXSiteEventHandler;
struct	IHXXMLParser;
struct  IHXSystemRequired;
struct  IHXMultiPlayPauseSupport;
struct	IHXProxyAutoConfig;
struct	IHXNetInterfaces;
struct  IHXBandwidthManager;

#if defined(HELIX_FEATURE_SYSTEMREQUIRED)
class HXSystemRequired : public IHXSystemRequired
{
protected:
    LONG32		    m_lRefCount;
public:
    HXSystemRequired() {m_lRefCount = 0;}
    ~HXSystemRequired() {};
    /*
     * IUnknown methods
     */
    STDMETHOD(QueryInterface)	(THIS_
				REFIID riid,
				void** ppvObj);

    STDMETHOD_(ULONG32,AddRef)	(THIS);

    STDMETHOD_(ULONG32,Release)	(THIS);

    /*
     * IHXSystemRequired methods
     */

    /************************************************************************
     *	Method:
     *		IHXSystemRequired::HasFeatures
     *	Purpose:
     *		Check if required features are present on the system.
     *  Returns:
     *		HXR_OK -    features are here, no upgrade required;
     *			    all features are removed from pFeatures.
     *		HXR_FAIL -  some features are missing;
     *			    pFeatures contains only those features 
     *			    that need upgrade.
     *
     */			      
    STDMETHOD(HasFeatures)  (THIS_ 
			    IHXUpgradeCollection* pFeatures);
};
#endif /* HELIX_FEATURE_SYSTEMREQUIRED */

class HXClientEngine : 
			public IHXClientEngine
#if defined _UNIX && !defined _VXWORKS
                      , public IHXClientEngineSelector
                      , public IHXAsyncIOSelection
#endif
		      , public IHXClientEngineSetup
		      , public IHXInterruptState
		      , public IHXShutDownEverything
		      , public IHXOverrideDefaultServices
		      , public IHXErrorMessages
                      , public IHXClientEngineMapper
		      , public IHXCoreMutex
#if defined(_MACINTOSH) && defined(_CARBON) && defined(THREADS_SUPPORTED)
		      , public IHXMacBlitMutex
#endif
{
protected:
    LONG32		    m_lRefCount;
    ULONG32		    m_ulPlayerIndex;

    INT32		    m_unRegistryID;
    HXClientRegistry*	    m_pRegistry;

    HXCommonClassFactory*  m_pCommonClassFactory;
    IHXCommonClassFactory* m_pCommonClassFactoryOverride;
    CMediumBlockAllocator*  m_pAllocator;
    HXScheduler*	    m_pScheduler;
    HXOptimizedSchedulerBase* m_pOptimizedScheduler;
    IHXPreferences*	    m_pPreferences;

#if defined(HELIX_FEATURE_NO_INTERNAL_PREFS)
    IHXPreferences*	    m_pOrigPreferences;
#elif defined(HELIX_FEATURE_LITEPREFS)
    CHXLitePrefs*	    m_pOrigPreferences;
#else
    HXPreferences*	    m_pOrigPreferences;
#endif

    CHXAudioSession*	    m_pAudioSession;
    HXNetworkServices*	    m_pOrigNetworkServices;
    IHXNetworkServices*    m_pNetworkServices;
#ifdef _UNIX
    IHXAsyncIOSelection*   m_pAsyncIOSelection;
    BOOL                    m_bNetworkThreading;
#endif
    HXCookies*		    m_pCookies;
    HXCookiesHelper*	    m_pCookiesHelper;
    HXNetInterface*	    m_pNetInterfaces;

    IHXProxyAutoConfig*    m_pProxyAutoConfig;

    IHXHyperNavigate*	    m_pHyperNavigate;
    HXThreadHyperNavigate* m_pOrigHyperNavigate;
    HXValidator*	    m_pValidator;
    IHXBandwidthManager*    m_pASM;
    CHXPlayerSinkControl*   m_pPlayerSinkControl;
    CHXCredentialsCache*   m_pCredentialsCache;
    CHXResMgr*		    m_pResMgr;
    HXExternalResourceManager*	m_pExternalResourceManager;
    HXXMLParser*	    m_pXMLParser;
    HXViewSource*	    m_pViewSource;
    IHXSystemRequired*	    m_pSystemRequired;

#if defined(_UNIX) || defined(__TCS__)
    IHXSiteEventHandler*   m_pSiteEventHandler;
#endif

    HXProxyManager*	    m_pProxyManager;

    HXPreferredTransportManager*   m_pPreferredTransportManager;
    HXOverlayManager*              m_pOverlayManager;
    IHXMultiPlayPauseSupport*	    m_pMultiPlayPauseSupport;

    //List to store the plugins for information reguarding created players.
    CHXSimpleList*	    m_pSingleLoadPlugins;

public:

#if defined(_STATICALLY_LINKED) || !defined(HELIX_FEATURE_PLUGINHANDLER2)
#if defined(HELIX_CONFIG_CONSOLIDATED_CORE)
    BaseHandler*            m_pPlugin2Handler;
#else /* HELIX_CONFIG_CONSOLIDATED_CORE */
    HXPluginManager*	    m_pPlugin2Handler;
#endif /* HELIX_CONFIG_CONSOLIDATED_CORE */
#else
    Plugin2Handler*	    m_pPlugin2Handler;
#endif /* _STATICALLY_LINKED */

    HXClientEngine(void);
    ~HXClientEngine(void);

    /*
     * IUnknown methods
     */
    STDMETHOD(QueryInterface)	(THIS_
				REFIID riid,
				void** ppvObj);

    STDMETHOD_(ULONG32,AddRef)	(THIS);

    STDMETHOD_(ULONG32,Release)	(THIS);

    /*
     * IHXClientEngine methods
     */

    /************************************************************************
     *	Method:
     *	    IHXClientEngine::CreatePlayer
     *	Purpose:
     *	    Creates a new IHXPlayer instance.
     *
     */
    STDMETHOD(CreatePlayer)	(THIS_
				REF(IHXPlayer*)    pPlayer);

    /************************************************************************
     *	Method:
     *	    IHXClientEngine::ClosePlayer
     *	Purpose:
     *	    Called by the engine when it is done using the player...
     *
     */
    STDMETHOD(ClosePlayer)	(THIS_
				IHXPlayer*    pPlayer);

    /************************************************************************
     *	Method:
     *	    IHXClientEngine::GetPlayerCount
     *	Purpose:
     *	    Returns the current number of IHXPlayer instances supported by
     *	    this client engine instance.
     */
    STDMETHOD_(UINT16, GetPlayerCount)(THIS);

⌨️ 快捷键说明

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