Revision: 201039 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 13 Oct 2010 16:35:28 +0300
branchRCL_3
changeset 60 25c602fd1f26
parent 52 3d9964be03bc
child 61 b279b6be9e20
Revision: 201039 Kit: 201041
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp
usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h
usbmgmt/usbmgr/usbman/server/INC/CUsbSession.h
usbmgmt/usbmgr/usbman/server/INC/musbdevicenotifyinternal.h
usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp
usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp
usbmgmt/usbmgr/usbman/server/group/BLD.INF
usbmgmt/usbmgr/usbman/server/public/MUsbDeviceNotify.h
usbmgmt/usbmgr/usbman/server/public/musbthermalnotify.h
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h	Wed Oct 13 16:35:28 2010 +0300
@@ -24,7 +24,7 @@
 #define CREFPPDIALOG_H
 
 // INCLUDES
-#include <eikdialg.h>
+#include <techview/eikdialg.h>
 // CLASS DECLARATION
 
 /**
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h	Wed Oct 13 16:35:28 2010 +0300
@@ -23,7 +23,7 @@
 #ifndef REFPPNOTIFIER_H
 #define REFPPNOTIFIER_H
 
-#include <eikdialg.h>
+#include <techview/eikdialg.h>
 #include <eiknotapi.h>
 #include "refppdialog.h"
 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss	Wed Oct 13 16:35:28 2010 +0300
@@ -20,9 +20,10 @@
  @file
  @internalComponent
 */
-#include <eikon.rh>
-#include <eikon.rsg>
 
+#include <techview/eikon.rh>
+#include <techview/eikon.rsg>
+#include <techview/techviewctl.rh>
 #include <eikcoctl.rsg>
 #include "refppnotifier.hrh"
 NAME REFN
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp	Wed Oct 13 16:35:28 2010 +0300
@@ -23,9 +23,9 @@
 #include "refppnotifier.h"
 #include <ecom/implementationproxy.h>
 #include "refppnotifier.hrh"
-#include <eikinfo.h>
+#include <techview/eikinfo.h>
 #include <dialog.rsg>
-#include <eiklabel.h>
+#include <techview/eiklabel.h>
 #include <usb/hostms/srverr.h>
 #include <usb/hostms/policypluginnotifier.hrh>
 const TUid KMsmmRefNotifierChannel = {0x10009D48}; //0x10208C14
--- a/usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h	Wed Oct 13 16:35:28 2010 +0300
@@ -1,5 +1,5 @@
 /**
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -34,11 +34,12 @@
 #include <e32std.h>
 #include <usb/usblogger.h>
 #include <musbmanextensionpluginobserver.h>
+#include <musbthermalnotify.h>
 
 class CUsbDeviceStateWatcher;
 class CUsbClassControllerBase;
 class CUsbServer;
-class MUsbDeviceNotify;
+class MUsbDeviceNotifyInternal;
 class CPersonality;
 class CUsbmanExtensionPlugin;
 
@@ -60,7 +61,7 @@
  * asynchronously, one by one. Its RunL function will be called after each
  * start/stop.
  */
-NONSHARABLE_CLASS(CUsbDevice) : public CActive, public MUsbClassControllerNotify, public MUsbmanExtensionPluginObserver
+NONSHARABLE_CLASS(CUsbDevice) : public CActive, public MUsbClassControllerNotify, public MUsbmanExtensionPluginObserver, public MUsbThermalNotify
 	{
 public:
 	class TUsbDeviceDescriptor
@@ -89,8 +90,8 @@
  	void EnumerateClassControllersL();
 	void AddClassControllerL(CUsbClassControllerBase* aClassController, TLinearOrder<CUsbClassControllerBase> order);
 
-	void RegisterObserverL(MUsbDeviceNotify& aObserver);
-	void DeRegisterObserver(MUsbDeviceNotify& aObserver);
+	void RegisterObserverL(MUsbDeviceNotifyInternal& aObserver);
+	void DeRegisterObserver(MUsbDeviceNotifyInternal& aObserver);
 
 	void StartL();
 	void Stop();
@@ -112,6 +113,7 @@
 	const RPointerArray<CPersonality>& Personalities() const;
 	const CPersonality* GetPersonality(TInt aPersonalityId) const;
 	void ValidatePersonalitiesL();
+	void StartThermalMonitoring();
 	void ReadPersonalitiesL();
 	void SetDefaultPersonalityL();
 	void LoadFallbackClassControllersL();
@@ -128,7 +130,10 @@
 public: // from MUsbmanExtensionPluginObserver
 	RDevUsbcClient& MuepoDoDevUsbcClient();
 	void MuepoDoRegisterStateObserverL(MUsbDeviceNotify& aObserver);
-
+	
+public: // from  MUsbThermalNotify
+	void UsbThermalStateChange(TInt aLastError, TInt aValue);
+	
 protected:
 	CUsbDevice(CUsbServer& aUsbServer);
 	void ConstructL();
@@ -153,7 +158,9 @@
 private:
 	RPointerArray<CUsbClassControllerBase> iSupportedClasses;
 	RPointerArray<MUsbDeviceNotify> iObservers;
+	RPointerArray<MUsbDeviceNotifyInternal> iThermalObservers;
 	RPointerArray<CUsbmanExtensionPlugin> iExtensionPlugins;
+	
 	TUsbDeviceState  iDeviceState;
 	TUsbServiceState iServiceState;
 	TInt iLastError;
--- a/usbmgmt/usbmgr/usbman/server/INC/CUsbSession.h	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/CUsbSession.h	Wed Oct 13 16:35:28 2010 +0300
@@ -1,5 +1,5 @@
 /**
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -30,6 +30,8 @@
 #include "MUsbDeviceNotify.h"
 #include <usb/usbshared.h>
 
+#include "musbdevicenotifyinternal.h"
+
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 #include "musbotghostnotifyobserver.h"
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
@@ -39,7 +41,7 @@
 // (any state can only appear in the queue once)
 const TInt KDeviceStatesQueueSize = KUsbDeviceStates + 1;
 const TInt KOtgHostMessageQueueSize = KDeviceStatesQueueSize * 2;
-
+const TInt KUsbThermalStateSize = 5;
 //
 // Forward declarations
 //
@@ -51,7 +53,7 @@
  * Implements a Session of a Symbian OS server for the RUsb API
  */
 NONSHARABLE_CLASS(CUsbSession) : public CSession2
-							   , public MUsbDeviceNotify
+							   , public MUsbDeviceNotifyInternal
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 							   , public MUsbOtgHostNotifyObserver
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
@@ -64,10 +66,11 @@
 	virtual void ServiceL(const RMessage2& aMessage);
 	virtual void CreateL();
 
-	// MUsbDeviceNotify
+	// MUsbDeviceNotifyInternal
 	virtual void UsbDeviceStateChange(TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState);
 	virtual void UsbServiceStateChange(TInt aLastError, TUsbServiceState aOldState, TUsbServiceState aNewState);
-
+	virtual void UsbThermalStateChange(TInt aLastError, TInt aNewValue);
+	
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 	// MUsbOtgHostNotifyObserver
 	virtual void UsbOtgHostMessage(TInt aMessage);
@@ -108,7 +111,10 @@
 	TInt SetCtlSessionMode(const RMessage2& aMessage);
 	TInt RegisterMsgObserver(const RMessage2& aMessage, TBool& aComplete);
 	TInt DeRegisterMsgObserver();
-
+	
+	// Thermal info
+	void ForwardThermalMessage();
+	
 	// OTG
 	TInt BusRequest();
 	TInt BusRespondSrp();
@@ -161,6 +167,7 @@
 	TBool iPersonalityCfged;
 
  	TFixedArray<TUsbDeviceState, KDeviceStatesQueueSize> iDeviceStateQueue;
+
  	TUsbDeviceState iNotifiedDevState;
  	TBool iObserverQueueEvents;
  	TInt iDevStateQueueHead;
@@ -169,7 +176,9 @@
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
  	static CUsbSession* iCtlSession;
  	TBool iSessionCtlMode;
-
+	TInt iUsbThermalLevel;
+	TBool iThernalLevelMsgPending;
+	
 	RMessage2 iMsgObserverMessage;
 	TBool iMsgObserverOutstanding;
 	TFixedArray<TInt, KOtgHostMessageQueueSize> iMsgQueue;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/INC/musbdevicenotifyinternal.h	Wed Oct 13 16:35:28 2010 +0300
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 1997-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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef MUSBDEVICENOTIFYINTERNAL_H
+#define MUSBDEVICENOTIFYINTERNAL_H
+
+#include <MUsbDeviceNotify.h>
+#include <musbthermalnotify.h>
+/**
+ * The MUsbDeviceNotifyInternal class
+ * This is an internal class which is used for usb package only.
+ */
+class MUsbDeviceNotifyInternal : public MUsbDeviceNotify, public MUsbThermalNotify
+	{
+public:
+	/**
+	 * Called when the USB service state has changed
+	 *
+	 * @param aLastError The last error code detected
+	 * @param aOldState The previous service state
+	 * @param aNewState The new service state
+	 */
+	virtual void UsbServiceStateChange(TInt aLastError, TUsbServiceState aOldState, TUsbServiceState aNewState) = 0;
+
+	/**
+	 * Called when the USB device state has changed
+	 *
+	 * @param aLastError The last error code detected
+	 * @param aOldState The previous device state
+	 * @param aNewState The new device state
+	 */
+	virtual void UsbDeviceStateChange(TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) = 0;
+
+    /**
+     * Called when the thermal infomation had changed
+     *
+     * @param aLastError The last error code detected
+     * @param aNewValue The new value of thermal
+     */	
+	virtual void UsbThermalStateChange(TInt aLastError, TInt aNewValue) = 0;
+	};
+
+#endif	// MUSBDEVICENOTIFYINTERNAL_H
+	
\ No newline at end of file
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp	Wed Oct 13 16:35:28 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -31,6 +31,7 @@
 #include <cusbclasscontrollerplugin.h>
 #include "UsbUtils.h"
 #include <cusbmanextensionplugin.h>
+#include "musbdevicenotifyinternal.h"
 
 #ifdef USE_DUMMY_CLASS_CONTROLLER
 #include "CUsbDummyClassController.h"
@@ -74,6 +75,7 @@
 	EUidArrayNotEmpty,
 	};
 
+const TInt KUsbThermalInterfaceImplementationID = 0x10286a9c;
 
 CUsbDevice* CUsbDevice::NewL(CUsbServer& aUsbServer)
 /**
@@ -117,6 +119,7 @@
 	// we don't want to call ResetAndDestroy, because we don't own
 	// the observers themselves.
 	iObservers.Reset();
+	iThermalObservers.Reset();
 
 #ifndef __WINS__
 	LOGTEXT2(_L8("about to delete device state watcher @ %08x"), (TUint32) iDeviceStateWatcher);
@@ -260,9 +263,29 @@
 	LOGTEXT(_L8("<<CUsbDevice::InstantiateExtensionPluginsL"));
 	}
 
-
+void CUsbDevice::StartThermalMonitoring()
+	{
+	LOG_FUNC
 	
-   	
+	// Perform checking for usb thermal plugin to see
+	// whether there is a implemetation that match the thermal plug-in req.
+	for (TInt i=0; i<iExtensionPlugins.Count(); i++)
+		{
+		CUsbmanExtensionPlugin* plugin = iExtensionPlugins[i];
+		
+		TAny* res = plugin->GetInterface(TUid::Uid(KUsbThermalInterfaceImplementationID));
+		if(res != NULL)
+			{
+			LOGTEXT(_L8("<< UsbThermal Monitor plugin Found"));
+			MUsbThermalPluginInterface* tif = static_cast<MUsbThermalPluginInterface*>(res);
+			
+			// register ourself as an observer of thermal infor.
+			tif->RegisterThermalObserver(*this);
+			break;
+			}
+		}
+	}
+	
 void CUsbDevice::EnumerateClassControllersL()
 /**
  * Loads all USB class controllers at startup.
@@ -353,7 +376,7 @@
 		}
 	}
 
-void CUsbDevice::RegisterObserverL(MUsbDeviceNotify& aObserver)
+void CUsbDevice::RegisterObserverL(MUsbDeviceNotifyInternal& aObserver)
 /**
  * Register an observer of the device.
  * Presently, the device supports watching state.
@@ -363,11 +386,11 @@
 	{
 	LOG_FUNC
 
-	LEAVEIFERRORL(iObservers.Append(&aObserver));
+	LEAVEIFERRORL(iThermalObservers.Append(&aObserver));
 	}
 
 
-void CUsbDevice::DeRegisterObserver(MUsbDeviceNotify& aObserver)
+void CUsbDevice::DeRegisterObserver(MUsbDeviceNotifyInternal& aObserver)
 /**
  * De-registers an existing device observer.
  *
@@ -376,10 +399,10 @@
 	{
 	LOG_FUNC
 
-	TInt index = iObservers.Find(&aObserver);
+	TInt index = iThermalObservers.Find(&aObserver);
 
 	if (index >= 0)
-		iObservers.Remove(index);
+		iThermalObservers.Remove(index);
 	}
 
 
@@ -403,6 +426,9 @@
 
 	iLastError = KErrNone;
 	StartCurrentClassController();
+	
+	StartThermalMonitoring();
+
 	}
 
 void CUsbDevice::Stop()
@@ -434,11 +460,18 @@
 		// Change state straight away in case any of the clients check it
 		TUsbServiceState oldState = iServiceState;
 		iServiceState = aState;
-		TUint length = iObservers.Count();
 
+		TUint length = iThermalObservers.Count();
 		for (TUint i = 0; i < length; i++)
 			{
-			iObservers[i]->UsbServiceStateChange(LastError(), oldState,
+			iThermalObservers[i]->UsbServiceStateChange(LastError(), oldState,
+				iServiceState);
+			}		
+		
+		length = iObservers.Count();
+		for (TUint j = 0; j < length; j++)
+			{
+			iObservers[j]->UsbServiceStateChange(LastError(), oldState,
 				iServiceState);
 			}
 
@@ -506,11 +539,17 @@
 		// Change state straight away in case any of the clients check it
 		TUsbDeviceState oldState = iDeviceState;
 		iDeviceState = state;
-		TUint length = iObservers.Count();
-
+		
+		TUint length = iThermalObservers.Count();
 		for (TUint i = 0; i < length; i++)
 			{
-			iObservers[i]->UsbDeviceStateChange(LastError(), oldState, iDeviceState);
+			iThermalObservers[i]->UsbDeviceStateChange(LastError(), oldState, iDeviceState);
+			}
+		
+		length = iObservers.Count();
+		for (TUint j = 0; j < length; j++)
+			{
+			iObservers[j]->UsbDeviceStateChange(LastError(), oldState, iDeviceState);
 			}
 		}
 	}
@@ -1078,7 +1117,10 @@
 
 	iLastError = KErrNone;
 	StartCurrentClassController();
- 	}
+	
+	StartThermalMonitoring();
+	
+	}
  	
 TInt CUsbDevice::CurrentPersonalityId() const
 /**
@@ -1551,5 +1593,25 @@
  */
 	{
 	LOGTEXT2(_L8("CUsbDevice::MuepoDoRegisterStateObserverL aObserver = 0x%08x"),&aObserver);
-	RegisterObserverL(aObserver);
+	
+	// Don't use RegisterObserverL() interface anymore, because
+	// aObserver is MUsbDeviceNotify
+	LEAVEIFERRORL(iObservers.Append(&aObserver));
 	}
+	
+void CUsbDevice::UsbThermalStateChange(TInt aLastError, TInt aValue)
+    {
+	LOG_FUNC
+	
+	TUint length = iThermalObservers.Count();
+	LOGTEXT2(_L8("CUsbDevice::UsbThermalStateChange found %d observers"),length);
+	if( length == 0)
+		{
+		return;
+		}
+	
+	for (TUint i = 0; i < length; i++)
+		{
+		iThermalObservers[i]->UsbThermalStateChange(aLastError, aValue);
+		}
+    }
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp	Wed Oct 13 16:35:28 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -78,6 +78,9 @@
 	LOG_FUNC
 
 	iUsbServer->IncrementSessionCount();
+#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
+	iThernalLevelMsgPending = EFalse;
+#endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 	}
 
 
@@ -413,7 +416,30 @@
 		// is next called.
 		}
 	}
-
+#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
+void CUsbSession::UsbThermalStateChange(TInt /*aLastError*/, TInt aNewValue)
+#else
+void CUsbSession::UsbThermalStateChange(TInt /*aLastError*/, TInt /*aNewValue*/)
+#endif
+	{
+#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV	
+	LOG_FUNC
+	
+	// Update local copy with the latest value from P&S key
+	iUsbThermalLevel = aNewValue;
+	
+	// Forward it to upper layer if there is a client pending there
+ 	if (iMsgObserverOutstanding)
+		{
+		ForwardThermalMessage();
+		}
+	else
+		{
+		iThernalLevelMsgPending = ETrue;
+		}
+#endif //SYMBIAN_ENABLE_USB_OTG_HOST_PRIV 		
+	}
+	
 /**
  * Dequeues an event and completes the observer's request with it.
  */
@@ -450,6 +476,25 @@
    		}
    	}
 
