diff -r 0b0048910c20 -r 94cb00198351 accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp --- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp Mon Jun 21 17:06:14 2010 +0300 +++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp Thu Jul 15 20:05:35 2010 +0300 @@ -101,8 +101,11 @@ if ( KSettingsTvoutVerticalOverscan == aId ) { INFO("Cenrep Value Changed"); - iEDIDHandler.UpdateOverscanValues(); - Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged ); + if( iEDIDHandler.UpdateOverscanValues() ) + { + INFO( "There is a real change" ); + Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged ); + } } else { @@ -153,8 +156,7 @@ { FUNC_LOG; TInt retVal( KErrNone ); - iOverScanSettingsChanged = EFalse; - + // Get the current overscan value iEDIDHandler.UpdateOverscanValues(); iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue ); @@ -526,18 +528,11 @@ { iSubState = ESubStateConnected; - if( !iOverScanSettingsChanged ) - { - TRAPD( err, iHDMICableStatusFSM.SettingsChangedL() ); - if ( KErrNone != err ) - { - INFO_1( "iHDMICableStatusFSM.SettingsChangedL() failed, error code %i", err ); - } - } - else - { - iOverScanSettingsChanged = EFalse; - } + TRAPD( err, iHDMICableStatusFSM.SettingsChangedL() ); + if ( KErrNone != err ) + { + INFO_1( "iHDMICableStatusFSM.SettingsChangedL() failed, error code %i", err ); + } ListenCopyProtectionStatusChanges(); iTVOutConfigForSettingChanges->ListenSettingsChanges(); iCRWatchForVOverScan->Watch(); @@ -583,12 +578,14 @@ INFO( "Event: EIfTVOutConfigEventDisabled" ); iSubState = ESubStateIdlingDisconnectAccessory; iAccessoryControlIf.DisconnectAccessory(); + ClearAvailableTvOutConfig(); } else if ( EIfTVOutConfigEventDisableFailed == aEvent ) { INFO( "Event: EIfTVOutConfigEventDisableFailed" ); iSubState = ESubStateIdlingDisconnectAccessory; iAccessoryControlIf.DisconnectAccessory(); + ClearAvailableTvOutConfig(); } else { @@ -963,7 +960,7 @@ iTVOutConfigForHDMI.Enable(); } } - else if ( EIfTVOutConfigEventSettingsChangesListenStarted ) + else if ( EIfTVOutConfigEventSettingsChangesListenStarted == aEvent ) { INFO( "Event: EIfTVOutConfigEventSettingsChangesListenStarted" ); // Everything is OK. Stay in the same state. @@ -1007,9 +1004,6 @@ if( (TTvSettings::EHDMI == curConfig.iConnector) && (!curConfig.iUnderscanEnabled) ) { - // Clear the available config - ClearAvailableTvOutConfig(); - iCRWatchForVOverScan->Cancel(); TInt retVal = iEDIDHandler.SetVideoParameters(); if ( KErrNone != retVal ) @@ -1017,7 +1011,8 @@ INFO( "Going to state since video parameter setting failed!" ); iTVOutConfigForSettingChanges->Cancel(); iCRWatchForVOverScan->Cancel(); - iHDMICableStatusFSM.Transit( EHDMICableStateRejected ); + iSubState = ESubStateIdlingDisable; + iTVOutConfigForHDMI.Disable(); } else { @@ -1030,12 +1025,8 @@ INFO( "Retreating back to since cable was disconnected while not listening!" ); iTVOutConfigForSettingChanges->Cancel(); iCRWatchForVOverScan->Cancel(); - iHDMICableStatusFSM.Transit( EHDMICableStateIdle ); - } - else - { - iOverScanSettingsChanged = ETrue; - iSubState = ESubStateWaitForSettingsChanged; + iSubState = ESubStateIdlingDisable; + iTVOutConfigForHDMI.Disable(); } } } @@ -1116,24 +1107,8 @@ else if ( EIfTVOutConfigEventSettingsChanged == aEvent ) { INFO( "Event: EIfTVOutConfigEventSettingsChanged" ); - if( iOverScanSettingsChanged ) - { - if ( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() ) - { - iSubState = ESubStateResettingDisable; - iTVOutConfigForHDMI.Disable(); - } - else - { - iSubState = ESubStateResettingEnable; - iTVOutConfigForHDMI.Enable(); - } - } - else - { - iSubState = ESubStateEnable; - iTVOutConfigForHDMI.Enable(); - } + iSubState = ESubStateEnable; + iTVOutConfigForHDMI.Enable(); } else if ( EIfTVOutConfigEventSettingsChangesListenFailed == aEvent ) {