diff -r a811597961f0 -r 1a73e8f1b64d accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp --- 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( "<<<<<<<<<<<<<>>>>>>>>>>>>>" ); + // 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( "<<<<<<<<<<<<<>>>>>>>>>>>>>" ); + 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();