From aoc at helixcommunity.org  Sun Dec  2 02:24:49 2007
From: aoc at helixcommunity.org (Stefan)
Date: Sat Dec  1 22:54:56 2007
Subject: [Common-cvs] Clickthrough to achieve recoginition 
Message-ID: <0b2701c8348a$8391c9c0$16828e43@mail.helixcommunity.org>

Your new Diploma!

No examinations!
NO classes!
NO textbooks!
AND
100% Discrete!
Satisfaction guaranteed!
+1(206)-309-03-36

Regards!

From lijunreal at helixcommunity.org  Sun Dec  2 22:03:45 2007
From: lijunreal at helixcommunity.org (lijunreal@helixcommunity.org)
Date: Sun Dec  2 21:33:17 2007
Subject: [Common-cvs] build/BIF helix.bif,1.654,1.655
Message-ID: 

Update of /cvsroot/common/build/BIF
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv8148

Modified Files:
	helix.bif 
Log Message:
adding ra8hbr codec in dependlist of wince_wm50_play_local so as to provide support for atrc

Index: helix.bif
===================================================================
RCS file: /cvsroot/common/build/BIF/helix.bif,v
retrieving revision 1.654
retrieving revision 1.655
diff -u -d -r1.654 -r1.655
--- helix.bif	29 Nov 2007 13:27:14 -0000	1.654
+++ helix.bif	3 Dec 2007 06:03:42 -0000	1.655
@@ -8065,7 +8065,7 @@
             wince
         
 
-        
+        
 			client_medpltfm
 			datatype_rm_audio_renderer
 			datatype_rm_video_codec_rv89combo			
@@ -8836,7 +8836,7 @@
         		datatype_rm_audio_renderer
         		
         		datatype_rm_audio_codec_ra8lbr
-        		datatype_rm_audio_codec_ra8lbr
+        		datatype_rm_audio_codec_ra8hbr
         		datatype_rm_audio_codec_sipro
         		
         		video


From tqx at helixcommunity.org  Wed Dec  5 04:36:43 2007
From: tqx at helixcommunity.org (Fletcher)
Date: Wed Dec  5 04:08:05 2007
Subject: [Common-cvs] rich and flesh
Message-ID: <23a401c83754$a3708520$40b750d5@helixcommunity.org>

õ-mass 2007! huge gift-collections

http://dearhaxnifia.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.helixcommunity.org/pipermail/common-cvs/attachments/20071205/56060b7d/attachment.html
From ehyche at helixcommunity.org  Wed Dec  5 12:27:24 2007
From: ehyche at helixcommunity.org (ehyche@helixcommunity.org)
Date: Wed Dec  5 11:56:19 2007
Subject: [Common-cvs] include hxiids.h, 1.78.2.9, 1.78.2.10 hxwintyp.h, 1.4,
	1.4.6.1 ihxtlogsystem.h, 1.11.2.7, 1.11.2.8
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv23856/common/include

Modified Files:
      Tag: hxclient_1_5_0_cayenne
	hxiids.h hxwintyp.h ihxtlogsystem.h 
Log Message:
Merge from HEAD to 150Cay.

Description
-----------------------------------
Recently an IHXSite3 interface was added which gave
the user of a site the ability to set a clipping rect
on the site. However, when it was added, it was assumed
that the sites were zero-based (that is, they did not
have a parent) since the clip rect was not offset
by site's coordinates. So if you only set a clip
rect on the top-level site, then it worked fine.
However, for SMIL where you might want to set
clip rects on sites with non-zero offsets, then
there was a bug. This change fixes that bug.

Files Modified
-----------------------------------
video/sitelib/basesite.cpp

Branches
-----------------------------------
HEAD, 150Cay, 203Cay, 204Cay, 310Atlas



Index: hxwintyp.h
===================================================================
RCS file: /cvsroot/common/include/hxwintyp.h,v
retrieving revision 1.4
retrieving revision 1.4.6.1
diff -u -d -r1.4 -r1.4.6.1
--- hxwintyp.h	9 Jul 2004 18:20:48 -0000	1.4
+++ hxwintyp.h	5 Dec 2007 20:27:21 -0000	1.4.6.1
@@ -168,6 +168,14 @@
 	   ( rect.top  >= rect.bottom );
 }
 
+inline void HXxRect_Offset( HXxRect& rect, INT32 x, INT32 y )
+{
+    rect.left   += x;
+    rect.top    += y;
+    rect.right  += x;
+    rect.bottom += y;
+}
+
 inline void HXxRect_Intersection( const HXxRect& r1, const HXxRect& r2, HXxRect* result )
 {
     result->left   = ( r1.left   > r2.left   ) ? r1.left   : r2.left;

Index: hxiids.h
===================================================================
RCS file: /cvsroot/common/include/hxiids.h,v
retrieving revision 1.78.2.9
retrieving revision 1.78.2.10
diff -u -d -r1.78.2.9 -r1.78.2.10
--- hxiids.h	25 Oct 2007 18:56:07 -0000	1.78.2.9
+++ hxiids.h	5 Dec 2007 20:27:21 -0000	1.78.2.10
@@ -652,6 +652,7 @@
 DEFINE_GUID_ENUM(IID_IHXSiteManager,                0x00000D08, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
 DEFINE_GUID_ENUM(IID_IHXMultiInstanceSiteUserSupplier,  0x00000D09, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
 DEFINE_GUID_ENUM(IID_IHXSite2,                              0x00000D0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXSite3, 0x00000D0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x69)
 DEFINE_GUID_ENUM(IID_IHXSiteTreeNavigation,         0xb52abc41, 0xa919, 0x11d8, 0xb8, 0xa3, 0x0, 0x03, 0x93, 0x9b, 0xa9, 0x5e)
 // $Private:
 DEFINE_GUID_ENUM(IID_IHXSiteControl,                0xdd25ca2e, 0x73a5, 0x4811, 0x99, 0x6f, 0x7e, 0x67, 0x26, 0xe7, 0x66, 0x8f)

Index: ihxtlogsystem.h
===================================================================
RCS file: /cvsroot/common/include/ihxtlogsystem.h,v
retrieving revision 1.11.2.7
retrieving revision 1.11.2.8
diff -u -d -r1.11.2.7 -r1.11.2.8
--- ihxtlogsystem.h	18 May 2007 15:15:21 -0000	1.11.2.7
+++ ihxtlogsystem.h	5 Dec 2007 20:27:21 -0000	1.11.2.8
@@ -184,7 +184,8 @@
     HXLOG_FPHR = HX_MAKE4CC('F','P','H','R'), // Flash player hosted renderer
     HXLOG_FLVF = HX_MAKE4CC('F','L','V','F'), // FLV file format plugin
     HXLOG_FLVR = HX_MAKE4CC('F','L','V','R'), // FLV renderer
-    HXLOG_DTDR = HX_MAKE4CC('D','T','D','R')  // dtdrive
+    HXLOG_DTDR = HX_MAKE4CC('D','T','D','R'), // dtdrive
+    HXLOG_RMFF = HX_MAKE4CC('R','M','F','F')  // RealMedia File Format
 };
 
 #include "hxtsmartpointer.h"


From ehyche at helixcommunity.org  Wed Dec  5 12:42:20 2007
From: ehyche at helixcommunity.org (ehyche@helixcommunity.org)
Date: Wed Dec  5 12:11:25 2007
Subject: [Common-cvs] include hxiids.h, 1.78.2.6.14.1,
	1.78.2.6.14.2 hxwintyp.h, 1.4, 1.4.98.1
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv4990/common/include

Modified Files:
      Tag: hxclient_2_0_3_cayenne
	hxiids.h hxwintyp.h 
Log Message:
Merge from HEAD to 203Cay.

Description
-----------------------------------
Recently an IHXSite3 interface was added which gave
the user of a site the ability to set a clipping rect
on the site. However, when it was added, it was assumed
that the sites were zero-based (that is, they did not
have a parent) since the clip rect was not offset
by site's coordinates. So if you only set a clip
rect on the top-level site, then it worked fine.
However, for SMIL where you might want to set
clip rects on sites with non-zero offsets, then
there was a bug. This change fixes that bug.

Files Modified
-----------------------------------
video/sitelib/basesite.cpp

Branches
-----------------------------------
HEAD, 150Cay, 203Cay, 204Cay, 310Atlas




Index: hxwintyp.h
===================================================================
RCS file: /cvsroot/common/include/hxwintyp.h,v
retrieving revision 1.4
retrieving revision 1.4.98.1
diff -u -d -r1.4 -r1.4.98.1
--- hxwintyp.h	9 Jul 2004 18:20:48 -0000	1.4
+++ hxwintyp.h	5 Dec 2007 20:42:18 -0000	1.4.98.1
@@ -168,6 +168,14 @@
 	   ( rect.top  >= rect.bottom );
 }
 
+inline void HXxRect_Offset( HXxRect& rect, INT32 x, INT32 y )
+{
+    rect.left   += x;
+    rect.top    += y;
+    rect.right  += x;
+    rect.bottom += y;
+}
+
 inline void HXxRect_Intersection( const HXxRect& r1, const HXxRect& r2, HXxRect* result )
 {
     result->left   = ( r1.left   > r2.left   ) ? r1.left   : r2.left;

Index: hxiids.h
===================================================================
RCS file: /cvsroot/common/include/hxiids.h,v
retrieving revision 1.78.2.6.14.1
retrieving revision 1.78.2.6.14.2
diff -u -d -r1.78.2.6.14.1 -r1.78.2.6.14.2
--- hxiids.h	5 Jul 2007 22:39:09 -0000	1.78.2.6.14.1
+++ hxiids.h	5 Dec 2007 20:42:18 -0000	1.78.2.6.14.2
@@ -651,6 +651,7 @@
 DEFINE_GUID_ENUM(IID_IHXSiteManager,                0x00000D08, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
 DEFINE_GUID_ENUM(IID_IHXMultiInstanceSiteUserSupplier,  0x00000D09, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
 DEFINE_GUID_ENUM(IID_IHXSite2,                              0x00000D0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXSite3, 0x00000D0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x69)
 DEFINE_GUID_ENUM(IID_IHXSiteTreeNavigation,         0xb52abc41, 0xa919, 0x11d8, 0xb8, 0xa3, 0x0, 0x03, 0x93, 0x9b, 0xa9, 0x5e)
 // $Private:
 DEFINE_GUID_ENUM(IID_IHXSiteControl,                0xdd25ca2e, 0x73a5, 0x4811, 0x99, 0x6f, 0x7e, 0x67, 0x26, 0xe7, 0x66, 0x8f)


From ehyche at helixcommunity.org  Wed Dec  5 12:54:20 2007
From: ehyche at helixcommunity.org (ehyche@helixcommunity.org)
Date: Wed Dec  5 12:23:15 2007
Subject: [Common-cvs] 
	include hxiids.h, 1.78.2.8.2.1, 1.78.2.8.2.2 hxwintyp.h,
	1.4, 1.4.110.1
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13731/common/include

Modified Files:
      Tag: hxclient_2_0_4_cayenne
	hxiids.h hxwintyp.h 
Log Message:
Merge from HEAD to 204Cay.

Description
-----------------------------------
Recently an IHXSite3 interface was added which gave
the user of a site the ability to set a clipping rect
on the site. However, when it was added, it was assumed
that the sites were zero-based (that is, they did not
have a parent) since the clip rect was not offset
by site's coordinates. So if you only set a clip
rect on the top-level site, then it worked fine.
However, for SMIL where you might want to set
clip rects on sites with non-zero offsets, then
there was a bug. This change fixes that bug.

Files Modified
-----------------------------------
video/sitelib/basesite.cpp

Branches
-----------------------------------
HEAD, 150Cay, 203Cay, 204Cay, 310Atlas



Index: hxwintyp.h
===================================================================
RCS file: /cvsroot/common/include/hxwintyp.h,v
retrieving revision 1.4
retrieving revision 1.4.110.1
diff -u -d -r1.4 -r1.4.110.1
--- hxwintyp.h	9 Jul 2004 18:20:48 -0000	1.4
+++ hxwintyp.h	5 Dec 2007 20:54:17 -0000	1.4.110.1
@@ -168,6 +168,14 @@
 	   ( rect.top  >= rect.bottom );
 }
 
+inline void HXxRect_Offset( HXxRect& rect, INT32 x, INT32 y )
+{
+    rect.left   += x;
+    rect.top    += y;
+    rect.right  += x;
+    rect.bottom += y;
+}
+
 inline void HXxRect_Intersection( const HXxRect& r1, const HXxRect& r2, HXxRect* result )
 {
     result->left   = ( r1.left   > r2.left   ) ? r1.left   : r2.left;

Index: hxiids.h
===================================================================
RCS file: /cvsroot/common/include/hxiids.h,v
retrieving revision 1.78.2.8.2.1
retrieving revision 1.78.2.8.2.2
diff -u -d -r1.78.2.8.2.1 -r1.78.2.8.2.2
--- hxiids.h	25 Oct 2007 18:56:59 -0000	1.78.2.8.2.1
+++ hxiids.h	5 Dec 2007 20:54:17 -0000	1.78.2.8.2.2
@@ -652,6 +652,7 @@
 DEFINE_GUID_ENUM(IID_IHXSiteManager,                0x00000D08, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
 DEFINE_GUID_ENUM(IID_IHXMultiInstanceSiteUserSupplier,  0x00000D09, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
 DEFINE_GUID_ENUM(IID_IHXSite2,                              0x00000D0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXSite3, 0x00000D0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x69)
 DEFINE_GUID_ENUM(IID_IHXSiteTreeNavigation,         0xb52abc41, 0xa919, 0x11d8, 0xb8, 0xa3, 0x0, 0x03, 0x93, 0x9b, 0xa9, 0x5e)
 // $Private:
 DEFINE_GUID_ENUM(IID_IHXSiteControl,                0xdd25ca2e, 0x73a5, 0x4811, 0x99, 0x6f, 0x7e, 0x67, 0x26, 0xe7, 0x66, 0x8f)


From jerrytansun at helixcommunity.org  Thu Dec  6 00:00:21 2007
From: jerrytansun at helixcommunity.org (jerrytansun@helixcommunity.org)
Date: Wed Dec  5 23:29:07 2007
Subject: [Common-cvs] util/platform/unix unix_pref.cpp,1.9.6.2,1.9.6.3
Message-ID: 

Update of /cvsroot/common/util/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv10514/common/util/platform/unix

Modified Files:
      Tag: hxclient_1_5_0_cayenne
	unix_pref.cpp 
Log Message:
fix some minor bug using type casting,
patch by jerry.tan@sun.com
reviewed by eric and dyek



Index: unix_pref.cpp
===================================================================
RCS file: /cvsroot/common/util/platform/unix/unix_pref.cpp,v
retrieving revision 1.9.6.2
retrieving revision 1.9.6.3
diff -u -d -r1.9.6.2 -r1.9.6.3
--- unix_pref.cpp	2 Nov 2007 06:53:14 -0000	1.9.6.2
+++ unix_pref.cpp	6 Dec 2007 08:00:09 -0000	1.9.6.3
@@ -149,9 +149,9 @@
             CHXSimpleList::Iterator ndx = rEnvList.Begin();
             for (; ndx != rEnvList.End(); ++ndx)
             {
-                if(!strnicmp((*ndx),pArr,strlen(pArr)))
+                if(!strnicmp((char*)(*ndx),pArr,strlen(pArr)))
                 {
-                	delete_string(*ndx);
+                	delete_string((char*)(*ndx));
                 	rEnvList.RemoveAt(ndx);
 			break;					
                 }


From jwei at helixcommunity.org  Fri Dec  7 11:26:43 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:55:08 2007
Subject: [Common-cvs] fileio hxdatasource.cpp,1.6,1.7 symbian.pcf,1.13,1.14
Message-ID: 

Update of /cvsroot/common/fileio
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13344

Modified Files:
	hxdatasource.cpp symbian.pcf 
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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: hxdatasource.cpp
===================================================================
RCS file: /cvsroot/common/fileio/hxdatasource.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- hxdatasource.cpp	19 Jul 2007 00:34:04 -0000	1.6
+++ hxdatasource.cpp	7 Dec 2007 19:26:40 -0000	1.7
@@ -192,7 +192,7 @@
 }
 
 //enable multi read/write
-STDMETHODIMP CHXDataSource::Open2( IHXRequest *pRequest, const char *mode, IHXFileObject* pFileObject )
+STDMETHODIMP CHXDataSource::Open2( IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject )
 {
     HX_RESULT retVal( HXR_FAIL );
     TInt index( 0 );
@@ -242,8 +242,18 @@
     return retVal;
 }
  
-UINT32 CHXDataSource::Read2( void *pBuf, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject )
+UINT32 CHXDataSource::Read2( IHXBuffer* pBuffer, IHXFileObject* pFileObject )
 {
+    UCHAR*  pBuf( NULL );
+    ULONG32 size( 0 );
+    ULONG32 count = sizeof( UCHAR );
+
+    if( pBuffer )
+    {
+        pBuf = pBuffer->GetBuffer();
+        size = pBuffer->GetSize();
+    }
+
     HX_RESULT retVal = RestoreFileObject( pFileObject );
 
     UINT32 bytesread( 0 );
@@ -303,6 +313,11 @@
     return retVal;
 }
 
+STDMETHODIMP CHXDataSource::GetLastError2( IHXFileObject* pFileObject )
+{
+    return m_ulLastError;
+}
+
 HX_RESULT CHXDataSource::RestoreFileObject( IHXFileObject* pFileObject )
 {
     HX_RESULT retVal( HXR_OK );
@@ -357,7 +372,7 @@
     }
     return retVal;
 }
-STDMETHODIMP CHXDataSource::AsyncReadSupported()
+HXBOOL CHXDataSource::AsyncReadSupported()
 {
     return FALSE;
 }

Index: symbian.pcf
===================================================================
RCS file: /cvsroot/common/fileio/symbian.pcf,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- symbian.pcf	19 Jul 2007 00:34:04 -0000	1.13
+++ symbian.pcf	7 Dec 2007 19:26:40 -0000	1.14
@@ -69,5 +69,6 @@
 	'platform/symbian/hxdatasource_ccontent.cpp',
 	'platform/symbian/hxdatasource_descriptor.cpp',
 	'platform/symbian/hxdatasourcemmfclip.cpp',
+	'platform/symbian/asynchronousmultireader.cpp',
 	'platform/symbian/HxMMDataSource.cpp')
 


From jwei at helixcommunity.org  Fri Dec  7 11:26:44 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:55:09 2007
Subject: [Common-cvs] fileio/platform/symbian HxMMDataSource.cpp,1.5,1.6
Message-ID: 

Update of /cvsroot/common/fileio/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13344/platform/symbian

Modified Files:
	HxMMDataSource.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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: HxMMDataSource.cpp
===================================================================
RCS file: /cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- HxMMDataSource.cpp	15 Oct 2007 15:54:35 -0000	1.5
+++ HxMMDataSource.cpp	7 Dec 2007 19:26:41 -0000	1.6
@@ -257,19 +257,19 @@
     HXLOGL4(HXLOG_FILE, "CHxMMDataSource::BufferFilled dataSize = %d m_ulPosition = %d m_pBuffer->LastBuffer()= %d",dataSize,m_ulPosition,m_pBuffer->LastBuffer());
     m_ulPosition += dataSize;
 
-    if(m_pObserver != NULL)
-    {
-        // check protects m_pHXBuffer as well.
-        TPtr8   ptr8((TUint8 *)m_pHXBuffer, 0, dataSize);
-        ptr8.Copy(m_pBuffer->Data());
-        m_pObserver->ReadDone(NULL, dataSize);
-    }
+    TPtr8   ptr8((TUint8 *)m_pHXBuffer, 0, dataSize);
+    ptr8.Copy(m_pBuffer->Data());
 
     if(m_pBuffer->LastBuffer())
     {
         delete m_pBuffer;
         m_pBuffer =  NULL;
     }
+
+    if(m_pObserver != NULL)
+    {
+        m_pObserver->ReadDone(NULL, dataSize);
+    }
 }
 
 TInt CHxMMDataSource::GetBitRate(TUint &ulBitRate)
@@ -297,7 +297,7 @@
     return HXR_OK;
 }
 
-STDMETHODIMP CHxMMDataSource::AsyncReadSupported()
+HXBOOL CHxMMDataSource::AsyncReadSupported()
 {
     return TRUE;
 }


From jwei at helixcommunity.org  Fri Dec  7 11:26:45 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:55:10 2007
Subject: [Common-cvs] fileio/pub hxdatasource.h,1.6,1.7
Message-ID: 

Update of /cvsroot/common/fileio/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13344/pub

Modified Files:
	hxdatasource.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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: hxdatasource.h
===================================================================
RCS file: /cvsroot/common/fileio/pub/hxdatasource.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- hxdatasource.h	19 Jul 2007 00:34:05 -0000	1.6
+++ hxdatasource.h	7 Dec 2007 19:26:42 -0000	1.7
@@ -54,6 +54,7 @@
 #include "hxstring.h"
 #include "hxfiles.h"
 #include "ihxmmfdatasource.h"
+#include "ihxpckts.h" //IHXBuffer
 
 // warnning: This interface and related functionality is under development.
 // IHXMMFDataSource API can change anytime.
@@ -84,13 +85,14 @@
     virtual UINT32  Write(THIS_ void *, ULONG32 size, ULONG32 count) PURE;
     STDMETHOD(GetSize)  (THIS_ UINT32 &ulSize) PURE;
     STDMETHOD(GetLastError)   (THIS_);
-    STDMETHOD(AsyncReadSupported)   (THIS_);
+    HXBOOL AsyncReadSupported(THIS_);
 public: //enable multi read/write
-    STDMETHOD(Open2)    (THIS_ IHXRequest *pRequest, const char *mode, IHXFileObject* pFileObject);
+    STDMETHOD(Open2)    (THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject);
     STDMETHOD(Seek2)    (THIS_ UINT32 offset, INT32 fromWhere, IHXFileObject* pFileObject);
     STDMETHOD(Close2)   (THIS_ IHXFileObject* pFileObject);
-    virtual UINT32  Read2(THIS_  void *, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject);
+    virtual UINT32  Read2(THIS_  IHXBuffer* pBuffer, IHXFileObject* pFileObject);
     virtual UINT32  Write2(THIS_ void *, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject);
+    STDMETHOD(GetLastError2)   ( THIS_ IHXFileObject* pFileObject);
 
 protected: //enable multi read/write
     HX_RESULT RestoreFileObject( IHXFileObject* pFileObject );


From jwei at helixcommunity.org  Fri Dec  7 11:26:45 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:55:10 2007
Subject: [Common-cvs] fileio/pub/platform/symbian HxMMDataSource.h,1.3,1.4
Message-ID: 

Update of /cvsroot/common/fileio/pub/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13344/pub/platform/symbian

Modified Files:
	HxMMDataSource.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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: HxMMDataSource.h
===================================================================
RCS file: /cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- HxMMDataSource.h	23 Aug 2007 16:12:26 -0000	1.3
+++ HxMMDataSource.h	7 Dec 2007 19:26:42 -0000	1.4
@@ -99,7 +99,7 @@
     STDMETHOD(SetUnderflowTimeoutInMillis)(THIS_ UINT32 timeout);
 #endif
     static CHxMMDataSource* NewL(MDataSource& aDataSource, UINT32 aCacheSize = 65535);
-    STDMETHOD(AsyncReadSupported)   (THIS_);
+    HXBOOL AsyncReadSupported(THIS_);
     
 protected:  // functions from MMultimediaDataSourceObserver
 


From jwei at helixcommunity.org  Fri Dec  7 11:27:20 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:55:45 2007
Subject: [Common-cvs] fileio/pub hxdatasource.h,1.1.2.4,1.1.2.5
Message-ID: 

Update of /cvsroot/common/fileio/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13870/pub

Modified Files:
      Tag: hxclient_2_1_0_cayennes
	hxdatasource.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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: hxdatasource.h
===================================================================
RCS file: /cvsroot/common/fileio/pub/hxdatasource.h,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- hxdatasource.h	18 Jul 2007 23:06:14 -0000	1.1.2.4
+++ hxdatasource.h	7 Dec 2007 19:27:17 -0000	1.1.2.5
@@ -54,6 +54,7 @@
 #include "hxstring.h"
 #include "hxfiles.h"
 #include "ihxmmfdatasource.h"
+#include "ihxpckts.h" //IHXBuffer
 
 // warnning: This interface and related functionality is under development.
 // IHXMMFDataSource API can change anytime.
@@ -84,13 +85,14 @@
     virtual UINT32  Write(THIS_ void *, ULONG32 size, ULONG32 count) PURE;
     STDMETHOD(GetSize)  (THIS_ UINT32 &ulSize) PURE;
     STDMETHOD(GetLastError)   (THIS_);
-    STDMETHOD(AsyncReadSupported)   (THIS_);
+    HXBOOL AsyncReadSupported(THIS_);
 public: //enable multi read/write
-    STDMETHOD(Open2)    (THIS_ IHXRequest *pRequest, const char *mode, IHXFileObject* pFileObject);
+    STDMETHOD(Open2)    (THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject);
     STDMETHOD(Seek2)    (THIS_ UINT32 offset, INT32 fromWhere, IHXFileObject* pFileObject);
     STDMETHOD(Close2)   (THIS_ IHXFileObject* pFileObject);
-    virtual UINT32  Read2(THIS_  void *, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject);
+    virtual UINT32  Read2(THIS_  IHXBuffer* pBuffer, IHXFileObject* pFileObject);
     virtual UINT32  Write2(THIS_ void *, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject);
+    STDMETHOD(GetLastError2)   ( THIS_ IHXFileObject* pFileObject);
 
 protected: //enable multi read/write
     HX_RESULT RestoreFileObject( IHXFileObject* pFileObject );


From jwei at helixcommunity.org  Fri Dec  7 11:27:22 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:55:47 2007
Subject: [Common-cvs] fileio/pub/platform/symbian HxMMDataSource.h, 1.1.2.2,
	1.1.2.3
Message-ID: 

Update of /cvsroot/common/fileio/pub/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13870/pub/platform/symbian

Modified Files:
      Tag: hxclient_2_1_0_cayennes
	HxMMDataSource.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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: HxMMDataSource.h
===================================================================
RCS file: /cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -d -r1.1.2.2 -r1.1.2.3
--- HxMMDataSource.h	23 Aug 2007 15:52:17 -0000	1.1.2.2
+++ HxMMDataSource.h	7 Dec 2007 19:27:18 -0000	1.1.2.3
@@ -99,7 +99,7 @@
     STDMETHOD(SetUnderflowTimeoutInMillis)(THIS_ UINT32 timeout);
 #endif
     static CHxMMDataSource* NewL(MDataSource& aDataSource, UINT32 aCacheSize = 65535);
-    STDMETHOD(AsyncReadSupported)   (THIS_);
+    HXBOOL AsyncReadSupported(THIS_);
     
 protected:  // functions from MMultimediaDataSourceObserver
 


From jwei at helixcommunity.org  Fri Dec  7 11:27:17 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:56:13 2007
Subject: [Common-cvs] fileio hxdatasource.cpp, 1.1.2.4, 1.1.2.5 symbian.pcf,
	1.10.2.2, 1.10.2.3
Message-ID: 

Update of /cvsroot/common/fileio
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13870

Modified Files:
      Tag: hxclient_2_1_0_cayennes
	hxdatasource.cpp symbian.pcf 
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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: hxdatasource.cpp
===================================================================
RCS file: /cvsroot/common/fileio/hxdatasource.cpp,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- hxdatasource.cpp	18 Jul 2007 23:06:14 -0000	1.1.2.4
+++ hxdatasource.cpp	7 Dec 2007 19:27:12 -0000	1.1.2.5
@@ -192,7 +192,7 @@
 }
 
 //enable multi read/write
-STDMETHODIMP CHXDataSource::Open2( IHXRequest *pRequest, const char *mode, IHXFileObject* pFileObject )
+STDMETHODIMP CHXDataSource::Open2( IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject )
 {
     HX_RESULT retVal( HXR_FAIL );
     TInt index( 0 );
@@ -242,8 +242,18 @@
     return retVal;
 }
  
-UINT32 CHXDataSource::Read2( void *pBuf, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject )
+UINT32 CHXDataSource::Read2( IHXBuffer* pBuffer, IHXFileObject* pFileObject )
 {
+    UCHAR*  pBuf( NULL );
+    ULONG32 size( 0 );
+    ULONG32 count = sizeof( UCHAR );
+
+    if( pBuffer )
+    {
+        pBuf = pBuffer->GetBuffer();
+        size = pBuffer->GetSize();
+    }
+
     HX_RESULT retVal = RestoreFileObject( pFileObject );
 
     UINT32 bytesread( 0 );
@@ -303,6 +313,11 @@
     return retVal;
 }
 
+STDMETHODIMP CHXDataSource::GetLastError2( IHXFileObject* pFileObject )
+{
+    return m_ulLastError;
+}
+
 HX_RESULT CHXDataSource::RestoreFileObject( IHXFileObject* pFileObject )
 {
     HX_RESULT retVal( HXR_OK );
@@ -357,7 +372,7 @@
     }
     return retVal;
 }
