[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-clientapps-cvs
Subject:    [Clientapps-cvs]
From:       rrajesh () helixcommunity ! org
Date:       2007-08-16 19:27:08
Message-ID: 200708161927.l7GJRX8x030046 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/clientapps/symbianMmf
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv29622

Modified Files:
	MmfCtrlLib hxmmfplayctrl.cpp hxmmfplayctrl.h 
	hxmmfstatectrl.cpp hxmmfstatectrl.h 
Log Message:
> 
> 	"Nokia submits this code under the terms of a commercial contribution 
> agreement with RealNetworks, and I am authorized to contribute this 
> code under said agreement."
> 
> 		Modified by:  rajesh.rathinasamy@nokia.com
> 
> 		Reviewed by: 
> 
> 		Date: 13-Aug-2007
> 
> 		Project: SymbianMmf
> 
> 	      ErrorId: RRAY-765NTW
> 
> 		            
> 		Synopsis:  CR: Create log system from MMFController instead of 
> client engine startup
> 
> 		Symbian builds uses Core logging and it is created and enabled when 
> engine is created and initialised.
> Delay in log system being loaded hinders in debugging problems in MMF 
> Controller and MDF plugin archive creation.
> 
> 		Solution proposed in this CR is to load the log system from MMF 
> Controller and override the engine's service with the provided log 
> system. Still this does not solve the problem of debug statements 
> during GetRendererInfo as the plugin is not initialized. To overcome 
> that problem for symbian, the log system is created in MMF controller 
> and stored in GlobalManager. Since we don't need any Context to 
> initialize log for each dll, the initialization has been added to the 
> logging api (HXLOGx). When Logging is available on GlobalMgr, the 
> first log statement in every dll will initialize the log system 
> variables for that dll.
> 
> 		Previous core logging functionality is still valid after this 
> change.  Any symbian platform (eg.,
> symbianplayer) can take advantage of both.
> 
> 		  
> 		Root Cause of the problem: Design
> 		  
> 		Files Modified: 
> 		common/log/logutil/hxtlogutil.cpp 
> 		common/log/logutil/pub/hxtlogutil.h 
> 		common/system/pub/platform/symbian/symbian_gm_inst.h
> 
> 		client/core/hxcleng.cpp   (Changed the variable 
> name and log system shutdown is made conditional based on whether 
> engine created it or not)
> 
> 		client/core/pub/hxcleng.h
> 
> 		clientapps/symbianMmf/MmfCtrlLib 
> 		clientapps/symbianMmf/hxmmfplayctrl.cpp 
> 		clientapps/symbianMmf/hxmmfplayctrl.h 
> 		clientapps/symbianMmf/hxmmfstatectrl.cpp 
> 		clientapps/symbianMmf/hxmmfstatectrl.h
> 		
> clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp 
> 		clientapps/symbianMmf/common/hxmmfbasectrl.cpp 
> 		clientapps/symbianMmf/common/hxmmfbasectrl.h 
> 		clientapps/symbianMmf/videocontroller/hxmmfctrlimpl.cpp
> 
> 		Files Added: 
> 		Common/log/logutil/symbian.pcf 
> 		Clientapps/symbianmmf/hxmmfcontext.h 
> 		Clientapps/symbianmmf/hxmmfcontext.cpp
> 
> 		Image Size and Heap Use impact: no major impact
> 
> 		Module Release testing (STIF) :  Passed. 
> 
> 		Test case(s) Added  :  No. 
> 
> 		Memory leak check performed : Yes.  No new leaks introduced.
> 
> 		Platforms and Profiles Build Verified: 
> helix-client-s60-32-mmf-mdf-arm
> 
> 		Platforms and Profiles Functionality verified: 
> armv5,winscw


Index: hxmmfplayctrl.h
===================================================================
RCS file: /cvsroot/clientapps/symbianMmf/hxmmfplayctrl.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- hxmmfplayctrl.h	6 Jul 2007 20:32:36 -0000	1.9
+++ hxmmfplayctrl.h	16 Aug 2007 19:27:05 -0000	1.10
@@ -82,7 +82,7 @@
 
 
         // implementation helpers
-        void InitIHXPlayerL();
+        void InitIHXPlayerL(IUnknown* pMMFContext);
         HX_RESULT Pause();
         HX_RESULT OpenURL(const char *url);
         HX_RESULT OpenRequest(IHXRequest *pRequest);

Index: MmfCtrlLib
===================================================================
RCS file: /cvsroot/clientapps/symbianMmf/MmfCtrlLib,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- MmfCtrlLib	6 Jul 2007 20:32:36 -0000	1.10
+++ MmfCtrlLib	16 Aug 2007 19:27:05 -0000	1.11
@@ -60,6 +60,7 @@
                            "common/container/pub",
                            "common/include",                           
                            "common/util/pub",
+                           "common/system/pub",
                            "video/sitelib/pub",
                            "video/sitelib/pub/platform/symbian",
                            "common/system/pub",
@@ -118,7 +119,8 @@
                     "../symbiancommon/chxsymclipinfo.cpp",
                     "hxmmfsitesupplier.cpp",
                     "hxmmferrorlogsink.cpp",
-                    "hxmmfmetadata.cpp")
+                    "hxmmfmetadata.cpp",
+                    "hxmmfcontext.cpp")
 
 if project.IsDefined("HELIX_FEATURE_DPRINTF"):
     project.AddSources("../symbiancommon/debug/hxsym_debug_print.cpp",

Index: hxmmfplayctrl.cpp
===================================================================
RCS file: /cvsroot/clientapps/symbianMmf/hxmmfplayctrl.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- hxmmfplayctrl.cpp	6 Jul 2007 20:32:36 -0000	1.16
+++ hxmmfplayctrl.cpp	16 Aug 2007 19:27:05 -0000	1.17
@@ -102,14 +102,6 @@
     return &(GetGlobal()->accessPath);
 }
 
