[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