-STDMETHODIMP CHXDataSource::AsyncReadSupported()
+HXBOOL CHXDataSource::AsyncReadSupported()
 {
     return FALSE;
 }

Index: symbian.pcf
===================================================================
RCS file: /cvsroot/common/fileio/symbian.pcf,v
retrieving revision 1.10.2.2
retrieving revision 1.10.2.3
diff -u -d -r1.10.2.2 -r1.10.2.3
--- symbian.pcf	18 Jul 2007 23:06:14 -0000	1.10.2.2
+++ symbian.pcf	7 Dec 2007 19:27:12 -0000	1.10.2.3
@@ -69,5 +69,6 @@
 	'platform/symbian/hxdatasource_ccontent.cpp',
 	'platform/symbian/hxdatasource_descriptor.cpp',
 	'platform/symbian/hxdatasourcemmfclip.cpp',
+	'platform/symbian/asynchronousmultireader.cpp',
 	'platform/symbian/HxMMDataSource.cpp')
 


From jwei at helixcommunity.org  Fri Dec  7 11:27:18 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:56:14 2007
Subject: [Common-cvs] fileio/platform/symbian HxMMDataSource.cpp, 1.1.2.4,
	1.1.2.5
Message-ID: 

Update of /cvsroot/common/fileio/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13870/platform/symbian

Modified Files:
      Tag: hxclient_2_1_0_cayennes
	HxMMDataSource.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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: HxMMDataSource.cpp
===================================================================
RCS file: /cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- HxMMDataSource.cpp	15 Oct 2007 15:50:11 -0000	1.1.2.4
+++ HxMMDataSource.cpp	7 Dec 2007 19:27:15 -0000	1.1.2.5
@@ -257,19 +257,19 @@
     HXLOGL4(HXLOG_FILE, "CHxMMDataSource::BufferFilled dataSize = %d m_ulPosition = %d m_pBuffer->LastBuffer()= %d",dataSize,m_ulPosition,m_pBuffer->LastBuffer());
     m_ulPosition += dataSize;
 
-    if(m_pObserver != NULL)
-    {
-        // check protects m_pHXBuffer as well.
-        TPtr8   ptr8((TUint8 *)m_pHXBuffer, 0, dataSize);
-        ptr8.Copy(m_pBuffer->Data());
-        m_pObserver->ReadDone(NULL, dataSize);
-    }
+    TPtr8   ptr8((TUint8 *)m_pHXBuffer, 0, dataSize);
+    ptr8.Copy(m_pBuffer->Data());
 
     if(m_pBuffer->LastBuffer())
     {
         delete m_pBuffer;
         m_pBuffer =  NULL;
     }
+
+    if(m_pObserver != NULL)
+    {
+        m_pObserver->ReadDone(NULL, dataSize);
+    }
 }
 
 TInt CHxMMDataSource::GetBitRate(TUint &ulBitRate)
@@ -297,7 +297,7 @@
     return HXR_OK;
 }
 
-STDMETHODIMP CHxMMDataSource::AsyncReadSupported()
+HXBOOL CHxMMDataSource::AsyncReadSupported()
 {
     return TRUE;
 }


From jwei at helixcommunity.org  Fri Dec  7 11:29:05 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:57:30 2007
Subject: [Common-cvs] 
	include ihxmmfdatasource.h, 1.1.2.4, 1.1.2.5 platform.h,
	1.34.2.2, 1.34.2.3
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv15171

Modified Files:
      Tag: hxclient_2_1_0_cayennes
	ihxmmfdatasource.h platform.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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: ihxmmfdatasource.h
===================================================================
RCS file: /cvsroot/common/include/ihxmmfdatasource.h,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- ihxmmfdatasource.h	18 Jul 2007 23:24:55 -0000	1.1.2.4
+++ ihxmmfdatasource.h	7 Dec 2007 19:29:02 -0000	1.1.2.5
@@ -88,9 +88,7 @@
  /*
     Informs datasource observer once read request is complete.
  */
- virtual void ReadDone(THIS_
-                   void * pBuffer, ULONG32 ulCount
-                 ) PURE;
+ virtual void ReadDone(void* pBuffer, UINT32 byteCount) PURE;
 };
 
 // warnning: This interface and related functionality is under development.