-
-// for HXSymbianDLLMapInstance
-void destroyDLLMap(void* pObj)
-{
-    SymbianDLLMapImp* pDLLMap = reinterpret_cast<SymbianDLLMapImp*>(pObj);
-    delete pDLLMap;
-}
-
 HXMMFPlayCtrl::HXMMFPlayCtrl(MHXControllerProperties *pProp)
     : m_pHXPlayer(NULL)
     , m_pHXPlayer2(NULL)
@@ -194,7 +186,7 @@
     }
 }
 
-void HXMMFPlayCtrl::InitIHXPlayerL()
+void HXMMFPlayCtrl::InitIHXPlayerL(IUnknown* pMMFContext)
 {
     HXLOGL2(HXLOG_SMMF, "HXMMFPlayCtrl::InitIHXPlayerL");
 
@@ -202,18 +194,11 @@
 
     HX_ASSERT(!m_pHXPlayer);
 
-    if (!m_pProperties)
+    if ((m_pProperties == NULL) || (pMMFContext == NULL) )
     {
         User::Leave(KErrArgument);
     }
 
-    // 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);
-
     // get full path to client core dll
     CHXString strLibPath;
     m_pProperties->GetPropertyL(MHXControllerProperties::EMMFClientCoreLib, strLibPath);
@@ -254,7 +239,7 @@
 
             if ( pEngineSetup )
             {
-                pEngineSetup->Setup(static_cast<IHXPreferences*>(m_pPrefs));
+                pEngineSetup->Setup(pMMFContext);
 
                 m_pClientEngine->CreatePlayer(m_pHXPlayer);
 
@@ -478,8 +463,6 @@
 {
     HXLOGL2(HXLOG_SMMF, "HXMMFPlayCtrl::ReleaseEngineResources");
 
-    HX_DISABLE_LOGGING(FALSE);
-
     //The following are smart pointers so setting them 0 will call Release
     //These must be released before the engine is closed
 #if defined(HELIX_FEATURE_PLAYBACK_MODIFIER)

Index: hxmmfstatectrl.h
===================================================================
RCS file: /cvsroot/clientapps/symbianMmf/hxmmfstatectrl.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- hxmmfstatectrl.h	19 Jul 2007 00:30:07 -0000	1.13
+++ hxmmfstatectrl.h	16 Aug 2007 19:27:05 -0000	1.14
@@ -110,7 +110,7 @@
     
     // caller guarntees that Observer and Properties are valid 
     // for the life time of HXMMFStateCtrl.
-    static HXMMFStateCtrl* NewL(CHXLitePrefs* pPrefs, MHXStateCtrlObs* pObs, 
+    static HXMMFStateCtrl* NewL(IUnknown* pContext, MHXStateCtrlObs* pObs, 
                                 MHXControllerProperties* pProp, HXBOOL bVideoController=FALSE);
     void InitAdviseSinks(void);
     void SetDisplayWindow( const TRect& aWinRect, const TRect& aClipRect );
@@ -127,7 +127,7 @@
 
   private:
     HXMMFStateCtrl();
-    void ConstructL(CHXLitePrefs* pPrefs, MHXStateCtrlObs* pObs, 
+    void ConstructL(IUnknown* pContext, MHXStateCtrlObs* pObs, 
                     MHXControllerProperties* pProp, HXBOOL bVideoController);
     HX_RESULT QueryInterfaceDelegates(REFIID riid, void** ppvObj);
     void SetupAPSelectorL(void);

Index: hxmmfstatectrl.cpp
===================================================================
RCS file: /cvsroot/clientapps/symbianMmf/hxmmfstatectrl.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- hxmmfstatectrl.cpp	19 Jul 2007 00:30:07 -0000	1.23
+++ hxmmfstatectrl.cpp	16 Aug 2007 19:27:05 -0000	1.24
@@ -363,39 +363,51 @@
     m_bVideoController = FALSE;
 }
 
-HXMMFStateCtrl* HXMMFStateCtrl::NewL(CHXLitePrefs* pPrefs, 
+HXMMFStateCtrl* HXMMFStateCtrl::NewL(IUnknown* pContext, 
                                      MHXStateCtrlObs* pObs, 
                                      MHXControllerProperties* pProperties,
                                      HXBOOL   bVideoController)
 {
     HXMMFStateCtrl* self = new (ELeave) HXMMFStateCtrl();
     CleanupStack::PushL(self);
-    self->ConstructL(pPrefs, pObs, pProperties, bVideoController);
+    self->ConstructL(pContext, pObs, pProperties, bVideoController);
     CleanupStack::Pop();
     return(self);
 }
 
-void HXMMFStateCtrl::ConstructL(CHXLitePrefs* pPrefs, MHXStateCtrlObs *pObs,
+void HXMMFStateCtrl::ConstructL(IUnknown* pContext, MHXStateCtrlObs *pObs,
                                 MHXControllerProperties *pProperties,
                                 HXBOOL   bVideoController)
 {
+    TInt lRetval = KErrArgument;
     m_posLength = 0;
     m_percentComplete = 0;
 
-    if (!pObs || !pPrefs || !pProperties)     
+    if( (pObs != NULL) && (pContext != NULL) && (pProperties != NULL) )
     {
-        User::Leave(KErrArgument);
+        m_pObserver         = pObs;
+        m_pProperties       = pProperties;
+        m_bVideoController  = bVideoController;
+        
+        HX_RELEASE(m_pPrefs);
+        pContext->QueryInterface(IID_IHXPreferences, (void **) &m_pPrefs);
+        if(m_pPrefs != NULL)
+        {
+            lRetval = KErrNone;
+        }
+        
+    }
+    
+    if(lRetval != KErrNone)
+    {
+        User::Leave(lRetval);
     }
 
-    m_pObserver         = pObs;
-    m_pProperties       = pProperties;
-    m_bVideoController  = bVideoController;
-    m_pPrefs            = pPrefs;
-    HX_ADDREF(m_pPrefs);
+    
     m_pPlayerControl = new (ELeave) HXMMFPlayCtrl(m_pProperties);
 
     m_pPlayerControl->SetPrefs(m_pPrefs);
-    m_pPlayerControl->InitIHXPlayerL();
+    m_pPlayerControl->InitIHXPlayerL(pContext);
 
     m_pPlayerControl->m_pHXPlayer->GetClientEngine(m_pClientEngine);
     m_pPlayerControl->m_pHXPlayer->QueryInterface(IID_IHXCommonClassFactory, (void**)&m_pCCF);


_______________________________________________
Clientapps-cvs mailing list
Clientapps-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/clientapps-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic