/* * * This software is released under the provisions of the GPL version 2. * see file "COPYING". If that file is not available, the full statement * of the license can be found at * * http://www.fsf.org/licensing/licenses/gpl.txt * * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. * Portions (c) Paul Cifarelli 2005 * */ #ifndef _HSPCONTEXT_ #define _HSPCONTEXT_ struct IUnknown; struct IHXPreferences; struct IHXVolume; class IHXCommonClassFactory; class HSPClientAdviceSink; class HSPErrorMessages; class HSPAuthenticationManager; class HelixSimplePlayer; class HSPEngineContext : public IHXPreferences { public: HSPEngineContext(HelixSimplePlayer *splayer, IHXCommonClassFactory *pCommonClassFactory); virtual ~HSPEngineContext(); void Init(IUnknown* /*IN*/ pUnknown); void Close(); /* * IUnknown methods */ STDTQT_METHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); /* * IHXPreferences methods */ STDTQT_METHOD(ReadPref) (THIS_ const char* pref_key, IHXBuffer*& buffer); STDTQT_METHOD(WritePref) (THIS_ const char* pref_key, IHXBuffer* buffer); private: LONG32 m_lRefCount; IHXCommonClassFactory *m_CommonClassFactory; HelixSimplePlayer *m_splayer; }; class HSPClientContext : public IHXPreferences { private: LONG32 m_lRefCount; LONG32 m_lClientIndex; HSPClientAdviceSink* m_pClientSink; HSPErrorSink* m_pErrorSink; HSPAuthenticationManager* m_pAuthMgr; IHXPreferences* m_pDefaultPrefs; char m_pszGUID[256]; HelixSimplePlayer *m_splayer; public: HSPClientContext(LONG32 lClientIndex, HelixSimplePlayer *pSplay); virtual ~HSPClientContext(); unsigned long position() { return m_pClientSink ? m_pClientSink->position() : 0; } unsigned long duration() { return m_pClientSink ? m_pClientSink->duration() : 0; } void Init(IUnknown* /*IN*/ pUnknown, IHXPreferences* /*IN*/ pPreferences, char* /*IN*/ pszGUID); void Close(); /* * IUnknown methods */ STDTQT_METHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); /* * IHXPreferences methods */ STDTQT_METHOD(ReadPref) (THIS_ const char* pref_key, IHXBuffer*& buffer); STDTQT_METHOD(WritePref) (THIS_ const char* pref_key, IHXBuffer* buffer); }; #endif