@@ -168,7 +166,7 @@
 
 //enable multi read/write 
  STDMETHOD(Open2)         (THIS_
-                    IHXRequest *pRequest, const char *mode, IHXFileObject* pFileObject
+                    IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject
                  ) PURE;
 
  STDMETHOD(Close2)        (THIS_ IHXFileObject* pFileObject) PURE;
@@ -177,7 +175,7 @@
         reads "count" elements each of size "size".
     */
  virtual UINT32 Read2(THIS_
-                   void * buf, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject
+                   IHXBuffer* pBuffer, IHXFileObject* pFileObject
                  ) PURE;
 
     /*
@@ -189,8 +187,9 @@
 
  STDMETHOD(Seek2)    (THIS_ UINT32, INT32 fromWhere, IHXFileObject* pFileObject) PURE;
 
+ STDMETHOD(GetLastError2)  (THIS_ IHXFileObject* pFileObject) PURE;
  
- STDMETHOD(AsyncReadSupported)  (THIS_) PURE;
+ virtual HXBOOL AsyncReadSupported(THIS_) PURE;
 
 };
 

Index: platform.h
===================================================================
RCS file: /cvsroot/common/include/platform.h,v
retrieving revision 1.34.2.2
retrieving revision 1.34.2.3
diff -u -d -r1.34.2.2 -r1.34.2.3
--- platform.h	24 Aug 2006 20:00:52 -0000	1.34.2.2
+++ platform.h	7 Dec 2007 19:29:02 -0000	1.34.2.3
@@ -49,6 +49,6 @@
 
 #ifndef _PLATFORM_H_
 #define _PLATFORM_H_
-#define TARVER_STR_PLATFORM "win32"
-#define TARVER_STR_BUILD_BRANCH "SERVER_CURRENT_RN"
+#define TARVER_STR_PLATFORM "symbian"
+#define TARVER_STR_BUILD_BRANCH "hxclient_2_1_0_cayennes_restricted"
 #endif


From jwei at helixcommunity.org  Fri Dec  7 11:29:11 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 10:57:38 2007
Subject: [Common-cvs] include ihxmmfdatasource.h,1.6,1.7
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv15256

Modified Files:
	ihxmmfdatasource.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:  john.wei@nokia.com

Reviewed by:

Date: 03-Dec-2007

Project: SymbianMmf_Rel

TSW: ELDG-73WGS6

Synopsis: Installing Asynchronous Datasource for Audio Controller

Audio controller is currently using synchronous datasource for playing. This CR changes this to asynchronous datasource, which results in audio play more responsive. Please note that video playing is not affected.

Files Modified:

/cvsroot/common/fileio/pub/hxdatasource.h
/cvsroot/common/fileio/hxdatasource.cpp
/cvsroot/common/fileio/symbian.pcf
/cvsroot/common/fileio/platform/symbian/HxMMDataSource.cpp
/cvsroot/common/fileio/pub/platform/symbian/HxMMDataSource.h
/cvsroot/clientapps/symbianMmf/audiocontroller/hxmmfaudioctrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
/cvsroot/clientapps/symbianMmf/common/hxmmfbasectrl.h
/cvsroot/filesystem/local/mini/minifileobj.cpp
/cvsroot/common/include/ihxmmfdatasource.h

Files New:
/cvsroot/common/fileio/platform/symbian/asynchronousmultireader.cpp
/cvsroot/common/fileio/pub/platform/symbian/asynchronousmultireader.h

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  N/A

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 

Branch: Head & 210CayS


Index: ihxmmfdatasource.h
===================================================================
RCS file: /cvsroot/common/include/ihxmmfdatasource.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- ihxmmfdatasource.h	19 Jul 2007 00:35:56 -0000	1.6
+++ ihxmmfdatasource.h	7 Dec 2007 19:29:08 -0000	1.7
@@ -88,9 +88,7 @@
  /*
     Informs datasource observer once read request is complete.
  */
- virtual void ReadDone(THIS_
-                   void * pBuffer, ULONG32 ulCount
-                 ) PURE;
+ virtual void ReadDone(void* pBuffer, UINT32 byteCount) PURE;
 };
 
 // warnning: This interface and related functionality is under development.
@@ -168,7 +166,7 @@
 
 //enable multi read/write 
  STDMETHOD(Open2)         (THIS_
-                    IHXRequest *pRequest, const char *mode, IHXFileObject* pFileObject
+                    IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject
                  ) PURE;
 
  STDMETHOD(Close2)        (THIS_ IHXFileObject* pFileObject) PURE;
@@ -177,7 +175,7 @@
         reads "count" elements each of size "size".
     */
  virtual UINT32 Read2(THIS_
-                   void * buf, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject
+                   IHXBuffer* pBuffer, IHXFileObject* pFileObject
                  ) PURE;
 
     /*
@@ -189,8 +187,9 @@
 
  STDMETHOD(Seek2)    (THIS_ UINT32, INT32 fromWhere, IHXFileObject* pFileObject) PURE;
 
+ STDMETHOD(GetLastError2)  (THIS_ IHXFileObject* pFileObject) PURE;
  
- STDMETHOD(AsyncReadSupported)  (THIS_) PURE;
+ virtual HXBOOL AsyncReadSupported(THIS_) PURE;
 
 };
 


From jwei at helixcommunity.org  Fri Dec  7 12:41:55 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 12:10:18 2007
Subject: [Common-cvs] fileio/pub/platform/symbian asynchronousmultireader.h,
	NONE, 1.1.2.1
Message-ID: 

Update of /cvsroot/common/fileio/pub/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv18964

Added Files:
      Tag: hxclient_2_1_0_cayennes
	asynchronousmultireader.h 
Log Message:


--- NEW FILE: asynchronousmultireader.h ---
/* ***** BEGIN LICENSE BLOCK *****
 *
 * Portions Copyright (c) 2007 RealNetworks, Inc. All Rights Reserved.
 *
 * Version: $Id: asynchronousmultireader.h,v 1.1.2.1 2007/12/07 20:41:19 jwei Exp $
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 *
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU General Public License Version 2 or later (the
 * "GPL") in which case the provisions of the GPL are applicable
 * instead of those above. If you wish to allow use of your version of
 * this file only under the terms of the GPL, and not to allow others
 * to use your version of this file under the terms of either the RPSL
 * or RCSL, indicate your decision by deleting the provisions above
 * and replace them with the notice and other provisions required by
 * the GPL. If you do not delete the provisions above, a recipient may
 * use your version of this file under the terms of any one of the
 * RPSL, the RCSL or the GPL.
 *
 * This file is part of the Helix DNA Technology. RealNetworks is the
 * developer of the Original Code and owns the copyrights in the
 * portions it created.
 *
 * This file, and the files included with this file, is distributed
 * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
 * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
 * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
 * ENJOYMENT OR NON-INFRINGEMENT.
 *
 * Technology Compatibility Kit Test Suite(s) Location:
 *    http://www.helixcommunity.org/content/tck
 *
 * Contributor(s): John Wei
 *
 * ***** END LICENSE BLOCK ***** */

#ifndef _ASYNCHRONOUSMULTIREADER_H_
#define _ASYNCHRONOUSMULTIREADER_H_

#include                 //CMMFClip
#include             //MDataSink
#include  //MAsyncEventHandler
#include "hxcom.h"                  //STDMETHODIMP
#include "hxfiles.h"                //IHXFileObject
#include "ihxmmfdatasource.h"       //IHXMMFDataSource
#include "hxtlogutil.h"             //HXLOG
#include "hlxclib/sys/stat.h"       //struct stat
#include           //KMMFErrorCategoryControllerGeneralError
#ifdef HELIX_FEATURE_S60_PROGDOWN
#include "ihxdownloadeventobserver.h" //IHXDownloadEventObserver
#endif
#include "ihxpckts.h"                 //IHXBuffer

class CReadingScheduler;
class CAsynchronousReader;

/*******************************************************************************
 * CReaderCommandBase
 ********************************************************************************/
class CReaderCommandBase
{
public:
    CReaderCommandBase( IHXFileObject* pFileObject, HXBOOL bIsSynchronousCommand );
    virtual ~CReaderCommandBase();

public:
    virtual HX_RESULT Execute( CAsynchronousReader* pReader ) = 0;
    HXBOOL  IsSynchronousCommand() const;
    void    SetSynchronousCommandState( HXBOOL aIsSynchronousCommand );

public: //ring buffer
    CReaderCommandBase* GetNextCommand() const;
    CReaderCommandBase* GetPreviousCommand() const;
    void SetNextCommand( CReaderCommandBase* pCommand );
    void SetPreviousCommand( CReaderCommandBase* pCommand );

protected:
    IHXFileObject*       m_pFileObject;
    HXBOOL               m_bIsSynchronousCommand;
    CReaderCommandBase*  m_pNextCommand;
    CReaderCommandBase*  m_pPreviousCommand;
};

/*******************************************************************************
 * CReaderCommandOpen
 ********************************************************************************/
class CReaderCommandOpen : public CReaderCommandBase
{
public:
    CReaderCommandOpen( IHXRequest *pRequest, const char *mode, 
                        IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject );
    ~CReaderCommandOpen();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    IHXRequest* m_pRequest;
    const char* m_pMode;
    IHXMMFDataSourceObserver* m_pObserver;
};

/*******************************************************************************
 * CReaderCommandSeek
 ********************************************************************************/
class CReaderCommandSeek : public CReaderCommandBase
{
public:
    CReaderCommandSeek( UINT32 offset, INT32 fromWhere, IHXFileObject* pFileObject );
    ~CReaderCommandSeek();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    UINT32 m_uOffset;
    INT32  m_iFromWhere;
};

/*******************************************************************************
 * CReaderCommandStat
 ********************************************************************************/
class CReaderCommandStat : public CReaderCommandBase
{
public:
    CReaderCommandStat( struct stat *buf );
    ~CReaderCommandStat();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    struct stat* m_pBuf;
};

/*******************************************************************************
 * CReaderCommandClose
 ********************************************************************************/
class CReaderCommandClose : public CReaderCommandBase
{
public:
    CReaderCommandClose( IHXFileObject* pFileObject );
    ~CReaderCommandClose();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );
};

/*******************************************************************************
 * CReaderCommandRead
 ********************************************************************************/
class CReaderCommandRead : public CReaderCommandBase
{
public:
    CReaderCommandRead( IHXBuffer* pBuffer, IHXFileObject* pFileObject );
    ~CReaderCommandRead();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    IHXBuffer* m_pBuffer;
};

/*******************************************************************************
 * CReaderCommandGetSize
 ********************************************************************************/
class CReaderCommandGetSize : public CReaderCommandBase
{
public:
    CReaderCommandGetSize( UINT32& ulSize );
    ~CReaderCommandGetSize();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    UINT32& m_ulSize;
};

/*******************************************************************************
 * CReaderCommandGetLastError
 ********************************************************************************/
class CReaderCommandGetLastError : public CReaderCommandBase
{
public:
    CReaderCommandGetLastError( IHXFileObject* pFileObject );
    ~CReaderCommandGetLastError();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

};

/*******************************************************************************
 * CReaderCommandManager
 ********************************************************************************/
class CReaderCommandManager
{
public: //(de)constructor
    CReaderCommandManager();
    virtual ~CReaderCommandManager();

public:
    HX_RESULT                   EnqueueCommand( CReaderCommandBase* m_pCommand );
    CReaderCommandBase*         RetrieveCommand();
    UINT32                      GetNumberOfCommands() const;

protected:
    CReaderCommandBase*         m_pCommandHead;
    TUint                       m_ulNumberOfCommand;
};


/*******************************************************************************
 * CSingleReaderState
 ********************************************************************************/
class CSingleReaderState
{
public:
    CSingleReaderState( IHXFileObject* pFileObject );
    virtual ~CSingleReaderState();

public:
    void    SetPosition( ULONG32 ulPosition );
    ULONG32 GetPosition() const;
    IHXFileObject* GetSupportedFileObject() const;
    void    SetDataSourceObserver( IHXMMFDataSourceObserver* pObserver );
    IHXMMFDataSourceObserver* GetDataSourceObserver() const;
    void ResetBuffer( CMMFPtrBuffer* pBuffer );
    CMMFPtrBuffer* GetBuffer() const;
    void    SetLastError( HX_RESULT ulLastError );
    HX_RESULT GetLastError();

public: //ring buffer
    CSingleReaderState* GetNextReaderState() const;
    CSingleReaderState* GetPreviousReaderState() const;
    void SetNextReaderState( CSingleReaderState* pReaderState );
    void SetPreviousReaderState( CSingleReaderState* pReaderState );

private:
    IHXFileObject*              m_pSupportedFileObject;
    IHXMMFDataSourceObserver*   m_pDataSourceObserver;
    CSingleReaderState*         m_pNextReaderState;
    CSingleReaderState*         m_pPreviousReaderState;
    ULONG32                     m_ulPosition; // current offset for the data
    HX_RESULT                   m_ulLastError;
    CMMFPtrBuffer*              m_pBuffer;
};

/*******************************************************************************
 * CAsynchronousReader
 ********************************************************************************/
class CAsynchronousReader
: public IHXMMFDataSource,
  public MAsyncEventHandler,
  public MDataSink
{
public: //(de)constructor
    CAsynchronousReader( CReadingScheduler* pReadingScheduler, CMMFClip *pImpl );
    virtual ~CAsynchronousReader();

public:  //IUnknown
    STDMETHOD(QueryInterface)       ( THIS_ REFIID riid, void** ppvObj );
    STDMETHOD_(ULONG32,AddRef)      ( THIS);
    STDMETHOD_(ULONG32,Release)     ( THIS);

public: //IHXMMFDataSource
    STDMETHOD(Open)    ( THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver );
    STDMETHOD(Seek)    ( THIS_ UINT32 offset, INT32 fromWhere );
    STDMETHOD(Stat)    ( THIS_ struct stat *buf );
    STDMETHOD(GetStringAttribute)( THIS_ UINT32 ulAttibute, REF(IHXBuffer*)  pBuffer);
    STDMETHOD(GetAttribute)( THIS_ INT32 ulAttribute, INT32 &ulValue );
    STDMETHOD(Close)   ( THIS_ );
    virtual UINT32  Read(THIS_  void *, ULONG32 size, ULONG32 count);
    virtual UINT32  Write(THIS_ void *, ULONG32 size, ULONG32 count);
    STDMETHOD(GetSize)  (THIS_ UINT32 &ulSize);
    STDMETHOD(GetLastError)   ( THIS_ );
    HXBOOL   AsyncReadSupported( THIS_ );

    STDMETHOD(Open2)    (THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject);
    STDMETHOD(Seek2)    (THIS_ UINT32 offset, INT32 fromWhere, IHXFileObject* pFileObject);
    STDMETHOD(Close2)   (THIS_ IHXFileObject* pFileObject);
    STDMETHOD(GetLastError2)   ( THIS_  IHXFileObject* pFileObject);
    virtual UINT32  Read2(THIS_  IHXBuffer* pBuffer, IHXFileObject* pFileObject);
    virtual UINT32  Write2(THIS_ void *, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject);

public:  //MDataSink
    TFourCC SinkDataTypeCode( TMediaId aMediaId );
    void  EmptyBufferL( CMMFBuffer* aBuffer, MDataSource* aSupplier, TMediaId aMediaId );
    TBool CanCreateSinkBuffer();
    CMMFBuffer* CreateSinkBufferL( TMediaId aMediaId, TBool& aReference );
    void  ConstructSinkL( const TDesC8& aInitData );
    void  BufferFilledL ( CMMFBuffer* aBuffer );

public: //MAsyncEventHandler
    TInt SendEventToClient( const TMMFEvent &aEvent );


public:
    HX_RESULT Initialize();
    HXBOOL    IsInitialized() const;

protected:
    HX_RESULT AddReaderState( IHXFileObject* pFileObject );
    HX_RESULT RemoveReaderState( IHXFileObject* pFileObject );
    HXBOOL    IsReaderStateAvailable( IHXFileObject* pFileObject ) const;
    CSingleReaderState* GetReaderState( IHXFileObject* pFileObject ) const;
    CSingleReaderState* GetCurrentReaderState() const;
    HX_RESULT SetCurrentReaderState( CSingleReaderState* pReaderState );
    void ReadBufferL( CMMFBuffer* aBuffer, TInt aPosition, MDataSink* aConsumer );  //asychronous call

protected:
    CReadingScheduler*          m_pReadingScheduler;
    CSingleReaderState*         m_pReaderStateHead;
    CSingleReaderState*         m_pCurrentReaderState;
    UINT32                      m_ulNumberOfReader;
    CMMFClip*                   m_pImpl;     // actual data source implementation 
    HXBOOL                      m_bIsInitialized;
    ULONG32                     m_ulRefCount;
    IHXBuffer*                  m_pReadingBuffer;
};

/*******************************************************************************
 * CReadingScheduler
 ********************************************************************************/
