accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp
branchRCL_3
changeset 19 94cb00198351
parent 17 0b0048910c20
child 21 ccb4f6b3db21
equal deleted inserted replaced
17:0b0048910c20 19:94cb00198351
    99     if ( KCRUidTvoutSettings == aRepositoryId )
    99     if ( KCRUidTvoutSettings == aRepositoryId )
   100         {
   100         {
   101         if ( KSettingsTvoutVerticalOverscan == aId  )
   101         if ( KSettingsTvoutVerticalOverscan == aId  )
   102             {            
   102             {            
   103 			INFO("Cenrep Value Changed");
   103 			INFO("Cenrep Value Changed");
   104 			iEDIDHandler.UpdateOverscanValues();
   104 			if( iEDIDHandler.UpdateOverscanValues() )
   105             Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged );
   105 				{
       
   106 				INFO( "There is a real change" );
       
   107             	Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged );
       
   108 				}
   106             }
   109             }
   107         else
   110         else
   108             {
   111             {
   109             INFO_1("Unexpected CR key ID, aId 0x%x", aId );            
   112             INFO_1("Unexpected CR key ID, aId 0x%x", aId );            
   110             }       
   113             }       
   151 //
   154 //
   152 void CHDMICableStateConnected::Enter( )
   155 void CHDMICableStateConnected::Enter( )
   153     {
   156     {
   154     FUNC_LOG;
   157     FUNC_LOG;
   155     TInt retVal( KErrNone );
   158     TInt retVal( KErrNone );
   156 	iOverScanSettingsChanged = EFalse;
   159 	
   157 
       
   158 	// Get the current overscan value
   160 	// Get the current overscan value
   159 	iEDIDHandler.UpdateOverscanValues();
   161 	iEDIDHandler.UpdateOverscanValues();
   160 	iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
   162 	iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
   161 	
   163 	
   162     iCopyProtectListenFailCounter.iCount = 0;
   164     iCopyProtectListenFailCounter.iCount = 0;
   524                 }
   526                 }
   525             else
   527             else
   526                 {
   528                 {
   527                 iSubState = ESubStateConnected;
   529                 iSubState = ESubStateConnected;
   528 
   530 
   529 				if( !iOverScanSettingsChanged )
   531                 TRAPD( err, iHDMICableStatusFSM.SettingsChangedL() );
   530 					{
   532                 if ( KErrNone != err )
   531 	                TRAPD( err, iHDMICableStatusFSM.SettingsChangedL() );
   533                     {
   532 	                if ( KErrNone != err )
   534                     INFO_1( "iHDMICableStatusFSM.SettingsChangedL() failed, error code %i", err ); 
   533 	                    {
   535                     }
   534 	                    INFO_1( "iHDMICableStatusFSM.SettingsChangedL() failed, error code %i", err ); 
       
   535 	                    }
       
   536 					}
       
   537 				else
       
   538 					{
       
   539 					iOverScanSettingsChanged = EFalse;
       
   540 					}
       
   541                 ListenCopyProtectionStatusChanges();
   536                 ListenCopyProtectionStatusChanges();
   542                 iTVOutConfigForSettingChanges->ListenSettingsChanges();
   537                 iTVOutConfigForSettingChanges->ListenSettingsChanges();
   543 				iCRWatchForVOverScan->Watch();
   538 				iCRWatchForVOverScan->Watch();
   544                 }
   539                 }
   545             }
   540             }
   581         if ( EIfTVOutConfigEventDisabled == aEvent )
   576         if ( EIfTVOutConfigEventDisabled == aEvent )
   582             {
   577             {
   583             INFO( "Event: EIfTVOutConfigEventDisabled" );
   578             INFO( "Event: EIfTVOutConfigEventDisabled" );
   584             iSubState = ESubStateIdlingDisconnectAccessory;
   579             iSubState = ESubStateIdlingDisconnectAccessory;
   585             iAccessoryControlIf.DisconnectAccessory();                    
   580             iAccessoryControlIf.DisconnectAccessory();                    
       
   581 			ClearAvailableTvOutConfig();
   586             }
   582             }
   587         else if ( EIfTVOutConfigEventDisableFailed == aEvent )
   583         else if ( EIfTVOutConfigEventDisableFailed == aEvent )
   588             {
   584             {
   589             INFO( "Event: EIfTVOutConfigEventDisableFailed" );        
   585             INFO( "Event: EIfTVOutConfigEventDisableFailed" );        
   590             iSubState = ESubStateIdlingDisconnectAccessory;
   586             iSubState = ESubStateIdlingDisconnectAccessory;
   591             iAccessoryControlIf.DisconnectAccessory();                    
   587             iAccessoryControlIf.DisconnectAccessory();                    
       
   588 			ClearAvailableTvOutConfig();
   592             }
   589             }
   593         else
   590         else
   594             {
   591             {
   595             INFO_1( "Unknown/unexpected Event Id: %i", aEvent );        
   592             INFO_1( "Unknown/unexpected Event Id: %i", aEvent );        
   596             }
   593             }
   961                 {
   958                 {
   962                 iSubState = ESubStateResettingEnable;
   959                 iSubState = ESubStateResettingEnable;
   963                 iTVOutConfigForHDMI.Enable();                
   960                 iTVOutConfigForHDMI.Enable();                
   964                 }
   961                 }
   965             }
   962             }
   966         else if ( EIfTVOutConfigEventSettingsChangesListenStarted )
   963         else if ( EIfTVOutConfigEventSettingsChangesListenStarted == aEvent )
   967             {
   964             {
   968             INFO( "Event: EIfTVOutConfigEventSettingsChangesListenStarted" );
   965             INFO( "Event: EIfTVOutConfigEventSettingsChangesListenStarted" );
   969             // Everything is OK. Stay in the same state.
   966             // Everything is OK. Stay in the same state.
   970 			// Should not miss the cenrep value change
   967 			// Should not miss the cenrep value change
   971 			TInt newOverScanValue = 0;
   968 			TInt newOverScanValue = 0;
  1005 			
  1002 			
  1006 			iTVOutConfigForHDMI.GetTvOutConfig()->GetConfig( curConfig );
  1003 			iTVOutConfigForHDMI.GetTvOutConfig()->GetConfig( curConfig );
  1007 
  1004 
  1008 			if( (TTvSettings::EHDMI == curConfig.iConnector) && (!curConfig.iUnderscanEnabled) )
  1005 			if( (TTvSettings::EHDMI == curConfig.iConnector) && (!curConfig.iUnderscanEnabled) )
  1009 				{									
  1006 				{									
  1010 				// Clear the available config				
       
  1011 				ClearAvailableTvOutConfig();
       
  1012 				iCRWatchForVOverScan->Cancel();
       
  1013 				
  1007 				
  1014 				TInt retVal = iEDIDHandler.SetVideoParameters();
  1008 				TInt retVal = iEDIDHandler.SetVideoParameters();
  1015 				if ( KErrNone != retVal )
  1009 				if ( KErrNone != retVal )
  1016 					{
  1010 					{
  1017 					INFO( "Going to state <Rejected> since video parameter setting failed!" );		  
  1011 					INFO( "Going to state <Rejected> since video parameter setting failed!" );		  
  1018 					iTVOutConfigForSettingChanges->Cancel();
  1012 					iTVOutConfigForSettingChanges->Cancel();
  1019 					iCRWatchForVOverScan->Cancel();
  1013 					iCRWatchForVOverScan->Cancel();
  1020 					iHDMICableStatusFSM.Transit( EHDMICableStateRejected ); 		
  1014 					iSubState = ESubStateIdlingDisable;
       
  1015 					iTVOutConfigForHDMI.Disable();			  
  1021 					}
  1016 					}
  1022 				else
  1017 				else
  1023 					{
  1018 					{
  1024 					// Update the current overscan value
  1019 					// Update the current overscan value
  1025 					iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
  1020 					iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
  1028 					if ( EIfTVOutConfigEventCableDisconnected == event )
  1023 					if ( EIfTVOutConfigEventCableDisconnected == event )
  1029 						{
  1024 						{
  1030 						INFO( "Retreating back to <Idle> since cable was disconnected while not listening!" );		  
  1025 						INFO( "Retreating back to <Idle> since cable was disconnected while not listening!" );		  
  1031 						iTVOutConfigForSettingChanges->Cancel();
  1026 						iTVOutConfigForSettingChanges->Cancel();
  1032 						iCRWatchForVOverScan->Cancel();
  1027 						iCRWatchForVOverScan->Cancel();
  1033 						iHDMICableStatusFSM.Transit( EHDMICableStateIdle ); 		
  1028 						iSubState = ESubStateIdlingDisable;
  1034 						}
  1029 						iTVOutConfigForHDMI.Disable();			  
  1035 					else
       
  1036 						{
       
  1037 						iOverScanSettingsChanged = ETrue;
       
  1038 						iSubState = ESubStateWaitForSettingsChanged;
       
  1039 						}
  1030 						}
  1040 					}				
  1031 					}				
  1041 				}			
  1032 				}			
  1042             }
  1033             }
  1043         else
  1034         else
  1114 				}
  1105 				}
  1115             }
  1106             }
  1116         else if ( EIfTVOutConfigEventSettingsChanged == aEvent )
  1107         else if ( EIfTVOutConfigEventSettingsChanged == aEvent )
  1117             {
  1108             {
  1118             INFO( "Event: EIfTVOutConfigEventSettingsChanged" );
  1109             INFO( "Event: EIfTVOutConfigEventSettingsChanged" );
  1119 			if( iOverScanSettingsChanged )
  1110             iSubState = ESubStateEnable;
  1120 				{
  1111             iTVOutConfigForHDMI.Enable();
  1121 	            if ( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() )
       
  1122 	                {
       
  1123 	                iSubState = ESubStateResettingDisable;
       
  1124 	                iTVOutConfigForHDMI.Disable();
       
  1125 	                }
       
  1126 	            else
       
  1127 	                {
       
  1128 	                iSubState = ESubStateResettingEnable;
       
  1129 	                iTVOutConfigForHDMI.Enable();                
       
  1130 	                }
       
  1131 				}
       
  1132 			else
       
  1133 				{
       
  1134 	            iSubState = ESubStateEnable;
       
  1135 	            iTVOutConfigForHDMI.Enable();
       
  1136 				}
       
  1137             }
  1112             }
  1138         else if ( EIfTVOutConfigEventSettingsChangesListenFailed == aEvent )
  1113         else if ( EIfTVOutConfigEventSettingsChangesListenFailed == aEvent )
  1139             {
  1114             {
  1140             INFO( "Event: EIfTVOutConfigEventSettingsChangesListenFailed" );
  1115             INFO( "Event: EIfTVOutConfigEventSettingsChangesListenFailed" );
  1141             INFO( "Going to state <Rejected> since setting changes listening failed!" );        
  1116             INFO( "Going to state <Rejected> since setting changes listening failed!" );