accessoryservices/pluggeddisplay/edidparser/src/edidparserbase.cpp
changeset 41 c87e5f80c17d
parent 0 4e1aa6a622a0
--- a/accessoryservices/pluggeddisplay/edidparser/src/edidparserbase.cpp	Fri Jun 11 14:56:08 2010 +0300
+++ b/accessoryservices/pluggeddisplay/edidparser/src/edidparserbase.cpp	Thu Jul 01 11:20:10 2010 +0300
@@ -52,8 +52,10 @@
 
     // Make a copy of base EDID data
     Mem::Copy( &iBaseEdidData, rawPtr.Ptr(), KEdidParserSizeOfEdidBlock );
-    
-    TRACE_EDID_DATA( *this );
+
+	iRawdataLength = aBinaryData.Length();
+	
+    //TRACE_EDID_DATA( *this );
     }
 
 // ---------------------------------------------------------------------------
@@ -761,6 +763,51 @@
     return parser;
     }
 
+EXPORT_C void CEdidParserBase::UpdateRawDataL( const TDesC8& aBinaryData )
+	{
+	FUNC_LOG;
+
+	if ( iRawData )
+		{
+		iRawData = iRawData->ReAllocL( iRawdataLength + aBinaryData.Length() );
+		
+		TPtr8 rawPtr = iRawData->Des();
+		rawPtr.Append( aBinaryData );		
+		}
+	else
+		{
+	    iRawData = HBufC8::NewL( aBinaryData.Length() );
+	    TPtr8 rawPtr = iRawData->Des();
+	    rawPtr.Copy( aBinaryData );
+		}	
+
+	iRawdataLength = iRawdataLength + aBinaryData.Length();
+	}
+
+EXPORT_C void CEdidParserBase::UpdateCea861ExtensionL( TInt aNumber, CCea861EdidParser* aParser )
+	{
+	FUNC_LOG;
+
+    TInt ext = GetExtensionType( aNumber );
+    switch( ext )
+        {
+        case ECea861Ext:
+            {
+            // CEA 861 extension
+			if( aParser )
+				{
+				aParser->ParseExtensionBlockL( iExtensionData );
+				}
+            break;
+            }
+        default:
+            {
+            // Not supported
+            break;
+            }
+        }
+	}
+
 // ---------------------------------------------------------------------------
 // CEdidParserBase::GetChecksum
 // ---------------------------------------------------------------------------