class CReadingScheduler
{
public: //(de)constructor
    CReadingScheduler();
    virtual ~CReadingScheduler();

public:
    HX_RESULT Initialize( CMMFClip* pCMMfClip );
    void NotifyReaderManagerIdle( HXBOOL bReaderManagerIsIdle );
    HX_RESULT ProcessCommand( CReaderCommandBase* pCommand );

private:
    CAsynchronousReader*        m_pReader;
    CReaderCommandManager*      m_pCommandManager;
    HXBOOL                      m_bReaderIdle;
};


/*******************************************************************************
 * CAsynchronousMultiReader
 ********************************************************************************/

class CAsynchronousMultiReader
: public IHXMMFDataSource
#ifdef HELIX_FEATURE_S60_PROGDOWN
  ,public IHXDownloadEventObserver
#endif
{
public:  //(de)constructor
    CAsynchronousMultiReader( CMMFClip* pCMMfClip );
    virtual ~CAsynchronousMultiReader();

public:  //IUnknown
    STDMETHOD(QueryInterface)       ( THIS_ REFIID riid, void** ppvObj );
    STDMETHOD_(ULONG32,AddRef)      ( THIS);
    STDMETHOD_(ULONG32,Release)     ( THIS);

public: //IHXMMFDataSource
    STDMETHOD(Open)    ( THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver );
    STDMETHOD(Seek)    ( THIS_ UINT32 offset, INT32 fromWhere );
    STDMETHOD(Stat)    ( THIS_ struct stat *buf );
    STDMETHOD(GetStringAttribute)( THIS_ UINT32 ulAttibute, REF(IHXBuffer*)  pBuffer);
    STDMETHOD(GetAttribute)( THIS_ INT32 ulAttribute, INT32 &ulValue );
    STDMETHOD(Close)   ( THIS_ );
    virtual UINT32  Read(THIS_  void *, ULONG32 size, ULONG32 count);
    virtual UINT32  Write(THIS_ void *, ULONG32 size, ULONG32 count);
    STDMETHOD(GetSize)  (THIS_ UINT32 &ulSize);
    STDMETHOD(GetLastError)   ( THIS_ );
    HXBOOL   AsyncReadSupported( THIS_ );

    STDMETHOD(Open2)    (THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject);
    STDMETHOD(Seek2)    (THIS_ UINT32 offset, INT32 fromWhere, IHXFileObject* pFileObject);
    STDMETHOD(Close2)   (THIS_ IHXFileObject* pFileObject);
    STDMETHOD(GetLastError2)   ( THIS_  IHXFileObject* pFileObject);
    virtual UINT32  Read2(THIS_ IHXBuffer* pBuffer, IHXFileObject* pFileObject);
    virtual UINT32  Write2(THIS_ void *, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject);

#ifdef HELIX_FEATURE_S60_PROGDOWN
public: //IHXDownloadEventObserver
    UINT32 IsDownloadComplete        (THIS);
    UINT32 GetDownloadSize           (THIS);
    UINT32 GetUnderflowTimeoutInMillis(THIS);
    STDMETHOD(SetDownloadComplete)  (THIS_ UINT32 downloadComplete);
    STDMETHOD(SetDownloadSize)      (THIS_ UINT32 downloadSize);
    STDMETHOD(SetUnderflowTimeoutInMillis)(THIS_ UINT32 timeout);
#endif

protected:
    HX_RESULT Initialize();

private:  //probihit
    CAsynchronousMultiReader();

protected:
    CReadingScheduler*          m_pReadingScheduler;
    CMMFClip*                   m_pCMMfClip;
    HXBOOL                      m_bIsInitialized;
    ULONG32                     m_ulRefCount;

#ifdef HELIX_FEATURE_S60_PROGDOWN
    UINT32                      m_ulDownloadComplete;
    UINT32                      m_ulDownloadSize;
    UINT32                      m_ulUnderflowTimeoutInMillis;
#endif

};

#endif  //_ASYNCHRONOUSMULTIREADER_H_



From jwei at helixcommunity.org  Fri Dec  7 12:42:52 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 12:11:31 2007
Subject: [Common-cvs] fileio/platform/symbian asynchronousmultireader.cpp,
	NONE, 1.1.2.1
Message-ID: 

Update of /cvsroot/common/fileio/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv20667

Added Files:
      Tag: hxclient_2_1_0_cayennes
	asynchronousmultireader.cpp 
Log Message:


--- NEW FILE: asynchronousmultireader.cpp ---
/* ***** BEGIN LICENSE BLOCK *****
 * 
 * Portions Copyright (c) 2007 RealNetworks, Inc. All Rights Reserved.
 * Version: $Id: asynchronousmultireader.cpp,v 1.1.2.1 2007/12/07 20:42:23 jwei Exp $
 *
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 * 
[...1399 lines suppressed...]

        if( m_pReadingScheduler )
        {
              retVal = m_pReadingScheduler->Initialize( m_pCMMfClip );

              if( SUCCEEDED( retVal ) )
              {
                  m_bIsInitialized = TRUE;
                  retVal = HXR_OK;
              }
        }
    }
    HXLOGL2( HXLOG_FILE, "CAsynchronousMultiReader::Initialize() 0x%x<-", retVal );
    return retVal;
}







From jwei at helixcommunity.org  Fri Dec  7 12:43:38 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 12:12:03 2007
Subject: [Common-cvs] fileio/platform/symbian asynchronousmultireader.cpp,
	1.1, 1.2
Message-ID: 

Update of /cvsroot/common/fileio/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv22905

Added Files:
	asynchronousmultireader.cpp 
Log Message:


--- NEW FILE: asynchronousmultireader.cpp ---
/* ***** BEGIN LICENSE BLOCK *****
 * 
 * Portions Copyright (c) 2007 RealNetworks, Inc. All Rights Reserved.
 * Version: $Id: asynchronousmultireader.cpp,v 1.2 2007/12/07 20:43:36 jwei Exp $
 *
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 * 
[...1399 lines suppressed...]

        if( m_pReadingScheduler )
        {
              retVal = m_pReadingScheduler->Initialize( m_pCMMfClip );

              if( SUCCEEDED( retVal ) )
              {
                  m_bIsInitialized = TRUE;
                  retVal = HXR_OK;
              }
        }
    }
    HXLOGL2( HXLOG_FILE, "CAsynchronousMultiReader::Initialize() 0x%x<-", retVal );
    return retVal;
}







From jwei at helixcommunity.org  Fri Dec  7 12:49:25 2007
From: jwei at helixcommunity.org (jwei@helixcommunity.org)
Date: Fri Dec  7 12:17:53 2007
Subject: [Common-cvs] fileio/pub/platform/symbian asynchronousmultireader.h,
	1.1, 1.2
Message-ID: 

Update of /cvsroot/common/fileio/pub/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv28498

Added Files:
	asynchronousmultireader.h 
Log Message:


--- NEW FILE: asynchronousmultireader.h ---
/* ***** BEGIN LICENSE BLOCK *****
 *
 * Portions Copyright (c) 2007 RealNetworks, Inc. All Rights Reserved.
 *
 * Version: $Id: asynchronousmultireader.h,v 1.2 2007/12/07 20:49:21 jwei Exp $
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 *
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU General Public License Version 2 or later (the
 * "GPL") in which case the provisions of the GPL are applicable
 * instead of those above. If you wish to allow use of your version of
 * this file only under the terms of the GPL, and not to allow others
 * to use your version of this file under the terms of either the RPSL
 * or RCSL, indicate your decision by deleting the provisions above
 * and replace them with the notice and other provisions required by
 * the GPL. If you do not delete the provisions above, a recipient may
 * use your version of this file under the terms of any one of the
 * RPSL, the RCSL or the GPL.
 *
 * This file is part of the Helix DNA Technology. RealNetworks is the
 * developer of the Original Code and owns the copyrights in the
 * portions it created.
 *
 * This file, and the files included with this file, is distributed
 * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
 * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
 * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
 * ENJOYMENT OR NON-INFRINGEMENT.
 *
 * Technology Compatibility Kit Test Suite(s) Location:
 *    http://www.helixcommunity.org/content/tck
 *
 * Contributor(s): John Wei
 *
 * ***** END LICENSE BLOCK ***** */

#ifndef _ASYNCHRONOUSMULTIREADER_H_
#define _ASYNCHRONOUSMULTIREADER_H_

#include                 //CMMFClip
#include             //MDataSink
#include  //MAsyncEventHandler
#include "hxcom.h"                  //STDMETHODIMP
#include "hxfiles.h"                //IHXFileObject
#include "ihxmmfdatasource.h"       //IHXMMFDataSource
#include "hxtlogutil.h"             //HXLOG
#include "hlxclib/sys/stat.h"       //struct stat
#include           //KMMFErrorCategoryControllerGeneralError
#ifdef HELIX_FEATURE_S60_PROGDOWN
#include "ihxdownloadeventobserver.h" //IHXDownloadEventObserver
#endif
#include "ihxpckts.h"                 //IHXBuffer

class CReadingScheduler;
class CAsynchronousReader;

/*******************************************************************************
 * CReaderCommandBase
 ********************************************************************************/
class CReaderCommandBase
{
public:
    CReaderCommandBase( IHXFileObject* pFileObject, HXBOOL bIsSynchronousCommand );
    virtual ~CReaderCommandBase();

public:
    virtual HX_RESULT Execute( CAsynchronousReader* pReader ) = 0;
    HXBOOL  IsSynchronousCommand() const;
    void    SetSynchronousCommandState( HXBOOL aIsSynchronousCommand );

public: //ring buffer
    CReaderCommandBase* GetNextCommand() const;
    CReaderCommandBase* GetPreviousCommand() const;
    void SetNextCommand( CReaderCommandBase* pCommand );
    void SetPreviousCommand( CReaderCommandBase* pCommand );

protected:
    IHXFileObject*       m_pFileObject;
    HXBOOL               m_bIsSynchronousCommand;
    CReaderCommandBase*  m_pNextCommand;
    CReaderCommandBase*  m_pPreviousCommand;
};

/*******************************************************************************
 * CReaderCommandOpen
 ********************************************************************************/
class CReaderCommandOpen : public CReaderCommandBase
{
public:
    CReaderCommandOpen( IHXRequest *pRequest, const char *mode, 
                        IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject );
    ~CReaderCommandOpen();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    IHXRequest* m_pRequest;
    const char* m_pMode;
    IHXMMFDataSourceObserver* m_pObserver;
};

/*******************************************************************************
 * CReaderCommandSeek
 ********************************************************************************/
class CReaderCommandSeek : public CReaderCommandBase
{
public:
    CReaderCommandSeek( UINT32 offset, INT32 fromWhere, IHXFileObject* pFileObject );
    ~CReaderCommandSeek();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    UINT32 m_uOffset;
    INT32  m_iFromWhere;
};

/*******************************************************************************
 * CReaderCommandStat
 ********************************************************************************/
class CReaderCommandStat : public CReaderCommandBase
{
public:
    CReaderCommandStat( struct stat *buf );
    ~CReaderCommandStat();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    struct stat* m_pBuf;
};

/*******************************************************************************
 * CReaderCommandClose
 ********************************************************************************/
class CReaderCommandClose : public CReaderCommandBase
{
public:
    CReaderCommandClose( IHXFileObject* pFileObject );
    ~CReaderCommandClose();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );
};

/*******************************************************************************
 * CReaderCommandRead
 ********************************************************************************/
class CReaderCommandRead : public CReaderCommandBase
{
public:
    CReaderCommandRead( IHXBuffer* pBuffer, IHXFileObject* pFileObject );
    ~CReaderCommandRead();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    IHXBuffer* m_pBuffer;
};

/*******************************************************************************
 * CReaderCommandGetSize
 ********************************************************************************/
class CReaderCommandGetSize : public CReaderCommandBase
{
public:
    CReaderCommandGetSize( UINT32& ulSize );
    ~CReaderCommandGetSize();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

private:
    UINT32& m_ulSize;
};

/*******************************************************************************
 * CReaderCommandGetLastError
 ********************************************************************************/
class CReaderCommandGetLastError : public CReaderCommandBase
{
public:
    CReaderCommandGetLastError( IHXFileObject* pFileObject );
    ~CReaderCommandGetLastError();

public:
    HX_RESULT Execute( CAsynchronousReader* pReader );

};

/*******************************************************************************
 * CReaderCommandManager
 ********************************************************************************/
class CReaderCommandManager
{
public: //(de)constructor
    CReaderCommandManager();
    virtual ~CReaderCommandManager();

public:
    HX_RESULT                   EnqueueCommand( CReaderCommandBase* m_pCommand );
    CReaderCommandBase*         RetrieveCommand();
    UINT32                      GetNumberOfCommands() const;

protected:
    CReaderCommandBase*         m_pCommandHead;
    TUint                       m_ulNumberOfCommand;
};


/*******************************************************************************
 * CSingleReaderState
 ********************************************************************************/
class CSingleReaderState
{
public:
    CSingleReaderState( IHXFileObject* pFileObject );
    virtual ~CSingleReaderState();

public:
    void    SetPosition( ULONG32 ulPosition );
    ULONG32 GetPosition() const;
    IHXFileObject* GetSupportedFileObject() const;
    void    SetDataSourceObserver( IHXMMFDataSourceObserver* pObserver );
    IHXMMFDataSourceObserver* GetDataSourceObserver() const;
    void ResetBuffer( CMMFPtrBuffer* pBuffer );
    CMMFPtrBuffer* GetBuffer() const;
    void    SetLastError( HX_RESULT ulLastError );
    HX_RESULT GetLastError();

public: //ring buffer
    CSingleReaderState* GetNextReaderState() const;
    CSingleReaderState* GetPreviousReaderState() const;
    void SetNextReaderState( CSingleReaderState* pReaderState );
    void SetPreviousReaderState( CSingleReaderState* pReaderState );

private:
    IHXFileObject*              m_pSupportedFileObject;
    IHXMMFDataSourceObserver*   m_pDataSourceObserver;
    CSingleReaderState*         m_pNextReaderState;
    CSingleReaderState*         m_pPreviousReaderState;
    ULONG32                     m_ulPosition; // current offset for the data
    HX_RESULT                   m_ulLastError;
    CMMFPtrBuffer*              m_pBuffer;
};

/*******************************************************************************
 * CAsynchronousReader
 ********************************************************************************/
class CAsynchronousReader
: public IHXMMFDataSource,
  public MAsyncEventHandler,
  public MDataSink
{
public: //(de)constructor
    CAsynchronousReader( CReadingScheduler* pReadingScheduler, CMMFClip *pImpl );
    virtual ~CAsynchronousReader();

public:  //IUnknown
    STDMETHOD(QueryInterface)       ( THIS_ REFIID riid, void** ppvObj );
    STDMETHOD_(ULONG32,AddRef)      ( THIS);
    STDMETHOD_(ULONG32,Release)     ( THIS);

public: //IHXMMFDataSource
    STDMETHOD(Open)    ( THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver );
    STDMETHOD(Seek)    ( THIS_ UINT32 offset, INT32 fromWhere );
    STDMETHOD(Stat)    ( THIS_ struct stat *buf );
    STDMETHOD(GetStringAttribute)( THIS_ UINT32 ulAttibute, REF(IHXBuffer*)  pBuffer);
    STDMETHOD(GetAttribute)( THIS_ INT32 ulAttribute, INT32 &ulValue );
    STDMETHOD(Close)   ( THIS_ );
    virtual UINT32  Read(THIS_  void *, ULONG32 size, ULONG32 count);
    virtual UINT32  Write(THIS_ void *, ULONG32 size, ULONG32 count);
    STDMETHOD(GetSize)  (THIS_ UINT32 &ulSize);
    STDMETHOD(GetLastError)   ( THIS_ );
    HXBOOL   AsyncReadSupported( THIS_ );

    STDMETHOD(Open2)    (THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject);
    STDMETHOD(Seek2)    (THIS_ UINT32 offset, INT32 fromWhere, IHXFileObject* pFileObject);
    STDMETHOD(Close2)   (THIS_ IHXFileObject* pFileObject);
    STDMETHOD(GetLastError2)   ( THIS_  IHXFileObject* pFileObject);
    virtual UINT32  Read2(THIS_  IHXBuffer* pBuffer, IHXFileObject* pFileObject);
    virtual UINT32  Write2(THIS_ void *, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject);

public:  //MDataSink
    TFourCC SinkDataTypeCode( TMediaId aMediaId );
    void  EmptyBufferL( CMMFBuffer* aBuffer, MDataSource* aSupplier, TMediaId aMediaId );
    TBool CanCreateSinkBuffer();
    CMMFBuffer* CreateSinkBufferL( TMediaId aMediaId, TBool& aReference );
    void  ConstructSinkL( const TDesC8& aInitData );
    void  BufferFilledL ( CMMFBuffer* aBuffer );

public: //MAsyncEventHandler
    TInt SendEventToClient( const TMMFEvent &aEvent );


public:
    HX_RESULT Initialize();
    HXBOOL    IsInitialized() const;

protected:
    HX_RESULT AddReaderState( IHXFileObject* pFileObject );
    HX_RESULT RemoveReaderState( IHXFileObject* pFileObject );
    HXBOOL    IsReaderStateAvailable( IHXFileObject* pFileObject ) const;
    CSingleReaderState* GetReaderState( IHXFileObject* pFileObject ) const;
    CSingleReaderState* GetCurrentReaderState() const;
    HX_RESULT SetCurrentReaderState( CSingleReaderState* pReaderState );
    void ReadBufferL( CMMFBuffer* aBuffer, TInt aPosition, MDataSink* aConsumer );  //asychronous call

protected:
    CReadingScheduler*          m_pReadingScheduler;
    CSingleReaderState*         m_pReaderStateHead;
    CSingleReaderState*         m_pCurrentReaderState;
    UINT32                      m_ulNumberOfReader;
    CMMFClip*                   m_pImpl;     // actual data source implementation 
    HXBOOL                      m_bIsInitialized;
    ULONG32                     m_ulRefCount;
    IHXBuffer*                  m_pReadingBuffer;
};

