- /************************************************************************
- * chxavplayerapp.cpp
- * ------------------
- *
- * Synopsis:
- * Contains the implementation of the base application for the Symbian
- * OS port of Helix.
- *
- *
- * Target:
- * Symbian OS
- *
- *
- * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
- *
- ************************************************************************/
- #include "ihxpckts.h"
- #include "hxstring.h"
- #include "hxurl.h"
- #include "hxglobalmgr_imp.h"
- #include "hxglobalmgr_inst.h"
- #include "platform/symbian/symbian_dll_map.h"
- #include "platform/symbian/symbian_dll_map_inst.h"
- #include "chxavplayerui.h"
- #include "chxavplayerapp.h"
- #include "player_uids.h"
- #include "hxsym_debug.h"
- #include "chxavplayerdoc.h"
- // required by all EPOC32 DLLs
- GLDEF_C TInt E32Dll(TDllReason reason)
- {
- if (reason == EDllProcessDetach)
- {
- CloseSTDLIB();
- }
- return KErrNone;
- }
- EXPORT_C CApaApplication* NewApplication()
- {
- return new CHXAvPlayerApp();
- }
- // for HXSymbianDLLMapInstance
- void destroyDLLMap(void* pObj)
- {
- SymbianDLLMapImp* pDLLMap = reinterpret_cast<SymbianDLLMapImp*>(pObj);
- delete pDLLMap;
- }
- /*
- * InitL
- * ---------------
- *
- */
- void CHXAvPlayerApp::InitL()
- {
- // for accessing global dll data; manages global pointers (including cleanup) accessed via HXGlobalPtr
- HXGlobalManager* pGM = new (ELeave) HXGlobalManagerImp();
- HXGlobalManInstance::SetInstance(pGM);
- // Install ISymbianDLLMap object.
- // This object is used by DLLAccess to reference count each DLL. This
- // map keeps track of when a library will actually be unloaded by the OS
- // and arranges for the DLLs globals to get cleaned up before the DLL is
- // unloaded.
- HXSymbianDLLMapInstance::SetInstance(new (ELeave) SymbianDLLMapImp, &destroyDLLMap);
- //__UHEAP_MARK;
- //
- // Setup default dprintf behavior. Later, once
- // preferences are loaded, mask and sink are set
- // from config.
- //
- dbg::SetupDebug("console", SYMP_INFO);
- DPRINTF(SYMP_INFO, ("CHXAvPlayeApp(): ctorn"));
- }
- /*
- * CreateDocumentL
- * ---------------
- * Create the doc. Called once per app instance.
- *
- */
- CApaDocument* CHXAvPlayerApp::CreateDocumentL()
- {
- InitL();
- return CHXAvPlayerDoc::NewL(*this);
- }
- /*
- * AppDLLUid
- * ---------
- *
- */
- TUid CHXAvPlayerApp::AppDllUid() const
- {
- return CHXAvMisc::KAppUID;
- }
- /*
- * ~CHXAvPlayerApp
- * ---------------
- * Dtor
- *
- */
- CHXAvPlayerApp::~CHXAvPlayerApp()
- {
- DPRINTF(SYMP_INFO, ("CHXAvPlayerApp(): dtorn"));
- //__UHEAP_MARKEND;
- HXGlobalManagerImp* pGM = static_cast<HXGlobalManagerImp*>( HXGlobalManInstance::GetInstance() );
- pGM->Shutdown();
- HX_DELETE(pGM);
- HXGlobalManInstance::SetInstance(0);
- }