Revision: 201023 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 21 Jun 2010 17:06:14 +0300
branchRCL_3
changeset 43 0b0048910c20
parent 34 b2f9f823b5fb
child 47 a616a19c9ce0
child 55 94cb00198351
Revision: 201023 Kit: 2010125
accessoryservices/accessoryserver/src/Server/AccSrvConnectionHandler.cpp
accessoryservices/pluggeddisplay/edidparser/bwins/edidparseru.def
accessoryservices/pluggeddisplay/edidparser/eabi/edidparseru.def
accessoryservices/pluggeddisplay/edidparser/inc/edidparserbase.h
accessoryservices/pluggeddisplay/edidparser/src/edidparserbase.cpp
accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/edidhandler.h
accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/hdmicablestateconnected.h
accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp
accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp
accessoryservices/pluggeddisplay/pluggeddisplayengine/src/tvoutconfigforhdmi.cpp
commonservices/PlatformEnv/rom/PlatformEnv.iby
sensorservices/sensorserver/src/util/sensrvproperty.cpp
sensorservices/tiltcompensationssy/inc/tcsendeventtimer.h
sensorservices/tiltcompensationssy/src/tcsendeventtimer.cpp
sensorservices/tiltcompensationssy/src/tcstatetiltlistendata.cpp
sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss
sysstatemgmt/systemstatemgr/cmd/src/cmdpublishsystemstate.cpp
--- a/accessoryservices/accessoryserver/src/Server/AccSrvConnectionHandler.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/accessoryserver/src/Server/AccSrvConnectionHandler.cpp	Mon Jun 21 17:06:14 2010 +0300
@@ -238,6 +238,7 @@
     TBool aUpdatedConnection )
     {
     COM_TRACE_( "[AccFW:AccServer] CAccSrvConnectionHandler::StartConnectionHandling()" );
+    #define UNMASK_LINE_OUT(selectionListBitmask)  (selectionListBitmask & (~KASLineOut))
 
     iGenericID = aGenericID;
     iConnectionUpdate = aUpdatedConnection;
@@ -309,6 +310,7 @@
     			if ( accCount > 1 )
     			    {
 	    			//if there is possible selection show UI
+	    			selectionListBitmask = UNMASK_LINE_OUT(selectionListBitmask);
 		    		SetupSelectionDialogL( selectionListBitmask );    			
     			    }
     			else
--- a/accessoryservices/pluggeddisplay/edidparser/bwins/edidparseru.def	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/edidparser/bwins/edidparseru.def	Mon Jun 21 17:06:14 2010 +0300
@@ -55,4 +55,6 @@
 	?GetInterlacedVideoLatency@CCea861EdidParser@@QAEEXZ @ 54 NONAME ; unsigned char CCea861EdidParser::GetInterlacedVideoLatency(void)
 	?GetStandardTimings@CEdidParserBase@@QAEEH@Z @ 55 NONAME ; unsigned char CEdidParserBase::GetStandardTimings(int)
 	?HasIEEERegistration@CCea861EdidParser@@QAEHXZ @ 56 NONAME ; int CCea861EdidParser::HasIEEERegistration(void)
+	?UpdateCea861ExtensionL@CEdidParserBase@@QAEXHPAVCCea861EdidParser@@@Z @ 57 NONAME ; void CEdidParserBase::UpdateCea861ExtensionL(int, class CCea861EdidParser *)
+	?UpdateRawDataL@CEdidParserBase@@QAEXABVTDesC8@@@Z @ 58 NONAME ; void CEdidParserBase::UpdateRawDataL(class TDesC8 const &)
 
--- a/accessoryservices/pluggeddisplay/edidparser/eabi/edidparseru.def	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/edidparser/eabi/edidparseru.def	Mon Jun 21 17:06:14 2010 +0300
@@ -57,4 +57,6 @@
 	_ZTV17CCea861EdidParser @ 56 NONAME ; #<VT>#
 	_ZN15CEdidParserBase18GetStandardTimingsEi @ 57 NONAME
 	_ZN17CCea861EdidParser19HasIEEERegistrationEv @ 58 NONAME
+	_ZN15CEdidParserBase14UpdateRawDataLERK6TDesC8 @ 59 NONAME
+	_ZN15CEdidParserBase22UpdateCea861ExtensionLEiP17CCea861EdidParser @ 60 NONAME
 
--- a/accessoryservices/pluggeddisplay/edidparser/inc/edidparserbase.h	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/edidparser/inc/edidparserbase.h	Mon Jun 21 17:06:14 2010 +0300
@@ -378,6 +378,9 @@
      */
     IMPORT_C TUint8 GetChecksum();
 
+	IMPORT_C void UpdateRawDataL( const TDesC8& aBinaryData );
+	IMPORT_C void UpdateCea861ExtensionL( TInt aNumber, CCea861EdidParser* aParser );
+
 private:
 
     /**
@@ -558,6 +561,7 @@
      HBufC8*         iRawData;                  // Raw data that contains all EDID data
      TUint           iNumberOfExtensionBlocks;  // Number of extensionblocks for this base edid block
      TExtDataBlock   iExtensionData;            // Extension data
+     TInt            iRawdataLength;            // Raw data length
     };
 
 #endif // C_CEDIDPARSERBASE_H
--- a/accessoryservices/pluggeddisplay/edidparser/src/edidparserbase.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/edidparser/src/edidparserbase.cpp	Mon Jun 21 17:06:14 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
 // ---------------------------------------------------------------------------
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/edidhandler.h	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/edidhandler.h	Mon Jun 21 17:06:14 2010 +0300
@@ -173,6 +173,16 @@
      */
     TInt GetHdcpSupportStatus( TBool& aHdcpSupport ) const;
 
+    /**
+     * Update overscan values from cenrep.
+     * 
+     * @param None.
+     * @return None.
+     */
+    void UpdateOverscanValues();
+    
+	void GetCurrentOverscanValue( TInt& aHOverscan, TInt& aVOverscan );
+
 private:
 
     /**
@@ -347,14 +357,6 @@
      */
     void CalculateOverscan( TPoint& aTLCorner, TPoint& aBRCorner ) const;
     
-    /**
-     * Update overscan values from cenrep.
-     * 
-     * @param None.
-     * @return None.
-     */
-    void UpdateOverscanValues();
-    
 	/**
 	 * Filter out the unsupported TV configurations.
 	 * 
@@ -411,6 +413,12 @@
     
     // Request ID
     TRequestTypeID iRequestID;
+
+	// Number of extensions to read
+	TInt inbrOfExtensions;
+
+	// Current EDID block
+	TInt iCurrentBlock;
     };
 
 #endif // C_EDIDHANDLER_H
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/hdmicablestateconnected.h	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/hdmicablestateconnected.h	Mon Jun 21 17:06:14 2010 +0300
@@ -444,6 +444,10 @@
 
 	// Flag to indicate the change of overscan
 	TBool iOverScanSettingsChanged;
+
+    // Current overscan value
+	TInt iHOverscanValue;
+	TInt iVOverscanValue;
 	
     };
 
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp	Mon Jun 21 17:06:14 2010 +0300
@@ -125,9 +125,6 @@
     RArray<TTvSettings> analogConfigs;
     RArray<THdmiDviTimings> hdmiConfigs;
     
-    // Update overscan values from cenrep
-    UpdateOverscanValues();
-
     // Set video parameters
     INFO( "--------------------------------------------------------------------" );
     INFO( "SETTING CEA AND DMT TIMINGS:" );
@@ -177,6 +174,9 @@
     iEdidParserPtr = NULL;
     delete iExtensionParserPtr;
     iExtensionParserPtr = NULL;
+
+	iCurrentBlock = 0;
+	inbrOfExtensions = 0;
     }
 
 //------------------------------------------------------------------------------
@@ -519,26 +519,81 @@
         {
         case EDdcReadRequest:
             {
-            if( KErrNone == iStatus.Int() )
-                {
-                TPtrC8
-                    dataBlockDes( iDataBlockPtr->iDataBlock, sizeof( *iDataBlockPtr ) );
-                iEdidParserPtr = CEdidParserBase::NewL( dataBlockDes );
-                TInt nbrOfExtensions = iEdidParserPtr->GetNumberOfExtensions();
-                for( TInt i = 0; i < nbrOfExtensions; ++i )
-                    {
-                    if( ECea861Ext == iEdidParserPtr->GetExtensionType( i + 1 ) )
-                        {
-                        INFO_1( "ECea861Ext extension data block number: %d", ( i+1 ) );
-                        iExtensionParserPtr
-                            = iEdidParserPtr->CreateCea861ExtensionParserL( i + 1 );
-                        break;
-                        }
-                    }
-                INFO_1( "Data block count in nbrOfExtensions: %d", nbrOfExtensions );
-                iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetched );
-                iRetryCounter = KErrNone;
-                }
+			if( KErrNone == iStatus.Int() )
+				{				
+				if( iCurrentBlock == 0 )
+					{
+					TPtrC8 dataBlockDes( iDataBlockPtr->iDataBlock, sizeof( *iDataBlockPtr ) );
+					
+					iEdidParserPtr = CEdidParserBase::NewL( dataBlockDes );
+					inbrOfExtensions = iEdidParserPtr->GetNumberOfExtensions();
+
+					INFO_1( "No. of extensions from Block 0: %d", inbrOfExtensions );
+
+					if( inbrOfExtensions )
+						{
+						inbrOfExtensions--;
+						}
+ 					}
+				else
+					{
+					TPtrC8 dataBlockDes( iDataBlockPtr->iDataBlock, sizeof( *iDataBlockPtr ) );
+
+					INFO_1( "Updating the Rawdata for the Block %d...", iCurrentBlock );
+					iEdidParserPtr->UpdateRawDataL(dataBlockDes);
+					
+					iCurrentBlock++;
+					if( inbrOfExtensions >= 2 )
+						{
+ 						inbrOfExtensions = inbrOfExtensions - 2;
+						}
+					else
+						{
+						inbrOfExtensions--;
+						}
+  					}
+
+				if( inbrOfExtensions )
+					{
+					iRetryCounter = KErrNone;
+					
+					if( ReadEDIDDataL() != KErrNone )
+						{
+						ResetData();
+						iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetchFailed );
+						}
+					}
+				else
+					{
+					TInt extensions = iEdidParserPtr->GetNumberOfExtensions();
+
+					INFO_1( "No. of extensions from Block 0: %d", extensions );
+					
+					for( TInt i = 0; i < extensions; ++i )
+						{
+						if( ECea861Ext == iEdidParserPtr->GetExtensionType( i + 1 ) )
+							{
+							INFO_1( "ECea861Ext extension data block number: %d", ( i+1 ) );
+							if( !iExtensionParserPtr )
+								{
+								INFO( "First CEA 861 extension is being read..." );
+								iExtensionParserPtr
+									= iEdidParserPtr->CreateCea861ExtensionParserL( i + 1 );
+								}
+							else
+								{
+								INFO_1( "CEA 861 extension is being read... at the index %d", i+1 );
+								iEdidParserPtr->UpdateCea861ExtensionL( i + 1, iExtensionParserPtr );
+								}
+ 							}
+						}
+					}
+
+				TRACE_EDID_DATA( *iEdidParserPtr );
+				
+				iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetched );
+				iRetryCounter = KErrNone;
+				}
             else
                 {
                 INFO_1( "CDdcPortAccess::Read failed, error code: %d", iStatus.Int() );
@@ -625,8 +680,19 @@
         {
         iDataBlockPtr = new(ELeave) TDataBlock;
         }
+	else if( inbrOfExtensions )
+		{
+		if( iDataBlockPtr )
+			{
+			delete iDataBlockPtr;
+			iDataBlockPtr = NULL;
+			}
+		iDataBlockPtr = new(ELeave) TDataBlock;
+		}
+
+	INFO_1( "Reading EDID block %d...", iCurrentBlock );
     
-    retVal = iDdcPortAccess->Read( EMonitorPort, 0, // First block contains EDID data if that exists
+    retVal = iDdcPortAccess->Read( EMonitorPort, iCurrentBlock, // First block contains EDID data if that exists
         iDataBlockPtr->iDataBlock,
         iStatus );
         
@@ -1508,6 +1574,16 @@
 	return retVal;
     }
 
+void CEDIDHandler::GetCurrentOverscanValue( TInt& aHOverscan, TInt& aVOverscan )
+	{
+	FUNC_LOG;
+	
+	aHOverscan = iHOverscan;
+	aVOverscan = iVOverscan;
+
+	INFO_2("Overscan used: %d, %d", iHOverscan, iVOverscan);
+	}
+
 //------------------------------------------------------------------------------
 // C++ constructor
 //------------------------------------------------------------------------------
@@ -1518,7 +1594,9 @@
     iFSM( aFSM ),
     iTVOutConfigForHDMI( aTVOutConfigForHDMI ),
     iRetryCounter( 0 ),
-    iRequestID( EUndefRequest )
+    iRequestID( EUndefRequest ),
+    inbrOfExtensions( 0 ),
+    iCurrentBlock( 0 )
     {
     FUNC_LOG;
     }
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp	Mon Jun 21 17:06:14 2010 +0300
@@ -99,7 +99,9 @@
     if ( KCRUidTvoutSettings == aRepositoryId )
         {
         if ( KSettingsTvoutVerticalOverscan == aId  )
-            {
+            {            
+			INFO("Cenrep Value Changed");
+			iEDIDHandler.UpdateOverscanValues();
             Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged );
             }
         else
@@ -111,6 +113,7 @@
         {
         INFO_1("Unexpected Central Repository ID, aRepositoryId 0x%x", aRepositoryId);
         }
+
     }
 
 // ---------------------------------------------------------------------------
@@ -151,6 +154,11 @@
     FUNC_LOG;
     TInt retVal( KErrNone );
 	iOverScanSettingsChanged = EFalse;
+
+	// Get the current overscan value
+	iEDIDHandler.UpdateOverscanValues();
+	iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
+	
     iCopyProtectListenFailCounter.iCount = 0;
     iTVOutConfigForCopyProtect->ResetLatestRecordedCopyProtectionStatus();
     retVal = iEDIDHandler.FetchEDIDData();
@@ -393,6 +401,9 @@
                         }
                     else
                         {
+						// Update the current overscan value
+						iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
+						
                         TFSMEventId event = iTVOutConfigForHDMI.ListenHDMICableStatusIfNoMissedEvents();
                         if ( EIfTVOutConfigEventCableDisconnected == event )
                             {
@@ -704,7 +715,7 @@
                 iSubState = ESubStateConnected;
                 ListenCopyProtectionStatusChanges();
                 iTVOutConfigForSettingChanges->ListenSettingsChanges();
-				iCRWatchForVOverScan->Watch();
+				iCRWatchForVOverScan->Watch();				
                 }
             }
         else if ( EPDEIfAccessoryControlEventConnectFailed == aEvent )
@@ -956,6 +967,13 @@
             {
             INFO( "Event: EIfTVOutConfigEventSettingsChangesListenStarted" );
             // Everything is OK. Stay in the same state.
+			// Should not miss the cenrep value change
+			TInt newOverScanValue = 0;
+			iCRWatchForVOverScan->GetCurrentValue(newOverScanValue);
+			if( iVOverscanValue != newOverScanValue )
+				{
+				Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged );
+				}
             }
         else if ( EIfTVOutConfigEventSettingsChangesListenFailed == aEvent )
             {
@@ -981,17 +999,18 @@
         if ( EPDEIfCentralRepositoryWatchEventKeyChanged == aEvent )
             {
             INFO( "Event: EPDEIfCentralRepositoryWatchEventKeyChanged" );
-
+			
 			// Get the available config
 			THdmiDviTimings curConfig;
 			
 			iTVOutConfigForHDMI.GetTvOutConfig()->GetConfig( curConfig );
 
 			if( (TTvSettings::EHDMI == curConfig.iConnector) && (!curConfig.iUnderscanEnabled) )
-				{					
+				{									
 				// Clear the available config				
 				ClearAvailableTvOutConfig();
-
+				iCRWatchForVOverScan->Cancel();
+				
 				TInt retVal = iEDIDHandler.SetVideoParameters();
 				if ( KErrNone != retVal )
 					{
@@ -1002,6 +1021,9 @@
 					}
 				else
 					{
+					// Update the current overscan value
+					iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
+					
 					TFSMEventId event = iTVOutConfigForHDMI.ListenHDMICableStatusIfNoMissedEvents();
 					if ( EIfTVOutConfigEventCableDisconnected == event )
 						{
@@ -1016,7 +1038,7 @@
 						iSubState = ESubStateWaitForSettingsChanged;
 						}
 					}				
-				}
+				}			
             }
         else
             {
@@ -1053,16 +1075,43 @@
             if ( EIfTVOutConfigEventCableDisconnected == event )
                 {
                 INFO( "Retreating back to <Idle> since cable was disconnected while WF setting changes!" );        
+				
+                // Stop listening Copy Protection status
+                iTVOutConfigForCopyProtect->Cancel();
+                // Stop listen setting changes
                 iTVOutConfigForSettingChanges->Cancel();
-                iHDMICableStatusFSM.Transit( EHDMICableStateIdle );         
+				iCRWatchForVOverScan->Cancel();
+
+				if( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() )
+					{
+					iSubState = ESubStateIdlingDisable;
+					iTVOutConfigForHDMI.Disable();			  
+					}
+				else
+					{
+					iHDMICableStatusFSM.Transit( EHDMICableStateIdle ); 		
+					}
                 }            
              }
         else if ( EIfTVOutConfigEventCableDisconnected == aEvent )
             {
             INFO( "Event: EIfTVOutConfigEventCableDisconnected" );
             INFO( "Retreating back to <Idle> since cable was disconnected while WF setting changes!" );
-            iTVOutConfigForSettingChanges->Cancel();
-            iHDMICableStatusFSM.Transit( EHDMICableStateIdle );         
+			// Stop listening Copy Protection status
+			iTVOutConfigForCopyProtect->Cancel();
+			// Stop listen setting changes
+			iTVOutConfigForSettingChanges->Cancel();
+			iCRWatchForVOverScan->Cancel();
+			
+			if( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() )
+				{
+				iSubState = ESubStateIdlingDisable;
+				iTVOutConfigForHDMI.Disable();			  
+				}
+			else
+				{
+				iHDMICableStatusFSM.Transit( EHDMICableStateIdle ); 		
+				}
             }
         else if ( EIfTVOutConfigEventSettingsChanged == aEvent )
             {
@@ -1090,7 +1139,20 @@
             {
             INFO( "Event: EIfTVOutConfigEventSettingsChangesListenFailed" );
             INFO( "Going to state <Rejected> since setting changes listening failed!" );        
-            iHDMICableStatusFSM.Transit( EHDMICableStateRejected );         
+			// Stop listening Copy Protection status
+			iTVOutConfigForCopyProtect->Cancel();
+			// Stop listen setting changes
+			iCRWatchForVOverScan->Cancel();
+			
+			if( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() )
+				{
+				iSubState = ESubStateIdlingDisable;
+				iTVOutConfigForHDMI.Disable();			  
+				}
+			else
+				{
+				iHDMICableStatusFSM.Transit( EHDMICableStateRejected ); 		
+				}
             }
         else
             {
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/tvoutconfigforhdmi.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/tvoutconfigforhdmi.cpp	Mon Jun 21 17:06:14 2010 +0300
@@ -221,6 +221,7 @@
     if  ( iLastRecordedCopyProtectEnabledStatus != currentCopyProtectStatus )
         {
         INFO("Copy Protection status changed while not listening.");
+		iLastRecordedCopyProtectEnabledStatus = currentCopyProtectStatus;
         retStruct.iFSMEventId = EIfTVOutConfigEventSetCopyProtectStatusChanged;
         }
     else if ( !IsActive() )
--- a/commonservices/PlatformEnv/rom/PlatformEnv.iby	Wed Jun 09 11:04:22 2010 +0300
+++ b/commonservices/PlatformEnv/rom/PlatformEnv.iby	Mon Jun 21 17:06:14 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,10 +22,12 @@
 file=ABI_DIR\BUILD_DIR\PlatformEnv.dll       SHARED_LIB_DIR\PlatformEnv.dll
 
 #ifdef FF_USE_MASS_STORAGE_CONFIG
-patchdata PlatformEnv.dll@KDriveInfoDefaultRemovableMassStorage 5 // EDriveF
-patchdata PlatformEnv.dll@KDriveInfoLogicallyRemovableDrive1 4 // EDriveE
+patchdata PlatformEnv.dll@KDriveInfoDefaultRemovableMassStorage FF_DEFAULT_REMOVABLE_MASS_STORAGE
+patchdata PlatformEnv.dll@KDriveInfoLogicallyRemovableDrive1 FF_LOGICALLY_REMOVABLE_DRIVE1
 #endif // FF_USE_MASS_STORAGE_CONFIG
 
+patchdata PlatformEnv.dll@KDriveInfoUsbDrivesStart FF_USB_DRIVE_START
+
 file=ABI_DIR\BUILD_DIR\disknotifyhandler.dll SHARED_LIB_DIR\disknotifyhandler.dll
 file=ABI_DIR\BUILD_DIR\sysversioninfo.dll    SHARED_LIB_DIR\sysversioninfo.dll
 file=ABI_DIR\BUILD_DIR\platformver.dll       SHARED_LIB_DIR\platformver.dll
--- a/sensorservices/sensorserver/src/util/sensrvproperty.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/sensorservices/sensorserver/src/util/sensrvproperty.cpp	Mon Jun 21 17:06:14 2010 +0300
@@ -356,9 +356,12 @@
     {
     API_TRACE( ( _L( "Sensor Util - TSensrvProperty::GetValue return %e" ), iRealValue ) );
 
-    __ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
+    //__ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
 
-    aValue = iRealValue;
+    if( ESensrvRealProperty == iPropertyType )
+        aValue = iRealValue;
+    else if( ESensrvIntProperty == iPropertyType )
+        aValue = iIntValue;
     }
 
 // ---------------------------------------------------------------------------
@@ -467,9 +470,13 @@
     {
     API_TRACE( ( _L( "Sensor Util - TSensrvProperty::GetMaxValue return %e" ), iRealValueMax ) );
 
-    __ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
+    //__ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
 
-    aMaxValue = iRealValueMax;
+    if( ESensrvRealProperty == iPropertyType )
+        aMaxValue = iRealValueMax;
+    else if ( ESensrvIntProperty == iPropertyType )
+        aMaxValue = iIntValueMax;
+    
     }
 
 // ---------------------------------------------------------------------------
@@ -480,9 +487,11 @@
     {
     API_TRACE( ( _L( "Sensor Util - TSensrvProperty::GetMinValue return %e" ), iRealValueMin ) );
 
-    __ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
-
-    aMinValue = iRealValueMin;
+    //__ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
+    if( ESensrvRealProperty == iPropertyType )
+        aMinValue = iRealValueMin;
+    else if( ESensrvIntProperty == iPropertyType )
+        aMinValue = iIntValueMin;
     }
 
 // ---------------------------------------------------------------------------
--- a/sensorservices/tiltcompensationssy/inc/tcsendeventtimer.h	Wed Jun 09 11:04:22 2010 +0300
+++ b/sensorservices/tiltcompensationssy/inc/tcsendeventtimer.h	Mon Jun 21 17:06:14 2010 +0300
@@ -71,6 +71,8 @@
         
         // @see CActive
         TInt RunError( TInt aError );
+	public:
+		void Start( );
         
     private: // Private data for base channel
     
--- a/sensorservices/tiltcompensationssy/src/tcsendeventtimer.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/sensorservices/tiltcompensationssy/src/tcsendeventtimer.cpp	Mon Jun 21 17:06:14 2010 +0300
@@ -74,7 +74,10 @@
 	ret = iTimer.CreateLocal();
 	User::LeaveIfError( ret );
 	iTimerToHzLevel = aSetTimerToHzLevel;
-	TTimeIntervalMicroSeconds32 interval( KOneSecondInMicroSeconds / aSetTimerToHzLevel );
+	}
+void CTCSendEventTimer::Start()
+	{
+	TTimeIntervalMicroSeconds32 interval( KOneSecondInMicroSeconds / iTimerToHzLevel );
 		
 	if( !IsActive() )
 		{
--- a/sensorservices/tiltcompensationssy/src/tcstatetiltlistendata.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/sensorservices/tiltcompensationssy/src/tcstatetiltlistendata.cpp	Mon Jun 21 17:06:14 2010 +0300
@@ -355,6 +355,7 @@
     if( !iTimerToSend )
         {
         iTimerToSend = CTCSendEventTimer::NewL( iHzSamplingRate, *this );
+		iTimerToSend->Start();
         }
     else if( iHasChanged )
         {
@@ -363,6 +364,10 @@
         iTimerToSend = CTCSendEventTimer::NewL( iHzSamplingRate, *this );
         iHasChanged = EFalse;
         }
+	else
+		{
+		iTimerToSend->Start();
+		}
     }
 
 // ----------------------------------------------------------------------------------
@@ -375,8 +380,7 @@
     
     if( iTimerToSend )
         {
-        delete iTimerToSend;
-        iTimerToSend = NULL;
+		iTimerToSend->Cancel();
         }
     }
 
--- a/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss	Wed Jun 09 11:04:22 2010 +0300
+++ b/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss	Mon Jun 21 17:06:14 2010 +0300
@@ -565,9 +565,9 @@
      {
      priority = 0xFFA7;
      name = "z:\\sys\\bin\\taskswitcher.exe";
-     execution_behaviour = ESsmDeferredWaitForSignal;
+     execution_behaviour = ESsmDeferredWaitForSignal;     
      background = 1; // To background
-     monitor_info = r_mon_3_restarts_ignore;
+     monitor_info = r_mon_max_restarts_ignore;
      }
 
 // ---------------------------------------------------------------------------
--- a/sysstatemgmt/systemstatemgr/cmd/src/cmdpublishsystemstate.cpp	Wed Jun 09 11:04:22 2010 +0300
+++ b/sysstatemgmt/systemstatemgr/cmd/src/cmdpublishsystemstate.cpp	Mon Jun 21 17:06:14 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -294,6 +294,9 @@
 	if(iConnected)
 		{
 		iDomainManager.CancelTransition();
+		// Close domain manager connection
+		iDomainManager.Close();
+		iConnected = EFalse;
 		}
 	}