/*******************************************************************************
 * CReadingScheduler
 ********************************************************************************/
class CReadingScheduler
{
public: //(de)constructor
    CReadingScheduler();
    virtual ~CReadingScheduler();

public:
    HX_RESULT Initialize( CMMFClip* pCMMfClip );
    void NotifyReaderManagerIdle( HXBOOL bReaderManagerIsIdle );
    HX_RESULT ProcessCommand( CReaderCommandBase* pCommand );

private:
    CAsynchronousReader*        m_pReader;
    CReaderCommandManager*      m_pCommandManager;
    HXBOOL                      m_bReaderIdle;
};


/*******************************************************************************
 * CAsynchronousMultiReader
 ********************************************************************************/

class CAsynchronousMultiReader
: public IHXMMFDataSource
#ifdef HELIX_FEATURE_S60_PROGDOWN
  ,public IHXDownloadEventObserver
#endif
{
public:  //(de)constructor
    CAsynchronousMultiReader( CMMFClip* pCMMfClip );
    virtual ~CAsynchronousMultiReader();

public:  //IUnknown
    STDMETHOD(QueryInterface)       ( THIS_ REFIID riid, void** ppvObj );
    STDMETHOD_(ULONG32,AddRef)      ( THIS);
    STDMETHOD_(ULONG32,Release)     ( THIS);

public: //IHXMMFDataSource
    STDMETHOD(Open)    ( THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver );
    STDMETHOD(Seek)    ( THIS_ UINT32 offset, INT32 fromWhere );
    STDMETHOD(Stat)    ( THIS_ struct stat *buf );
    STDMETHOD(GetStringAttribute)( THIS_ UINT32 ulAttibute, REF(IHXBuffer*)  pBuffer);
    STDMETHOD(GetAttribute)( THIS_ INT32 ulAttribute, INT32 &ulValue );
    STDMETHOD(Close)   ( THIS_ );
    virtual UINT32  Read(THIS_  void *, ULONG32 size, ULONG32 count);
    virtual UINT32  Write(THIS_ void *, ULONG32 size, ULONG32 count);
    STDMETHOD(GetSize)  (THIS_ UINT32 &ulSize);
    STDMETHOD(GetLastError)   ( THIS_ );
    HXBOOL   AsyncReadSupported( THIS_ );

    STDMETHOD(Open2)    (THIS_ IHXRequest *pRequest, const char *mode, IHXMMFDataSourceObserver* pObserver, IHXFileObject* pFileObject);
    STDMETHOD(Seek2)    (THIS_ UINT32 offset, INT32 fromWhere, IHXFileObject* pFileObject);
    STDMETHOD(Close2)   (THIS_ IHXFileObject* pFileObject);
    STDMETHOD(GetLastError2)   ( THIS_  IHXFileObject* pFileObject);
    virtual UINT32  Read2(THIS_ IHXBuffer* pBuffer, IHXFileObject* pFileObject);
    virtual UINT32  Write2(THIS_ void *, ULONG32 size, ULONG32 count, IHXFileObject* pFileObject);

#ifdef HELIX_FEATURE_S60_PROGDOWN
public: //IHXDownloadEventObserver
    UINT32 IsDownloadComplete        (THIS);
    UINT32 GetDownloadSize           (THIS);
    UINT32 GetUnderflowTimeoutInMillis(THIS);
    STDMETHOD(SetDownloadComplete)  (THIS_ UINT32 downloadComplete);
    STDMETHOD(SetDownloadSize)      (THIS_ UINT32 downloadSize);
    STDMETHOD(SetUnderflowTimeoutInMillis)(THIS_ UINT32 timeout);
#endif

protected:
    HX_RESULT Initialize();

private:  //probihit
    CAsynchronousMultiReader();

protected:
    CReadingScheduler*          m_pReadingScheduler;
    CMMFClip*                   m_pCMMfClip;
    HXBOOL                      m_bIsInitialized;
    ULONG32                     m_ulRefCount;

#ifdef HELIX_FEATURE_S60_PROGDOWN
    UINT32                      m_ulDownloadComplete;
    UINT32                      m_ulDownloadSize;
    UINT32                      m_ulUnderflowTimeoutInMillis;
#endif

};

#endif  //_ASYNCHRONOUSMULTIREADER_H_



From dyek at helixcommunity.org  Mon Dec 10 14:51:28 2007
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Mon Dec 10 14:19:07 2007
Subject: [Common-cvs] include ihxtlogsystem.h,1.11.2.8,1.11.2.9
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv2948/common/include

Modified Files:
      Tag: hxclient_1_5_0_cayenne
	ihxtlogsystem.h 
Log Message:
Added new Unified Logging functional area 4ccs for use in the player project, for hxclientkit and Superbuffer modules.
New 4cc Added:
  CNKT
    Used for general logging in hxclientkit.
  RECS
    Used for general logging in Superbuffer (hxrecordengine) module.

Refer to the following URL for more information.
http://lists.helixcommunity.org/pipermail/common-dev/2007-December/004263.html



Index: ihxtlogsystem.h
===================================================================
RCS file: /cvsroot/common/include/ihxtlogsystem.h,v
retrieving revision 1.11.2.8
retrieving revision 1.11.2.9
diff -u -d -r1.11.2.8 -r1.11.2.9
--- ihxtlogsystem.h	5 Dec 2007 20:27:21 -0000	1.11.2.8
+++ ihxtlogsystem.h	10 Dec 2007 22:51:24 -0000	1.11.2.9
@@ -147,6 +147,7 @@
     HXLOG_AVIX = HX_MAKE4CC('A','V','I','X'), // AVI 
     HXLOG_BAND = HX_MAKE4CC('B','A','N','D'), // Bandwidth manager
     HXLOG_BUFF = HX_MAKE4CC('B','U','F','F'), // Buffer Control
+    HXLOG_CNKT = HX_MAKE4CC('C','N','K','T'), // hxclientkit
     HXLOG_CORE = HX_MAKE4CC('C','O','R','E'), // Core load time
     HXLOG_EVEN = HX_MAKE4CC('E','V','E','N'), // RealEvents
     HXLOG_FSRC = HX_MAKE4CC('F','S','R','C'), // File source
@@ -161,6 +162,7 @@
     HXLOG_PNAX = HX_MAKE4CC('P','N','A','X'), // PNA protocol
     HXLOG_PROT = HX_MAKE4CC('P','R','O','T'), // Protocol generic
     HXLOG_RECO = HX_MAKE4CC('R','E','C','O'), // Reconnect
+    HXLOG_RECS = HX_MAKE4CC('R','E','C','S'), // Record Service And Superbuffer
     HXLOG_RTSP = HX_MAKE4CC('R','T','S','P'), // RTSP protocol
     HXLOG_SITE = HX_MAKE4CC('S','I','T','E'), // Site
     HXLOG_SMIL = HX_MAKE4CC('S','M','I','L'), // SMIL


From dyek at helixcommunity.org  Mon Dec 10 16:02:15 2007
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Mon Dec 10 15:29:52 2007
Subject: [Common-cvs] include ihxtlogsystem.h,1.38,1.39
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv4943

Modified Files:
	ihxtlogsystem.h 
Log Message:
Merging from 150Cay (1.11.2.9).
Added new Unified Logging functional area 4ccs for use in the player project, for hxclientkit and Superbuffer modules.
New 4cc Added:
  CNKT
    Used for general logging in hxclientkit.
  RECS
    Used for general logging in Superbuffer (hxrecordengine) module.

Refer to the following URL for more information.
http://lists.helixcommunity.org/pipermail/common-dev/2007-December/004263.html



Index: ihxtlogsystem.h
===================================================================
RCS file: /cvsroot/common/include/ihxtlogsystem.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- ihxtlogsystem.h	6 Jul 2007 20:43:42 -0000	1.38
+++ ihxtlogsystem.h	11 Dec 2007 00:02:12 -0000	1.39
@@ -150,6 +150,7 @@
     HXLOG_AVIX = HX_MAKE4CC('A','V','I','X'), // AVI 
     HXLOG_BAND = HX_MAKE4CC('B','A','N','D'), // Bandwidth manager
     HXLOG_BUFF = HX_MAKE4CC('B','U','F','F'), // Buffer Control
+    HXLOG_CNKT = HX_MAKE4CC('C','N','K','T'), // hxclientkit
     HXLOG_CORE = HX_MAKE4CC('C','O','R','E'), // Core load time
     HXLOG_EVEN = HX_MAKE4CC('E','V','E','N'), // RealEvents
     HXLOG_FSRC = HX_MAKE4CC('F','S','R','C'), // File source
@@ -164,6 +165,7 @@
     HXLOG_PNAX = HX_MAKE4CC('P','N','A','X'), // PNA protocol
     HXLOG_PROT = HX_MAKE4CC('P','R','O','T'), // Protocol generic
     HXLOG_RECO = HX_MAKE4CC('R','E','C','O'), // Reconnect
+    HXLOG_RECS = HX_MAKE4CC('R','E','C','S'), // Record Service And Superbuffer
     HXLOG_RTSP = HX_MAKE4CC('R','T','S','P'), // RTSP protocol
     HXLOG_SITE = HX_MAKE4CC('S','I','T','E'), // Site
     HXLOG_SMIL = HX_MAKE4CC('S','M','I','L'), // SMIL


From dyek at helixcommunity.org  Mon Dec 10 16:03:35 2007
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Mon Dec 10 15:31:13 2007
Subject: [Common-cvs] include ihxtlogsystem.h,1.38,1.38.2.1
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv6271

Modified Files:
      Tag: hxclient_3_1_0_atlas
	ihxtlogsystem.h 
Log Message:
Merging from 150Cay (1.11.2.9).
Added new Unified Logging functional area 4ccs for use in the player project, for hxclientkit and Superbuffer modules.
New 4cc Added:
  CNKT
    Used for general logging in hxclientkit.
  RECS
    Used for general logging in Superbuffer (hxrecordengine) module.

Refer to the following URL for more information.
http://lists.helixcommunity.org/pipermail/common-dev/2007-December/004263.html



Index: ihxtlogsystem.h
===================================================================
RCS file: /cvsroot/common/include/ihxtlogsystem.h,v
retrieving revision 1.38
retrieving revision 1.38.2.1
diff -u -d -r1.38 -r1.38.2.1
--- ihxtlogsystem.h	6 Jul 2007 20:43:42 -0000	1.38
+++ ihxtlogsystem.h	11 Dec 2007 00:03:33 -0000	1.38.2.1
@@ -150,6 +150,7 @@
     HXLOG_AVIX = HX_MAKE4CC('A','V','I','X'), // AVI 
     HXLOG_BAND = HX_MAKE4CC('B','A','N','D'), // Bandwidth manager
     HXLOG_BUFF = HX_MAKE4CC('B','U','F','F'), // Buffer Control
+    HXLOG_CNKT = HX_MAKE4CC('C','N','K','T'), // hxclientkit
     HXLOG_CORE = HX_MAKE4CC('C','O','R','E'), // Core load time
     HXLOG_EVEN = HX_MAKE4CC('E','V','E','N'), // RealEvents
     HXLOG_FSRC = HX_MAKE4CC('F','S','R','C'), // File source
@@ -164,6 +165,7 @@
     HXLOG_PNAX = HX_MAKE4CC('P','N','A','X'), // PNA protocol
     HXLOG_PROT = HX_MAKE4CC('P','R','O','T'), // Protocol generic
     HXLOG_RECO = HX_MAKE4CC('R','E','C','O'), // Reconnect
+    HXLOG_RECS = HX_MAKE4CC('R','E','C','S'), // Record Service And Superbuffer
     HXLOG_RTSP = HX_MAKE4CC('R','T','S','P'), // RTSP protocol
     HXLOG_SITE = HX_MAKE4CC('S','I','T','E'), // Site
     HXLOG_SMIL = HX_MAKE4CC('S','M','I','L'), // SMIL


From otk at helixcommunity.org  Tue Dec 11 15:05:22 2007
From: otk at helixcommunity.org (Melissa)
Date: Tue Dec 11 14:32:08 2007
Subject: [Common-cvs] new 2007 watches models
Message-ID: 

Hi, Tania,  CrWUquCGsFBf

http://www.zjchemical.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.helixcommunity.org/pipermail/common-cvs/attachments/20071212/bf3d5a13/attachment-0001.html
From ping at helixcommunity.org  Tue Dec 11 15:55:55 2007
From: ping at helixcommunity.org (ping@helixcommunity.org)
Date: Tue Dec 11 15:23:17 2007
Subject: [Common-cvs] netio/pub/platform/posix nettypes.h,1.32,1.32.2.1
Message-ID: 

Update of /cvsroot/common/netio/pub/platform/posix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv15019/pub/platform/posix

Modified Files:
      Tag: hxclient_3_1_0_atlas
	nettypes.h 
Log Message:
Fixed re-definition in VC8 on Vista using MS Windows SDK



Index: nettypes.h
===================================================================
RCS file: /cvsroot/common/netio/pub/platform/posix/nettypes.h,v
retrieving revision 1.32
retrieving revision 1.32.2.1
diff -u -d -r1.32 -r1.32.2.1
--- nettypes.h	6 Jul 2007 20:43:59 -0000	1.32
+++ nettypes.h	11 Dec 2007 23:55:53 -0000	1.32.2.1
@@ -338,8 +338,12 @@
 
 
 int         inet_aton(const char* cp, struct in_addr* inp);
+// inet_ntop and inet_pton are defined in MS Windows SDK for Vista
+// Microsoft SDKs\Windows\v6.0\Include\ws2tcpip.h
+#if (NTDDI_VERSION < NTDDI_LONGHORN)
 const char* inet_ntop(int af, const void* src, char* dst, socklen_t len);
 int         inet_pton(int af, const char* src, void* dst);
+#endif 
 #endif /* defined(_WIN32) */
 
 // Some platforms have strange and/or outdated headers.


From ping at helixcommunity.org  Tue Dec 11 15:58:30 2007
From: ping at helixcommunity.org (ping@helixcommunity.org)
Date: Tue Dec 11 15:25:52 2007
Subject: [Common-cvs] netio/pub/platform/posix nettypes.h,1.32,1.33
Message-ID: 

Update of /cvsroot/common/netio/pub/platform/posix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv17058/pub/platform/posix

Modified Files:
	nettypes.h 
Log Message:
Fixed re-definition in VC8 on Vista with MS Windows SDK



Index: nettypes.h
===================================================================
RCS file: /cvsroot/common/netio/pub/platform/posix/nettypes.h,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- nettypes.h	6 Jul 2007 20:43:59 -0000	1.32
+++ nettypes.h	11 Dec 2007 23:58:27 -0000	1.33
@@ -338,8 +338,12 @@
 
 
 int         inet_aton(const char* cp, struct in_addr* inp);
+// inet_ntop and inet_pton are defined in MS Windows SDK for Vista
+// Microsoft SDKs\Windows\v6.0\Include\ws2tcpip.h
+#if (NTDDI_VERSION < NTDDI_LONGHORN)
 const char* inet_ntop(int af, const void* src, char* dst, socklen_t len);
 int         inet_pton(int af, const char* src, void* dst);
+#endif 
 #endif /* defined(_WIN32) */
 
 // Some platforms have strange and/or outdated headers.


From ping at helixcommunity.org  Wed Dec 12 10:34:06 2007
From: ping at helixcommunity.org (ping@helixcommunity.org)
Date: Wed Dec 12 10:01:16 2007
Subject: [Common-cvs] fileio/platform/win cwinfile.cpp,1.9,1.9.2.1
Message-ID: 