+#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV	
+
+void CUsbSession::ForwardThermalMessage()
+	{
+	LOG_FUNC
+		
+	TPckg<TUint32> pckg(iUsbThermalLevel);
+	
+	// Mark no pending since we're going to complete client request.
+	iMsgObserverOutstanding = EFalse;
+	
+	// Mark no new thermal message need to be forward
+	iThernalLevelMsgPending = EFalse;
+	
+	const TInt err = iMsgObserverMessage.Write(0, pckg);
+	iMsgObserverMessage.Complete(err);
+	}
+#endif //SYMBIAN_ENABLE_USB_OTG_HOST_PRIV 
+	
 /**
  * Handles the request (in the form of a the message) received from the client
  *
@@ -883,14 +928,14 @@
  		LOGTEXT(_L8("    Reset Device Event Queue"));
  		iDevStateQueueHead = 0;
  		iDevStateQueueTail = 0;
- 		iObserverQueueEvents = ETrue;
+		iObserverQueueEvents = ETrue;
 	 	}
  	else if (iDevStateQueueHead != iDevStateQueueTail)
 	 	{
  		// event(s) queued, we can de-queue one now
  		UsbDeviceDequeueEvent();
 	 	}
-
+		
 	return KErrNone;
 	}
 
@@ -915,7 +960,9 @@
 
 	iServiceObserverMessage = aMessage;
 	iServiceObserverOutstanding = ETrue;
+	
 	aComplete = EFalse;
+		
 	return KErrNone;
 	}
 
@@ -1924,7 +1971,15 @@
  		// event(s) queued, we can de-queue one now
  		UsbMsgDequeue();
 	 	}
-
+		
+#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
+	if (iThernalLevelMsgPending)
+		{
+		ForwardThermalMessage();
+		aComplete = ETrue;
+		}
+#endif
+		
 	return KErrNone;
 	}
 
--- a/usbmgmt/usbmgr/usbman/server/group/BLD.INF	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/group/BLD.INF	Wed Oct 13 16:35:28 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-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"
@@ -27,7 +27,8 @@
 ../public/usbshared.h					SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/usbshared.h)
 ../public/usbotgdefs.h					SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usbotgdefs.h)
 ../public/usbhostdefs.h					SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usbhostdefs.h)
-./backup_registration.xml  			/epoc32/data/z/private/101fe1db/backup_registration.xml
+../public/musbthermalnotify.h				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(musbthermalnotify.h)
+./backup_registration.xml  				/epoc32/data/z/private/101fe1db/backup_registration.xml
 
 PRJ_TESTEXPORTS
 
--- a/usbmgmt/usbmgr/usbman/server/public/MUsbDeviceNotify.h	Wed Sep 15 14:10:49 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/public/MUsbDeviceNotify.h	Wed Oct 13 16:35:28 2010 +0300
@@ -15,16 +15,9 @@
 *
 */
 
-/** @file
- *
- * The mixin used by the USB Device object to notify all of
- * it's observers of any state changes that occur
- *
- * Copyright (c) 1997-2007 Symbian Ltd.  All rights reserved.
- */
 
-#ifndef __MUSBDEVICENOTIFY_H__
-#define __MUSBDEVICENOTIFY_H__
+#ifndef MUSBDEVICENOTIFY_H
+#define MUSBDEVICENOTIFY_H
 
 #include <usbstates.h>
 
@@ -59,5 +52,5 @@
 	virtual void UsbDeviceStateChange(TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) = 0;
 	};
 
-#endif
+#endif //MUSBDEVICENOTIFY_H
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/public/musbthermalnotify.h	Wed Oct 13 16:35:28 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef MUSBTHERMALNOTIFY_H
+#define MUSBTHERMALNOTIFY_H
+
+#include <e32def.h>
+
+// Class used to be used as callbacks to report thermal information
+class MUsbThermalNotify
+	{
+public:
+    /**
+     * Called by thermal monitor plugin when there is any changes about thermal info
+     *
+     * @param aLastError The last error code detected
+     * @param aValue The new value of thermal
+     */
+	virtual void UsbThermalStateChange(TInt aLastError, TInt aValue) = 0;
+	};
+
+/**
+ *  This class is used by usbman server to register itself as an observer of 
+ *  system thermal event.
+ */  
+class MUsbThermalPluginInterface
+	{
+public:	
+	virtual void RegisterThermalObserver(MUsbThermalNotify& aThermalObserver) = 0;
+	};
+	
+#endif //MUSBTHERMALNOTIFY_H