# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1283455417 -10800 # Node ID 613028a7da24ce5495072bfb3042858e858eb024 # Parent 1a2a19ee918db3512e0be4bee8da065c1d912317 Revision: 201035 Kit: 201035 diff -r 1a2a19ee918d -r 613028a7da24 package_definition.xml --- a/package_definition.xml Wed Aug 18 11:34:45 2010 +0300 +++ b/package_definition.xml Thu Sep 02 22:23:37 2010 +0300 @@ -1,29 +1,29 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 1a2a19ee918d -r 613028a7da24 package_map.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/package_map.xml Thu Sep 02 22:23:37 2010 +0300 @@ -0,0 +1,1 @@ + diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/conf/usbmanager.confml Binary file usbmgmt/usbmgr/conf/usbmanager.confml has changed diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp --- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp Wed Aug 18 11:34:45 2010 +0300 +++ b/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp Thu Sep 02 22:23:37 2010 +0300 @@ -184,16 +184,17 @@ User::LeaveIfError(iCommLdd.EndpointCaps(dataptr)); TBool foundIntIN = EFalse; + const TUint KEndPointType = KUsbEpTypeInterrupt | KUsbEpDirIn; for (TInt i = 0; i < epNum; i++) { - const TUsbcEndpointCaps* caps = &data[i].iCaps; - if ((caps->iTypesAndDir & (KUsbEpTypeInterrupt | KUsbEpDirIn)) - == (KUsbEpTypeInterrupt | KUsbEpDirIn)) + const TUsbcEndpointData* epData = &data[i]; + if ((!epData->iInUse) && // Not in use + ((epData->iCaps.iTypesAndDir & KEndPointType) == KEndPointType)) { // EEndpoint1 is going to be our INTERRUPT (IN, write) endpoint ifc0().iEndpointData[0].iType = KUsbEpTypeInterrupt; ifc0().iEndpointData[0].iDir = KUsbEpDirIn; - ifc0().iEndpointData[0].iSize = caps->MinPacketSize(); + ifc0().iEndpointData[0].iSize = epData->iCaps.MinPacketSize(); ifc0().iEndpointData[0].iInterval = 0x01; ifc0().iEndpointData[0].iInterval_Hs = 0x01; @@ -273,18 +274,27 @@ TBool foundBulkIN = EFalse; TBool foundBulkOUT = EFalse; TInt maxPacketSize = 0; + const TUint KEndPointBulkInType = KUsbEpTypeBulk | KUsbEpDirIn; + const TUint KEndPointBulkOutType = KUsbEpTypeBulk | KUsbEpDirOut; for (TInt i = 0; i < epNum; i++) { - const TUsbcEndpointCaps* caps = &data[i].iCaps; - maxPacketSize = caps->MaxPacketSize(); - if (!foundBulkIN && (caps->iTypesAndDir & (KUsbEpTypeBulk - | KUsbEpDirIn)) == (KUsbEpTypeBulk | KUsbEpDirIn)) + const TUsbcEndpointData* epData = &data[i]; + + // Check if this endpoint is in use + if (epData->iInUse) + { + continue; + } + + maxPacketSize = epData->iCaps.MaxPacketSize(); + if (!foundBulkIN && + ((epData->iCaps.iTypesAndDir & KEndPointBulkInType) == KEndPointBulkInType)) { // EEndpoint1 is going to be our TX (IN, write) endpoint ifc1().iEndpointData[0].iType = KUsbEpTypeBulk; ifc1().iEndpointData[0].iDir = KUsbEpDirIn; ifc1().iEndpointData[0].iSize = maxPacketSize; - ifc1().iEndpointData[0].iInterval_Hs = 0x01; + ifc1().iEndpointData[0].iInterval_Hs = 0x0; ifc1().iEndpointData[0].iBufferSize = KMaxScBufferSize; if (isResourceAllocationV2) @@ -301,14 +311,14 @@ continue; } - if (!foundBulkOUT && (caps->iTypesAndDir & (KUsbEpTypeBulk - | KUsbEpDirOut)) == (KUsbEpTypeBulk | KUsbEpDirOut)) + if (!foundBulkOUT && + ((epData->iCaps.iTypesAndDir & KEndPointBulkOutType) == KEndPointBulkOutType)) { // EEndpoint2 is going to be our RX (OUT, read) endpoint ifc1().iEndpointData[1].iType = KUsbEpTypeBulk; ifc1().iEndpointData[1].iDir = KUsbEpDirOut; ifc1().iEndpointData[1].iSize = maxPacketSize; - ifc1().iEndpointData[1].iInterval_Hs = 0; + ifc1().iEndpointData[1].iInterval_Hs = 0x1; ifc1().iEndpointData[1].iBufferSize = KMaxScBufferSize; ifc1().iEndpointData[1].iReadSize = KMaxScReadSize; diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanager.cpp --- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanager.cpp Wed Aug 18 11:34:45 2010 +0300 +++ b/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanager.cpp Thu Sep 02 22:23:37 2010 +0300 @@ -414,16 +414,15 @@ aError = KErrNone; // Configuring DHCP server to assign the IP address to PC(host) - // Using static IP temporarily and will swithch to use DHCP server to do provision. -// TRequestStatus stat; -// OstTrace0(TRACE_NORMAL, CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_CALL_IOCTL, "About to call to Ioctl()"); -// -// TNcmMacAddress macAddr = iHostMacAddress; -// iConnection.Ioctl(KCOLConfiguration, KConnDhcpSetHwAddressParams, stat, -// &macAddr); -// User::WaitForRequest(stat); -// aError = stat.Int(); -// OstTrace1( TRACE_NORMAL, CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_RETURN_IOCTL, "Return from Ioctl:;aError=%d", aError ); + TRequestStatus stat; + OstTrace0(TRACE_NORMAL, CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_CALL_IOCTL, "About to call to Ioctl()"); + + TNcmMacAddress macAddr = iHostMacAddress; + iConnection.Ioctl(KCOLConfiguration, KConnDhcpSetHwAddressParams, stat, + &macAddr); + User::WaitForRequest(stat); + aError = stat.Int(); + OstTrace1( TRACE_NORMAL, CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_RETURN_IOCTL, "Return from Ioctl:aError=%d", aError ); if (KErrNone == aError) { diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/group/Usbman.iby --- a/usbmgmt/usbmgr/group/Usbman.iby Wed Aug 18 11:34:45 2010 +0300 +++ b/usbmgmt/usbmgr/group/Usbman.iby Thu Sep 02 22:23:37 2010 +0300 @@ -140,22 +140,6 @@ // *** only. // USB_PLUGIN(Obexclasscontroller.dll,101fbf27.rsc) -#ifdef SYMBIAN_INCLUDE_USB_RNDIS -// *** RNDIS Class Controller. - -#include - -USB_PLUGIN(rndisclasscontroller.dll, rndisclasscontroller.rsc) -USB_PLUGIN(rndisproviders.dll, rndisproviders.rsc) - -// RNDIS IAP ID Backup registration file -data=ZPRIVATE\101fe1db\backup_registration_rndis.xml private\101fe1db\backup_registration_rndis.xml - -file=ABI_DIR\USB_DIR\rndispkt.drv System\Libs\rndispkt.drv -file=ABI_DIR\USB_DIR\rndismessages.dll System\Libs\rndismessages.dll -file=ABI_DIR\USB_DIR\rndisagt.agt System\Libs\rndisagt.agt -#endif // SYMBIAN_INCLUDE_USB_RNDIS - #endif // !defined(__USB) || !defined(EUSBC) #endif // __USBMAN_IBY__ diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp Wed Aug 18 11:34:45 2010 +0300 +++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp Thu Sep 02 22:23:37 2010 +0300 @@ -223,11 +223,11 @@ } error = interface_ep0.GetInterfaceDescriptor(ifDescriptor); + interface_ep0.Close(); if (error) { OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP14, "***** Mass Storage FDC get interface descriptor Failed" ); - interface_ep0.Close(); delete data; OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP7 ); return error; @@ -261,7 +261,6 @@ error = iMsmmSession.AddFunction(*data, aInterfaces[0], token); - interface_ep0.Close(); delete data; OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP8 ); return error; diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf Wed Aug 18 11:34:45 2010 +0300 +++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf Thu Sep 02 22:23:37 2010 +0300 @@ -26,7 +26,6 @@ #include "../client/group/bld.inf" #include "../server/group/bld.inf" #include "../referencepolicyplugin/group/bld.inf" -#include "../refppnotifier/group/bld.inf" PRJ_EXPORTS usbhostmsmm.iby /epoc32/rom/include/usbhostmsmm.iby diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/bld.inf --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/bld.inf Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* -*/ - -/** - @file - @internalComponent -*/ - -PRJ_PLATFORMS -ARMV5 GCCXML - -PRJ_TESTEXPORTS -refppnotifier.iby /epoc32/rom/include/refppnotifier.iby - -PRJ_TESTMMPFILES - -#if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && !defined(WINS) && !defined(X86GCC) -refppnotifier.mmp -#endif \ No newline at end of file diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.iby --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.iby Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* -*/ - -/** - @file - @internalComponent -*/ - -#ifndef __REFPPNOTIFIER_IBY__ -#define __REFPPNOTIFIER_IBY__ - -#include -#ifdef _DEBUG -ECOM_PLUGIN_UDEB(refppnotifier.dll, refppnotifier.rsc) -#else -ECOM_PLUGIN(refppnotifier.dll, refppnotifier.rsc) -#endif - -data=DATAZ_\resource\apps\dialog.rsc "\resource\apps\dialog.rsc" - -#endif // __REFPPNOTIFIER_IBY__ diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.mmp --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.mmp Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* -*/ - -/** - @file - @internalComponent -*/ - -TARGET refppnotifier.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10285ddd - -CAPABILITY ProtServ TrustedUI - - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -APP_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../src -SOURCE refppnotifier.cpp refppdialog.cpp - -RESOURCE refppnotifier.rss - -START RESOURCE dialog.rss -HEADER -TARGETPATH /resource/apps -END - -LIBRARY euser.lib -LIBRARY ecom.lib -LIBRARY eikdlg.lib -LIBRARY eiksrv.lib -LIBRARY eikcoctl.lib -LIBRARY cone.lib -LIBRARY eikcdlg.lib - -USERINCLUDE ../inc - -NOEXPORTLIBRARY - -VENDORID 0x70000001 diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* -*/ - -/** - @file - @internalComponent -*/ - -#ifndef CREFPPDIALOG_H -#define CREFPPDIALOG_H - -// INCLUDES -#include -// CLASS DECLARATION - -/** - The CRefPPDialog class - This is a subclass derived from CEikDialog, it is used by notifier to display - the message of Errors from MS mount manager. - */ -class CRefPPDialog : public CEikDialog - { -public: - - ~CRefPPDialog(); - static CRefPPDialog* NewL(TBool* aDlgFlag); - static CRefPPDialog* NewLC(TBool* aDlgFlag); - -private: - - CRefPPDialog(TBool* aDlgFlag); - void ConstructL(); -protected: - virtual TBool OkToExitL(TInt aButtonId); -private: - TBool* iDlgFlagInOwner; - - }; // class CRefPPDialog - -#endif // CREFPPDIALOG_H diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* -*/ - -/** - @file - @internalComponent -*/ - -#ifndef REFPPNOTIFIER_H -#define REFPPNOTIFIER_H - -#include -#include -#include "refppdialog.h" - -/** - The CMsmmRefPolicyPluginNotifier class - This is a subclass derived from MEikSrvNotifierBase2, it is used as a ECOM - plug-in of notify service to provide the function of showing a dialog when - error occured in MS mount manager. - */ -NONSHARABLE_CLASS (CMsmmRefPolicyPluginNotifier) : public MEikSrvNotifierBase2 - { -public: - ~CMsmmRefPolicyPluginNotifier(); - static CMsmmRefPolicyPluginNotifier* NewL(); - static CMsmmRefPolicyPluginNotifier* NewLC(); - -public: - - // from MEikSrvNotifierBase2 - void Release(); - TNotifierInfo RegisterL(); - TNotifierInfo Info() const; - TPtrC8 StartL(const TDesC8& aBuffer); - void StartL(const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage); - void Cancel(); - TPtrC8 UpdateL(const TDesC8& aBuffer); - -private: - CMsmmRefPolicyPluginNotifier(); - void ConstructL(); - -private: - TNotifierInfo iInfo; - RMessagePtr2 iMessage; - CCoeEnv* iCoeEnv; - TInt iOffset; - TBool iDialogIsVisible; - CRefPPDialog* iDialogPtr; - }; - -#endif /*REFPPNOTIFIER_H*/ diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.hrh --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.hrh Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* -*/ - -/** - @file - @internalComponent -*/ - -#ifndef REFPPNOTIFIER_HRH -#define REFPPNOTIFIER_HRH - -// Implementation UID for reference notifier of Policy plug-in -#define KUidMsmmReferenceNotifierImp 0x10285DDE - -enum -{ - EReferencePPNotifierButton, //ID of button on dialog - EReferencePPNotifierMsg //ID of the label on dialog -}; - -#endif /*REFPPNOTIFIER_HRH*/ diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* Reference policy plugin notifier implementation resource file -* -*/ - -/** - @file - @internalComponent -*/ - -#include -#include -#include -#include "refppnotifier.hrh" -NAME REFN - -RESOURCE RSS_SIGNATURE { } - -RESOURCE TBUF16 { buf=""; } - -RESOURCE DLG_BUTTONS r_dialog_buttons -{ -buttons = - { - DLG_BUTTON - { - id = EReferencePPNotifierButton; - button = CMBUT {txt = "OK";}; - hotkey='1'; - } - }; -} - -RESOURCE DIALOG r_notifier_dialog - { - title = "MSMM message"; - buttons = r_dialog_buttons; - items = - { - DLG_LINE - { - type = EEikCtLabel; - id = EReferencePPNotifierMsg; - control = LABEL - { - standard_font = EEikLabelFontAnnotation; - txt = "NULL"; - }; - } - }; - } diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppdialog.cpp --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppdialog.cpp Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* -*/ - -/** - @file - @internalComponent -*/ - -#include "refppdialog.h" -/** - Constructor - */ -CRefPPDialog::CRefPPDialog(TBool* aDlgFlag):iDlgFlagInOwner(aDlgFlag) - { - } -/** - Destructor - */ -CRefPPDialog::~CRefPPDialog() - { - } -/** - This is a static method used by refppnotifier to initialize a CRefDialog object. - - @param aDlgFlag The flag in the owner of this dialog. This flag is used - to indicate if the dialog has been closed by the user - by click the button on the dialog. - - @return A pointer to the newly initialized object. - */ -CRefPPDialog* CRefPPDialog::NewLC(TBool* aDlgFlag) - { - CRefPPDialog* self = new (ELeave)CRefPPDialog(aDlgFlag); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } -/** - This is a static method used by refppnotifier to initialize a CRefDialog object. - - @param aDlgFlag The flag in the owner of this dialog. This flag is used - to indicate if the dialog has been closed by the user - by click the button on the dialog. - - @return A pointer to the newly initialized object. - */ -CRefPPDialog* CRefPPDialog::NewL(TBool* aDlgFlag) - { - CRefPPDialog* self=CRefPPDialog::NewLC(aDlgFlag); - CleanupStack::Pop(self); - return self; - } -/** - Method for the second phase construction. - */ -void CRefPPDialog::ConstructL() - { - } -/** - Get called when the dialog is closed by user closing the dialog. Must return ETrue to - allow the dialog to close. - - @param aButtonId the button pressed when OkToExitL() is called. - - @return TBool ETrue to let the dialog close. - EFalse to keep the dialog on screen. - - */ -TBool CRefPPDialog::OkToExitL(TInt /*aButtonId*/) - { - *iDlgFlagInOwner = EFalse; - return ETrue; - } diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,268 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* -*/ - -/** - @file - @internalComponent -*/ - -#include "refppnotifier.h" -#include -#include "refppnotifier.hrh" -#include -#include -#include -#include -#include -const TUid KMsmmRefNotifierChannel = {0x10009D48}; //0x10208C14 -/** - Initialize and put the notifiers in this DLL into the array and return it. - - @return CArrayPtr* The array contents the notifiers in this dll. - */ -CArrayPtr* NotifierArray() - { - CArrayPtrFlat* subjects=NULL; - TRAPD(err, subjects = new(ELeave) CArrayPtrFlat(1)); - if( err == KErrNone ) - { - TRAP(err, subjects->AppendL(CMsmmRefPolicyPluginNotifier::NewL())); - return(subjects); - } - else - { - return NULL; - } - } - -//Adding ECOM SUPPORT -/** - Build up the table contains the implementation ID and the notifier array. - */ -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY(KUidMsmmReferenceNotifierImp, NotifierArray) - }; - -/** - Initialize and put the notifiers in this DLL into the array and return it. - @param aTableCount a TInt reference, when return it contains the entry number in the - array of ImplementationTable[]. - @return CArrayPtr* The table of implementations. - */ -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) - { - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - return ImplementationTable; - } - -// Member functions -/** - Static method to initialize a CMsmmRefPolicyPluginNotifier object. This method may leave. - - @return CMsmmRefPolicyPluginNotifier* a pointer to an object of CMsmmRefPolicyPluginNotifier - */ -CMsmmRefPolicyPluginNotifier* CMsmmRefPolicyPluginNotifier::NewL() - { - CMsmmRefPolicyPluginNotifier* self = CMsmmRefPolicyPluginNotifier::NewLC(); - CleanupStack::Pop(self); - return self; - } -/** - Static method to initialize a CMsmmRefPolicyPluginNotifier object. This method may leave. - - @return CMsmmRefPolicyPluginNotifier* a pointer to an object of CMsmmRefPolicyPluginNotifier - */ -CMsmmRefPolicyPluginNotifier* CMsmmRefPolicyPluginNotifier::NewLC() - { - CMsmmRefPolicyPluginNotifier* self = new (ELeave) CMsmmRefPolicyPluginNotifier(); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } -/** - Constructor. - */ -CMsmmRefPolicyPluginNotifier::CMsmmRefPolicyPluginNotifier():iDialogIsVisible(EFalse),iDialogPtr(0) - { - iCoeEnv = CCoeEnv::Static(); - } - -/** - Destructor. - */ -CMsmmRefPolicyPluginNotifier::~CMsmmRefPolicyPluginNotifier() - { - iCoeEnv->DeleteResourceFile(iOffset); - if (iDialogIsVisible) - { - delete iDialogPtr; - } - } - -/** - This method is called when client of this notifier disconnect from notify server. - */ -void CMsmmRefPolicyPluginNotifier::Release() - { - delete this; - } - -/** - This method is called when notify server starts and get all the plug-ins of notifiers. - By calling this method notify server knows the ID, channel and priority of this notifier. - */ -MEikSrvNotifierBase2::TNotifierInfo CMsmmRefPolicyPluginNotifier::RegisterL() - { - iInfo.iUid = TUid::Uid(KUidMountPolicyNotifier); - iInfo.iChannel = KMsmmRefNotifierChannel; - iInfo.iPriority = ENotifierPriorityLow; - return iInfo; - } - -/** - This method just returns the same TNotifierInfo as it is in RegisterL(). - */ -MEikSrvNotifierBase2::TNotifierInfo CMsmmRefPolicyPluginNotifier::Info() const - { - return iInfo; - } - -/** - Starts the notifier. - - This is called as a result of a client-side call to RNotifier::StartNotifier(), - which the client uses to start a notifier from which it does not expect a response. - - The function is synchronous, but it should be implemented so that it completes as - soon as possible, allowing the notifier framework to enforce its priority mechanism. - - It is not possible to to wait for a notifier to complete before returning from this - function unless the notifier is likely to finish implementing its functionality immediately. - - @param aBuffer the message sent from client. - - @return TPtrC8 Defines an empty or null literal descriptor - for use with 8-bit descriptors - */ -TPtrC8 CMsmmRefPolicyPluginNotifier::StartL(const TDesC8& /*aBuffer*/) - { - return KNullDesC8(); - } -/** - Starts the notifier. - - This is called as a result of a client-side call to the asynchronous function - RNotifier::StartNotifierAndGetResponse(). This means that the client is waiting, - asynchronously, for the notifier to tell the client that it has finished its work. - - It is important to return from this function as soon as possible, and derived - classes may find it useful to take a copy of the reply-slot number and the - RMessage object. - - The implementation of a derived class must make sure that Complete() is called - on the RMessage object when the notifier is deactivated. - - This function may be called multiple times if more than one client starts - the notifier. - - @param aBuffer Data that can be passed from the client-side. The format - and meaning of any data is implementation dependent. - - aReplySlot Identifies which message argument to use for the reply. - This message argument will refer to a modifiable descriptor, - a TDes8 type, into which data can be returned. The format and - meaning of any returned data is implementation dependent. - - aMessage Encapsulates a client request. -*/ -void CMsmmRefPolicyPluginNotifier::StartL(const TDesC8& aBuffer, - TInt /*aReplySlot*/, - const RMessagePtr2& aMessage) - { - // extract the notifier request parameters - iMessage = aMessage; - - const TUint8* Buffer= aBuffer.Ptr(); - const THostMsErrData* Data = reinterpret_cast(Buffer); - - HBufC16* HeapBuf = HBufC16::NewL(aBuffer.Length()); - CleanupStack::PushL(HeapBuf); - _LIT(KFormat1,"MSMMErr:%d SymbianErr:%d %S %S on Drive %c"); - TPtr16 PtrBuf = HeapBuf->Des(); - - PtrBuf.Format(KFormat1,Data->iError,Data->iE32Error,&Data->iProductString,&Data->iManufacturerString,Data->iDriveName); - - if (iDialogIsVisible && iDialogPtr) - { - delete iDialogPtr; - } - iDialogPtr = CRefPPDialog::NewL(&iDialogIsVisible); - iDialogPtr->PrepareLC(R_NOTIFIER_DIALOG); - CEikLabel *pLabel = static_cast (iDialogPtr->ControlOrNull(EReferencePPNotifierMsg)); - pLabel->SetTextL(PtrBuf); - - iDialogPtr->RunLD(); - iDialogIsVisible = ETrue; - - CleanupStack::Pop(HeapBuf); - - // complete - iMessage.Complete(KErrNone); - } - -/** - Cancels an active notifier. - - This is called as a result of a client-side call to RNotifier::CancelNotifier(). - - An implementation should free any relevant resources and complete any outstanding - messages, if relevant. - */ -void CMsmmRefPolicyPluginNotifier::Cancel() - { - if (iDialogIsVisible && iDialogPtr) - { - delete iDialogPtr; - iDialogPtr = NULL; - } - } - -/** - Updates a currently active notifier with new data.This is called as a result - of a client-side call to RNotifier::UpdateNotifier(). - - @param aBuffer Data that can be passed from the client-side. The format - and meaning of any data is implementation dependent. - - @return KNullDesC8() Defines an empty or null literal descriptor for use - with 8-bit descriptors. - */ -TPtrC8 CMsmmRefPolicyPluginNotifier::UpdateL(const TDesC8& /*aBuffer*/) - { - return KNullDesC8(); - } -/** - Second phase construction. - */ -void CMsmmRefPolicyPluginNotifier::ConstructL() - { - _LIT(KResFileName,"z:\\resource\\apps\\dialog.rsc"); - iOffset=iCoeEnv->AddResourceFileL(KResFileName); - } - -// End of file diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.rss --- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.rss Wed Aug 18 11:34:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2008-2009 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: -* Reference policy plugin notifier implementation resource file -* -*/ - -/** - @file - @internalComponent -*/ - -#include -#include -#include "refppnotifier.hrh" -#include "uikon.hrh" - -RESOURCE REGISTRY_INFO theInfo - { - // UID for the DLL - dll_uid = 0x10285ddd; - // Declare array of interface info - interfaces = - { - INTERFACE_INFO - { - // UID of interface that is implemented - interface_uid = KUikonUidPluginInterfaceNotifiers; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = KUidMsmmReferenceNotifierImp; - version_no = 1; - display_name = "Reference notifier"; - default_data = "Referencenotifier"; - opaque_data = ""; - } - }; - } - }; - } diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf --- a/usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf Wed Aug 18 11:34:45 2010 +0300 +++ b/usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf Thu Sep 02 22:23:37 2010 +0300 @@ -20,6 +20,7 @@ 10208DD7.txt /epoc32/data/z/private/10202be9/10208dd7.txt 10208DD7.txt /epoc32/release/winscw/udeb/z/private/10202be9/10208dd7.txt 10208DD7.txt /epoc32/release/winscw/urel/z/private/10202be9/10208dd7.txt +../public/usbchargingpublishedinfo.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(/) // ConfML Files ../conf/usbmanager_10208dd7.crml OS_LAYER_EXPORTS_CRML(usbmanager_10208dd7.crml) diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgr/usbman/chargingplugin/public/usbchargingpublishedinfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usbmgmt/usbmgr/usbman/chargingplugin/public/usbchargingpublishedinfo.h Thu Sep 02 22:23:37 2010 +0300 @@ -0,0 +1,195 @@ +/* +* 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: +* +*/ + +/** @file + @brief USB charging information header + @version 0.2.0 + + This header specifies the published information of USB charging plug-in. + @publishedPartner +*/ + +#ifndef USBCHARGINGPUBLISHEDINFO_H +#define USBCHARGINGPUBLISHEDINFO_H + +#include + + +/** this is only applicable when charging port is a Standard Downstream Port +*/ +enum TUsbConnectionStatus + { + /** this is the initial value. */ + EUsbConnectionStatusNone, + + /** This status means that this USB device is in suspend state. */ + EUsbConnectionStatusSuspend, + + /** This status means that this USB device is in configured state. */ + EUsbConnectionStatusConfigured + }; + +enum TUsbChargingPortType + { + /** + * This device is no longer connected to a powered port. + * iMinAvailableVbusCurrent, iMaxVbusCurrent and iMinVbusVoltage are 0. + * iUsbConnStatus is EUsbConnectionStatusNone. + */ + EUsbChargingPortTypeNone = 0, + + /** + * This device is connected to a port that can't be recognized. + * iMinAvailableVbusCurrent, iMaxVbusCurrent and iMinVbusVoltage are 0. + * iUsbConnStatus is EUsbConnectionStatusNone. + */ + EUsbChargingPortTypeUnsupported, + + /** + * This device is connected to a charging port. + * This is not an exact port type and the port may be a dedicated charging port or a charging downstream port. + * For there is more constraint on charging downstream port output, current and voltage are computed according + * to charging downstream port. + * See below for detail. + */ + EUsbChargingPortTypeChargingPort, + + /** + * This device is connected to a dedicated charging port. + * iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1). + * iMaxVbusCurrent is 1800mA (refer to IDEV_DCHG in table 5-2 of BC1.1). + * iMinVbusVoltage is 2000mV ( refer to VCHG_SHT_DWN in table 5-1 of BC1.1). + * iUsbConnStatus is EUsbConnectionStatusNone. + */ + EUsbChargingPortTypeDedicatedChargingPort, + + /** + * This device is connected to a charging downstream port. + * - If this device works at low speed or full speed mode. + * - iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1). + * - iMaxVbusCurrent is 1500mA (refer to IDEV_HCHG_LFS in table 5-2 of BC1.1). + * - iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). + * - iUsbConnStatus is EUsbConnectionStatusNone. + * + * - If this device works at high speed. + * - if USB hardware supports current limit when chirping. + * - iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1). + * - iMaxVbusCurrent is 900mA (refer to IDEV_HCHG_HS in table 5-2 of BC1.1). + * - iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). + * - iUsbConnStatus is EUsbConnectionStatusNone + * - if USB hardware does not support current limit when chirping + * - iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1). + * - iMaxVbusCurrent is 560mA (refer to IDEV_HCHG_CHRP in table 5-2 of BC1.1). + * - iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). + * - iUsbConnStatus is EUsbConnectionStatusNone. + */ + EUsbChargingPortTypeChargingDownstreamPort, + + /** This device is connected to a standard downstream port. + * This device negoiates the charging current with standard host by configuration descriptor. There are three numbers of + * milliamps that can be negoiated, 500mA, 100mA and 8mA. + * - if any of the three numbers is acceptted by host. + * - if this device is in configured state. + * - iMinAvailableVbusCurrent and iMaxVbusCurrent are 500mA or 100mA or 8mA. + * - iUsbConnStatus is EUsbConnectionStatusConfigured. + * - if this device is in suspend state. + * - iMinAvailableVbusCurrent and iMaxVbusCurrent are 2mA (refer to ISUSP in table 5-2 of BC1.1). + * - iUsbConnStatus is EUsbConnectionStatusSuspend. + * - iMinVbusVoltage is 4500mV in both cases. 4.5 V comes from the port supply requirement 4.75 V with the worst case + * voltage drops for 500 mA current taken into account. That is: 4.75 V - VGNDD - VBUSD = 4.75 V - 0.125 V - 0.125 V = 4.5 V. + * See Section 7.2.2 Voltage Drop Budget in USB 2.0 spec. + * + * - if none of the three numbers is acceptted by host. + * - iMinAvailableVbusCurrent, iMaxVbusCurrent and iMinVbusVoltage are 0 and iUsbConnStatus is EUsbConnectionStatusNone. + */ + EUsbChargingPortTypeStandardDownstreamPort, + + /** This device is connected to an ACA and ID pin status is RidA. + * When ID pin status is RidA, this device works as A-device and is connected to an ACA. The ACA is connected with a charger + * or a charging downstream port on ACA's charging port and may be connected to a B-device on ACA's accessory port. + * The B-device can draw current from the charger. + * iMinAvailableVbusCurrent is not more than 500mA. This value comes from 500mA (min IDCHG refer to in table 5-2 of BC1.1) minus the current that B-device + * can draw. This value is maxpower field of B-device configuration descriptor. If there is no connected B-device, minus 0 from 500mA. + * iMaxVbusCurrent is 1500mA (refer to max IDCHG in table 5-2 of BC1.1). For ACA can't distinguish a charger and a charging downstream + * port so we select more contraint output. + * iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). + * iUsbConnStatus is EUsbConnectionStatusNone. + */ + EUsbChargingPortTypeAcaRidA, + + /** This device is connected to an ACA and ID pin status is RidB + * When ID pin status is RidB, this device works as a B-device and is connected to an ACA. The ACA is connected with a charger or a + * charging downstream port on ACA's charging port. ACA may also be connected to A-device on accessory port but A-device VBUS + * powers off. A-device shall not draw current from the accessory port. + * iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1). + * iMaxVbusCurrent is 1500mA (refer to max IDCHG in table 5-2 of BC1.1). + * iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). + * iUsbConnStatus is EUsbConnectionStatusNone. + */ + EUsbChargingPortTypeAcaRidB, + + /** This device is connected to an ACA and ID pin status is RidC + * When ID pin status is RidC, this device work as a B-device and is connected to an ACA. The ACA is connected with a charger or + * a charging downstream port on ACA's charging port and a A-device on accessory port. The A-device VBus powers on. A-device + * shall not draw current from accessory port. + * iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1). + * iMaxVbusCurrent is 1500mA (refer to max IDCHG in table 5-2 of BC1.1). + * iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). + * iUsbConnStatus is EUsbConnectionStatusNone. + */ + EUsbChargingPortTypeAcaRidC + }; + +/** +* the P&S key category of published charing information. +*/ +const TUid KPropertyUidUsbBatteryChargingCategory = {0x101fe1db}; + +/** +* the P&S key ID of published charing information. +*/ +const TUint KPropertyUidUsbBatteryChargingInfo = 1; + +/** +* the structure of published charing information, data in P&S is a TPckgBuf wrappering this structure +*/ +NONSHARABLE_STRUCT(TPublishedUsbChargingInfo) + { + /** the port type this device connects to. */ + TUsbChargingPortType iChargingPortType; + + /** this field is only appliable when this device connects to a standard downstream port. */ + TUsbConnectionStatus iUsbConnStatus; + + /** + * This is the number of milliamps in unit 1 mA that can safely be drawn from VBUS + * without needing to observe the VBUS level. + */ + TUint16 iMinAvailableVbusCurrent; + + /** + * This is the number of milliamps that can be drawn from VBus in unit 1 mA. VBUS Level may drop down and must be monitored + * to prevent VBUS Level drop below iMaxVbusCurrent. + */ + TUint16 iMaxVbusCurrent; + + /** VBUS Level must be above this number when charging and this number is in unit 1 mV. */ + TUint16 iMinVbusVoltage; + }; + + +#endif // USBCHARGINGPUBLISHEDINFO_H diff -r 1a2a19ee918d -r 613028a7da24 usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/dummy_ncminternalsrv.mmp --- a/usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/dummy_ncminternalsrv.mmp Wed Aug 18 11:34:45 2010 +0300 +++ b/usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/dummy_ncminternalsrv.mmp Thu Sep 02 22:23:37 2010 +0300 @@ -33,7 +33,6 @@ SOURCEPATH ../src LIBRARY euser.lib -LIBRARY usblogger.lib SOURCE dummy_ncminternalsrv.cpp