[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-filesystem-cvs
Subject: [Filesystem-cvs] progdown/platform/symbian pdfileobj.cpp, 1.5,
From: dexter_helix () helixcommunity ! org
Date: 2010-01-20 5:39:31
Message-ID: 201001200539.o0K5dSd1004717 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/filesystem/progdown/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv14334
Modified Files:
Tag: hxclient_4_2_0_brizo
pdfileobj.cpp
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: ext-debashis.2.panigrahi@nokia.com
Reviewed by: ext-dushyant.vipradas@nokia.com
TSW Id: EKCI-7XFVXV
Date: 01/20/2010
Project: SymbianMmf_wm
Synopsis: Fusion: System error while trying to play a clip before download completes.
Overview:
OpenFile(.) itself is failing at pdfileobj.cpp with HXR_FAIL as m_pDataSource = NULL \
(m_pDataSource2 is being used as a part of 64 bit File Read support). It is getting \
mapped to KErrGeneral and so System Error is being displayed.
Fix:
Checking for m_pDataSource2 and creating the download event observer. Also expanding \
the support for Seek(..) with m_pDataSource2 in pdfileobj.cpp. Implementing asynch \
read of data source from PD file format.
Files modified & changes:
/filesystem/progdown/platform/symbian/pdfileobj.cpp
Image Size and Heap Use impact: No major impact
Module Release testing (STIF) : Passed
Test case(s) Added : No
Memory leak check performed : Passed, No additional leaks introduced.
Platforms and Profiles Build Verified: helix-client-s60-50-mmf-mdf-dsp
Platforms and Profiles Functionality verified: armv5, winscw
Branch: 420Brizo, 210CayS and HEAD
Index: pdfileobj.cpp
===================================================================
RCS file: /cvsroot/filesystem/progdown/platform/symbian/pdfileobj.cpp,v
retrieving revision 1.5
retrieving revision 1.5.14.1
diff -u -d -r1.5 -r1.5.14.1
--- pdfileobj.cpp 9 Jul 2008 21:52:37 -0000 1.5
+++ pdfileobj.cpp 20 Jan 2010 06:31:51 -0000 1.5.14.1
@@ -115,8 +115,14 @@
if(result == HXR_OK)
{
+#if defined(HELIX_FEATURE_MMF_DATASOURCE)
+#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
+ if(m_pDataSource2)
+#else
if(m_pDataSource)
- {
+#endif // HELIX_FEATURE_64_BIT_FILE_SUPPORT
+#endif // (HELIX_FEATURE_MMF_DATASOURCE)
+ {
IHXDownloadEventObserver *pDownloadObserver = NULL;
if(m_pRequest)
{
@@ -200,6 +206,12 @@
if(m_ulByteOffset + byteCount <= ulFileSize)
{
+#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
+ if(m_bAsyncReadSupported)
+ {
+ m_pPendingReadBufAsync = pBuffer;
+ }
+#endif //HELIX_FEATURE_64_BIT_FILE_SUPPORT
actualCount = DoRead(pBuffer);
if(IsReadError())
{
@@ -247,7 +259,11 @@
}
}
}
- else
+#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
+ else if(!m_bAsyncReadSupported)
+#else
+ else
+#endif //HELIX_FEATURE_64_BIT_FILE_SUPPORT
{
result = pBuffer->SetSize(actualCount);
@@ -282,12 +298,20 @@
*/
STDMETHODIMP CHXPDFileObject::UndoRead()
{
+#if defined(HELIX_FEATURE_MMF_DATASOURCE)
+#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
+ if(m_pDataSource2)
+ {
+ // reset to last offset
+ m_pDataSource2->Seek(m_ulByteOffset, SEEK_SET, this, TRUE);
+ }
+#endif // HELIX_FEATURE_64_BIT_FILE_SUPPORT
if(m_pDataSource)
{
// reset to last offset
m_pDataSource->Seek(m_ulByteOffset, SEEK_SET);
}
-
+#endif // (HELIX_FEATURE_MMF_DATASOURCE)
return HXR_OK;
}
@@ -318,11 +342,18 @@
}
int seekResult = HXR_FAIL;
- if(m_pDataSource)
+#if defined(HELIX_FEATURE_MMF_DATASOURCE)
+#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
+ if(m_pDataSource2)
+ {
+ seekResult = m_pDataSource2->Seek(offset, fromWhere, this, TRUE);
+ }
+#endif // HELIX_FEATURE_64_BIT_FILE_SUPPORT
+ if(m_pDataSource)
{
seekResult = m_pDataSource->Seek(offset, fromWhere);
}
-
+#endif // (HELIX_FEATURE_MMF_DATASOURCE)
if(!seekResult)
{
if(bIsRelative)
@@ -432,6 +463,12 @@
if(m_ulByteOffset + m_ulRetryByteCount <= ulFileSize )
{
+#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
+ if(m_bAsyncReadSupported)
+ {
+ m_pPendingReadBufAsync = m_pRetryReadBuffer;
+ }
+#endif // HELIX_FEATURE_64_BIT_FILE_SUPPORT
actualCount = DoRead(m_pRetryReadBuffer);
if(IsReadError())
{
@@ -471,7 +508,11 @@
}
}
}
+#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
+ else if(!m_bAsyncReadSupported)
+#else
else
+#endif // HELIX_FEATURE_64_BIT_FILE_SUPPORT
{
result = m_pRetryReadBuffer->SetSize(actualCount);
_______________________________________________
Filesystem-cvs mailing list
Filesystem-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/filesystem-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic