[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