Update of /cvsroot/common/fileio/platform/win
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv13476

Modified Files:
      Tag: hxclient_3_1_0_atlas
	cwinfile.cpp 
Log Message:
Reset mFD to prevent the same file handle from being closed twice.



Index: cwinfile.cpp
===================================================================
RCS file: /cvsroot/common/fileio/platform/win/cwinfile.cpp,v
retrieving revision 1.9
retrieving revision 1.9.2.1
diff -u -d -r1.9 -r1.9.2.1
--- cwinfile.cpp	6 Jul 2007 20:35:17 -0000	1.9
+++ cwinfile.cpp	12 Dec 2007 18:34:03 -0000	1.9.2.1
@@ -227,18 +227,18 @@
 
 HX_RESULT CWinFile::Close(void)
 {
-	// close previous file if necessary
-	if ( mFD >= 0 )
-	{
-		mLastError = HXR_OK;   
-		if ( close( mFD ) < 0 )
-		{
-			mLastError = HXR_INVALID_FILE;
-			return HXR_INVALID_FILE;
-		}
-		return HXR_OK;
-	}
-	return HXR_INVALID_FILE;
+    // close previous file if necessary
+    if ( mFD >= 0 )
+    {
+        mLastError = HXR_OK;   
+        if ( close( mFD ) < 0 )
+        {
+            mLastError = HXR_INVALID_FILE;
+        }
+        mFD = HX_FILE_NOT_OPEN;
+        return mLastError;
+    }
+    return HXR_INVALID_FILE;
 }
 
 


From ping at helixcommunity.org  Wed Dec 12 10:44:38 2007
From: ping at helixcommunity.org (ping@helixcommunity.org)
Date: Wed Dec 12 10:11:49 2007
Subject: [Common-cvs] fileio/platform/win cwinfile.cpp,1.9,1.10
Message-ID: 

Update of /cvsroot/common/fileio/platform/win
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv22884/platform/win

Modified Files:
	cwinfile.cpp 
Log Message:
Reset mFD to prevent the same file handle from being closed twice.



Index: cwinfile.cpp
===================================================================
RCS file: /cvsroot/common/fileio/platform/win/cwinfile.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- cwinfile.cpp	6 Jul 2007 20:35:17 -0000	1.9
+++ cwinfile.cpp	12 Dec 2007 18:44:34 -0000	1.10
@@ -227,18 +227,18 @@
 
 HX_RESULT CWinFile::Close(void)
 {
-	// close previous file if necessary
-	if ( mFD >= 0 )
-	{
-		mLastError = HXR_OK;   
-		if ( close( mFD ) < 0 )
-		{
-			mLastError = HXR_INVALID_FILE;
-			return HXR_INVALID_FILE;
-		}
-		return HXR_OK;
-	}
-	return HXR_INVALID_FILE;
+    // close previous file if necessary
+    if ( mFD >= 0 )
+    {
+        mLastError = HXR_OK;   
+        if ( close( mFD ) < 0 )
+        {
+            mLastError = HXR_INVALID_FILE;
+        }
+        mFD = HX_FILE_NOT_OPEN;
+        return mLastError;
+    }
+    return HXR_INVALID_FILE;
 }
 
 


From admin at helixcommunity.org  Thu Dec 13 11:45:44 2007
From: admin at helixcommunity.org (admin@helixcommunity.org)
Date: Thu Dec 13 11:12:39 2007
Subject: [Common-cvs] CVSROOT loginfo,1.9,1.10
Message-ID: 

Update of /cvsroot/common/CVSROOT
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv4956

Modified Files:
	loginfo 
Log Message:
Rollbacked chgrp -R CVSROOT in loginfo

Index: loginfo
===================================================================
RCS file: /cvsroot/common/CVSROOT/loginfo,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- loginfo	31 Oct 2007 21:02:05 -0000	1.9
+++ loginfo	13 Dec 2007 19:45:42 -0000	1.10
@@ -40,4 +40,3 @@
 
 ALL chgrp helix $CVSROOT/`echo %s | sed 's/^ //g' | sed 's/ /\//g'`,v 2> /dev/null
 ALL chgrp helix $CVSROOT/`echo %s | sed 's/ - New directory//g' | sed 's/^ //g' | sed 's/ /\//g'` 2> /dev/null
-ALL chgrp -R helix $CVSROOT/CVSROOT


From cdunn at helixcommunity.org  Thu Dec 13 13:00:50 2007
From: cdunn at helixcommunity.org (cdunn@helixcommunity.org)
Date: Thu Dec 13 12:27:44 2007
Subject: [Common-cvs] include hxiids.h, 1.132.2.4, 1.132.2.5 ihxcookies.h,
	1.4, 1.4.2.1
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv10606

Modified Files:
      Tag: hxclient_3_1_0_atlas
	hxiids.h ihxcookies.h 
Log Message:
Add IHXCookies3::SyncRMCookies

Index: ihxcookies.h
===================================================================
RCS file: /cvsroot/common/include/ihxcookies.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -d -r1.4 -r1.4.2.1
--- ihxcookies.h	6 Jul 2007 20:43:42 -0000	1.4
+++ ihxcookies.h	13 Dec 2007 21:00:43 -0000	1.4.2.1
@@ -172,4 +172,43 @@
 				 REF(IHXBuffer*)   pCookies) PURE;
 };
 
+/****************************************************************************
+ * 
+ *  Interface:
+ *
+ *	IHXCookies3
+ *
+ *  Purpose:
+ *
+ *	Interface the method SyncRMCookies from HXCookies
+ *
+ *  IID_IHXCookies3
+ *
+ *	{CBECD0D8-8F68-4f07-917C-B972E7FCF530}
+ *
+ */
+DEFINE_GUID(IID_IHXCookies3, 0xcbecd0d8, 0x8f68, 0x4f07, 0x91, 0x7c, 0xb9,
+				    0x72, 0xe7, 0xfc, 0xf5, 0x30);
+#undef  INTERFACE
+#define INTERFACE   IHXCookies3
+
+DECLARE_INTERFACE_(IHXCookies3, IUnknown)
+{
+    /*
+     * IUnknown methods
+     */
+    STDMETHOD(QueryInterface)	(THIS_
+				REFIID riid,
+				void** ppvObj) PURE;
+
+    STDMETHOD_(ULONG32,AddRef)	(THIS) PURE;
+
+    STDMETHOD_(ULONG32,Release)	(THIS) PURE;
+
+    /*
+     * IHXCookies3 methods
+     */
+    STDMETHOD(SyncRMCookies)	(THIS_ HXBOOL bSave) PURE;
+};
+
 #endif /* _IHXCOOKIES_H_ */

Index: hxiids.h
===================================================================
RCS file: /cvsroot/common/include/hxiids.h,v
retrieving revision 1.132.2.4
retrieving revision 1.132.2.5
diff -u -d -r1.132.2.4 -r1.132.2.5
--- hxiids.h	13 Dec 2007 18:50:15 -0000	1.132.2.4
+++ hxiids.h	13 Dec 2007 21:00:43 -0000	1.132.2.5
@@ -1498,13 +1498,16 @@
  *    Interfaces for Plugins:
  *      IHXCookies              - Cookie database management APIs
  *      IHXCookiesHelper        - Cookie output helper APIs
+ *      IHXCookies3	        - Interface for SyncRMCookies
  *
  * Interfaces:
  *    IID_IHXCookies:                           {00003200-0901-11d1-8B06-00A024406D59}
  *    IID_IHXCookiesHelper:                     {00003201-0901-11d1-8B06-00A024406D59}
+ *    IID_IHXCookies3: 				{CBECD0D8-8F68-4f07-917C-B972E7FCF530}
  */
