accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp
branchRCL_3
changeset 5 1a73e8f1b64d
parent 3 a811597961f0
child 7 1fc153c72b60
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp	Sat Feb 20 00:05:00 2010 +0200
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp	Fri Mar 12 15:50:01 2010 +0200
@@ -1413,24 +1413,45 @@
 
 			availableIndex++;
 			}
-		
-		    if( ( (KDefaultCEAModePhysImgAspRatioNr == iEdidParserPtr->GetAspectRatioLandscape()) 
-		            && (KDefaultCEAModePhysImgAspRatioDr == iEdidParserPtr->GetAspectRatioPortrait()) ) 
-		            && !defaultCEAmode )		    
 
+			// If the Vendor Specific Data Block supported and it has IEEE registration number then it is HDMI
+			if ( iExtensionParserPtr && iExtensionParserPtr->IsVendorSpecificDataBlockSupported() && iExtensionParserPtr->HasIEEERegistration() )
 			{
-            THdmiDviTimings timings;
-            
-            // Get a timing item for default CEA Mode (1)
-            const TTimingItem* item = TimingByIndex( KDefaultCEAModeIndex, ETimingModeCEA );
-            if( item )
-                {
-                Mem::FillZ( ( TAny* )&timings, sizeof( timings ) );
-                FillHdmiDviTimings( *item, timings );
-                retVal = aHdmiConfigs.Append( timings );
-                ERROR( retVal, "Failed to append CEA timing in available config array" );
-                }
-			}
+			    INFO( "<<<<<<<<<<<<<<It is HDMI connector>>>>>>>>>>>>>>" );
+				// Add default CEA mode 1 to the list if it is not there already
+			    if( ( (KDefaultCEAModePhysImgAspRatioNr == iEdidParserPtr->GetAspectRatioLandscape()) 
+			            && (KDefaultCEAModePhysImgAspRatioDr == iEdidParserPtr->GetAspectRatioPortrait()) ) 
+			            && !defaultCEAmode )		    
+	
+				{
+	            THdmiDviTimings timings;
+	            
+	            // Get a timing item for default CEA Mode (1)
+	            const TTimingItem* item = TimingByIndex( KDefaultCEAModeIndex, ETimingModeCEA );
+	            if( item )
+	                {
+	                Mem::FillZ( ( TAny* )&timings, sizeof( timings ) );
+	                FillHdmiDviTimings( *item, timings );
+	                retVal = aHdmiConfigs.Append( timings );
+	                ERROR( retVal, "Failed to append CEA timing in available config array" );
+	                }
+				}
+		    }
+		    else // It is DVI connector
+		    {
+				TInt modecount = aHdmiConfigs.Count();
+				
+				INFO( "<<<<<<<<<<<<<<It is DVI connector>>>>>>>>>>>>>>" );
+				while( modecount-- )
+				  {
+					// Change it to DVI mode as it is existing in both Supported and available configurations
+					aHdmiConfigs[ modecount ].iConnector = TTvSettings::EDVI;
+					
+					// Version should be zeroed for non-HDMI
+					aHdmiConfigs[ modecount ].iTvHdmiVersion = 0;
+					aHdmiConfigs[ modecount ].iTvHdmiRevision = 0;			  
+				  }
+		    }
 
 		INFO( "Filtered list -- END" );
 		supportedModes.Close();