-DEFINE_GUID_ENUM(IID_IHXCookies,                        0x00003200, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
-DEFINE_GUID_ENUM(IID_IHXCookiesHelper,          0x00003201, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXCookies,        0x00003200, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXCookiesHelper,  0x00003201, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXCookies3,	0xcbecd0d8, 0x8f68, 0x4f07, 0x91, 0x7c, 0xb9, 0x72, 0xe7, 0xfc, 0xf5, 0x30)
 
 /*
  *  File: addrpool.h


From cdunn at helixcommunity.org  Thu Dec 13 13:01:38 2007
From: cdunn at helixcommunity.org (cdunn@helixcommunity.org)
Date: Thu Dec 13 12:28:31 2007
Subject: [Common-cvs] include hxiids.h,1.140,1.141 ihxcookies.h,1.4,1.5
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv11790

Modified Files:
	hxiids.h ihxcookies.h 
Log Message:
Add IHXCookies3::SyncRMCookies

Index: ihxcookies.h
===================================================================
RCS file: /cvsroot/common/include/ihxcookies.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- ihxcookies.h	6 Jul 2007 20:43:42 -0000	1.4
+++ ihxcookies.h	13 Dec 2007 21:01:34 -0000	1.5
@@ -172,4 +172,43 @@
 				 REF(IHXBuffer*)   pCookies) PURE;
 };
 
+/****************************************************************************
+ * 
+ *  Interface:
+ *
+ *	IHXCookies3
+ *
+ *  Purpose:
+ *
+ *	Interface the method SyncRMCookies from HXCookies
+ *
+ *  IID_IHXCookies3
+ *
+ *	{CBECD0D8-8F68-4f07-917C-B972E7FCF530}
+ *
+ */
+DEFINE_GUID(IID_IHXCookies3, 0xcbecd0d8, 0x8f68, 0x4f07, 0x91, 0x7c, 0xb9,
+				    0x72, 0xe7, 0xfc, 0xf5, 0x30);
+#undef  INTERFACE
+#define INTERFACE   IHXCookies3
+
+DECLARE_INTERFACE_(IHXCookies3, IUnknown)
+{
+    /*
+     * IUnknown methods
+     */
+    STDMETHOD(QueryInterface)	(THIS_
+				REFIID riid,
+				void** ppvObj) PURE;
+
+    STDMETHOD_(ULONG32,AddRef)	(THIS) PURE;
+
+    STDMETHOD_(ULONG32,Release)	(THIS) PURE;
+
+    /*
+     * IHXCookies3 methods
+     */
+    STDMETHOD(SyncRMCookies)	(THIS_ HXBOOL bSave) PURE;
+};
+
 #endif /* _IHXCOOKIES_H_ */

Index: hxiids.h
===================================================================
RCS file: /cvsroot/common/include/hxiids.h,v
retrieving revision 1.140
retrieving revision 1.141
diff -u -d -r1.140 -r1.141
--- hxiids.h	13 Dec 2007 17:53:53 -0000	1.140
+++ hxiids.h	13 Dec 2007 21:01:34 -0000	1.141
@@ -1497,13 +1497,16 @@
  *    Interfaces for Plugins:
  *      IHXCookies              - Cookie database management APIs
  *      IHXCookiesHelper        - Cookie output helper APIs
+ *      IHXCookies3	        - Interface for SyncRMCookies
  *
  * Interfaces:
  *    IID_IHXCookies:                           {00003200-0901-11d1-8B06-00A024406D59}
  *    IID_IHXCookiesHelper:                     {00003201-0901-11d1-8B06-00A024406D59}
+ *    IID_IHXCookies3: 				{CBECD0D8-8F68-4f07-917C-B972E7FCF530}
  */
-DEFINE_GUID_ENUM(IID_IHXCookies,                        0x00003200, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
-DEFINE_GUID_ENUM(IID_IHXCookiesHelper,          0x00003201, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXCookies,        0x00003200, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXCookiesHelper,  0x00003201, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
+DEFINE_GUID_ENUM(IID_IHXCookies3,	0xcbecd0d8, 0x8f68, 0x4f07, 0x91, 0x7c, 0xb9, 0x72, 0xe7, 0xfc, 0xf5, 0x30)
 
 /*
  *  File: addrpool.h


From cdunn at helixcommunity.org  Thu Dec 13 13:09:31 2007
From: cdunn at helixcommunity.org (cdunn@helixcommunity.org)
Date: Thu Dec 13 12:36:26 2007
Subject: [Common-cvs] util cookies.cpp,1.39,1.39.2.1
Message-ID: 

Update of /cvsroot/common/util
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19877

Modified Files:
      Tag: hxclient_3_1_0_atlas
	cookies.cpp 
Log Message:
Add IHXCookies3, moved SyncRMCookies to new interface.

Index: cookies.cpp
===================================================================
RCS file: /cvsroot/common/util/cookies.cpp,v
retrieving revision 1.39
retrieving revision 1.39.2.1
diff -u -d -r1.39 -r1.39.2.1
--- cookies.cpp	25 Jul 2007 07:29:48 -0000	1.39
+++ cookies.cpp	13 Dec 2007 21:09:28 -0000	1.39.2.1
@@ -180,7 +180,8 @@
     {
 	{ GET_IIDHANDLE(IID_IUnknown), this },
 	{ GET_IIDHANDLE(IID_IHXCookies), (IHXCookies*) this },
-	{ GET_IIDHANDLE(IID_IHXCookies2), (IHXCookies2*) this }
+	{ GET_IIDHANDLE(IID_IHXCookies2), (IHXCookies2*) this },
+	{ GET_IIDHANDLE(IID_IHXCookies3), (IHXCookies3*) this }
     };	
 
     if (QIFind(qiList, QILISTSIZE(qiList), riid, ppvObj) == HXR_OK)
@@ -2051,7 +2052,7 @@
     return hr;
 }
 
-HX_RESULT	
+STDMETHODIMP	
 HXCookies::SyncRMCookies(HXBOOL bSave)
 {
     HX_RESULT	    hr = HXR_OK;


From cdunn at helixcommunity.org  Thu Dec 13 13:09:32 2007
From: cdunn at helixcommunity.org (cdunn@helixcommunity.org)
Date: Thu Dec 13 12:36:26 2007
Subject: [Common-cvs] util/pub cookies.h,1.8,1.8.2.1
Message-ID: 

Update of /cvsroot/common/util/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19877/pub

Modified Files:
      Tag: hxclient_3_1_0_atlas
	cookies.h 
Log Message:
Add IHXCookies3, moved SyncRMCookies to new interface.

Index: cookies.h
===================================================================
RCS file: /cvsroot/common/util/pub/cookies.h,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -u -d -r1.8 -r1.8.2.1
--- cookies.h	6 Jul 2007 20:39:23 -0000	1.8
+++ cookies.h	13 Dec 2007 21:09:29 -0000	1.8.2.1
@@ -88,7 +88,7 @@
     HXBOOL	bMemoryOnly; //wasn't read from disk, but arrived via SetCookies (usually from playing a stream)
 };
 
-class HXCookies : public IHXCookies, public IHXCookies2
+class HXCookies : public IHXCookies, public IHXCookies2, public IHXCookies3
 {
 protected:  
 
@@ -217,6 +217,13 @@
 				 REF(IHXBuffer*)   pCookies,
 				 REF(IHXBuffer*)   pPlayerCookies);
 
+    /************************************************************************
+     *	Method:
+     *	    IHXCookies3::SyncRMCookies
+     *	Purpose:
+     *	    Synchronize RM cookies
+     */
+    STDMETHOD(SyncRMCookies)	(THIS_ HXBOOL bSave);
 
     virtual HX_RESULT	    SecureCookies();
     virtual HX_RESULT	    CheckCookies();
@@ -225,7 +232,6 @@
     void	Close(void);
     void        SetMemoryOnlyFlag(HXBOOL bMemoryOnly) { m_bMemoryOnly = bMemoryOnly; }
     HXBOOL        GetMemoryOnlyFlag() const           { return m_bMemoryOnly;        }
-    HX_RESULT	SyncRMCookies(HXBOOL bSave);
 #ifdef _TEST
     void	DumpCookies();
 #endif // _TEST


From cdunn at helixcommunity.org  Thu Dec 13 13:14:03 2007
From: cdunn at helixcommunity.org (cdunn@helixcommunity.org)
Date: Thu Dec 13 12:40:57 2007
Subject: [Common-cvs] util cookies.cpp,1.39,1.40
Message-ID: 

Update of /cvsroot/common/util
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv24285

Modified Files:
	cookies.cpp 
Log Message:
Add IHXCookies3, moved SyncRMCookies to an interface.

Index: cookies.cpp
===================================================================
RCS file: /cvsroot/common/util/cookies.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- cookies.cpp	25 Jul 2007 07:29:48 -0000	1.39
+++ cookies.cpp	13 Dec 2007 21:14:01 -0000	1.40
@@ -180,7 +180,8 @@
     {
 	{ GET_IIDHANDLE(IID_IUnknown), this },
 	{ GET_IIDHANDLE(IID_IHXCookies), (IHXCookies*) this },
-	{ GET_IIDHANDLE(IID_IHXCookies2), (IHXCookies2*) this }
+	{ GET_IIDHANDLE(IID_IHXCookies2), (IHXCookies2*) this },
+	{ GET_IIDHANDLE(IID_IHXCookies3), (IHXCookies3*) this }
     };	
 
     if (QIFind(qiList, QILISTSIZE(qiList), riid, ppvObj) == HXR_OK)
@@ -2051,7 +2052,7 @@
     return hr;
 }
 
-HX_RESULT	
+STDMETHODIMP	
 HXCookies::SyncRMCookies(HXBOOL bSave)
 {
     HX_RESULT	    hr = HXR_OK;


From cdunn at helixcommunity.org  Thu Dec 13 13:14:04 2007
From: cdunn at helixcommunity.org (cdunn@helixcommunity.org)
Date: Thu Dec 13 12:40:57 2007
Subject: [Common-cvs] util/pub cookies.h,1.8,1.9
Message-ID: 

Update of /cvsroot/common/util/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv24285/pub

Modified Files:
	cookies.h 
Log Message:
Add IHXCookies3, moved SyncRMCookies to an interface.

Index: cookies.h
===================================================================
RCS file: /cvsroot/common/util/pub/cookies.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- cookies.h	6 Jul 2007 20:39:23 -0000	1.8
+++ cookies.h	13 Dec 2007 21:14:01 -0000	1.9
@@ -88,7 +88,7 @@
     HXBOOL	bMemoryOnly; //wasn't read from disk, but arrived via SetCookies (usually from playing a stream)
 };
 
-class HXCookies : public IHXCookies, public IHXCookies2
+class HXCookies : public IHXCookies, public IHXCookies2, public IHXCookies3
 {
 protected:  
 
@@ -217,6 +217,13 @@
 				 REF(IHXBuffer*)   pCookies,
 				 REF(IHXBuffer*)   pPlayerCookies);
 
+    /************************************************************************
+     *	Method:
+     *	    IHXCookies3::SyncRMCookies
+     *	Purpose:
+     *	    Synchronize RM cookies
+     */
+    STDMETHOD(SyncRMCookies)	(THIS_ HXBOOL bSave);
 
     virtual HX_RESULT	    SecureCookies();
     virtual HX_RESULT	    CheckCookies();
@@ -225,7 +232,6 @@
     void	Close(void);
     void        SetMemoryOnlyFlag(HXBOOL bMemoryOnly) { m_bMemoryOnly = bMemoryOnly; }
     HXBOOL        GetMemoryOnlyFlag() const           { return m_bMemoryOnly;        }
-    HX_RESULT	SyncRMCookies(HXBOOL bSave);
 #ifdef _TEST
     void	DumpCookies();
 #endif // _TEST


From kliu at helixcommunity.org  Fri Dec 14 13:49:58 2007
From: kliu at helixcommunity.org (kliu@helixcommunity.org)
Date: Fri Dec 14 13:16:37 2007
Subject: [Common-cvs] CVSROOT avail,1.151,1.152
Message-ID: 

Update of /cvsroot/common/CVSROOT
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv6416/CVSROOT

Modified Files:
	avail 
Log Message:
granting andrew_kv write access for the common project

Index: avail
===================================================================
RCS file: /cvsroot/common/CVSROOT/avail,v
retrieving revision 1.151
retrieving revision 1.152
diff -u -d -r1.151 -r1.152
--- avail	19 Nov 2007 21:55:31 -0000	1.151
+++ avail	14 Dec 2007 21:49:55 -0000	1.152
@@ -1,4 +1,5 @@
 unavail
+avail|andrew_kv
 avail|jeyarengasamy
 avail|sachinkundu
 avail|vkathuria


From lijunreal at helixcommunity.org  Fri Dec 14 23:02:02 2007
From: lijunreal at helixcommunity.org (lijunreal@helixcommunity.org)
Date: Fri Dec 14 22:28:35 2007
Subject: [Common-cvs] runtime hlxosstr.cpp,1.25,1.25.2.1
Message-ID: 

Update of /cvsroot/common/runtime
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv20809

Modified Files:
      Tag: hxclient_3_1_0_atlas
	hlxosstr.cpp 
Log Message:
Provide Chinese characters support on wm50 helixplayer. It may also take effect to other multi-byte characters, but only Chinese characters is tested.

Index: hlxosstr.cpp
===================================================================
RCS file: /cvsroot/common/runtime/hlxosstr.cpp,v
retrieving revision 1.25
retrieving revision 1.25.2.1
diff -u -d -r1.25 -r1.25.2.1
--- hlxosstr.cpp	1 Aug 2007 19:18:45 -0000	1.25
+++ hlxosstr.cpp	15 Dec 2007 07:01:59 -0000	1.25.2.1
@@ -56,7 +56,7 @@
 #  if !defined(CP_UTF8)
 #     define CP_UTF8 CP_ACP
 #  else //!CP_UTF8
-#     if defined(_X86_) && (CP_UTF8==65001)
+#     if (defined(_X86_) || (WINVER >= 0x500)) && (CP_UTF8==65001)
 #       undef CP_UTF8
 #       define CP_UTF8 CP_ACP
 #     endif //_X86_ && (CP_UTF8==65001)


From lijunreal at helixcommunity.org  Fri Dec 14 23:14:36 2007
From: lijunreal at helixcommunity.org (lijunreal@helixcommunity.org)
Date: Fri Dec 14 22:41:09 2007
Subject: [Common-cvs] runtime hlxosstr.cpp,1.26,1.27
Message-ID: 

Update of /cvsroot/common/runtime
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv31061

Modified Files:
	hlxosstr.cpp 
Log Message:
Provide Chinese characters support on wm50 helixplayer. It may also take effect to other multi-byte characters, but only Chinese characters is tested.

Index: hlxosstr.cpp
===================================================================
RCS file: /cvsroot/common/runtime/hlxosstr.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- hlxosstr.cpp	5 Nov 2007 21:27:28 -0000	1.26
+++ hlxosstr.cpp	15 Dec 2007 07:14:33 -0000	1.27
@@ -538,7 +538,7 @@
 #  if !defined(CP_UTF8)
 #     define CP_UTF8 CP_ACP
 #  else //!CP_UTF8
-#     if defined(_X86_) && (CP_UTF8==65001)
+#     if (defined(_X86_) || (WINVER >= 0x500)) && (CP_UTF8==65001)
 #       undef CP_UTF8
 #       define CP_UTF8 CP_ACP
 #     endif //_X86_ && (CP_UTF8==65001)


From lijunreal at helixcommunity.org  Fri Dec 14 23:17:22 2007
From: lijunreal at helixcommunity.org (lijunreal@helixcommunity.org)
Date: Fri Dec 14 22:43:55 2007
Subject: [Common-cvs] runtime hlxosstr.cpp,1.18.2.5,1.18.2.6
Message-ID: 

Update of /cvsroot/common/runtime
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv967

Modified Files:
      Tag: hxclient_1_5_0_cayenne
	hlxosstr.cpp 
Log Message:
Provide Chinese characters support on wm50 helixplayer. It may also take effect to other multi-byte characters, but only Chinese characters is tested.

Index: hlxosstr.cpp
===================================================================
RCS file: /cvsroot/common/runtime/hlxosstr.cpp,v
retrieving revision 1.18.2.5
retrieving revision 1.18.2.6
diff -u -d -r1.18.2.5 -r1.18.2.6
--- hlxosstr.cpp	1 Aug 2007 19:19:43 -0000	1.18.2.5
+++ hlxosstr.cpp	15 Dec 2007 07:17:20 -0000	1.18.2.6
@@ -56,7 +56,7 @@
 #  if !defined(CP_UTF8)
 #     define CP_UTF8 (unsigned)CP_ACP
 #  else //!CP_UTF8
-#     if defined(_X86_) && (CP_UTF8==65001)
+#     if (defined(_X86_) || (WINVER >= 0x500)) && (CP_UTF8==65001)
 #       undef CP_UTF8
 #       define CP_UTF8 CP_ACP
 #     endif //_X86_ && (CP_UTF8==65001)


From dsingh at helixcommunity.org  Tue Dec 18 03:52:29 2007
From: dsingh at helixcommunity.org (dsingh@helixcommunity.org)
Date: Tue Dec 18 03:18:15 2007
Subject: [Common-cvs] include hxqossig.h,1.25,1.25.8.1
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv2862

Modified Files:
      Tag: SERVER_12
	hxqossig.h 
Log Message:
Synopsis
========
Addition of SlowdownParamsSignal to control MDP client buffer usage for FCS.

Branch: SERVER_12_RN, HEAD.
Suggested Reviewer: Jamie Gordon, Nitin , Yadnesh.

Description
===========
A new signal HX_QOS_SIGNAL_SLOWDOWN_PARAMS is added to reduce the MDP client buffer usage to make switch to happen quickly when FCS
is used with MDP. Checkin of this CR is depending on MDP shim changes made by Raj. After Raj's checkin this thing needs to be tested again.   

Files Affected
==============
common/hxqossig.h
server-restricted/qos/session/qos_sess_pktqueue.cpp
server/engine/session/clientsession.cpp

Testing Performed
=================

Unit Tests:
- None

Integration Tests:
- Tested without FCS url with MDP. The signal is captured properly. Also the signal is sent from appropriate place as discussed with
  Nitin and Yadnesh.

Leak Tests:
- None.

Performance Tests:
- None

Platforms Tested: win32-i386-vc7, linux-rhel4-i686.
Build verified: win32-i386-vc7, linux-rhel4-i686.

QA Hints
===============
- None

Regards
-Dalvinder





Index: hxqossig.h
===================================================================
RCS file: /cvsroot/common/include/hxqossig.h,v
retrieving revision 1.25
retrieving revision 1.25.8.1
diff -u -d -r1.25 -r1.25.8.1
--- hxqossig.h	14 Sep 2007 12:39:39 -0000	1.25
+++ hxqossig.h	18 Dec 2007 11:52:26 -0000	1.25.8.1
@@ -124,6 +124,7 @@
     , HX_QOS_SIGNAL_RTCP_NADU         
     , HX_QOS_SIGNAL_FEEDBACK_TIMEOUT  
     , HX_QOS_SIGNAL_WINDOWED_RECEIVE_RATE    
+    , HX_QOS_SIGNAL_SLOWDOWN_PARAMS
 
     /* Common Profile Signals */
     , HX_QOS_SIGNAL_RDT_METRICS              
@@ -161,6 +162,13 @@
     float  m_fWindowedReceiveRate;  /* bps */
 };
 
+typedef struct _SlowdownParamsSignalData
+{
+    UINT32 ulMaxAdvance;
+    UINT32 ulSlowdownModeExit;
+
+} SlowdownParamsSignalData; 
+
 typedef struct _LinkCharParams LinkCharSignalData;
 typedef struct _StreamAdaptationParams StreamAdaptSignalData;
 


From dsingh at helixcommunity.org  Tue Dec 18 04:08:02 2007
From: dsingh at helixcommunity.org (dsingh@helixcommunity.org)
Date: Tue Dec 18 03:33:53 2007
Subject: [Common-cvs] include hxqossig.h,1.25,1.26
Message-ID: 

Update of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19529

Modified Files:
	hxqossig.h 
Log Message:
Synopsis
========
Addition of SlowdownParamsSignal to control MDP client buffer usage for FCS.

Branch: SERVER_12_RN, HEAD.
Suggested Reviewer: Jamie Gordon, Nitin , Yadnesh.

Description
===========
A new signal HX_QOS_SIGNAL_SLOWDOWN_PARAMS is added to reduce the MDP client buffer usage to make switch to happen quickly when FCS
is used with MDP. Checkin of this CR is depending on MDP shim changes made by Raj. After Raj's checkin this thing needs to be tested again.   

Files Affected
==============
common/hxqossig.h
server-restricted/qos/session/qos_sess_pktqueue.cpp
server/engine/session/clientsession.cpp

Testing Performed
=================

Unit Tests:
- None

Integration Tests:
- Tested without FCS url with MDP. The signal is captured properly. Also the signal is sent from appropriate place as discussed with
  Nitin and Yadnesh.

Leak Tests:
- None.

Performance Tests:
- None

Platforms Tested: win32-i386-vc7.
Build verified: win32-i386-vc7, linux-rhel4-i686.

QA Hints
===============
- None

Regards
-Dalvinder





Index: hxqossig.h
===================================================================
RCS file: /cvsroot/common/include/hxqossig.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- hxqossig.h	14 Sep 2007 12:39:39 -0000	1.25
+++ hxqossig.h	18 Dec 2007 12:07:59 -0000	1.26
@@ -124,6 +124,7 @@
     , HX_QOS_SIGNAL_RTCP_NADU         
     , HX_QOS_SIGNAL_FEEDBACK_TIMEOUT  
     , HX_QOS_SIGNAL_WINDOWED_RECEIVE_RATE    
+    , HX_QOS_SIGNAL_SLOWDOWN_PARAMS
 
     /* Common Profile Signals */
     , HX_QOS_SIGNAL_RDT_METRICS              
@@ -161,6 +162,13 @@
     float  m_fWindowedReceiveRate;  /* bps */
 };
 
+typedef struct _SlowdownParamsSignalData
+{
+    UINT32 ulMaxAdvance;
+    UINT32 ulSlowdownModeExit;
+
+} SlowdownParamsSignalData; 
+
 typedef struct _LinkCharParams LinkCharSignalData;
 typedef struct _StreamAdaptationParams StreamAdaptSignalData;
 


From stanb at helixcommunity.org  Thu Dec 20 17:08:10 2007
From: stanb at helixcommunity.org (stanb@helixcommunity.org)
Date: Thu Dec 20 16:33:17 2007
Subject: [Common-cvs] util hxurlutil.cpp,1.4.2.1,1.4.2.1.54.1
Message-ID: 

Update of /cvsroot/common/util
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv12124/common/util

Modified Files:
      Tag: hxclient_2_0_4_cayenne
	hxurlutil.cpp 
Log Message:
Fixed parsing of url options. (PR# 208630)


Index: hxurlutil.cpp
===================================================================
RCS file: /cvsroot/common/util/hxurlutil.cpp,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.1.54.1
diff -u -d -r1.4.2.1 -r1.4.2.1.54.1
--- hxurlutil.cpp	21 Jun 2005 17:50:48 -0000	1.4.2.1
+++ hxurlutil.cpp	21 Dec 2007 01:08:07 -0000	1.4.2.1.54.1
@@ -109,25 +109,6 @@
 }
 
 
-static void ScanToken(const char*& pData, char term, CHXString& token /*out*/)
-{
-    HX_ASSERT(pData);
-
-    const char* pEnd = ::HXFindChar(pData, term);
-    if(!pEnd)
-    {
-        // end is null term
-        pEnd = pData + strlen(pData);
-    }
-
-    HX_ASSERT(pEnd >= pData);
-    token = CHXString(pData, pEnd - pData);
-    token.TrimLeft();
-    token.TrimRight();
-
-    pData = pEnd;
-   
-}
 //XXXLCM move
 inline
 bool IsNumber(const char* pszValue)
@@ -156,70 +137,43 @@
     }
 
     // look for ="" or =
-
-    const char* pBegin = pszEscapedQuery;
-    const char* pEnd = pszEscapedQuery + strlen(pszEscapedQuery);
-    
-    while(pBegin != pEnd)
+    CHXString strEscapedQuery = pszEscapedQuery;
+    UINT32 nNumOptions = strEscapedQuery.CountFields('&');
+    for(UINT32 nIndex = 1; nIndex <= nNumOptions; nIndex++)
     {
-        
-        //
-        // key
-        //
-        CHXString key;
-        ScanToken(pBegin, '=', key);
-        if(*pBegin != '=')
-        {
+	CHXString strOption = strEscapedQuery.NthField('&', nIndex);
+	INT32 nPos = strOption.Find('=');
+	if(nPos == -1)
+	{
             // error: expected key termination '='
             hr = HXR_FAIL;
             break;
-        }
-
-        // set begin to position past '='
-        ++pBegin;
-
-        // skip space
-        while(*pBegin == ' ')
-        {
-            ++pBegin;
-        }
-
-        // 
-        // value
-        //
-        CHXString value;
+	}
 
-        bool valueIsQuoted = (*pBegin == '"');
-        if(valueIsQuoted)
-        {
-            //"value"
-            ++pBegin;
-            ScanToken(pBegin, '"', value);
-            if(*pBegin != '"')
-            {
-                // error: expected closing quote
-                hr = HXR_FAIL;
-                break;
-            }
+	CHXString key = strOption.Left(nPos);
+	key.TrimRight();
+	key.TrimLeft();
 
-            // advance to end of value delimiter '&' or EOS
-            pBegin = ::HXFindChar(pBegin, '&');
-        }
-        else
-        {
-            ScanToken(pBegin, '&', value);
-        }
+        CHXString value = strOption.Mid(nPos + 1);
+	value.TrimRight();
+	value.TrimLeft();
 
-        if(*pBegin == '&')
-        {
-            ++pBegin;
-        }
-        
         // escape possibly URL-encoded query string values
         key = HXEscapeUtil::UnEscape(key);
         value = HXEscapeUtil::UnEscape(value);
 
-        // add key value to collection
+	HXBOOL valueIsQuoted = FALSE;
+	// remove surrounding ""
+	UINT32 nValueLength = value.GetLength();
+	if(nValueLength >= 2 && value.GetAt(0) == '"' && value.GetAt(nValueLength - 1) == '"')
+	{
+	    valueIsQuoted = TRUE;
+	    value = value.Mid(1, nValueLength - 2);
+	    value.TrimRight();
+	    value.TrimLeft();
+	}
+
+	// add key value to collection
         if (!key.CompareNoCase("Start")
 	    || !key.CompareNoCase("End")
 	    || !key.CompareNoCase("Delay")


From lijunreal at helixcommunity.org  Thu Dec 20 17:13:22 2007
From: lijunreal at helixcommunity.org (lijunreal@helixcommunity.org)
Date: Thu Dec 20 16:38:33 2007
Subject: [Common-cvs] build/BIF helix.bif,1.656,1.657
Message-ID: 

Update of /cvsroot/common/build/BIF
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv16763

Modified Files:
	helix.bif 
Log Message:
adding h264 codec in dependlist of wince_wm50_play so as to provide support for h264.

Index: helix.bif
===================================================================
RCS file: /cvsroot/common/build/BIF/helix.bif,v
retrieving revision 1.656
retrieving revision 1.657
diff -u -d -r1.656 -r1.657
--- helix.bif	13 Dec 2007 18:18:30 -0000	1.656
+++ helix.bif	21 Dec 2007 01:13:19 -0000	1.657
@@ -8932,7 +8932,9 @@
 	        datatype_mp3_fileformat
 	        datatype_mp3_renderer
 
-			
+            
+            datatype_h264_codec_decoder
+
             
             datatype_group_video
 	    


From stanb at helixcommunity.org  Thu Dec 20 17:13:30 2007
From: stanb at helixcommunity.org (stanb@helixcommunity.org)
Date: Thu Dec 20 16:38:37 2007
Subject: [Common-cvs] util hxurlutil.cpp,1.7,1.8
Message-ID: 

Update of /cvsroot/common/util
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv17087

Modified Files:
	hxurlutil.cpp 
Log Message:
Fixed parsing of url options. (PR# 208630)


Index: hxurlutil.cpp
===================================================================
RCS file: /cvsroot/common/util/hxurlutil.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- hxurlutil.cpp	27 Nov 2006 17:37:48 -0000	1.7
+++ hxurlutil.cpp	21 Dec 2007 01:13:28 -0000	1.8
@@ -112,25 +112,6 @@
 }
 
 
-static void ScanToken(const char*& pData, char term, CHXString& token /*out*/)
-{
-    HX_ASSERT(pData);
-
-    const char* pEnd = ::HXFindChar(pData, term);
-    if(!pEnd)
-    {
-        // end is null term
-        pEnd = pData + strlen(pData);
-    }
-
-    HX_ASSERT(pEnd >= pData);
-    token = CHXString(pData, pEnd - pData);
-    token.TrimLeft();
-    token.TrimRight();
-
-    pData = pEnd;
-   
-}
 //XXXLCM move
 inline
 bool IsNumber(const char* pszValue)
@@ -160,69 +141,43 @@
 
     // look for ="" or =
 
-    const char* pBegin = pszEscapedQuery;
-    const char* pEnd = pszEscapedQuery + strlen(pszEscapedQuery);
-    
-    while(pBegin != pEnd)
+    CHXString strEscapedQuery = pszEscapedQuery;
+    UINT32 nNumOptions = strEscapedQuery.CountFields('&');
+    for(UINT32 nIndex = 1; nIndex <= nNumOptions; nIndex++)
     {
-        
-        //
-        // key
-        //
-        CHXString key;
-        ScanToken(pBegin, '=', key);
-        if(*pBegin != '=')
-        {
+	CHXString strOption = strEscapedQuery.NthField('&', nIndex);
+	INT32 nPos = strOption.Find('=');
+	if(nPos == -1)
+	{
             // error: expected key termination '='
             hr = HXR_FAIL;
             break;
-        }
-
-        // set begin to position past '='
-        ++pBegin;
-
-        // skip space
-        while(*pBegin == ' ')
-        {
-            ++pBegin;
-        }
-
-        // 
-        // value
-        //
-        CHXString value;
+	}
 
-        bool valueIsQuoted = (*pBegin == '"');
-        if(valueIsQuoted)
-        {
-            //"value"
-            ++pBegin;
-            ScanToken(pBegin, '"', value);
-            if(*pBegin != '"')
-            {
-                // error: expected closing quote
-                hr = HXR_FAIL;
-                break;
-            }
+	CHXString key = strOption.Left(nPos);
+	key.TrimRight();
+	key.TrimLeft();
 
-            // advance to end of value delimiter '&' or EOS
-            pBegin = ::HXFindChar(pBegin, '&');
-        }
-        else
-        {
-            ScanToken(pBegin, '&', value);
-        }
+        CHXString value = strOption.Mid(nPos + 1);
+	value.TrimRight();
+	value.TrimLeft();
 
-        if(*pBegin == '&')
-        {
-            ++pBegin;
-        }
-        
         // escape possibly URL-encoded query string values
         key = HXEscapeUtil::UnEscape(key);
         value = HXEscapeUtil::UnEscape(value);
 
-        // add key value to collection
+	HXBOOL valueIsQuoted = FALSE;
+	// remove surrounding ""
+	UINT32 nValueLength = value.GetLength();
+	if(nValueLength >= 2 && value.GetAt(0) == '"' && value.GetAt(nValueLength - 1) == '"')
+	{
+	    valueIsQuoted = TRUE;
+	    value = value.Mid(1, nValueLength - 2);
+	    value.TrimRight();
+	    value.TrimLeft();
+	}
+
+	// add key value to collection
         if (!key.CompareNoCase("Start")
 	    || !key.CompareNoCase("End")
 	    || !key.CompareNoCase("Delay")


From stanb at helixcommunity.org  Thu Dec 20 17:24:39 2007
From: stanb at helixcommunity.org (stanb@helixcommunity.org)
Date: Thu Dec 20 16:49:46 2007
Subject: [Common-cvs] util hxurlutil.cpp,1.7,1.7.8.1
Message-ID: 

Update of /cvsroot/common/util
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv26658

Modified Files:
      Tag: hxclient_3_1_0_atlas
	hxurlutil.cpp 
Log Message:
Fixed parsing of url options. (PR# 208630)


Index: hxurlutil.cpp
===================================================================
RCS file: /cvsroot/common/util/hxurlutil.cpp,v
retrieving revision 1.7
retrieving revision 1.7.8.1
diff -u -d -r1.7 -r1.7.8.1
--- hxurlutil.cpp	27 Nov 2006 17:37:48 -0000	1.7
+++ hxurlutil.cpp	21 Dec 2007 01:24:03 -0000	1.7.8.1
@@ -112,25 +112,6 @@
 }
 
 
-static void ScanToken(const char*& pData, char term, CHXString& token /*out*/)
-{
-    HX_ASSERT(pData);
-
-    const char* pEnd = ::HXFindChar(pData, term);
-    if(!pEnd)
-    {
-        // end is null term
-        pEnd = pData + strlen(pData);
-    }
-
-    HX_ASSERT(pEnd >= pData);
-    token = CHXString(pData, pEnd - pData);
-    token.TrimLeft();
-    token.TrimRight();
-
-    pData = pEnd;
-   
-}
 //XXXLCM move
 inline
 bool IsNumber(const char* pszValue)
@@ -159,69 +140,42 @@
     }
 
     // look for ="" or =
-
-    const char* pBegin = pszEscapedQuery;
-    const char* pEnd = pszEscapedQuery + strlen(pszEscapedQuery);
-    
-    while(pBegin != pEnd)
+    CHXString strEscapedQuery = pszEscapedQuery;
+    UINT32 nNumOptions = strEscapedQuery.CountFields('&');
+    for(UINT32 nIndex = 1; nIndex <= nNumOptions; nIndex++)
     {
-        
-        //
-        // key
-        //
-        CHXString key;
-        ScanToken(pBegin, '=', key);
-        if(*pBegin != '=')
-        {
+	CHXString strOption = strEscapedQuery.NthField('&', nIndex);
+	INT32 nPos = strOption.Find('=');
+	if(nPos == -1)
+	{
             // error: expected key termination '='
             hr = HXR_FAIL;
             break;
-        }
-
-        // set begin to position past '='
-        ++pBegin;
-
-        // skip space
-        while(*pBegin == ' ')
-        {
-            ++pBegin;
-        }
-
-        // 
-        // value
-        //
-        CHXString value;
+	}
 
-        bool valueIsQuoted = (*pBegin == '"');
-        if(valueIsQuoted)
-        {
-            //"value"
-            ++pBegin;
-            ScanToken(pBegin, '"', value);
-            if(*pBegin != '"')
-            {
-                // error: expected closing quote
-                hr = HXR_FAIL;
-                break;
-            }
+	CHXString key = strOption.Left(nPos);
+	key.TrimRight();
+	key.TrimLeft();
 
-            // advance to end of value delimiter '&' or EOS
-            pBegin = ::HXFindChar(pBegin, '&');
-        }
-        else
-        {
-            ScanToken(pBegin, '&', value);
-        }
+        CHXString value = strOption.Mid(nPos + 1);
+	value.TrimRight();
+	value.TrimLeft();
 
-        if(*pBegin == '&')
-        {
-            ++pBegin;
-        }
-        
         // escape possibly URL-encoded query string values
         key = HXEscapeUtil::UnEscape(key);
         value = HXEscapeUtil::UnEscape(value);
 
+	HXBOOL valueIsQuoted = FALSE;
+	// remove surrounding ""
+	UINT32 nValueLength = value.GetLength();
+	if(nValueLength >= 2 && value.GetAt(0) == '"' && value.GetAt(nValueLength - 1) == '"')
+	{
+	    valueIsQuoted = TRUE;
+	    value = value.Mid(1, nValueLength - 2);
+	    value.TrimRight();
+	    value.TrimLeft();
+	}
+
         // add key value to collection
         if (!key.CompareNoCase("Start")
 	    || !key.CompareNoCase("End")


From stanb at helixcommunity.org  Thu Dec 20 17:32:54 2007
From: stanb at helixcommunity.org (stanb@helixcommunity.org)
Date: Thu Dec 20 16:58:01 2007
Subject: [Common-cvs] util hxurlutil.cpp,1.4.2.1,1.4.2.2
Message-ID: 

Update of /cvsroot/common/util
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv2005

Modified Files:
      Tag: hxclient_1_5_0_cayenne
	hxurlutil.cpp 
Log Message:
Fixed parsing of url options. (PR# 208630)


Index: hxurlutil.cpp
===================================================================
RCS file: /cvsroot/common/util/hxurlutil.cpp,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -u -d -r1.4.2.1 -r1.4.2.2
--- hxurlutil.cpp	21 Jun 2005 17:50:48 -0000	1.4.2.1
+++ hxurlutil.cpp	21 Dec 2007 01:32:52 -0000	1.4.2.2
@@ -109,25 +109,6 @@
 }
 
 
-static void ScanToken(const char*& pData, char term, CHXString& token /*out*/)
-{
-    HX_ASSERT(pData);
-
-    const char* pEnd = ::HXFindChar(pData, term);
-    if(!pEnd)
-    {
-        // end is null term
-        pEnd = pData + strlen(pData);
-    }
-
-    HX_ASSERT(pEnd >= pData);
-    token = CHXString(pData, pEnd - pData);
-    token.TrimLeft();
-    token.TrimRight();
-
-    pData = pEnd;
-   
-}
 //XXXLCM move
 inline
 bool IsNumber(const char* pszValue)
@@ -156,69 +137,42 @@
     }
 
     // look for ="" or =
-
-    const char* pBegin = pszEscapedQuery;
-    const char* pEnd = pszEscapedQuery + strlen(pszEscapedQuery);
-    
-    while(pBegin != pEnd)
+    CHXString strEscapedQuery = pszEscapedQuery;
+    UINT32 nNumOptions = strEscapedQuery.CountFields('&');
+    for(UINT32 nIndex = 1; nIndex <= nNumOptions; nIndex++)
     {
-        
-        //
-        // key
-        //
-        CHXString key;
-        ScanToken(pBegin, '=', key);
-        if(*pBegin != '=')
-        {
+	CHXString strOption = strEscapedQuery.NthField('&', nIndex);
+	INT32 nPos = strOption.Find('=');
+	if(nPos == -1)
+	{
             // error: expected key termination '='
             hr = HXR_FAIL;
             break;
-        }
-
-        // set begin to position past '='
-        ++pBegin;
-
-        // skip space
-        while(*pBegin == ' ')
-        {
-            ++pBegin;
-        }
-
-        // 
-        // value
-        //
-        CHXString value;
+	}
 
-        bool valueIsQuoted = (*pBegin == '"');
-        if(valueIsQuoted)
-        {
-            //"value"
-            ++pBegin;
-            ScanToken(pBegin, '"', value);
-            if(*pBegin != '"')
-            {
-                // error: expected closing quote
-                hr = HXR_FAIL;
-                break;
-            }
+	CHXString key = strOption.Left(nPos);
+	key.TrimRight();
+	key.TrimLeft();
 
-            // advance to end of value delimiter '&' or EOS
-            pBegin = ::HXFindChar(pBegin, '&');
-        }
-        else
-        {
-            ScanToken(pBegin, '&', value);
-        }
+        CHXString value = strOption.Mid(nPos + 1);
+	value.TrimRight();
+	value.TrimLeft();
 
-        if(*pBegin == '&')
-        {
-            ++pBegin;
-        }
-        
         // escape possibly URL-encoded query string values
         key = HXEscapeUtil::UnEscape(key);
         value = HXEscapeUtil::UnEscape(value);
 
+	HXBOOL valueIsQuoted = FALSE;
+	// remove surrounding ""
+	UINT32 nValueLength = value.GetLength();
+	if(nValueLength >= 2 && value.GetAt(0) == '"' && value.GetAt(nValueLength - 1) == '"')
+	{
+	    valueIsQuoted = TRUE;
+	    value = value.Mid(1, nValueLength - 2);
+	    value.TrimRight();
+	    value.TrimLeft();
+	}
+
         // add key value to collection
         if (!key.CompareNoCase("Start")
 	    || !key.CompareNoCase("End")


From stanb at helixcommunity.org  Fri Dec 28 12:18:39 2007
From: stanb at helixcommunity.org (stanb@helixcommunity.org)
Date: Fri Dec 28 11:41:49 2007
Subject: [Common-cvs] util rlstate.cpp,1.6,1.6.110.1
Message-ID: 

Update of /cvsroot/common/util
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv11510

Modified Files:
      Tag: hxclient_2_0_4_cayenne
	rlstate.cpp 
Log Message:
Security vulnerability fix - heap corruption in case number of rule 
separator characters is biger then supposed to be. (PR# 208445)


Index: rlstate.cpp
===================================================================
RCS file: /cvsroot/common/util/rlstate.cpp,v
retrieving revision 1.6
retrieving revision 1.6.110.1
diff -u -d -r1.6 -r1.6.110.1
--- rlstate.cpp	9 Jul 2004 18:23:51 -0000	1.6
+++ rlstate.cpp	28 Dec 2007 20:18:24 -0000	1.6.110.1
@@ -154,7 +154,7 @@
     char* pOffset = pRuleBook;
     UINT16 idxCurrentRule = 0;
 
-    while(*pOffset != '\0' && ((UINT16)(pOffset - pRuleBook) < usBookSize))
+    while(*pOffset != '\0' && ((UINT16)(pOffset - pRuleBook) < usBookSize) && idxCurrentRule < num_rules)
     {
 	while(*pOffset != ';')
 	{


From mkeax at helixcommunity.org  Sat Dec 29 16:03:37 2007
From: mkeax at helixcommunity.org (Marcia)
Date: Sat Dec 29 10:28:07 2007
Subject: [Common-cvs] sinclair less transmute
Message-ID: <40b701c84a34$5f2d2c90$0b09f1d8@helixcommunity.org>

Searching for Christmas gift?
Try this replica.
http://theserxmax.net
Christmas discounts and free shipping program!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.helixcommunity.org/pipermail/common-cvs/attachments/20071229/5864dfce/attachment.html
 

Site Map   |   Terms of Use   |   Privacy Policy   |   Contact Us

Copyright © 1995-2007 RealNetworks, Inc. All rights reserved. RealNetworks and Helix are trademarks of RealNetworks.
All other trademarks or registered trademarks are the property of their respective holders.