--- a/layers.sysdef.xml Fri Jun 11 16:29:16 2010 +0100
+++ b/layers.sysdef.xml Thu Jul 22 16:49:39 2010 +0100
@@ -7,11 +7,11 @@
<systemModel>
<layer name="os_layer">
<module name="usb">
- <unit unitID="lcdo.usb" mrp="" bldFile="&layer_real_source_path;/group" name="usb" />
+ <unit unitID="usbdo.usb" mrp="" bldFile="&layer_real_source_path;/group" name="usb" />
</module>
<module name="">
- <unit unitID="lcdo.usb.usbextension" mrp="" bldFile="&layer_real_source_path;/usbextension/group" filter="!sf_build" name="usb_usbextension" />
- <unit unitID="lcdo.usb.usb_plat.usb_audio_stream_plugin_api" mrp="" bldFile="&layer_real_source_path;/usb_plat/usb_audio_stream_plugin_api/group" filter="!sf_build" name="usb_usb_plat_usb_audio_stream_plugin_api" />
+ <unit unitID="usbdo.usb.usbextension" mrp="" bldFile="&layer_real_source_path;/usbextension/group" filter="!sf_build" name="usb_usbextension" />
+ <unit unitID="usbdo.usb.usb_plat.usb_audio_stream_plugin_api" mrp="" bldFile="&layer_real_source_path;/usb_plat/usb_audio_stream_plugin_api/group" filter="!sf_build" name="usb_usb_plat_usb_audio_stream_plugin_api" />
</module>
</layer>
</systemModel>
--- a/package_definition.xml Fri Jun 11 16:29:16 2010 +0100
+++ b/package_definition.xml Thu Jul 22 16:49:39 2010 +0100
@@ -20,7 +20,7 @@
<unit mrp="usb_info/usb_metadata/usb_metadata.mrp"/>
</component>
<component id="usb_plat" name="USB Platform Interfaces" class="api" filter="s60">
- <!--unit bldFile="usb_plat/group"/-->
+ <unit bldFile="usb_plat/group" mrp="usb_plat/group/usb_plat.mrp" />
</component>
</collection>
</package>
--- a/usb_info/usb_metadata/usb_metadata.mrp Fri Jun 11 16:29:16 2010 +0100
+++ b/usb_info/usb_metadata/usb_metadata.mrp Thu Jul 22 16:49:39 2010 +0100
@@ -1,19 +1,3 @@
-#
-# Copyright (c) 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:
-#
-
component usb_metadata
source \sf\os\usb\usb_info\usb_metadata
source \sf\os\usb\package_definition.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usb_plat/group/usb_plat.mrp Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,26 @@
+# 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:
+#
+#
+component usb_plat
+
+source \sf\os\usb\usb_plat\group
+
+binary \sf\os\usb\usb_plat\group all
+
+exports \sf\os\usb\usb_plat\group
+
+notes_source \component_defs\release.src
+
+ipr E
Binary file usbmgmt/usbmgr/conf/usbmanager.confml has changed
--- a/usbmgmt/usbmgr/group/BLD.INF Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/group/BLD.INF Thu Jul 22 16:49:39 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1999-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"
@@ -33,8 +33,9 @@
PRJ_EXPORTS
usb.iby /epoc32/rom/include/usb.iby
Usbman.iby /epoc32/rom/include/usbman.iby
-Usbmanbin.iby /epoc32/rom/include/usbmanbin.iby
-Usbmanrsc.iby /epoc32/rom/include/usbmanrsc.iby
+
+//Temporary location, Will be moved if SHAI is ready
+usbperipheral.iby /epoc32/rom/include/usbperipheral.iby
// ConfML Files
../conf/usbmanager.confml OS_LAYER_EXPORTS_CONFML(usbmanager.confml)
--- a/usbmgmt/usbmgr/group/Usbman.iby Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/group/Usbman.iby Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -25,8 +25,140 @@
#include <c32.iby>
#include <ecom.iby>
-// Resources are in a separate file, for easier customisation
-#include <usbmanrsc.iby>
-#include <usbmanbin.iby>
+// If __USB_DEBUG__ is defined pull in debug versions of the
+// USB DLLs and Plugins regardless of the ROM type
+#ifdef __USB_DEBUG__
+define USB_DIR UDEB
+#define USB_PLUGIN ECOM_PLUGIN_UDEB
+#else
+define USB_DIR BUILD_DIR
+#define USB_PLUGIN ECOM_PLUGIN
+#endif
+
+
+// *** Check we have been given a sensible set of buildrom options
+#if defined (__OBEX_OVER_USB__) && (defined (__TEST_USB_ZLP__) || defined (__USBMAN_DUMMYCC__))
+#error Defining both OBEX over USB _and_ Zero Length Packet testing or dummy class controllers does not make sense.
+#endif
+
+// *** USBMAN.DLL is the client side. It is always included in the ROM,
+// *** whether USB is supported by the device or not, so that client
+// *** applications can link against it regardless.
+file=ABI_DIR\USB_DIR\usbman.dll usbman.dll
+
+// The main backup registration file. Plug-ins should use its own backup registration file in order to back its perfered data.
+data=ZPRIVATE\101fe1db\backup_registration.xml private\101fe1db\backup_registration.xml
+
+// *** USB logger. This is not dependent on EUSBC as it is used by
+// *** usbman.dll. It compiles down to next to nothing when __FLOG_ACTIVE is
+// *** undefined, and we cannot remove it altogether because things link
+// *** against it.
+file=ABI_DIR\USB_DIR\usblogger.dll usblogger.dll
+
+#if defined(_DEBUG) || defined (__USB_DEBUG__)
+#include "commsdebugutility.iby"
+#endif
+
+// *** Now for things which should only be included if the device supports
+// *** USB, to save ROM space...
+#if !defined(__USB) || !defined(EUSBC)
+REM Feature USB is not included in this ROM (usbman.iby)
+#else //defined(__USB) && defined(EUSBC)
+
+#include <usbacm.iby>
+
+#ifndef __OBEX_OVER_USB__
+ #ifndef __TEST_USB_ZLP__
+ #ifdef __EXAMPLE_OBEX_CC__
+ // *** OBEX Class Controller plugin.
+ USB_PLUGIN(obexclasscontroller.dll,1027433a.rsc)
+ // *** All the files needed by Obex Class Controller
+ // *** The executable that the class controller links to
+ file=ABI_DIR\BUILD_DIR\classControllerServerSession.exe sys\bin\classControllerServerSession.exe
+ // *** The dll that the class controller uses as a client
+ file=ABI_DIR\BUILD_DIR\classControllerClientSession.dll sys\bin\classControllerClientSession.dll
+ #endif //__EXAMPLE_OBEX_CC__
+ #endif //__TEST_USB_ZLP__
+#endif //__OBEX_OVER_USB__
+
+// *** 'buildrom -D__USBMAN_DUMMYCC__' will use the dummy Class Controller
+// *** build of USBSVR for testing purposes.
+// *** Note: DummyCC never includes OTG code.
+#ifdef __USBMAN_DUMMYCC__
+#include <dummyccinifiles.iby>
+file=ABI_DIR\USB_DIR\t_usbman_dummycc.exe usbsvr.exe
+#else
+//
+// Configuration of OTG or Client.
+//
+#if defined(SYMBIAN_ENABLE_USB_OTG_HOST)
+
+ #if defined(SYMBIAN_INCLUDE_USB_OTG_HOST)
+ REM Feature USB Host (and related OTG) is included in this ROM (usbman.iby)
+ file=ABI_DIR\USB_DIR\usbsvrotg.exe usbsvr.exe
+ #include <fdf.iby>
+ REM Host Mass Storage binaries
+ #ifdef WITH_MASS_STORAGE
+ #include <usbhostmsmm.iby>
+ #include <msfdc.iby>
+ #endif
+ #else
+ REM Feature USB Host (and related OTG) is NOT included in this ROM (usbman.iby)
+ file=ABI_DIR\USB_DIR\usbsvr.exe usbsvr.exe
+ #endif // SYMBIAN_INCLUDE_USB_OTG_HOST
+
+#else
+
+ REM SYMBIAN_ENABLE_USB_OTG_HOST is not defined - so we fall back to building in the
+ REM non-OTG usbsvr.exe
+ file=ABI_DIR\USB_DIR\usbsvr.exe usbsvr.exe
+
+#endif // SYMBIAN_ENABLE_USB_OTG_HOST
+
+#endif
+
+file=ABI_DIR\USB_DIR\usbclasscontroller.dll usbclasscontroller.dll
+file=ABI_DIR\USB_DIR\usbmanextensionplugin.dll usbmanextensionplugin.dll
+
+#ifdef WITH_REFERENCE_USB_CHARGING_PLUGIN
+// *** Reference battery charging plug-in
+#if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && defined (SYMBIAN_INCLUDE_USB_OTG_HOST)
+USB_PLUGIN(usbbatterychargingpluginotg.dll,usbbatterychargingpluginotg.rsc)
+#else
+USB_PLUGIN(usbbatterychargingplugin.dll,usbbatterychargingplugin.rsc)
+#endif
+#endif
+
+// *** WHCM Class Controller - used for OBEX over USB.
+USB_PLUGIN(whcmclasscontroller.dll,101fbf23.rsc)
+
+// *** Mass Storage Class Controller.
+USB_PLUGIN(msclasscontroller.dll,10204bbb.rsc)
+data=ZPRIVATE\10204bbb\usbms.rsc PRIVATE\101fe1db\usbms.rsc
+#ifdef WITH_MASS_STORAGE_EXAMPLE_APP
+file=ABI_DIR\USB_DIR\usbmsexampleapp.exe usbmsexampleapp.exe
+#endif
+
+// *** OBEX Class Controller. This is test code, used for descriptor checking
+// *** only.
+// USB_PLUGIN(Obexclasscontroller.dll,101fbf27.rsc)
+
+#ifdef SYMBIAN_INCLUDE_USB_RNDIS
+// *** RNDIS Class Controller.
+
+#include <ether802.iby>
+
+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__
--- a/usbmgmt/usbmgr/group/Usbmanbin.iby Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
-* Copyright (c) 2003-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:
-* Universal Serial Bus Interface Manager Binaries
-*
-*/
-
-#ifndef __USBMANBIN_IBY__
-#define __USBMANBIN_IBY__
-
-// If __USB_DEBUG__ is defined pull in debug versions of the
-// USB DLLs and Plugins regardless of the ROM type
-#ifdef __USB_DEBUG__
-define USB_DIR UDEB
-#define USB_PLUGIN ECOM_PLUGIN_UDEB
-#else
-define USB_DIR BUILD_DIR
-#define USB_PLUGIN ECOM_PLUGIN
-#endif
-
-
-// *** Check we have been given a sensible set of buildrom options
-#if defined (__OBEX_OVER_USB__) && (defined (__TEST_USB_ZLP__) || defined (__USBMAN_DUMMYCC__))
-#error Defining both OBEX over USB _and_ Zero Length Packet testing or dummy class controllers does not make sense.
-#endif
-
-// *** USBMAN.DLL is the client side. It is always included in the ROM,
-// *** whether USB is supported by the device or not, so that client
-// *** applications can link against it regardless.
-file=ABI_DIR\USB_DIR\usbman.dll usbman.dll
-
-// The main backup registration file. Plug-ins should use its own backup registration file in order to back its perfered data.
-data=ZPRIVATE\101fe1db\backup_registration.xml private\101fe1db\backup_registration.xml
-
-// *** USB logger. This is not dependent on EUSBC as it is used by
-// *** usbman.dll. It compiles down to next to nothing when __FLOG_ACTIVE is
-// *** undefined, and we cannot remove it altogether because things link
-// *** against it.
-file=ABI_DIR\USB_DIR\usblogger.dll usblogger.dll
-
-#if defined(_DEBUG) || defined (__USB_DEBUG__)
-#include "commsdebugutility.iby"
-#endif
-
-// *** Now for things which should only be included if the device supports
-// *** USB, to save ROM space...
-#if !defined(__USB) || !defined(EUSBC)
-REM Feature USB is not included in this ROM (usbman.iby)
-#else //defined(__USB) && defined(EUSBC)
-
-#include <usbacm.iby>
-
-#ifndef __OBEX_OVER_USB__
- #ifndef __TEST_USB_ZLP__
- #ifdef __EXAMPLE_OBEX_CC__
- // *** OBEX Class Controller plugin.
- USB_PLUGIN(obexclasscontroller.dll,1027433a.rsc)
- // *** All the files needed by Obex Class Controller
- // *** The executable that the class controller links to
- file=ABI_DIR\BUILD_DIR\classControllerServerSession.exe sys\bin\classControllerServerSession.exe
- // *** The dll that the class controller uses as a client
- file=ABI_DIR\BUILD_DIR\classControllerClientSession.dll sys\bin\classControllerClientSession.dll
- #endif //__EXAMPLE_OBEX_CC__
- #endif //__TEST_USB_ZLP__
-#endif //__OBEX_OVER_USB__
-
-// *** 'buildrom -D__USBMAN_DUMMYCC__' will use the dummy Class Controller
-// *** build of USBSVR for testing purposes.
-// *** Note: DummyCC never includes OTG code.
-#ifdef __USBMAN_DUMMYCC__
-#include <dummyccinifiles.iby>
-file=ABI_DIR\USB_DIR\t_usbman_dummycc.exe usbsvr.exe
-#else
-//
-// Configuration of OTG or Client.
-//
-#if defined(SYMBIAN_ENABLE_USB_OTG_HOST)
-
- #if defined(SYMBIAN_INCLUDE_USB_OTG_HOST)
- REM Feature USB Host (and related OTG) is included in this ROM (usbman.iby)
- file=ABI_DIR\USB_DIR\usbsvrotg.exe usbsvr.exe
- #include <fdf.iby>
- REM Host Mass Storage binaries
- #ifdef WITH_MASS_STORAGE
- #include <usbhostmsmm.iby>
- #include <msfdc.iby>
- #endif
- #else
- REM Feature USB Host (and related OTG) is NOT included in this ROM (usbman.iby)
- file=ABI_DIR\USB_DIR\usbsvr.exe usbsvr.exe
- #endif // SYMBIAN_INCLUDE_USB_OTG_HOST
-
-#else
-
- REM SYMBIAN_ENABLE_USB_OTG_HOST is not defined - so we fall back to building in the
- REM non-OTG usbsvr.exe
- file=ABI_DIR\USB_DIR\usbsvr.exe usbsvr.exe
-
-#endif // SYMBIAN_ENABLE_USB_OTG_HOST
-
-#endif
-
-file=ABI_DIR\USB_DIR\usbclasscontroller.dll usbclasscontroller.dll
-file=ABI_DIR\USB_DIR\usbmanextensionplugin.dll usbmanextensionplugin.dll
-
-#ifdef WITH_REFERENCE_USB_CHARGING_PLUGIN
-// *** Reference battery charging plug-in
-#if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && defined (SYMBIAN_INCLUDE_USB_OTG_HOST)
-USB_PLUGIN(usbbatterychargingpluginotg.dll,usbbatterychargingpluginotg.rsc)
-#else
-USB_PLUGIN(usbbatterychargingplugin.dll,usbbatterychargingplugin.rsc)
-#endif
-#endif
-
-// *** WHCM Class Controller - used for OBEX over USB.
-USB_PLUGIN(whcmclasscontroller.dll,101fbf23.rsc)
-
-// *** Mass Storage Class Controller.
-USB_PLUGIN(msclasscontroller.dll,10204bbb.rsc)
-data=ZPRIVATE\10204bbb\usbms.rsc PRIVATE\101fe1db\usbms.rsc
-#ifdef WITH_MASS_STORAGE_EXAMPLE_APP
-file=ABI_DIR\USB_DIR\usbmsexampleapp.exe usbmsexampleapp.exe
-#endif
-
-// *** OBEX Class Controller. This is test code, used for descriptor checking
-// *** only.
-// USB_PLUGIN(Obexclasscontroller.dll,101fbf27.rsc)
-
-#ifdef SYMBIAN_INCLUDE_USB_RNDIS
-// *** RNDIS Class Controller.
-
-#include <ether802.iby>
-
-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 // __USBMANBIN_IBY__
--- a/usbmgmt/usbmgr/group/Usbmanrsc.iby Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-
-/*
-* Copyright (c) 2003-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:
-* Universal Serial Bus Interface Manager Resources
-*
-*/
-
-#ifndef __USBMANRSC_IBY__
-#define __USBMANRSC_IBY__
-
-
-// *** Only include resource files if device supports USB
-#if !defined(__USB) || !defined(EUSBC)
-REM Feature USB is not included in this ROM (usbman.iby)
-#else // defined(__USB) && defined(EUSBC)
-
-DEFINE __USBMAN_RSC_ZPATH__ ZPRIVATE\101fe1db
-DEFINE __USBMAN_RSC_PATH__ PRIVATE\101fe1db
-
-
-#ifdef __TEST_USB_ZLP__
- // *** use the ZLP-configured resource file (PID and VID for the ACM CC are different)
- data=__USBMAN_RSC_ZPATH__\usbmanzlp.rsc __USBMAN_RSC_PATH__\usbman.rsc
-#else //__TEST_USB_ZLP__
-
- #ifdef __EXAMPLE_OBEX_CC__
- // *** 'buildrom -D__EXAMPLE_OBEX_CC__' will use example Obex class controller
- // *** The RSC file that was created when building the example source
- data=__USBMAN_RSC_ZPATH__\obexusbman.rsc __USBMAN_RSC_PATH__\usbman.rsc
- #else //__EXAMPLE_OBEX_CC__
- // *** This is the normal resource file..
- #ifndef USB_EXCLUDE_DEFAULT_PERSONALITIES
- #ifndef __MTP_PROTOCOL_SUPPORT
- #ifdef SYMBIAN_INCLUDE_USB_RNDIS
- // *** Normal resource file including RNDIS support but excluding MTP
- data=__USBMAN_RSC_ZPATH__\usbmanrndis.rsc __USBMAN_RSC_PATH__\usbman.rsc
- #else
- // *** Normal resource file excluding MTP and RNDIS support
- data=__USBMAN_RSC_ZPATH__\usbman.rsc __USBMAN_RSC_PATH__\usbman.rsc
- #endif // SYMBIAN_INCLUDE_USB_RNDIS
- #else // defined(__MTP_PROTOCOL_SUPPORT)
- #ifdef SYMBIAN_INCLUDE_USB_RNDIS
- // *** Normal resource file including RNDIS and MTP support
- data=__USBMAN_RSC_ZPATH__\usbmanmtprndis.rsc __USBMAN_RSC_PATH__\usbman.rsc
- #else
- // *** Normal resource file including MTP support but excluding RNDIS
- data=__USBMAN_RSC_ZPATH__\usbmanmtp.rsc __USBMAN_RSC_PATH__\usbman.rsc
- #endif // SYMBIAN_INCLUDE_USB_RNDIS
- #endif // __MTP_PROTOCOL_SUPPORT
- #endif // USB_EXCLUDE_DEFAULT_PERSONALITIES
- #endif //__EXAMPLE_OBEX_CC__
-#endif //__TEST_USB_ZLP__
-
-#endif // !defined(__USB) || !defined(EUSBC)
-
-#endif // __USBMANRSC_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/group/usbperipheral.iby Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+* Logical Device Driver of USB peripheral stack
+*
+*/
+#ifndef USBPERIPHERAL_IBY
+#define USBPERIPHERAL_IBY
+
+#include <bldvariant.hrh>
+
+#ifndef COREOS
+#ifndef NCP_COMMON_PLATFORM_SIMULATOR
+device[VARID]=KERNEL_DIR\BUILD_DIR\usbc.ldd \Sys\Bin\eusbc.ldd
+device[VARID]=KERNEL_DIR\BUILD_DIR\usbcsc.ldd \Sys\Bin\eusbcsc.ldd
+#endif // NCP_COMMON_PLATFORM_SIMULATOR
+#endif // COREOS
+
+#endif
\ No newline at end of file
--- a/usbmgmt/usbmgr/host/fdf/production/server/public/fdfapi.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/fdf/production/server/public/fdfapi.h Thu Jul 22 16:49:39 2010 +0100
@@ -28,15 +28,15 @@
#ifdef __OVER_DUMMYUSBDI__
const TUint32 KUsbFdfTUint = 0x10282B50;
_LIT(KUsbFdfImg, "fdf_over_dummyusbdi.exe");
+_LIT(KUsbFdfServerName, "!FdfSrv_over_dummyusbdi");
#else
const TUint32 KUsbFdfTUint = 0x10282B48;
_LIT(KUsbFdfImg, "fdf.exe");
+_LIT(KUsbFdfServerName, "!FdfSrv");
#endif
const TUid KUsbFdfUid = {KUsbFdfTUint};
-_LIT(KUsbFdfServerName, "!FdfSrv");
-
/** Version numbers. */
const TInt8 KUsbFdfSrvMajorVersionNumber = 1;
const TInt8 KUsbFdfSrvMinorVersionNumber = 1;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/bwins/msmmicsession_over_dummycomponentu.def Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,6 @@
+EXPORTS
+ ?EjectUsbDrives@RHostMassStorage@@QAEHXZ @ 1 NONAME ; int RHostMassStorage::EjectUsbDrives(void)
+ ?Disconnect@RHostMassStorage@@QAEHXZ @ 2 NONAME ; int RHostMassStorage::Disconnect(void)
+ ?Connect@RHostMassStorage@@QAEHXZ @ 3 NONAME ; int RHostMassStorage::Connect(void)
+ ?Version@RHostMassStorage@@QBE?AVTVersion@@XZ @ 4 NONAME ; class TVersion RHostMassStorage::Version(void) const
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/eabi/msmmicsession_over_dummycomponentu.def Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,6 @@
+EXPORTS
+ _ZN16RHostMassStorage10DisconnectEv @ 1 NONAME
+ _ZN16RHostMassStorage14EjectUsbDrivesEv @ 2 NONAME
+ _ZN16RHostMassStorage7ConnectEv @ 3 NONAME
+ _ZNK16RHostMassStorage7VersionEv @ 4 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/eabi/msmmindicatorsessionu.def Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,6 @@
+EXPORTS
+ _ZN16RHostMassStorage10DisconnectEv @ 1 NONAME
+ _ZN16RHostMassStorage14EjectUsbDrivesEv @ 2 NONAME
+ _ZN16RHostMassStorage7ConnectEv @ 3 NONAME
+ _ZNK16RHostMassStorage7VersionEv @ 4 NONAME
+
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/bld.inf Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/bld.inf Thu Jul 22 16:49:39 2010 +0100
@@ -27,9 +27,11 @@
#if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && !defined(WINS) && !defined(X86GCC)
msmmclient.mmp
+msmmindicatorclient.mmp
#endif
-
PRJ_TESTEXPORTS
../public/msmmclient.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/hostms/msmmclient.h)
+PRJ_EXPORTS
+../public/msmmindicatorclient.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/hostms/msmmindicatorclient.h)
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmclient_over_dummycomponent.mmp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmclient_over_dummycomponent.mmp Thu Jul 22 16:49:39 2010 +0100
@@ -28,6 +28,6 @@
#include "msmmclient_base.mmp"
-CAPABILITY ProtServ WriteDeviceData CommDD DiskAdmin NetworkControl
+CAPABILITY ProtServ WriteDeviceData CommDD DiskAdmin NetworkControl TrustedUI
MACRO __OVER_DUMMYCOMPONENT__
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient.mmp Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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 msmmindicatorsession.dll
+TARGETTYPE dll
+UID 0x1000008d 0x20031571
+
+CAPABILITY All -TCB
+
+#include "msmmindicatorclient_base.mmp"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient_base.mmp Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* 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 <usb/usblogger.mmh>
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY euser.lib
+
+SOURCEPATH ../src
+
+SOURCE msmmindicatorclient.cpp
+
+USERINCLUDE ../../inc
+USERINCLUDE ../public
+USERINCLUDE ../../server/public
+
+VENDORID 0x70000001
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient_over_dummycomponent.mmp Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* 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
+ @test
+*/
+
+
+TARGET msmmicsession_over_dummycomponent.dll
+TARGETTYPE dll
+UID 0x1000008d 0x0F15655A
+
+#include "msmmindicatorclient_base.mmp"
+
+CAPABILITY ProtServ WriteDeviceData CommDD DiskAdmin NetworkControl TrustedUI
+
+MACRO __OVER_DUMMYCOMPONENT__
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/public/msmmindicatorclient.h Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,49 @@
+/*
+* 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 MSMMINDICATORCLIENT_H
+#define MSMMINDICATORCLIENT_H
+
+#include <e32std.h>
+
+/**
+RHostMassStorage is the interface for Mass Storage Indicator UI to use the MSMM.
+*/
+NONSHARABLE_CLASS(RHostMassStorage) : public RSessionBase
+{
+public:
+ // RHostMassStorage Implementation API to add a session to the running MSMM server
+ IMPORT_C TInt Connect();
+ IMPORT_C TInt Disconnect();
+ IMPORT_C TVersion Version() const;
+
+ /** Dismount USB drives from File System asynchronously. The function will return immediately to the UI with complete status
+ The result of dismounting USB drives will be notified to the MSMM Plugin via CMsmmPolicyPluginBase
+ @return Error code of IPC.
+ */
+ IMPORT_C TInt EjectUsbDrives();
+
+};
+
+#endif // MSMMINDICATORCLIENT_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/src/msmmindicatorclient.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,110 @@
+/*
+* 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 <usb/usblogger.h>
+#include <e32cmn.h>
+
+#include "srvdef.h"
+#include "msmmindicatorclient.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmIndicatorClient");
+#endif
+
+// Costants
+const TInt KConnectRetry = 0x2;
+
+
+//---------------------------------------------------------------------------
+// RHostMassStorage
+//
+// Public member functions
+
+EXPORT_C TInt RHostMassStorage::Connect()
+ {
+ LOG_FUNC
+
+ TInt retry = KConnectRetry; // Attempt to add a session to MSMM Server twice
+ TInt ret(KErrNone);
+ FOREVER
+ {
+ ret = CreateSession(KMsmmServerName, Version(), KDefaultMessageSlots);
+ // We are not allowed to start the server
+ if ((KErrNotFound == ret) || (KErrServerTerminated == ret))
+ {
+ LOGTEXT2(_L("Underlying error value = %d"), ret)
+ return KErrNotReady;
+ }
+ if ( KErrNone == ret )
+ {
+ break;
+ }
+ if ((--retry) == 0)
+ {
+ break;
+ }
+ }
+ return ret;
+ }
+
+EXPORT_C TInt RHostMassStorage::Disconnect()
+ {
+ LOG_FUNC
+
+ Close();
+ return KErrNone;
+ }
+
+/**
+ * Called to validate the version of the server we require for this API
+ * @return TVersion The version of MSMM Server that supports this API
+ */
+EXPORT_C TVersion RHostMassStorage::Version() const
+ {
+ LOG_FUNC
+
+ return TVersion(KMsmmServMajorVersionNumber,
+ KMsmmServMinorVersionNumber,
+ KMsmmServBuildVersionNumber);
+ }
+
+/**
+ * Dismount USB drives from File System asynchronously. The function will return immediately to the UI with complete status
+ * The result of dismounting USB drives will be notified to the MSMM Plugin via CMsmmPolicyPluginBase
+ * @return Error code of IPC.
+*/
+
+EXPORT_C TInt RHostMassStorage::EjectUsbDrives()
+ {
+ LOG_FUNC
+
+ TInt ret(KErrNone);
+
+ TIpcArgs usbmsIpcArgs;
+
+ ret = Send(EHostMsmmServerEjectUsbDrives, usbmsIpcArgs);
+
+ return ret;
+ }
+
+
+// End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf Thu Jul 22 16:49:39 2010 +0100
@@ -23,10 +23,11 @@
PRJ_PLATFORMS
ARMV5 GCCXML
+#include "../client/group/bld.inf"
#include "../server/group/bld.inf"
-#include "../client/group/bld.inf"
#include "../referencepolicyplugin/group/bld.inf"
#include "../refppnotifier/group/bld.inf"
PRJ_EXPORTS
usbhostmsmm.iby /epoc32/rom/include/usbhostmsmm.iby
+
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/msmm_over_dummycomponent_bld.inf Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/msmm_over_dummycomponent_bld.inf Thu Jul 22 16:49:39 2010 +0100
@@ -28,4 +28,5 @@
PRJ_TESTMMPFILES
../server/group/msmmserver_over_dummycomponent.mmp
../client/group/msmmclient_over_dummycomponent.mmp
+../client/group/msmmindicatorclient_over_dummycomponent.mmp
../referencepolicyplugin/group/refpp_over_dummycomponent.mmp
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/usbhostmsmm.iby Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/usbhostmsmm.iby Thu Jul 22 16:49:39 2010 +0100
@@ -30,6 +30,7 @@
file=ABI_DIR\USB_DIR\msmmsession.dll Sys\bin\msmmsession.dll
file=ABI_DIR\USB_DIR\msmmserver.exe Sys\bin\msmmserver.exe
+file=ABI_DIR\USB_DIR\msmmindicatorsession.dll Sys\bin\msmmindicatorsession.dll
#endif
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/inc/srvdef.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/inc/srvdef.h Thu Jul 22 16:49:39 2010 +0100
@@ -48,6 +48,12 @@
const TUint32 KFDFWSecureId = 0x10282B48;
#endif
+#ifdef __OVER_DUMMYCOMPONENT__
+const TUint32 KSidHbDeviceDialogAppServer = 0x20022FC4; // SID for unit test project
+#else
+const TUint32 KSidHbDeviceDialogAppServer = 0x20022FC5; //SID for indicator UI that will call eject usb drives
+#endif
+
/** The Msmm Version numbers */
const TUint KMsmmServMajorVersionNumber = 1;
const TUint KMsmmServMinorVersionNumber = 0;
@@ -60,6 +66,7 @@
EHostMsmmServerRemoveDevice = 2, // Remove device request
EHostMsmmServerDbgFailNext = 3,
EHostMsmmServerDbgAlloc = 4,
+ EHostMsmmServerEjectUsbDrives = 5, // Dismount USB drives request
EHostMsmmServerEndMarker // Request end mark
};
@@ -67,6 +74,6 @@
const TUint KDefaultMessageSlots = 1;
// Max connection number
-const TInt KMaxClientCount = 1;
+const TInt KMaxClientCount = 2;
#endif // #ifndef SRVDEF_H
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h Thu Jul 22 16:49:39 2010 +0100
@@ -24,7 +24,7 @@
#define CREFPPDIALOG_H
// INCLUDES
-#include <techview/eikdialg.h>
+#include <eikdialg.h>
// CLASS DECLARATION
/**
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h Thu Jul 22 16:49:39 2010 +0100
@@ -23,7 +23,7 @@
#ifndef REFPPNOTIFIER_H
#define REFPPNOTIFIER_H
-#include <techview/eikdialg.h>
+#include <eikdialg.h>
#include <eiknotapi.h>
#include "refppdialog.h"
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss Thu Jul 22 16:49:39 2010 +0100
@@ -21,9 +21,8 @@
@internalComponent
*/
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
-#include <techview/techviewctl.rh>
+#include <eikon.rh>
+#include <eikon.rsg>
#include <eikcoctl.rsg>
#include "refppnotifier.hrh"
NAME REFN
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -23,9 +23,9 @@
#include "refppnotifier.h"
#include <ecom/implementationproxy.h>
#include "refppnotifier.hrh"
-#include <techview/eikinfo.h>
+#include <eikinfo.h>
#include <dialog.rsg>
-#include <techview/eiklabel.h>
+#include <eiklabel.h>
#include <usb/hostms/srverr.h>
#include <usb/hostms/policypluginnotifier.hrh>
const TUid KMsmmRefNotifierChannel = {0x10009D48}; //0x10208C14
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group/msmmserver_base.mmp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group/msmmserver_base.mmp Thu Jul 22 16:49:39 2010 +0100
@@ -33,6 +33,7 @@
SOURCE main.cpp
SOURCE msmmserver.cpp
SOURCE msmmsession.cpp
+SOURCE msmmdismountusbdrives.cpp
SOURCE eventqueue.cpp
SOURCE eventhandler.cpp
SOURCE msmmterminator.cpp
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group/msmmserver_over_dummycomponent.mmp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group/msmmserver_over_dummycomponent.mmp Thu Jul 22 16:49:39 2010 +0100
@@ -27,6 +27,7 @@
UID 0 0x1028653F
LIBRARY dummymsc.lib
+LIBRARY dummyfilesysclient.lib
#include "msmmserver_base.mmp"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmdismountusbdrives.h Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 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: Header file for Stylus Tap indicator eject usb drives
+*
+*/
+
+
+#ifndef MSMMDISMOUNTUSBDRIVES_H
+#define MSMMDISMOUNTUSBDRIVES_H
+
+#include <e32base.h>
+#ifdef __OVER_DUMMYCOMPONENT__
+#include "usb/hostms/dummycomponent/dummyfsclient.h"
+#else
+#include <f32file.h>
+#endif
+
+#include "msmm_pub_def.h"
+
+class CDismountTimer;
+class CMsmmPolicyPluginBase;
+
+/**
+ * Timer callback interface to indicate USB drive in use
+ *
+ * This class specifies the function to be called when a timeout occurs.
+ * Used in conjunction with CDismountTimer class
+ *
+ */
+class MTimerNotifier
+ {
+public:
+ /**
+ * The function to be called when a timeout occurs.
+ *
+ */
+ virtual void TimerExpired() = 0;
+ };
+
+/**
+ * An Active Object class to request dismount of usb specific drives and notify the result to MSMM plugin
+ *
+ */
+NONSHARABLE_CLASS( CMsmmDismountUsbDrives ) : public CActive,
+ public MTimerNotifier
+ {
+public:
+ virtual ~CMsmmDismountUsbDrives();
+ static CMsmmDismountUsbDrives* NewL();
+ static CMsmmDismountUsbDrives* NewLC();
+
+public:
+ /**
+ * Send dismount notifications for all usb drives.
+ */
+ void DismountUsbDrives(CMsmmPolicyPluginBase& aPlugin, TUSBMSDeviceDescription& aDevice);
+
+protected:
+ CMsmmDismountUsbDrives();
+ void ConstructL();
+
+private:
+ /**
+ * Send dismount notification via RFs
+ */
+ void DoDismount();
+
+ /**
+ * Callback to CMsmmPolicyPluginBase
+ */
+ void CompleteDismountRequest(const TInt aResult);
+
+private: //from CActive
+ void RunL();
+ void DoCancel();
+
+private: // from MTimerNotifier
+
+ /**
+ * Dismount timer callback
+ */
+ void TimerExpired();
+
+private:
+ /**
+ * Drive index
+ */
+ TInt iDriveIndex;
+ /**
+ * RFs session
+ */
+#ifdef __OVER_DUMMYCOMPONENT__
+ RDummyFs iRFs;
+#else
+ RFs iRFs;
+#endif
+ /**
+ * List of drives
+ */
+ TDriveList iDriveList;
+
+ /**
+ * Dismount timer
+ * Own
+ */
+ CDismountTimer* iDismountTimer;
+
+ /**
+ * Callback API for dismount result
+ * Do not own
+ */
+ CMsmmPolicyPluginBase* iPlugin;
+
+ /**
+ * Device specific details, manufacturer and productid
+ */
+ TPckgBuf<TUSBMSDeviceDescription> iDevicePkgInfo;
+ };
+
+
+/**
+ * Timer interface for dismount request
+ *
+ * This class will notify an object after a specified timeout.
+ *
+ */
+class CDismountTimer : public CTimer
+ {
+public:
+ static CDismountTimer* NewL( MTimerNotifier* aTimeOutNotify );
+ static CDismountTimer* NewLC( MTimerNotifier* aTimeOutNotify);
+ virtual ~CDismountTimer();
+ void CancelTimer();
+ void StartTimer();
+
+protected:
+ /**
+ * From CTimer
+ * Invoked when a timeout occurs
+ *
+ */
+ virtual void RunL();
+
+private:
+ CDismountTimer( MTimerNotifier* aTimeOutNotify );
+ void ConstructL();
+
+private: // Member variables
+
+ /**
+ * The observer for this objects events
+ * Not own.
+ */
+ MTimerNotifier* iNotify;
+ };
+
+
+#endif // MSMMDISMOUNTUSBDRIVES_H
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmserver.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmserver.h Thu Jul 22 16:49:39 2010 +0100
@@ -37,6 +37,9 @@
class CMsmmTerminator;
class CDeviceEventQueue;
class CMsmmPolicyPluginBase;
+class THostMsErrData;
+class CMsmmDismountUsbDrives;
+class TUSBMSDeviceDescription;
// Server side resource container class
// Intends to be used by any internal objects (such as sub-command objects)
@@ -66,11 +69,16 @@
// CMsmmServer API
virtual CSession2* NewSessionL(const TVersion& aVersion,
const RMessage2& aMessage) const;
-
+ CPolicyServer::TCustomResult CustomSecurityCheckL(const RMessage2& aMsg,
+ TInt& aAction,
+ TSecurityInfo& aMissing);
+
TInt SessionNumber() const;
void AddSession();
void RemoveSession();
+ void DismountUsbDrivesL(TUSBMSDeviceDescription& aDevice);
+
// From MMsmmSrvProxy
inline CMsmmEngine& Engine() const;
inline RFs& FileServerSession() const;
@@ -87,6 +95,8 @@
RFs iFs;
CMsmmPolicyPluginBase* iPolicyPlugin; // Owned
CDeviceEventQueue* iEventQueue; // Owned
+ CMsmmDismountUsbDrives* iDismountManager; //Singleton to request dismounting usb drives via RFs
+ THostMsErrData* iDismountErrData; // The data nodes try, Owned
};
#include "msmmserver.inl"
#endif // MSMMSERVER_H
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/srvsec.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/srvsec.h Thu Jul 22 16:49:39 2010 +0100
@@ -26,6 +26,7 @@
const TInt KMsmmServerRanges[] =
{
EHostMsmmServerAddFunction,
+ EHostMsmmServerEjectUsbDrives, //separate policy check for Eject usb drives client
EHostMsmmServerEndMarker
};
const TUint KMsmmServerRangeCount =
@@ -34,18 +35,21 @@
const TUint8 KMsmmServerElementsIndex[KMsmmServerRangeCount] =
{
0,
+ 1,
CPolicyServer::ENotSupported
};
const CPolicyServer::TPolicyElement KMsmmServerElements[] =
{
{_INIT_SECURITY_POLICY_S1( KFDFWSecureId, ECapabilityCommDD ),
+ CPolicyServer::EFailClient},
+ {_INIT_SECURITY_POLICY_S1( KSidHbDeviceDialogAppServer, ECapabilityTrustedUI ),
CPolicyServer::EFailClient}
};
const CPolicyServer::TPolicy KMsmmServerSecurityPolicy =
{
- 0,
+ CPolicyServer::ECustomCheck,
KMsmmServerRangeCount,
KMsmmServerRanges,
KMsmmServerElementsIndex,
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/public/srverr.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/public/srverr.h Thu Jul 22 16:49:39 2010 +0100
@@ -31,6 +31,9 @@
// adding device
EHostMsErrInvalidParameter = 0x4, // Invalid request parameter
EHostMsErrOutOfMemory = 0x5, // Out of memory
+ EHostMsEjectInProgress = 0x6, // eject request commenced
+ EHostMsErrNone = 0x7, // no error == success condition
+ EHostMsErrInUse = 0x8, // Drives in use
EHostMsErrorEndMarker
};
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventhandler.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventhandler.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -212,9 +212,12 @@
LOG_FUNC
// Complete client with KErrCancel
CompleteClient(KErrCancel);
-
+
// Cancel current pending command
- iSubCommandQueue.Head().CancelAsyncCmd();
+ if (iSubCommandQueue.Count())
+ {
+ iSubCommandQueue.Head().CancelAsyncCmd();
+ }
}
void CDeviceEventHandler::RunL( )
@@ -251,30 +254,33 @@
TInt CDeviceEventHandler::RunError(TInt aError)
{
LOG_FUNC
- // Retrieve sub-command related error notification data
- iSubCommandQueue.Head().HandleError(*iErrNotiData, aError);
-
- // If current sub-command isn't a key one, the handler will continue to
- // execute rest sub-command in the queue. But, if current sub-command
- // is the last one in the queue, handler shall complete the client also.
- if (iSubCommandQueue.Head().IsKeyCommand() ||
- (iSubCommandQueue.Count() == 1))
+
+ if (iSubCommandQueue.Count())
{
- CompleteClient(aError);
+ // Retrieve sub-command related error notification data
+ iSubCommandQueue.Head().HandleError(*iErrNotiData, aError);
+
+ // If current sub-command isn't a key one, the handler will continue to
+ // execute rest sub-command in the queue. But, if current sub-command
+ // is the last one in the queue, handler shall complete the client also.
+ if (iSubCommandQueue.Head().IsKeyCommand() ||
+ (iSubCommandQueue.Count() == 1))
+ {
+ CompleteClient(aError);
+ }
+ iSubCommandQueue.Pop();
}
- //Restart the handler after error handling;
- if (!IsActive())
+ if( IsActive() )
+ {
+ Complete(aError);
+ }
+ else if (iSubCommandQueue.Count())
{
Start();
+ Complete();
}
- Complete(aError);
-
- if (iSubCommandQueue.Count())
- {
- iSubCommandQueue.Pop();
- }
-
+
return KErrNone;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmdismountusbdrives.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,248 @@
+/*
+* Copyright (c) 2007-2008 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: Active Object to dismount usb drives
+*
+*/
+
+
+#include <usb/usblogger.h>
+#include <usb/hostms/srverr.h>
+#include <usb/hostms/msmmpolicypluginbase.h>
+
+#include "msmmdismountusbdrives.h"
+
+const TInt KDismountTimeOut = 6000000; // 6 seconds
+
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
+#endif
+
+CMsmmDismountUsbDrives::~CMsmmDismountUsbDrives()
+ {
+ LOG_FUNC
+ Cancel();
+ delete iDismountTimer;
+ iRFs.Close();
+ }
+
+/**
+ * Symbian two phase constructor
+ */
+CMsmmDismountUsbDrives* CMsmmDismountUsbDrives::NewL()
+ {
+ LOG_STATIC_FUNC_ENTRY
+ CMsmmDismountUsbDrives* self = CMsmmDismountUsbDrives::NewLC();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+/**
+ * Symbian two phase constructor. Object pushed to cleanup stack
+ */
+CMsmmDismountUsbDrives* CMsmmDismountUsbDrives::NewLC()
+ {
+ LOG_STATIC_FUNC_ENTRY
+ CMsmmDismountUsbDrives* self = new (ELeave) CMsmmDismountUsbDrives();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+/**
+ * Check the status of current dismount request and continue issuing next if no error
+ */
+void CMsmmDismountUsbDrives::RunL()
+ {
+ LOG_FUNC
+
+ iDismountTimer->CancelTimer();
+
+ // Indicates there has been an error dismounting a usb drive, report immediately to MSMM plugin and
+ // abort the process
+ if ( iStatus != KErrNone )
+ {
+ CompleteDismountRequest( iStatus.Int() );
+ }
+ // Indicates we have reached the end of all usb drives dismounting, in other words a success condition
+ else if ( iDriveIndex == KMaxDrives )
+ {
+ CompleteDismountRequest( KErrNone );
+ }
+ // We still have more drives to traverse
+ else if ( iDriveIndex < KMaxDrives )
+ {
+ DoDismount();
+ }
+ }
+
+/**
+ * Cancel pending notifier and those in queue
+ */
+void CMsmmDismountUsbDrives::DoCancel()
+ {
+ LOG_FUNC
+ iRFs.NotifyDismountCancel(iStatus);
+ }
+
+CMsmmDismountUsbDrives::CMsmmDismountUsbDrives()
+ : CActive(EPriorityStandard)
+ {
+ LOG_FUNC
+ CActiveScheduler::Add(this);
+ }
+
+void CMsmmDismountUsbDrives::ConstructL()
+ {
+ LOG_FUNC
+ User::LeaveIfError( iRFs.Connect());
+ iDismountTimer = CDismountTimer::NewL(this);
+ }
+
+/**
+ * Dismount usb drives
+ */
+void CMsmmDismountUsbDrives::DismountUsbDrives(CMsmmPolicyPluginBase& aPlugin, TUSBMSDeviceDescription& aDevice)
+ {
+ LOG_FUNC
+ Cancel();
+ iPlugin = &aPlugin;
+ TUSBMSDeviceDescription& device = iDevicePkgInfo();
+ device = aDevice;
+ iDriveIndex = 0;
+ iRFs.DriveList( iDriveList );
+ DoDismount();
+ }
+
+/**
+ * Callback to CMsmmPolicyPluginBase with either success or failure message
+ */
+void CMsmmDismountUsbDrives::CompleteDismountRequest(const TInt aResult)
+ {
+ THostMsErrData data;
+ if( aResult == KErrNone )
+ data.iError = EHostMsErrNone;
+ else
+ data.iError = EHostMsErrInUse;
+ data.iE32Error = aResult;
+ data.iManufacturerString = iDevicePkgInfo().iManufacturerString;
+ data.iProductString = iDevicePkgInfo().iProductString;
+ data.iDriveName = 0x0;
+
+ TRAP_IGNORE(iPlugin->SendErrorNotificationL(data));
+ }
+
+/**
+ * Dismount next usb drive
+ */
+void CMsmmDismountUsbDrives::DoDismount()
+ {
+ LOG_FUNC
+ TDriveInfo info;
+ TInt err = KErrNone;
+ for ( ; iDriveIndex < KMaxDrives; iDriveIndex++ )
+ {
+ if ( iDriveList[iDriveIndex] )
+ {
+ err = iRFs.Drive( info , iDriveIndex );
+ if ( info.iConnectionBusType == EConnectionBusUsb &&
+ info.iDriveAtt & KDriveAttExternal &&
+ err == KErrNone )
+ {
+ LOGTEXT(_L("CMsmmDismountUsbDrives::DoDismount Dismount notify request "));
+ iRFs.NotifyDismount( iDriveIndex, iStatus, EFsDismountNotifyClients );
+ iDismountTimer->StartTimer();
+ SetActive();
+ return;
+ }
+ }
+ }
+ // Indicates we have gone through all the drives and no more usb drives left to request dismount
+ CompleteDismountRequest( KErrNone );
+ }
+
+
+/**
+ * Callback function from CDismountTimer after 6 seconds indicating a usb drive is not released by another process, report it as an error
+ */
+void CMsmmDismountUsbDrives::TimerExpired()
+ {
+ LOG_FUNC
+
+ Cancel();
+ iDismountTimer->CancelTimer();
+ CompleteDismountRequest( KErrInUse );
+ }
+
+//CDismountTimer
+
+CDismountTimer* CDismountTimer::NewL( MTimerNotifier* aTimeOutNotify)
+ {
+ LOG_STATIC_FUNC_ENTRY
+ CDismountTimer* self = CDismountTimer::NewLC( aTimeOutNotify );
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CDismountTimer* CDismountTimer::NewLC( MTimerNotifier* aTimeOutNotify )
+ {
+ LOG_STATIC_FUNC_ENTRY
+ CDismountTimer* self = new (ELeave) CDismountTimer( aTimeOutNotify );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+CDismountTimer::CDismountTimer( MTimerNotifier* aTimeOutNotify):
+ CTimer(EPriorityStandard),
+ iNotify(aTimeOutNotify)
+ {
+ LOG_FUNC
+ }
+
+CDismountTimer::~CDismountTimer()
+ {
+ LOG_FUNC
+ Cancel();
+ }
+
+void CDismountTimer::ConstructL()
+ {
+ LOG_FUNC
+ if ( !iNotify )
+ {
+ User::Leave(KErrArgument);
+ }
+ CTimer::ConstructL();
+ CActiveScheduler::Add(this);
+ }
+
+void CDismountTimer::RunL()
+ {
+ LOG_FUNC
+ // Timer request has completed, so notify the timer's owner
+ iNotify->TimerExpired();
+ }
+void CDismountTimer::CancelTimer()
+ {
+ LOG_FUNC
+ Cancel();
+ }
+
+void CDismountTimer::StartTimer()
+ {
+ LOG_FUNC
+ After( KDismountTimeOut );
+ }
+// End of File
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmserver.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmserver.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -21,13 +21,14 @@
*/
#include "msmmserver.h"
-#include <usb/hostms/msmmpolicypluginbase.h>
#include "msmm_internal_def.h"
#include "msmmsession.h"
#include "msmmengine.h"
#include "eventqueue.h"
#include "msmmterminator.h"
+#include "msmmdismountusbdrives.h"
+#include <usb/hostms/msmmpolicypluginbase.h>
#include <usb/usblogger.h>
#ifdef __FLOG_ACTIVE
@@ -97,6 +98,26 @@
CleanupStack::PopAndDestroy(2, scheduler);
}
+CPolicyServer::TCustomResult CMsmmServer::CustomSecurityCheckL(
+ const RMessage2& aMsg,
+ TInt& /*aAction*/,
+ TSecurityInfo& /*aMissing*/)
+ {
+ CPolicyServer::TCustomResult returnValue = CPolicyServer::EFail;
+
+ TSecureId ClientSID = aMsg.SecureId();
+
+ if (KFDFWSecureId == ClientSID)
+ {
+ returnValue = CPolicyServer::EPass;
+ }
+ else if ((KSidHbDeviceDialogAppServer == ClientSID) && SessionNumber() > 0)
+ {
+ returnValue = CPolicyServer::EPass;
+ }
+ return returnValue;
+ }
+
// Public functions
// Construction and destruction
CMsmmServer* CMsmmServer::NewLC()
@@ -119,6 +140,8 @@
delete iEventQueue;
delete iEngine;
delete iTerminator;
+ delete iDismountErrData;
+ delete iDismountManager;
REComSession::FinalClose();
#ifndef __OVER_DUMMYCOMPONENT__
@@ -136,7 +159,7 @@
if (KMaxClientCount <= SessionNumber())
{
// There is a connection to MSMM server already.
- // Currently design of MSMM allows only one activated client
+ // Currently design of MSMM can have two clients, one FDF and the other Indicator UI
// at any time.
User::Leave(KErrInUse);
}
@@ -188,6 +211,26 @@
}
}
+void CMsmmServer::DismountUsbDrivesL(TUSBMSDeviceDescription& aDevice)
+ {
+ LOG_FUNC
+ delete iDismountManager;
+ iDismountManager = NULL;
+ iDismountManager= CMsmmDismountUsbDrives::NewL();
+
+ //Also notify the MSMM plugin of beginning of dismounting
+ iDismountErrData->iError = EHostMsEjectInProgress;
+ iDismountErrData->iE32Error = KErrNone;
+ iDismountErrData->iManufacturerString = aDevice.iManufacturerString;
+ iDismountErrData->iProductString = aDevice.iProductString;
+ iDismountErrData->iDriveName = 0x0;
+
+ TRAP_IGNORE(iPolicyPlugin->SendErrorNotificationL(*iDismountErrData));
+
+ // Start dismounting
+ iDismountManager->DismountUsbDrives(*iPolicyPlugin, aDevice);
+ }
+
// Private functions
// CMsmmServer Construction
CMsmmServer::CMsmmServer(TInt aPriority)
@@ -205,6 +248,7 @@
iEventQueue = CDeviceEventQueue::NewL(*this);
iTerminator = CMsmmTerminator::NewL(*iEventQueue);
iPolicyPlugin = CMsmmPolicyPluginBase::NewL();
+ iDismountErrData = new (ELeave) THostMsErrData;
if (!iPolicyPlugin)
{
// Not any policy plugin implementation available
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmsession.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmsession.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -24,9 +24,9 @@
#include "msmmserver.h"
#include "msmmengine.h"
#include "eventqueue.h"
+#include "msmmnodebase.h"
#include <usb/hostms/srverr.h>
#include <usb/hostms/msmmpolicypluginbase.h>
-#include "msmmnodebase.h"
#include <usb/usblogger.h>
#ifdef __FLOG_ACTIVE
@@ -92,7 +92,10 @@
delete heapObj;
#endif // _DEBUG
break;
-
+
+ case EHostMsmmServerEjectUsbDrives:
+ iServer.DismountUsbDrivesL(iDevicePkg());
+ break;
default:
// Unsupported function number - panic the client
PanicClient(aMessage, EBadRequest);
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/idpinwatcher.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/idpinwatcher.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -48,7 +48,13 @@
void CIdPinWatcher::ConstructL()
{
- User::LeaveIfError(iIdPinProp.Attach(KUidUsbManCategory, KUsbOtgIdPinPresentProperty));
+#ifdef __CHARGING_PLUGIN_TEST_CODE__
+ const TInt8 KPropertyOffsetForChargingTest = 100;
+ User::LeaveIfError(iIdPinProp.Attach(KUidUsbManCategory, KUsbOtgIdPinPresentProperty + KPropertyOffsetForChargingTest));
+#else
+ User::LeaveIfError(iIdPinProp.Attach(KUidUsbManCategory, KUsbOtgIdPinPresentProperty));
+#endif
+
iIdPinProp.Subscribe(iStatus);
SetActive();
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/otgstatewatcher.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/otgstatewatcher.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -48,7 +48,13 @@
void COtgStateWatcher::ConstructL()
{
- User::LeaveIfError(iOtgStateProp.Attach(KUidUsbManCategory, KUsbOtgStateProperty));
+#ifdef __CHARGING_PLUGIN_TEST_CODE__
+ const TInt8 KPropertyOffsetForChargingTest = 100;
+ User::LeaveIfError(iOtgStateProp.Attach(KUidUsbManCategory, KUsbOtgStateProperty + KPropertyOffsetForChargingTest));
+#else
+ User::LeaveIfError(iOtgStateProp.Attach(KUidUsbManCategory, KUsbOtgStateProperty));
+#endif
+
iOtgStateProp.Subscribe(iStatus);
SetActive();
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/vbuswatcher.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/vbuswatcher.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -48,7 +48,13 @@
void CVBusWatcher::ConstructL()
{
- User::LeaveIfError(iVBusProp.Attach(KUidUsbManCategory, KUsbOtgVBusPoweredProperty));
+#ifdef __CHARGING_PLUGIN_TEST_CODE__
+ const TInt8 KPropertyOffsetForChargingTest = 100;
+ User::LeaveIfError(iVBusProp.Attach(KUidUsbManCategory, KUsbOtgVBusPoweredProperty + KPropertyOffsetForChargingTest));
+#else
+ User::LeaveIfError(iVBusProp.Attach(KUidUsbManCategory, KUsbOtgVBusPoweredProperty));
+#endif
+
iVBusProp.Subscribe(iStatus);
SetActive();
--- a/usbmgmt/usbmgr/usbman/client/SRC/RUsb.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/client/SRC/RUsb.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -750,28 +750,12 @@
return SendReceive(EUsbRequestSession);
}
-EXPORT_C TInt RUsb::GetDetailedDescription(TInt aPersonalityId, HBufC*& aLocalizedPersonalityDescriptor)
+EXPORT_C TInt RUsb::GetDetailedDescription(TInt /*aPersonalityId*/, HBufC*& /*aLocalizedPersonalityDescriptor*/)
{
LOG_LINE
LOG_FUNC
-
- TInt ret = KErrNone;
- // caller is responsible for freeing up memory allocated for aLocalizedPersonalityDescriptor
- TRAP(ret, aLocalizedPersonalityDescriptor = HBufC::NewL(KUsbStringDescStringMaxSize));
- if (ret == KErrNone)
- {
- TPtr ptr = aLocalizedPersonalityDescriptor->Des();
- TIpcArgs ipcArgs(0, &ptr);
- ipcArgs.Set(0, aPersonalityId);
- ret = SendReceive(EUsbGetDetailedDescription, ipcArgs);
- }
- else
- {
- // just in case caller tries to free the memory before checking the return code
- aLocalizedPersonalityDescriptor = NULL;
- }
-
- return ret;
+ //This API has been deprecated
+ return KErrNotSupported;
}
EXPORT_C TInt RUsb::GetPersonalityProperty(TInt aPersonalityId, TUint32& aProperty)
--- a/usbmgmt/usbmgr/usbman/server/INC/CPersonality.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/INC/CPersonality.h Thu Jul 22 16:49:39 2010 +0100
@@ -1,5 +1,5 @@
/**
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -29,60 +29,102 @@
#include <e32std.h>
#include "CUsbDevice.h"
+
+/**
+ * The CPersonalityConfigurations class keep all information of the table
+ * "Configuration" of USB cenrep
+ */
+
+NONSHARABLE_CLASS(CPersonalityConfigurations) : public CBase
+ {
+public:
+ /*USB Classes*/
+ class TUsbClasses
+ {
+ public:
+ TUid iClassUid;
+ TInt iFeatureId; // Indicates the class is configurable or not.
+ };
+public:
+ void SetPersonalityId(TInt aPersonalityId);
+ void SetConfigId(TInt aConfigId);
+ inline const RArray<CPersonalityConfigurations::TUsbClasses>& Classes() const;
+ void AppendClassesL(const TUsbClasses& aClasses );
+ ~CPersonalityConfigurations();
+
+private:
+ TInt iPersonalityId; /*Personality Id*/
+ TInt iConfigId; /*Configuration Id*/
+ RArray<TUsbClasses> iClasses; /*Class array*/
+ };
+
NONSHARABLE_CLASS(CPersonality) : public CBase
{
public:
static CPersonality* NewL();
~CPersonality();
- TInt PersonalityId() const;
- const RArray<TUid>& SupportedClasses() const;
- TInt ClassSupported(TUid aClassId) const;
- const CUsbDevice::TUsbDeviceDescriptor& DeviceDescriptor() const;
- CUsbDevice::TUsbDeviceDescriptor& DeviceDescriptor();
- const TDesC* Manufacturer() const;
- const TDesC* Product() const;
- const TDesC* Description() const;
- TInt AddSupportedClasses(TUid aClassId);
- void SetId(TInt aId);
- void SetManufacturer(const TDesC* aManufacturer);
- void SetProduct(const TDesC* aProduct);
- void SetDescription(const TDesC* aDescription);
+ const RArray<CPersonalityConfigurations::TUsbClasses>& SupportedClasses() const;
+ TBool ClassSupported(TUid aClassId) const;
static TInt Compare(const TUid& aFirst, const TUid& aSecond);
- const TDesC* DetailedDescription() const;
- void SetDetailedDescription(const TDesC* aDetailedDescription);
+ inline TInt Version() const;
+ void SetVersion(TInt version);
+
+ inline TUint32 Property() const;
+ void SetProperty(TUint32 aProperty);
+
+ inline TUint8 DeviceClass() const;
+ void SetDeviceClass(TUint8 aDeviceClass);
+
+ inline TUint8 DeviceSubClass() const;
+ void SetDeviceSubClass(TUint8 aDeviceSubClass);
- TUint32 Property() const;
- void SetProperty(TUint32 aProperty);
-
- TInt Version() const;
- void SetVersion(TInt version);
+ inline TUint8 DeviceProtocol() const;
+ void SetDeviceProtocol(TUint8 aDeviceProtocol);
+
+ inline TUint8 NumConfigurations() const;
+ void SetNumConfigurations(TUint8 aNumConfigurations);
+
+ inline TUint16 ProductId() const;
+ void SetProductId(TUint16 aProductId);
+
+ inline TInt FeatureId() const;
+ void SetFeatureId(TInt aFeatureId);
+
+ inline TUint16 BcdDevice() const;
+ void SetBcdDevice(TUint16 aBcdDevice);
+
+ inline TInt PersonalityId() const;
+ void SetPersonalityId(TInt aPersonalityId);
+
+ inline const TDesC* Description() const;
+ void SetDescription(const TDesC* aDescription);
+
+ inline const RPointerArray<CPersonalityConfigurations>& PersonalityConfigs() const;
+ void AppendPersonalityConfigsL(const CPersonalityConfigurations *aPersonalityConfig );
private:
CPersonality();
void ConstructL();
-
+
private:
- // personality id
- TInt iId;
- // USB class ids
- RArray<TUid> iClassUids;
- // textual description of manufacturer
- HBufC* iManufacturer;
- // textual description of product
- HBufC* iProduct;
- // textual description of personality
- HBufC* iDescription;
- // USB device descriptor struct
- CUsbDevice::TUsbDeviceDescriptor iDeviceDescriptor;
- // detailed textual description of personality
- HBufC* iDetailedDescription;
-
- TInt iVersion;
- TUint32 iProperty;
+ TInt iVersion;
+ TUint32 iProperty;
+ TUint8 iDeviceClass;
+ TUint8 iDeviceSubClass;
+ TUint8 iDeviceProtocol;
+ TUint8 iNumConfigurations;
+ TUint16 iProductId;
+ TInt iFeatureId;
+ TUint16 iBcdDevice;
+ TInt iPersonalityId; // personality id
+ HBufC* iDescription; // Own this Personality's description
+ RPointerArray<CPersonalityConfigurations> iPersonalityConfigs;
};
+
+
#include "CPersonality.inl"
#endif // __CPERSONALITY_H__
--- a/usbmgmt/usbmgr/usbman/server/INC/CPersonality.inl Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/INC/CPersonality.inl Thu Jul 22 16:49:39 2010 +0100
@@ -1,5 +1,5 @@
/**
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -28,79 +28,6 @@
/**
* @internalComponent
- * @return personality id
- */
-inline TInt CPersonality::PersonalityId() const
- {
- return iId;
- }
-
-/**
- * @internalComponent
- * @return supported class uids
- */
-inline const RArray<TUid>& CPersonality::SupportedClasses() const
- {
- return iClassUids;
- }
-
-/**
- * @internalComponent
- * @return a const reference to device descriptor
- */
-inline const CUsbDevice::TUsbDeviceDescriptor& CPersonality::DeviceDescriptor() const
- {
- return iDeviceDescriptor;
- }
-
-/**
- * @internalComponent
- * @return a const reference to device descriptor
- */
-inline CUsbDevice::TUsbDeviceDescriptor& CPersonality::DeviceDescriptor()
- {
- return iDeviceDescriptor;
- }
-
-/**
- * @internalComponent
- * @return a const pointer to manufacturer string
- */
-inline const TDesC* CPersonality::Manufacturer() const
- {
- return iManufacturer;
- }
-
-/**
- * @internalComponent
- * @return a const pointer to product string
- */
-inline const TDesC* CPersonality::Product() const
- {
- return iProduct;
- }
-
-/**
- * @internalComponent
- * @return a const pointer to description string
- */
-inline const TDesC* CPersonality::Description() const
- {
- return iDescription;
- }
-
-/**
- * @internalComponent
- * @return a const pointer to detailed description string
- */
-inline const TDesC* CPersonality::DetailedDescription() const
- {
- return iDetailedDescription;
- }
-
-
-/**
- * @internalComponent
* @return version
*/
inline TInt CPersonality::Version() const
@@ -116,5 +43,106 @@
{
return iProperty;
}
+
+/**
+ * @internalComponent
+ * @return the Device Class information
+ */
+inline TUint8 CPersonality::DeviceClass() const
+ {
+ return iDeviceClass;
+ }
+
+/**
+ * @internalComponent
+ * @return the Device Sub Class information
+ */
+inline TUint8 CPersonality::DeviceSubClass() const
+ {
+ return iDeviceSubClass;
+ }
+
+/**
+ * @internalComponent
+ * @return the Device Protocol information
+ */
+inline TUint8 CPersonality::DeviceProtocol() const
+ {
+ return iDeviceProtocol;
+ }
+
+/**
+ * @internalComponent
+ * @return the Configurations Number information
+ */
+inline TUint8 CPersonality::NumConfigurations() const
+ {
+ return iNumConfigurations;
+ }
+
+/**
+ * @internalComponent
+ * @return the Product Id information
+ */
+inline TUint16 CPersonality::ProductId() const
+ {
+ return iProductId;
+ }
+
+/**
+ * @internalComponent
+ * @return the Feature Id information
+ */
+inline TInt CPersonality::FeatureId() const
+ {
+ return iFeatureId;
+ }
+
+/**
+ * @internalComponent
+ * @return the Feature Id information
+ */
+inline TUint16 CPersonality::BcdDevice() const
+ {
+ return iBcdDevice;
+ }
+
+/**
+ * @internalComponent
+ * @return personality id
+ */
+inline TInt CPersonality::PersonalityId() const
+ {
+ return iPersonalityId;
+ }
+
+/**
+ * @internalComponent
+ * @return a const pointer to description string
+ */
+inline const TDesC* CPersonality::Description() const
+ {
+ return iDescription;
+ }
+
+/**
+ * @internalComponent
+ * @return a const pointer to Personality Configs
+ */
+inline const RPointerArray<CPersonalityConfigurations>& CPersonality::PersonalityConfigs() const
+ {
+ return iPersonalityConfigs;
+ }
+
+
+/**
+ * @internalComponent
+ * @return a const to Classes
+ */
+inline const RArray<CPersonalityConfigurations::TUsbClasses> & CPersonalityConfigurations::Classes() const
+ {
+ return iClasses;
+ }
+
#endif // __PERSONALITY_INL__
--- a/usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -35,12 +35,16 @@
#include <usb/usblogger.h>
#include <musbmanextensionpluginobserver.h>
+
+
class CUsbDeviceStateWatcher;
class CUsbClassControllerBase;
class CUsbServer;
class MUsbDeviceNotify;
class CPersonality;
class CUsbmanExtensionPlugin;
+class CUsbManCenRepManager;
+
const TUid KUidUsbPlugIns = {0x101fbf21};
@@ -74,14 +78,24 @@
TUint8 iDeviceProtocol;
TUint8 iMaxPacketSize;
TUint16 iIdVendor;
- TUint16 iIdProduct;
+ TUint16 iProductId;
TUint16 iBcdDevice;
TUint8 iManufacturer;
TUint8 iProduct;
TUint8 iSerialNumber;
TUint8 iNumConfigurations;
};
-
+
+ /**
+ * See Central Repository
+ */
+ class TUsbDeviceConfiguration
+ {
+ public:
+ TUint16 iVendorId;
+ HBufC* iManufacturerName;
+ HBufC* iProductName;
+ };
public:
static CUsbDevice* NewL(CUsbServer& aUsbServer);
virtual ~CUsbDevice();
@@ -115,6 +129,7 @@
void ReadPersonalitiesL();
void SetDefaultPersonalityL();
void LoadFallbackClassControllersL();
+ void ConvertUidsL(const TDesC& aStr, RArray<TUint>& aUidArray);
public: // From CActive
void RunL();
@@ -137,14 +152,12 @@
private:
void SetDeviceDescriptorL();
- void SetUsbDeviceSettingsL(TUsbDeviceDescriptor& aDeviceDescriptor);
void SetUsbDeviceSettingsDefaultsL(TUsbDeviceDescriptor& aDeviceDescriptor);
void SelectClassControllersL();
void SetCurrentPersonalityL(TInt aPersonalityId);
void SetUsbDeviceSettingsFromPersonalityL(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor);
void ResourceFileNameL(TFileName& aFileName);
void CreateClassControllersL(const RArray<TUid>& aClassUids);
- void ConvertUidsL(const TDesC& aStr, RArray<TUint>& aUidArray);
TInt PowerUpAndConnect();
#ifdef __FLOG_ACTIVE
void PrintDescriptor(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor);
@@ -167,6 +180,8 @@
TBool iPersonalityCfged;
TBool iUdcSupportsCableDetectWhenUnpowered;
HBufC16* iDefaultSerialNumber;
+ CUsbManCenRepManager* iCenRepManager; // Own CenRepManager instance
+ TUsbDeviceConfiguration iDeviceConfiguration;
REComSession* iEcom; // Not to be deleted, only closed!
};
--- a/usbmgmt/usbmgr/usbman/server/INC/CUsbSession.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/INC/CUsbSession.h Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -97,7 +97,6 @@
TInt GetSupportedClasses(const RMessage2& aMessage);
TInt GetPersonalityIds(const RMessage2& aMessage);
TInt GetDescription(const RMessage2& aMessage);
- TInt GetDetailedDescription(const RMessage2& aMessage);
TInt ClassSupported(const RMessage2& aMessage);
TInt GetPersonalityProperty(const RMessage2& aMessage);
--- a/usbmgmt/usbmgr/usbman/server/INC/UsbSettings.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/INC/UsbSettings.h Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -50,16 +50,11 @@
_LIT(KUsbDefaultSerialNumber, "0123456789");
_LIT(KUsbDefaultConfig, "First and Last and Always");
-const TInt KUsbManagerResourceVersion = 0;
-const TInt KUsbManagerResourceVersionNew = 1;
-
-enum TUsbManagerResourceVersion
+enum TUsbManagerSupportedVersion
{
- EUsbManagerResourceVersionOne = 1,
- EUsbManagerResourceVersionTwo = 2,
- EUsbManagerResourceVersionThree = 3
+ TUsbManagerSupportedVersionMin = 4,
+ TUsbManagerSupportedVersionFour = 4,
+ TUsbManagerSupportedVersionMax = 4
};
-_LIT(KUsbManagerResource, "z:\\private\\101fe1db\\usbman.rsc");
-
#endif // __USBSETTINGS_H__
--- a/usbmgmt/usbmgr/usbman/server/INC/UsbmanServerSecurityPolicy.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/INC/UsbmanServerSecurityPolicy.h Thu Jul 22 16:49:39 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -105,7 +105,6 @@
/** EUsbGetOtgDescriptor */
/** EUsbDbgAlloc */
/** EUsbRequestSession */
- /** EUsbGetDetailedDescription */
/** EUsbGetPersonalityProperty */
CPolicyServer::ENotSupported, /** EUsbGetPersonalityProperty + 1 to KMaxTInt */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/INC/usbmancenrepmanager.h Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* 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
+*/
+
+#ifndef USBMANCENREPMANAGER_H
+#define USBMANCENREPMANAGER_H
+
+#include <e32base.h>
+
+class CRepository;
+class CPersonality;
+class TUsbDeviceDescriptor;
+class CUsbDevice;
+
+/** Helper class for tasks related to central repository. It reads settings from
+ * appropriate cenrep keys */
+NONSHARABLE_CLASS( CUsbManCenRepManager ) : public CBase
+{
+ public:
+
+ /** Two-phased constructor. */
+ static CUsbManCenRepManager* NewL(CUsbDevice& aUsbDevice);
+
+ /** Destructor. */
+ virtual ~CUsbManCenRepManager();
+
+ void ReadPersonalitiesL(RPointerArray<CPersonality>& aPersonalities);
+
+ void ReadDeviceConfigurationL(CUsbDevice::TUsbDeviceConfiguration& aDeviceConfig);
+
+ private:
+ CUsbManCenRepManager(CUsbDevice& aUsbDevice);
+
+ void ConstructL();
+
+ void CheckSignatureL();
+
+ void ReadConfigurationsForPersonalityL(TInt aPersonalityId, CPersonality& aPersonality);
+
+ HBufC* ReadStringKeyLC( TUint32 aKeyId );
+ TInt ReadKeyL ( TUint32 aKeyId );
+
+ TBool IsClassConfigurableL(TUint aClassId, TInt& aFeatureId);
+ TBool IsFeatureSupportedL(TInt aFeatureId);
+
+ private:
+ /** Own repository instance */
+ CRepository* iRepository;
+ /**reference to CUsbDevice*/
+ CUsbDevice& iUsbDevice;
+ /*the USB Configuratiron signature*/
+ TInt iSignature;
+};
+
+#endif /*USBMANCENREPMANAGER_H*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/INC/usbmanprivatecrkeys.h Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* 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 USBMANPRIVATECRKEYS_H
+#define USBMANPRIVATECRKEYS_H
+
+const TUid KCRUidUSBManagerConfiguration = { 0x101fe1db };
+
+// Keys for USB configuration format
+const TUint32 KUsbManConfigSign = 0;
+
+const TUint32 KUsbManDevicePartialKey = 0x00010000;
+const TUint32 KUsbManDeviceCountIndexKey = 0x0001ff00;
+
+const TUint32 KUsbManDeviceConfigurationsPartialKey = 0x00020000;
+const TUint32 KUsbManDeviceConfigurationsCountIndexKey = 0x0002ff00;
+
+const TUint32 KUsbManDevicePersonalitiesPartialKey = 0x00030000;
+const TUint32 KUsbManDevicePersonalitiesCountIndexKey = 0x0003ff00;
+
+const TUint32 KUsbManDeviceConfigurableClassesPartialKey = 0x00040000;
+const TUint32 KUsbManDeviceConfigurableClassesCountIndexKey = 0x0004ff00;
+
+const TUint32 KUsbManConfigKeyMask = 0x00FFFF00;
+const TUint32 KUsbManConfigIndexMask = 0x0000FF00;
+const TUint32 KUsbManConfigFieldMask = 0x000000FF;
+const TUint32 KUsbManConfigFirstEntryMask = 0x00FF00FF;
+
+const TUint32 KUsbManPersonalitiesOffset = 8;
+
+const TInt KUsbManFeatureNotConfigurable = -1;
+
+//Device
+const TUint32 KUsbManDeviceVendorIdKey = 0x00000000;
+const TUint32 KUsbManDeviceManufacturerNameKey = 0x00000001;
+const TUint32 KUsbManDeviceProductNameKey = 0x00000002;
+
+//Configurations
+const TUint32 KUsbManDeviceConfigurationsPersonalityIdKey = 0x00000000;
+const TUint32 KUsbManDeviceConfigurationsIdKey = 0x00000001;
+const TUint32 KUsbManDeviceConfigurationsClassUidsKey = 0x00000002;
+const TUint32 KUsbManDeviceConfigurationsKeyCountVersionFour = 3; //Key count of each configuration.
+
+//Personalities
+const TUint32 KUsbManDevicePersonalitiesDeviceClassKey = 0x00000000;
+const TUint32 KUsbManDevicePersonalitiesDeviceSubClassKey = 0x00000001;
+const TUint32 KUsbManDevicePersonalitiesProtocolKey = 0x00000002;
+const TUint32 KUsbManDevicePersonalitiesNumConfigKey = 0x00000003;
+const TUint32 KUsbManDevicePersonalitiesProductIdKey = 0x00000004;
+const TUint32 KUsbManDevicePersonalitiesBcdDeviceKey = 0x00000005;
+const TUint32 KUsbManDevicePersonalitiesFeatureIdKey = 0x00000006;
+const TUint32 KUsbManDevicePersonalitiesPersonalityIdKey = 0x00000007;
+const TUint32 KUsbManDevicePersonalitiesPropertyKey = 0x00000008;
+const TUint32 KUsbManDevicePersonalitiesDescriptionKey = 0x00000009;
+
+//Configurable Classes
+const TUint32 KUsbManDeviceConfigurableClassesUidKey = 0x00000000;
+const TUint32 KUsbManDeviceConfigurableClassesFeatureIdKey = 0x00000001;
+
+#endif // USBMANPRIVATECRKEYS_H
--- a/usbmgmt/usbmgr/usbman/server/SRC/CPersonality.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CPersonality.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -21,13 +21,26 @@
@internalAll
*/
+#include <usb/usblogger.h>
#include "CPersonality.h"
-#include <usb/usblogger.h>
#ifdef __FLOG_ACTIVE
_LIT8(KLogComponent, "USBSVR");
#endif
+// Panic category only used in debug builds
+#ifdef _DEBUG
+_LIT(KUsbPersonalityPanicCategory, "CUsbPersonality");
+#endif
+
+/**
+ * Panic codes for the USB Personality Class
+ */
+enum TUsbPersonalityPanic
+ {
+ EPersonalityConfigsArrayEmpty,
+ };
+
/**
* Factory method. Constructs a CPersonality object.
*
@@ -45,20 +58,12 @@
}
/**
- * Allocates max amount of memory for each of 3 strings
+ * Allocates max amount of memory for description string
*/
void CPersonality::ConstructL()
{
LOG_FUNC
-
- iManufacturer = HBufC::NewLC(KUsbStringDescStringMaxSize);
- CleanupStack::Pop();
- iProduct = HBufC::NewLC(KUsbStringDescStringMaxSize);
- CleanupStack::Pop();
- iDescription = HBufC::NewLC(KUsbStringDescStringMaxSize);
- CleanupStack::Pop();
- iDetailedDescription = HBufC::NewLC(KUsbStringDescStringMaxSize);
- CleanupStack::Pop();
+ iDescription = HBufC::NewL(KUsbStringDescStringMaxSize);
}
/**
@@ -74,61 +79,38 @@
CPersonality::~CPersonality()
{
LOG_FUNC
-
- iClassUids.Close();
- delete iManufacturer;
- delete iProduct;
+ iPersonalityConfigs.ResetAndDestroy();
delete iDescription;
- delete iDetailedDescription;
- }
-
-/**
- * @return the index of the first match or KErrNotFound
- */
-TInt CPersonality::ClassSupported(TUid aClassUid) const
- {
- TIdentityRelation<TUid> relation(CPersonality::Compare);
- return iClassUids.Find(aClassUid, relation);
- }
-
-/**
- * @return KErrNone or system wide error code
- */
-TInt CPersonality::AddSupportedClasses(TUid aClassUid)
- {
- return iClassUids.Append(aClassUid);
}
/**
- * Sets personality id
+ * @return supported class uids
*/
-void CPersonality::SetId(TInt aId)
- {
- iId = aId;
- }
+const RArray<CPersonalityConfigurations::TUsbClasses>& CPersonality::SupportedClasses() const
+ {
+ //we only support configuration 0 now
+ __ASSERT_DEBUG( iPersonalityConfigs.Count() != 0, _USB_PANIC(KUsbPersonalityPanicCategory, EPersonalityConfigsArrayEmpty) );
+ return iPersonalityConfigs[0]->Classes();
+ }
/**
- * Sets manufacturer textual description
- */
-void CPersonality::SetManufacturer(const TDesC* aManufacturer)
+ * @return ETrue if this class is supported
+ * otherwise return EFalse
+ */
+TBool CPersonality::ClassSupported(TUid aClassUid) const
{
- iManufacturer->Des().Copy(*aManufacturer);
- }
-
-/**
- * Sets product textual description
- */
-void CPersonality::SetProduct(const TDesC* aProduct)
- {
- iProduct->Des().Copy(*aProduct);
- }
-
-/**
- * Sets personality textual description
- */
-void CPersonality::SetDescription(const TDesC* aDescription)
- {
- iDescription->Des().Copy((*aDescription).Left(KUsbStringDescStringMaxSize-1));
+ //we only support configuration 0 now
+ __ASSERT_DEBUG( iPersonalityConfigs.Count() != 0, _USB_PANIC(KUsbPersonalityPanicCategory, EPersonalityConfigsArrayEmpty) );
+ const RArray<CPersonalityConfigurations::TUsbClasses> &classes = iPersonalityConfigs[0]->Classes();
+ TInt classesCount = classes.Count();
+ for(TInt classesIndex = 0; classesIndex < classesCount; ++classesIndex)
+ {
+ if(aClassUid == classes[classesIndex].iClassUid)
+ {
+ return ETrue;
+ }
+ }
+ return EFalse;
}
/**
@@ -142,14 +124,6 @@
};
/**
- * Sets detailed personality textual description
- */
-void CPersonality::SetDetailedDescription(const TDesC* aDetailedDescription)
- {
- iDetailedDescription->Des().Copy((*aDetailedDescription).Left(KUsbStringDescStringMaxSize-1));
- }
-
-/**
* Sets version
*/
void CPersonality::SetVersion(TInt aVersion)
@@ -164,3 +138,117 @@
{
iProperty = aProperty;
}
+
+/**
+ * Sets DeviceClass
+ */
+void CPersonality::SetDeviceClass(TUint8 aDeviceClass)
+ {
+ iDeviceClass = aDeviceClass;
+ }
+
+/**
+ * Sets DeviceSubClass
+ */
+void CPersonality::SetDeviceSubClass(TUint8 aDeviceSubClass)
+ {
+ iDeviceSubClass = aDeviceSubClass;
+ }
+
+/**
+ * Sets DeviceProtocol
+ */
+void CPersonality::SetDeviceProtocol(TUint8 aDeviceProtocol)
+ {
+ iDeviceProtocol = aDeviceProtocol;
+ }
+
+/**
+ * Sets NumConfigurations
+ */
+void CPersonality::SetNumConfigurations(TUint8 aNumConfigurations)
+ {
+ iNumConfigurations = aNumConfigurations;
+ }
+
+/**
+ * Sets ProductId
+ */
+void CPersonality::SetProductId(TUint16 aProductId)
+ {
+ iProductId = aProductId;
+ }
+
+/**
+ * Sets FeatureId
+ */
+void CPersonality::SetFeatureId(TInt aFeatureId)
+ {
+ iFeatureId = aFeatureId;
+ }
+
+/**
+ * Sets BcdDevice
+ */
+void CPersonality::SetBcdDevice(TUint16 aBcdDevice)
+ {
+ iBcdDevice = aBcdDevice;
+ }
+
+/**
+ * Sets personality id
+ */
+void CPersonality::SetPersonalityId(TInt aPersonalityId)
+ {
+ iPersonalityId = aPersonalityId;
+ }
+
+/**
+ * Sets Description
+ */
+void CPersonality::SetDescription(const TDesC* aDescription)
+ {
+ iDescription->Des().Copy((*aDescription).Left(KUsbStringDescStringMaxSize-1));
+ }
+
+/**
+ * Append PersonalityConfig
+ */
+void CPersonality::AppendPersonalityConfigsL(const CPersonalityConfigurations *aPersonalityConfig )
+ {
+ iPersonalityConfigs.AppendL(aPersonalityConfig);
+ }
+
+/**
+ * Sets personality id
+ */
+void CPersonalityConfigurations::SetPersonalityId(TInt aPersonalityId)
+ {
+ iPersonalityId = aPersonalityId;
+ }
+
+/**
+ * Sets Config Id
+ */
+void CPersonalityConfigurations::SetConfigId(TInt aConfigId)
+ {
+ iConfigId = aConfigId;
+ }
+
+
+/**
+ * Append PersonalityConfig
+ */
+void CPersonalityConfigurations::AppendClassesL(const TUsbClasses &aClasses )
+ {
+ iClasses.AppendL(aClasses);
+ }
+
+/**
+ * De-Constructor
+ */
+CPersonalityConfigurations::~CPersonalityConfigurations()
+ {
+ LOG_FUNC
+ iClasses.Close();
+ }
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -21,33 +21,32 @@
@file
*/
-#include "CUsbDevice.h"
-#include "CUsbDeviceStateWatcher.h"
#include <cusbclasscontrolleriterator.h>
-#include "MUsbDeviceNotify.h"
-#include "UsbSettings.h"
-#include "CUsbServer.h"
#include <cusbclasscontrollerbase.h>
#include <cusbclasscontrollerplugin.h>
-#include "UsbUtils.h"
#include <cusbmanextensionplugin.h>
-
-#ifdef USE_DUMMY_CLASS_CONTROLLER
-#include "CUsbDummyClassController.h"
-#endif
-
#include <bafl/sysutil.h>
#include <usb/usblogger.h>
#include <e32svr.h>
#include <e32base.h>
#include <e32std.h>
-#include <usbman.rsg>
#include <f32file.h>
#include <barsc.h>
#include <barsread.h>
#include <bautils.h>
#include <e32property.h> //Publish & Subscribe header
+#ifdef USE_DUMMY_CLASS_CONTROLLER
+#include "CUsbDummyClassController.h"
+#endif
+#include "MUsbDeviceNotify.h"
+#include "UsbSettings.h"
+#include "CUsbServer.h"
+#include "UsbUtils.h"
+#include "CUsbDevice.h"
+#include "CUsbDeviceStateWatcher.h"
#include "CPersonality.h"
+#include "usbmancenrepmanager.h"
+#include "usbmanprivatecrkeys.h"
_LIT(KUsbLDDName, "eusbc"); //Name used in call to User::LoadLogicalDevice
_LIT(KUsbLDDFreeName, "Usbc"); //Name used in call to User::FreeLogicalDevice
@@ -108,6 +107,11 @@
iSupportedClassUids.Close();
iExtensionPlugins.ResetAndDestroy();
+
+ delete iCenRepManager;
+
+ delete iDeviceConfiguration.iManufacturerName;
+ delete iDeviceConfiguration.iProductName;
if(iEcom)
iEcom->Close();
@@ -118,6 +122,7 @@
// the observers themselves.
iObservers.Reset();
+#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
LOGTEXT2(_L8("about to delete device state watcher @ %08x"), (TUint32) iDeviceStateWatcher);
delete iDeviceStateWatcher;
@@ -133,6 +138,7 @@
{
LOGTEXT2(_L8(" User::FreeLogicalDevice returned %d"),err);
}
+#endif
#endif
delete iDefaultSerialNumber;
@@ -163,7 +169,11 @@
iEcom = &(REComSession::OpenL());
iUsbClassControllerIterator = new(ELeave) CUsbClassControllerIterator(iSupportedClasses);
+ iCenRepManager = CUsbManCenRepManager::NewL(*this);
+ iDeviceConfiguration.iManufacturerName = HBufC::NewL(KUsbStringDescStringMaxSize);
+ iDeviceConfiguration.iProductName = HBufC::NewL(KUsbStringDescStringMaxSize);
+#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
LOGTEXT(_L8("About to load LDD"));
TInt err = User::LoadLogicalDevice(KUsbLDDName);
@@ -229,6 +239,7 @@
LOGTEXT(_L8("UsbDevice::ConstructL() finished"));
#endif
+#endif
#ifndef __OVER_DUMMYUSBDI__
InstantiateExtensionPluginsL();
@@ -491,6 +502,7 @@
if (iDeviceState != state)
{
+#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
if (iDeviceState == EUsbDeviceStateUndefined &&
iUdcSupportsCableDetectWhenUnpowered &&
@@ -502,7 +514,8 @@
// it up (so long as usbman is fully started).
(void)PowerUpAndConnect(); // We don't care about any errors here.
}
-#endif // __WINS__
+#endif
+#endif // __OVER_DUMMYUSBDI__
// Change state straight away in case any of the clients check it
TUsbDeviceState oldState = iDeviceState;
iDeviceState = state;
@@ -610,6 +623,7 @@
case EUsbServiceStarting:
if (iUsbClassControllerIterator->Next() == KErrNotFound)
{
+#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
if (!iUdcSupportsCableDetectWhenUnpowered || iDeviceState != EUsbDeviceStateUndefined)
{
@@ -623,6 +637,7 @@
(void)PowerUpAndConnect();
}
#endif
+#endif
// If we're not running on target, we can just go to "started".
SetServiceState(EUsbServiceStarted);
}
@@ -636,6 +651,7 @@
if (iUsbClassControllerIterator->Previous() == KErrNotFound)
{
// if stopping classes, hide the USB interface from the host
+#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
iLdd.DeviceDisconnectFromHost();
@@ -650,7 +666,8 @@
TInt res = iLdd.RemoveSerialNumberStringDescriptor();
LOGTEXT2(_L8("Remove serial number res = %d"), res);
}
-
+
+#endif
#endif
SetServiceState(EUsbServiceIdle);
}
@@ -777,7 +794,7 @@
LOGTEXT2(_L8("\tiMaxPacketSize is: 0x%02x"), aDeviceDescriptor.iMaxPacketSize);
LOGTEXT2(_L8("\tVendorId is: 0x%04x"), aDeviceDescriptor.iIdVendor);
- LOGTEXT2(_L8("\tProductId is: 0x%04x"), aDeviceDescriptor.iIdProduct);
+ LOGTEXT2(_L8("\tProductId is: 0x%04x"), aDeviceDescriptor.iProductId);
LOGTEXT2(_L8("\tBcdDevice is: 0x%04x"), aDeviceDescriptor.iBcdDevice);
LOGTEXT2(_L8("\tiManufacturer is: 0x%04x"), aDeviceDescriptor.iManufacturer);
@@ -793,7 +810,7 @@
{
LOG_FUNC
-#ifndef __WINS__
+#if !defined(__OVER_DUMMYUSBDI__) && !defined(__WINS__)
TInt desSize = 0;
iLdd.GetDeviceDescriptorSize(desSize);
@@ -821,7 +838,7 @@
TUsbDeviceDescriptor descriptor;
TUsbDeviceDescriptor* deviceDescriptor = &descriptor;
-#endif // __WINS__
+#endif // __OVER_DUMMYUSBDI__ && _WINS_
if (iPersonalityCfged)
{
@@ -829,9 +846,11 @@
}
else
{
- SetUsbDeviceSettingsL(*deviceDescriptor);
+ LOGTEXT(_L8("USB configuration is not read"));
+ LEAVEL(KErrNotFound);
}
+#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
ret = iLdd.SetDeviceDescriptor(devicePtr);
@@ -843,7 +862,8 @@
CleanupStack::PopAndDestroy(deviceBuf);
-#endif // __WINS__
+#endif
+#endif // __OVER_DUMMYUSBDI__
}
void CUsbDevice::SetUsbDeviceSettingsDefaultsL(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor)
@@ -858,134 +878,7 @@
aDeviceDescriptor.iDeviceSubClass = KUsbDefaultDeviceSubClass;
aDeviceDescriptor.iDeviceProtocol = KUsbDefaultDeviceProtocol;
aDeviceDescriptor.iIdVendor = KUsbDefaultVendorId;
- aDeviceDescriptor.iIdProduct = KUsbDefaultProductId;
- }
-
-void CUsbDevice::SetUsbDeviceSettingsL(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor)
-/**
- * Configure the USB device, reading in the settings from a
- * resource file where possible.
- *
- * @param aDeviceDescriptor The device descriptor for the USB device
- */
- {
- LOG_FUNC
-
- // First, use the default values
- LOGTEXT(_L8("Setting default values for the configuration"));
- SetUsbDeviceSettingsDefaultsL(aDeviceDescriptor);
-
- // Now try to get the configuration from the resource file
- RFs fs;
- LEAVEIFERRORL(fs.Connect());
- CleanupClosePushL(fs);
-
- RResourceFile resource;
- TRAPD(err, resource.OpenL(fs, KUsbManagerResource));
- LOGTEXT2(_L8("Opened resource file with error %d"), err);
-
- if (err != KErrNone)
- {
- LOGTEXT(_L8("Unable to open resource file: using default settings"));
- CleanupStack::PopAndDestroy(&fs);
- return;
- }
-
- CleanupClosePushL(resource);
-
- resource.ConfirmSignatureL(KUsbManagerResourceVersion);
-
- HBufC8* id = resource.AllocReadLC(USB_CONFIG);
-
- // The format of the USB resource structure is:
- //
- // STRUCT usb_configuration
- // {
- // WORD vendorId = 0x0e22;
- // WORD productId = 0x000b;
- // WORD bcdDevice = 0x0000;
- // LTEXT manufacturer = "Symbian Ltd.";
- // LTEXT product = "Symbian OS";
- // }
- //
- // Note that the resource must be read in this order!
-
- TResourceReader reader;
- reader.SetBuffer(id);
-
- aDeviceDescriptor.iIdVendor = static_cast<TUint16>(reader.ReadUint16());
- aDeviceDescriptor.iIdProduct = static_cast<TUint16>(reader.ReadUint16());
- aDeviceDescriptor.iBcdDevice = static_cast<TUint16>(reader.ReadUint16());
-
- // Try to read device and manufacturer name from new SysUtil API
- TPtrC16 sysUtilModelName;
- TPtrC16 sysUtilManuName;
-
- // This method returns ownership.
- CDeviceTypeInformation* deviceInfo = SysUtil::GetDeviceTypeInfoL();
- CleanupStack::PushL(deviceInfo);
- TInt gotSysUtilModelName = deviceInfo->GetModelName(sysUtilModelName);
- TInt gotSysUtilManuName = deviceInfo->GetManufacturerName(sysUtilManuName);
-
- TPtrC manufacturerString = reader.ReadTPtrC();
- TPtrC productString = reader.ReadTPtrC();
-
- // If we succesfully read the manufacturer or device name from SysUtil API
- // then set these results, otherwise use the values defined in resource file
-#ifndef __WINS__
- if (gotSysUtilManuName == KErrNone)
- {
- LEAVEIFERRORL(iLdd.SetManufacturerStringDescriptor(sysUtilManuName));
- }
- else
- {
- LEAVEIFERRORL(iLdd.SetManufacturerStringDescriptor(manufacturerString));
- }
-
- if (gotSysUtilModelName == KErrNone)
- {
- LEAVEIFERRORL(iLdd.SetProductStringDescriptor(sysUtilModelName));
- }
- else
- {
- LEAVEIFERRORL(iLdd.SetProductStringDescriptor(productString));
- }
-#endif // __WINS__
-
-#ifdef __FLOG_ACTIVE
- PrintDescriptor(aDeviceDescriptor);
- TBuf8<KUsbStringDescStringMaxSize> narrowString;
- narrowString.Copy(manufacturerString);
- LOGTEXT2(_L8("Manufacturer is: '%S'"), &narrowString);
- narrowString.Copy(productString);
- LOGTEXT2(_L8("Product is: '%S'"), &narrowString);
-#endif // __FLOG_ACTIVE
-
-#ifndef __WINS__
- //Read the published serial number. The key is the UID KUidUsbmanServer = 0x101FE1DB
- TBuf16<KUsbStringDescStringMaxSize> serNum;
- TInt r = RProperty::Get(KUidSystemCategory,0x101FE1DB,serNum);
- if(r==KErrNone)
- {
-#ifdef __FLOG_ACTIVE
- TBuf8<KUsbStringDescStringMaxSize> narrowString;
- narrowString.Copy(serNum);
- LOGTEXT2(_L8("Setting published SerialNumber: %S"), &narrowString);
-#endif // __FLOG_ACTIVE
- //USB spec doesn't give any constraints on what constitutes a valid serial number.
- //As long as it is a string descriptor it is valid.
- LEAVEIFERRORL(iLdd.SetSerialNumberStringDescriptor(serNum));
- }
-#ifdef __FLOG_ACTIVE
- else
- {
- LOGTEXT(_L8("SerialNumber has not been published"));
- }
-#endif // __FLOG_ACTIVE
-#endif // __WINS__
-
-
- CleanupStack::PopAndDestroy(4, &fs); // deviceInfo, id, resource, fs
+ aDeviceDescriptor.iProductId = KUsbDefaultProductId;
}
void CUsbDevice::SetUsbDeviceSettingsFromPersonalityL(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor)
@@ -1002,19 +895,19 @@
SetUsbDeviceSettingsDefaultsL(aDeviceDescriptor);
// Now try to get the configuration from the current personality
- const CUsbDevice::TUsbDeviceDescriptor& deviceDes = iCurrentPersonality->DeviceDescriptor();
- aDeviceDescriptor.iDeviceClass = deviceDes.iDeviceClass;
- aDeviceDescriptor.iDeviceSubClass = deviceDes.iDeviceSubClass;
- aDeviceDescriptor.iDeviceProtocol = deviceDes.iDeviceProtocol;
- aDeviceDescriptor.iIdVendor = deviceDes.iIdVendor;
- aDeviceDescriptor.iIdProduct = deviceDes.iIdProduct;
- aDeviceDescriptor.iBcdDevice = deviceDes.iBcdDevice;
- aDeviceDescriptor.iSerialNumber = deviceDes.iSerialNumber;
- aDeviceDescriptor.iNumConfigurations = deviceDes.iNumConfigurations;
+ aDeviceDescriptor.iDeviceClass = iCurrentPersonality->DeviceClass();
+ aDeviceDescriptor.iDeviceSubClass = iCurrentPersonality->DeviceSubClass();
+ aDeviceDescriptor.iDeviceProtocol = iCurrentPersonality->DeviceProtocol();
+ aDeviceDescriptor.iIdVendor = iDeviceConfiguration.iVendorId;
+ aDeviceDescriptor.iProductId = iCurrentPersonality->ProductId();
+ aDeviceDescriptor.iBcdDevice = iCurrentPersonality->BcdDevice();
+ aDeviceDescriptor.iNumConfigurations = iCurrentPersonality->NumConfigurations();
+
+#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
- LEAVEIFERRORL(iLdd.SetManufacturerStringDescriptor(*(iCurrentPersonality->Manufacturer())));
- LEAVEIFERRORL(iLdd.SetProductStringDescriptor(*(iCurrentPersonality->Product())));
+ LEAVEIFERRORL(iLdd.SetManufacturerStringDescriptor(*(iDeviceConfiguration.iManufacturerName)));
+ LEAVEIFERRORL(iLdd.SetProductStringDescriptor(*(iDeviceConfiguration.iProductName)));
//Read the published serial number. The key is the UID KUidUsbmanServer = 0x101FE1DB
TBuf16<KUsbStringDescStringMaxSize> serNum;
@@ -1036,12 +929,15 @@
LOGTEXT(_L8("SerialNumber has not been published"));
}
#endif // __FLOG_ACTIVE
-#endif // __WINS__
+
+#endif
+#endif // __OVER_DUMMYUSBDI__
#ifdef __FLOG_ACTIVE
PrintDescriptor(aDeviceDescriptor);
+#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
TBuf16<KUsbStringDescStringMaxSize> wideString;
TBuf8<KUsbStringDescStringMaxSize> narrowString;
@@ -1049,7 +945,8 @@
LEAVEIFERRORL(iLdd.GetConfigurationStringDescriptor(wideString));
narrowString.Copy(wideString);
LOGTEXT2(_L8("Configuration is: '%S'"), &narrowString);
-#endif // __WINS__
+#endif
+#endif // __OVER_DUMMYUSBDI__
#endif // __FLOG_ACTIVE
}
@@ -1148,15 +1045,17 @@
TInt personalityCount = iSupportedPersonalities.Count();
for (TInt i = 0; i < personalityCount; i++)
{
- const RArray<TUid>& classUids = iSupportedPersonalities[i]->SupportedClasses();
- TInt uidCount = classUids.Count();
+ const RArray<CPersonalityConfigurations::TUsbClasses>& classes = iSupportedPersonalities[i]->SupportedClasses();
+ TInt uidCount = classes.Count();
for (TInt j = 0; j < uidCount; j++)
{
TInt ccCount = iSupportedClassUids.Count();
TInt k;
+ LOGTEXT2(_L8("iSupportedClassUids Count = %d"),ccCount);
for (k = 0; k < ccCount; k++)
{
- if (iSupportedClassUids[k] == classUids[j])
+ LOGTEXT5(_L8("iSupportedClassUids %d %x classes %d %x"), k, iSupportedClassUids[k].iUid, j, classes[j].iClassUid.iUid);
+ if (iSupportedClassUids[k] == classes[j].iClassUid)
{
break;
}
@@ -1181,6 +1080,7 @@
*/
void CUsbDevice::ConvertUidsL(const TDesC& aStr, RArray<TUint>& aUidArray)
{
+ LOG_FUNC
// Function assumes that aUIDs is empty
__ASSERT_DEBUG( aUidArray.Count() == 0, _USB_PANIC(KUsbDevicePanicCategory, EUidArrayNotEmpty) );
@@ -1205,214 +1105,36 @@
}
void CUsbDevice::ReadPersonalitiesL()
-/**
- * Reads configured personalities from the resource file
- */
- {
- LOG_FUNC
- iPersonalityCfged = EFalse;
- // Now try to connect to file server
- RFs fs;
- LEAVEIFERRORL(fs.Connect());
- CleanupClosePushL(fs);
-
- TFileName resourceFileName;
- ResourceFileNameL(resourceFileName);
- RResourceFile resource;
- TRAPD(err, resource.OpenL(fs, resourceFileName));
- LOGTEXT2(_L8("Opened resource file with error %d"), err);
-
- if (err != KErrNone)
- {
- LOGTEXT(_L8("Unable to open resource file"));
- CleanupStack::PopAndDestroy(&fs);
- return;
- }
-
- CleanupClosePushL(resource);
-
- TInt resourceVersion = resource.SignatureL();
- LOGTEXT2(_L8("Resource file signature is %d"), resourceVersion);
- // Check for the version is valid(EUsbManagerResourceVersionOne, EUsbManagerResourceVersionTwo
- // or EUsbManagerResourceVersionThree).
- if(resourceVersion > EUsbManagerResourceVersionThree)
- {
- LOGTEXT2(_L8("Version of resource file is valid (>%d)"), EUsbManagerResourceVersionThree);
- User::LeaveIfError(KErrNotSupported);
- }
-
- resource.ConfirmSignatureL(resourceVersion);
-
- HBufC8* personalityBuf = 0;
- TRAPD(ret, personalityBuf = resource.AllocReadL(DEVICE_PERSONALITIES));
- // If personalities resource is not found, swallow the error and return
- // as no specified personalities is a valid configuration
- if (ret == KErrNotFound)
- {
- LOGTEXT(_L8("Personalities are not configured"));
- CleanupStack::PopAndDestroy(2, &fs);
- return;
- }
- // Otherwise leave noisily if the AllocRead fails
- LEAVEIFERRORL(ret);
- CleanupStack::PushL(personalityBuf);
-
- // The format of the USB resource structure is:
- //
- // STRUCT PERSONALITY
- // {
- // WORD bcdDeviceClass;
- // WORD bcdDeviceSubClass;
- // WORD protocol;
- // WORD numConfigurations;
- // WORD vendorId;
- // WORD productId;
- // WORD bcdDevice;
- // LTEXT manufacturer;
- // LTEXT product;
- // WORD id; // personality id
- // LTEXT class_uids;
- // LTEXT description; // personality description
- // LTEXT detailedDescription; //detailed description. This is in version 2
- // LONG Property;
- // }
- //
- // Note that the resource must be read in this order!
-
- TResourceReader reader;
- reader.SetBuffer(personalityBuf);
-
- TUint16 personalityCount = static_cast<TUint16>(reader.ReadUint16());
-
- // Read the manufacturer and device name (product) here from SysUtil class
- TPtrC16 sysUtilModelName;
- TPtrC16 sysUtilManuName;
-
- // This method returns ownership.
- CDeviceTypeInformation* deviceInfo = SysUtil::GetDeviceTypeInfoL();
- CleanupStack::PushL(deviceInfo);
- TInt gotSysUtilModelName = deviceInfo->GetModelName(sysUtilModelName);
- TInt gotSysUtilManuName = deviceInfo->GetManufacturerName(sysUtilManuName);
-
- for (TInt idx = 0; idx < personalityCount; idx++)
- {
- // read a personality
- TUint8 bDeviceClass = static_cast<TUint8>(reader.ReadUint8());
- TUint8 bDeviceSubClass = static_cast<TUint8>(reader.ReadUint8());
- TUint8 protocol = static_cast<TUint8>(reader.ReadUint8());
- TUint8 numConfigurations = static_cast<TUint8>(reader.ReadUint8());
- TUint16 vendorId = static_cast<TUint16>(reader.ReadUint16());
- TUint16 productId = static_cast<TUint16>(reader.ReadUint16());
- TUint16 bcdDevice = static_cast<TUint16>(reader.ReadUint16());
- TPtrC manufacturer = reader.ReadTPtrC();
- TPtrC product = reader.ReadTPtrC();
- TUint16 id = static_cast<TUint16>(reader.ReadUint16());
- TPtrC uidsStr = reader.ReadTPtrC();
- TPtrC description = reader.ReadTPtrC();
-
- RArray<TUint> uids;
- CleanupClosePushL(uids);
- ConvertUidsL(uidsStr, uids);
- // creates a CPersonality object
- CPersonality* personality = CPersonality::NewL();
- CleanupStack::PushL(personality);
-
- personality->SetVersion(resourceVersion);
-
- // populates personality object
- personality->SetId(id);
-
- for (TInt uidIdx = 0; uidIdx < uids.Count(); uidIdx++)
- {
- LEAVEIFERRORL(personality->AddSupportedClasses(TUid::Uid(uids[uidIdx])));
- }
-
- // gets a handle to iDeviceDescriptor of personality
- CUsbDevice::TUsbDeviceDescriptor& dvceDes = personality->DeviceDescriptor();
- if (gotSysUtilManuName == KErrNone)
- {
- personality->SetManufacturer(&sysUtilManuName);
- }
- else
- {
- personality->SetManufacturer(&manufacturer);
- }
-
- if (gotSysUtilModelName == KErrNone)
- {
- personality->SetProduct(&sysUtilModelName);
- }
- else
- {
- personality->SetProduct(&product);
- }
-
- personality->SetDescription(&description);
- dvceDes.iDeviceClass = bDeviceClass;
- dvceDes.iDeviceSubClass = bDeviceSubClass;
- dvceDes.iDeviceProtocol = protocol;
- dvceDes.iIdVendor = vendorId;
- dvceDes.iIdProduct= productId;
- dvceDes.iBcdDevice = bcdDevice;
- dvceDes.iNumConfigurations = numConfigurations;
-
- //detailedDescription is only supported after EUsbManagerResourceVersionTwo
- if(resourceVersion >= EUsbManagerResourceVersionTwo)
- {
- TPtrC detailedDescription = reader.ReadTPtrC();
- personality->SetDetailedDescription(&detailedDescription);
-#ifdef __FLOG_ACTIVE
- TBuf8<KUsbDescMaxSize_String> narrowLongBuf;
- narrowLongBuf.Copy(detailedDescription);
- LOGTEXT2(_L8("detailed description = '%S'"), &narrowLongBuf);
-#endif // __FLOG_ACTIVE
- }
-
- //Property is only supported after EUsbManagerResourceVersionThree
- if(resourceVersion >= EUsbManagerResourceVersionThree)
- {
- TUint32 property = static_cast<TUint32>(reader.ReadUint32());
- personality->SetProperty(property);
-#ifdef __FLOG_ACTIVE
- LOGTEXT2(_L8("property = %d\n"), property);
-#endif // __FLOG_ACTIVE
- }
-
- // Append personality to iSupportedPersonalities
- iSupportedPersonalities.AppendL(personality);
- // Now pop off personality
- CleanupStack::Pop(personality);
-#ifdef __FLOG_ACTIVE
- // Debugging
- LOGTEXT2(_L8("personalityCount = %d\n"), personalityCount);
- LOGTEXT2(_L8("bDeviceClass = %d\n"), bDeviceClass);
- LOGTEXT2(_L8("bDeviceSubClass = %d\n"), bDeviceSubClass);
- LOGTEXT2(_L8("protocol = %d\n"), protocol);
- LOGTEXT2(_L8("numConfigurations = %d\n"), numConfigurations);
- LOGTEXT2(_L8("vendorId = %d\n"), vendorId);
- LOGTEXT2(_L8("productId = %d\n"), productId);
- LOGTEXT2(_L8("bcdDevice = %d\n"), bcdDevice);
- TBuf8<KMaxName> narrowBuf;
- narrowBuf.Copy(manufacturer);
- LOGTEXT2(_L8("manufacturer = '%S'"), &narrowBuf);
- narrowBuf.Copy(product);
- LOGTEXT2(_L8("product = '%S'"), &narrowBuf);
- LOGTEXT2(_L8("id = %d\n"), id);
- LOGTEXT(_L8("ClassUids{"));
- for (TInt k = 0; k < uids.Count(); k++)
- {
- LOGTEXT2(_L8("%d"), uids[k]);
- }
- LOGTEXT(_L8("}"));
- narrowBuf.Copy(description);
- LOGTEXT2(_L8("description = '%S'"), &narrowBuf);
-#endif // __FLOG_ACTIVE
- CleanupStack::PopAndDestroy(&uids); // close uid array
- }
-
- CleanupStack::PopAndDestroy(4, &fs); // deviceInfo, personalityBuf, resource, fs
- iPersonalityCfged = ETrue;
- }
+ {
+ LOG_FUNC
+ TPtrC16 sysUtilModelName;
+ TPtrC16 sysUtilManuName;
+
+ iPersonalityCfged = EFalse;
+
+ iCenRepManager->ReadDeviceConfigurationL(iDeviceConfiguration);
+
+ iCenRepManager->ReadPersonalitiesL(iSupportedPersonalities);
+
+ //update info for SetManufacturer & SetProduct
+ CDeviceTypeInformation* deviceInfo = SysUtil::GetDeviceTypeInfoL();
+ CleanupStack::PushL(deviceInfo);
+ TInt gotSysUtilModelName = deviceInfo->GetModelName(sysUtilModelName);
+ TInt gotSysUtilManuName = deviceInfo->GetManufacturerName(sysUtilManuName);
+
+ //To overlap info
+ if (gotSysUtilManuName == KErrNone)
+ {
+ iDeviceConfiguration.iManufacturerName->Des().Copy(sysUtilManuName);
+ }
+
+ if (gotSysUtilModelName == KErrNone)
+ {
+ iDeviceConfiguration.iProductName->Des().Copy(sysUtilModelName);
+ }
+ CleanupStack::PopAndDestroy(deviceInfo);
+ iPersonalityCfged = ETrue;
+ }
void CUsbDevice::SelectClassControllersL()
/**
@@ -1420,8 +1142,19 @@
*/
{
LOG_FUNC
-
- CreateClassControllersL(iCurrentPersonality->SupportedClasses());
+ const RArray<CPersonalityConfigurations::TUsbClasses>& classes = iCurrentPersonality->SupportedClasses();
+ RArray<TUid> classUids;
+ CleanupClosePushL( classUids );
+ TInt classCount = classes.Count();
+ for(TInt classIndex = 0; classIndex<classCount; ++classIndex)
+ {
+ TUid uid = classes[classIndex].iClassUid;
+ classUids.AppendL(uid);
+ }
+
+ CreateClassControllersL(classUids);
+
+ CleanupStack::PopAndDestroy( &classUids );
}
#ifdef USE_DUMMY_CLASS_CONTROLLER
void CUsbDevice::CreateClassControllersL(const RArray<TUid>& /* aClassUids*/)
@@ -1466,7 +1199,6 @@
TInt smallestId = iSupportedPersonalities[0]->PersonalityId();
TInt count = iSupportedPersonalities.Count();
-
for (TInt i = 1; i < count; i++)
{
if(iSupportedPersonalities[i]->PersonalityId() < smallestId)
@@ -1474,7 +1206,7 @@
smallestId = iSupportedPersonalities[i]->PersonalityId();
}
}
-
+
SetCurrentPersonalityL(smallestId);
SelectClassControllersL();
}
@@ -1493,44 +1225,6 @@
CreateClassControllersL(iSupportedClassUids);
}
-void CUsbDevice::ResourceFileNameL(TFileName& aFileName)
-/**
- * Gets resource file name
- *
- * @param aFileName Descriptor to populate with resource file name
- */
- {
- LOG_FUNC
-
- RFs fs;
- LEAVEIFERRORL(fs.Connect());
- CleanupClosePushL(fs);
-
-#ifdef __WINS__
- // If we are running in the emulator then read the resource file from system drive.
- // This makes testing with different resource files easier.
- _LIT(KPrivatePath, ":\\Private\\101fe1db\\");
- aFileName.Append(RFs::GetSystemDriveChar()); //get the name of system drive
- aFileName.Append(KPrivatePath);
-#else
- const TDriveNumber KResourceDrive = EDriveZ;
-
- TDriveUnit driveUnit(KResourceDrive);
- TDriveName drive=driveUnit.Name();
- aFileName.Insert(0, drive);
- // append private path
- TPath privatePath;
- fs.PrivatePath(privatePath);
- aFileName.Append(privatePath);
-#endif //WINS
-
- // Find the nearest match of resource file for the chosen locale
- aFileName.Append(_L("usbman.rsc"));
- BaflUtils::NearestLanguageFile(fs, aFileName); // if a match is not found, usbman.rsc will be used
-
- CleanupStack::PopAndDestroy(&fs); // fs no longer needed
- }
-
RDevUsbcClient& CUsbDevice::MuepoDoDevUsbcClient()
/**
* Inherited from MUsbmanExtensionPluginObserver - Function used by plugins to
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -518,9 +518,6 @@
case EUsbGetDescription:
ret = GetDescription(aMessage);
break;
- case EUsbGetDetailedDescription:
- ret = GetDetailedDescription(aMessage);
- break;
case EUsbGetPersonalityProperty:
ret = GetPersonalityProperty(aMessage);
break;
@@ -1274,7 +1271,7 @@
{
if (j < KUsbMaxSupportedClasses + 1)
{
- classUids[j] = personalities[i]->SupportedClasses()[j - 1].iUid;
+ classUids[j] = personalities[i]->SupportedClasses()[j - 1].iClassUid.iUid;
LOGTEXT3(_L8("\tclassUids[%d] = %d"), j, classUids[j]);
}
else
@@ -1375,36 +1372,6 @@
return KErrNotSupported;
}
-/**
- * Gets personality detailed description
- *
- * @internalComponent
- * @param aMessage Message received from the client
- * @return Any error that occurred or KErrNone
- */
-TInt CUsbSession::GetDetailedDescription(const RMessage2& aMessage)
- {
- LOG_FUNC
-
- if (!iPersonalityCfged)
- {
- return KErrNotSupported;
- }
-
- TInt personalityId = aMessage.Int0();
- const CPersonality* personality = iUsbServer->Device().GetPersonality(personalityId);
- if (personality)
- {
- if(personality->Version() < EUsbManagerResourceVersionTwo)
- {
- return KErrNotFound;
- }
- return aMessage.Write(1, *(personality->DetailedDescription()));
- }
-
- // We should never reach here
- return KErrNotSupported;
- }
/**
* Gets personality property
@@ -1426,10 +1393,6 @@
const CPersonality* personality = iUsbServer->Device().GetPersonality(personalityId);
if (personality)
{
- if(personality->Version() < EUsbManagerResourceVersionThree)
- {
- return KErrNotFound;
- }
TPckg<TUint32> pckg(personality->Property());
return aMessage.Write(1, pckg);
}
@@ -1459,7 +1422,7 @@
const CPersonality* personality = iUsbServer->Device().GetPersonality(personalityId);
if (personality)
{
- isSupported = (personality->ClassSupported(classUid) != KErrNotFound);
+ isSupported = personality->ClassSupported(classUid);
TPckg<TBool> pkg2(isSupported);
return aMessage.Write(2, pkg2);
}
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbman.rls Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2004-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
-* This file serves a template for the purpose of localization. The
-* content of this file shall be properly filled with unicode pertaining
-* to the configured language.
-* localized strings, US english
-*
-*/
-
-// personality one
-rls_string per_manufacturer1 "localized manufacturer"
-rls_string per_product1 "localized product description"
-rls_string per_description1 "localized personality description"
-rls_string per_detailedDescription1 "localized personality detailed description"
-
-// personality two
-rls_string per_manufacturer2 "localized manufacturer"
-rls_string per_product2 "localized product description"
-rls_string per_description2 "localized personality description"
-rls_string per_detailedDescription2 "localized personality detailed description"
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbman.rss Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
-* Copyright (c) 2005-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:
-* Resource file for usbman configuration.
-*
-*/
-
-/**
- @file
-*/
-
-NAME USBM
-
-#include <badef.rh>
-#include "usbman.rh"
-
-#ifdef LANGUAGE_01 // UK English
- #include "usbman_01.rls"
-#elif LANGUAGE_02 // French
- #include "usbman_02.rls"
-#elif defined LANGUAGE_03 // German
- #include "usbman_03.rls"
-#elif defined LANGUAGE_10 // US English
- #include "usbman_10.rls"
-#else // default to UK English strings in usbman.rsc
- #include "usbman_01.rls"
-#endif
-
-RESOURCE BA_RSS_SIGNATURE
- {
- signature = 3;
- }
-
-RESOURCE usb_configuration usb_config
- {
- }
-
-
-RESOURCE PERSONALITY_ARRAY device_personalities
- {
- personalities =
- {
- PERSONALITY
- {
- bDeviceClass = 02;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000b;
- bcdDevice = 0;
- manufacturer = per_manufacturer1;
- product = per_product1;
- id = 1;
- class_uids = "101FBF22";
- description = per_description1;
- detailedDescription = per_detailedDescription1;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 1;
- bDeviceSubClass = 2;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000c;
- bcdDevice = 2;
- manufacturer= per_manufacturer2;
- product = per_product2;
- id = 2;
- class_uids = "101fbf24";
- description = per_description2;
- detailedDescription = per_detailedDescription2;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1113;
- bcdDevice = 0;
- manufacturer = per_manufacturer3;
- product = per_product3;
- id = 3;
- class_uids = "10204bbc";
- description = per_description3;
- detailedDescription = per_detailedDescription3;
- property = 0x00000000;
- }
-
- // The productId's value of personalities to be implemented in the
- // future should be > 0x1115, to avoid conflict with IDs used by
- // other drivers or applications
-
- };
- }
-
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbman_01.rls Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2004-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
-* Resource file for testing and example mass storage application
-* localized strings for UK English. A place holder only. The actual
-* strings however may not be UK English at all.
-*
-*/
-
-// personality one
-rls_string per_manufacturer1 "Symbian"
-rls_string per_product1 "Symbian OS ACM"
-rls_string per_description1 "Serial Emulation"
-rls_string per_detailedDescription1 "Serial Emulation(detail)"
-
-// personality two
-rls_string per_manufacturer2 "Symbian"
-rls_string per_product2 "Symbian OS WHCM"
-rls_string per_description2 "Obex over USB"
-rls_string per_detailedDescription2 "Obex over USB(detail)"
-
-// personality three
-rls_string per_manufacturer3 "Symbian"
-rls_string per_product3 "Symbian OS MSCC"
-rls_string per_description3 "USB Mass Storage"
-rls_string per_detailedDescription3 "USB Mass Storage(detail)"
-
-// personality four
-rls_string per_manufacturer4 "Symbian"
-rls_string per_product4 "Symbian OS MTP"
-rls_string per_description4 "MTP over USB"
-rls_string per_detailedDescription4 "MTP over USB(detail)"
-
-// personality five
-rls_string per_manufacturer5 "Symbian"
-rls_string per_product5 "Symbian OS RNDIS"
-rls_string per_description5 "IP over USB - RNDIS"
-rls_string per_detailedDescription5 "IP over USB - RNDIS(detail)"
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbman_02.rls Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2004-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
-* This file serves a template for the purpose of localization. The
-* content of this file shall be properly filled with unicode pertaining
-* to the configured language.
-* localized strings for French. A place holder only. you know the
-* following strings are not French
-*
-*/
-
-
-// personality one
-rls_string per_manufacturer1 "Symbian"
-rls_string per_product1 "Symbian OS ACM"
-rls_string per_description1 "Serial Emulation"
-rls_string per_detailedDescription1 "Serial Emulation(detail)"
-
-// personality two
-rls_string per_manufacturer2 "Symbian"
-rls_string per_product2 "Symbian OS WHCM"
-rls_string per_description2 "Obex over USB"
-rls_string per_detailedDescription2 "Obex over USB(detail)"
-
-// personality three
-rls_string per_manufacturer3 "Symbian"
-rls_string per_product3 "Symbian OS MSCC"
-rls_string per_description3 "USB Mass Storage"
-rls_string per_detailedDescription3 "USB Mass Storage(detail)"
-
-// personality four
-rls_string per_manufacturer4 "Symbian"
-rls_string per_product4 "Symbian OS MTP"
-rls_string per_description4 "MTP over USB"
-rls_string per_detailedDescription4 "MTP over USB(detail)"
-
-// personality five
-rls_string per_manufacturer5 "Symbian"
-rls_string per_product5 "Symbian OS RNDIS"
-rls_string per_description5 "IP over USB - RNDIS"
-rls_string per_detailedDescription5 "IP over USB - RNDIS(detail)"
-
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbman_03.rls Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2004-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
-* This file serves a template for the purpose of localization. The
-* content of this file shall be properly filled with unicode pertaining
-* to the configured language.
-* localized strings for German. A place holder only. you know the
-* following strings are not German
-*
-*/
-
-
-// personality one
-// personality one
-rls_string per_manufacturer1 "Symbian"
-rls_string per_product1 "Symbian OS ACM"
-rls_string per_description1 "Serial Emulation"
-rls_string per_detailedDescription1 "Serial Emulation(detail)"
-
-// personality two
-rls_string per_manufacturer2 "Symbian"
-rls_string per_product2 "Symbian OS WHCM"
-rls_string per_description2 "Obex over USB"
-rls_string per_detailedDescription2 "Obex over USB(detail)"
-
-// personality three
-rls_string per_manufacturer3 "Symbian"
-rls_string per_product3 "Symbian OS MSCC"
-rls_string per_description3 "USB Mass Storage"
-rls_string per_detailedDescription3 "USB Mass Storage(detail)"
-
-// personality four
-rls_string per_manufacturer4 "Symbian"
-rls_string per_product4 "Symbian OS MTP"
-rls_string per_description4 "MTP over USB"
-rls_string per_detailedDescription4 "MTP over USB(detail)"
-
-// personality five
-rls_string per_manufacturer5 "Symbian"
-rls_string per_product5 "Symbian OS RNDIS"
-rls_string per_description5 "IP over USB - RNDIS"
-rls_string per_detailedDescription5 "IP over USB - RNDIS(detail)"
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbman_10.rls Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2004-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
-* This file serves a template for the purpose of localization. The
-* content of this file shall be properly filled with unicode pertaining
-* to the configured language.
-* localized strings, US english
-*
-*/
-
-
-// personality one
-rls_string per_manufacturer1 "Symbian"
-rls_string per_product1 "Symbian OS ACM"
-rls_string per_description1 "Serial Emulation"
-rls_string per_detailedDescription1 "Serial Emulation(detail)"
-
-// personality two
-rls_string per_manufacturer2 "Symbian"
-rls_string per_product2 "Symbian OS WHCM"
-rls_string per_description2 "Obex over USB"
-rls_string per_detailedDescription2 "Obex over USB(detail)"
-
-// personality three
-rls_string per_manufacturer3 "Symbian"
-rls_string per_product3 "Symbian OS MSCC"
-rls_string per_description3 "USB Mass Storage"
-rls_string per_detailedDescription3 "USB Mass Storage(detail)"
-
-// personality four
-rls_string per_manufacturer4 "Symbian"
-rls_string per_product4 "Symbian OS MTP"
-rls_string per_description4 "MTP over USB"
-rls_string per_detailedDescription4 "MTP over USB(detail)"
-
-// personality five
-rls_string per_manufacturer5 "Symbian"
-rls_string per_product5 "Symbian OS RNDIS"
-rls_string per_description5 "IP over USB - RNDIS"
-rls_string per_detailedDescription5 "IP over USB - RNDIS(detail)"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbmancenrepmanager.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -0,0 +1,489 @@
+// 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:
+// Implements a utility class which read information from Central Repository
+
+
+
+#include <centralrepository.h>
+#include <usb/usblogger.h>
+#ifdef SYMBIAN_FEATURE_MANAGER
+ #include <featureuids.h>
+ #include <featdiscovery.h>
+#endif
+#include "usbmanprivatecrkeys.h"
+#include "UsbSettings.h"
+#include "CPersonality.h"
+#include "usbmancenrepmanager.h"
+#include "CUsbDevice.h"
+
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
+#endif
+
+_LIT(KUsbCenRepPanic, "UsbCenRep");
+
+/**
+ * Panic codes for the USB Central Repository Manager
+ */
+enum TUsbCenRepPanic
+ {
+ ECenRepObserverNotStopped = 0,
+ ECenRepObserverAlreadySet,
+ ECenRepConfigError,
+ ECenRepFeatureManagerError,
+ };
+
+// ---------------------------------------------------------------------------
+// Private consctruction
+// ---------------------------------------------------------------------------
+//
+CUsbManCenRepManager::CUsbManCenRepManager(CUsbDevice& aUsbDevice)
+ : iUsbDevice( aUsbDevice )
+ {
+ LOG_FUNC
+ }
+
+// ---------------------------------------------------------------------------
+// The first phase construction
+// ---------------------------------------------------------------------------
+//
+CUsbManCenRepManager* CUsbManCenRepManager::NewL(CUsbDevice& aUsbDevice)
+ {
+ LOG_STATIC_FUNC_ENTRY
+ CUsbManCenRepManager* self = new (ELeave) CUsbManCenRepManager(aUsbDevice);
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// The second phase construction
+// ---------------------------------------------------------------------------
+//
+void CUsbManCenRepManager::ConstructL()
+ {
+ LOG_FUNC
+ // Open the Central Repository
+ iRepository = CRepository::NewL( KCRUidUSBManagerConfiguration );
+ CheckSignatureL();
+ }
+
+// ---------------------------------------------------------------------------
+// Deconstruction
+// ---------------------------------------------------------------------------
+//
+CUsbManCenRepManager::~CUsbManCenRepManager()
+ {
+ LOG_FUNC
+ delete iRepository;
+ }
+
+// ---------------------------------------------------------------------------
+// Read specific Key whose value type is String
+// ---------------------------------------------------------------------------
+//
+HBufC* CUsbManCenRepManager::ReadStringKeyLC( TUint32 aKeyId )
+ {
+ LOG_FUNC
+ HBufC* keyBuf = HBufC::NewLC( NCentralRepositoryConstants::KMaxUnicodeStringLength );
+ TPtr key = keyBuf->Des();
+
+ LEAVEIFERRORL( iRepository->Get( aKeyId, key ) );
+ LOGTEXT3(_L("LocSets: ReadStringKeyLC id: %x, val: %S"), aKeyId, &key );
+
+ return keyBuf;
+ }
+
+// ---------------------------------------------------------------------------
+// Read specific Key whose value type is TInt
+// ---------------------------------------------------------------------------
+//
+TInt CUsbManCenRepManager::ReadKeyL( TUint32 aKeyId )
+ {
+ LOG_FUNC
+ TInt key;
+
+ LEAVEIFERRORL( iRepository->Get( aKeyId, key ) );
+ LOGTEXT3(_L("LocSets: ReadKeyL id: 0x%x, val: 0x%x"), aKeyId, key);
+
+ return key;
+ }
+
+// ---------------------------------------------------------------------------
+// Check wheather cenrep's version is supported by cenrep manager
+// ---------------------------------------------------------------------------
+//
+void CUsbManCenRepManager::CheckSignatureL()
+ {
+ LOG_FUNC
+ iSignature = ReadKeyL( KUsbManConfigSign );
+
+ if ( iSignature < TUsbManagerSupportedVersionMin ||
+ iSignature > TUsbManagerSupportedVersionMax )
+ {
+ LEAVEL(KErrNotSupported);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Read Device configuration table
+// ---------------------------------------------------------------------------
+//
+void CUsbManCenRepManager::ReadDeviceConfigurationL(CUsbDevice::TUsbDeviceConfiguration& aDeviceConfig)
+ {
+ LOG_FUNC
+ //Only support version four right now.
+ __ASSERT_DEBUG( ( TUsbManagerSupportedVersionFour == iSignature ), _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError ) );
+
+ //Shall only have on device configuration setting.
+ TUint32 devConfigCount = ReadKeyL( KUsbManDeviceCountIndexKey );
+ __ASSERT_DEBUG( ( devConfigCount == 1 ), _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError ) );
+
+ RArray<TUint32> keyArray;
+ CleanupClosePushL( keyArray );
+ LEAVEIFERRORL( iRepository->FindL( KUsbManDevicePartialKey, KUsbManConfigKeyMask, keyArray ) );
+
+ TInt keyCount = keyArray.Count();
+ LOGTEXT2( _L("CUsbManCenRepManager::ReadDeviceConfigurationL keyCount of device config = %d"), keyCount );
+
+ //Get each extension type key value and store in iExtList array
+ for( TInt index = 0; index < keyCount; index++ )
+ {
+ TUint32 key = keyArray[index];
+ TUint32 fieldId = ( key & KUsbManConfigFieldMask );
+ LOGTEXT2( _L("CUsbManCenRepManager::ReadDeviceConfigurationL fieldId = %d"), fieldId );
+ if( fieldId == KUsbManDeviceVendorIdKey )
+ {
+ aDeviceConfig.iVendorId = ReadKeyL( key );
+ }
+ else if( fieldId == KUsbManDeviceManufacturerNameKey )
+ {
+ HBufC* manufacturer = ReadStringKeyLC( key );
+ TPtr manufacturerPtr = manufacturer->Des();
+ aDeviceConfig.iManufacturerName->Des().Copy( manufacturerPtr );
+ CleanupStack::PopAndDestroy( manufacturer );
+ }
+ else if( fieldId == KUsbManDeviceProductNameKey )
+ {
+ HBufC* product = ReadStringKeyLC( key );
+ TPtr productName = product->Des();
+ aDeviceConfig.iProductName->Des().Copy( productName );
+ CleanupStack::PopAndDestroy( product );
+ }
+ else
+ {
+ _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError );
+ }
+ }
+ CleanupStack::PopAndDestroy( &keyArray );
+ }
+
+
+// ---------------------------------------------------------------------------
+// Read personality table
+// ---------------------------------------------------------------------------
+//
+void CUsbManCenRepManager::ReadPersonalitiesL(RPointerArray<CPersonality>& aPersonalities)
+ {
+ LOG_FUNC
+
+ //Only support version four right now.
+ __ASSERT_DEBUG( ( TUsbManagerSupportedVersionFour == iSignature ), _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError ) );
+
+ // Get the personality count.
+ TUint32 personalityCount = ReadKeyL( KUsbManDevicePersonalitiesCountIndexKey );
+ LOGTEXT2( _L("CUsbManCenRepManager::ReadPersonalitiesL personalityCount = %d"), personalityCount );
+
+ RArray<TUint32> keyArray;
+ CleanupClosePushL( keyArray );
+
+
+ // Go through all personalities and store them.
+ for( TInt personalityIdx = 0; personalityIdx < personalityCount; personalityIdx++ )
+ {
+ CPersonality* personality = CPersonality::NewL();
+ CleanupStack::PushL( personality );
+
+ // Find the keys belonging to the personality
+ TUint32 devicePersonalitiesKey = KUsbManDevicePersonalitiesPartialKey | ( personalityIdx << KUsbManPersonalitiesOffset );
+ LEAVEIFERRORL( iRepository->FindL( devicePersonalitiesKey, KUsbManConfigKeyMask, keyArray ) );
+
+ TInt keyCount = keyArray.Count();
+ LOGTEXT2( _L("CUsbManCenRepManager::ReadPersonalitiesL keyCount of personality = %d"), keyCount );
+
+ // Get each key value of the personality and store it.
+ for( TInt keyIdx = 0; keyIdx < keyCount; keyIdx++ )
+ {
+ TUint32 key = keyArray[keyIdx];
+ TUint32 fieldId = (key & KUsbManConfigFieldMask);
+ LOGTEXT2( _L("CUsbManCenRepManager::ReadPersonalitiesL key id of personality = %d"), fieldId );
+ switch( fieldId )
+ {
+ case KUsbManDevicePersonalitiesDeviceClassKey:
+ personality->SetDeviceClass(ReadKeyL( key ));
+ break;
+ case KUsbManDevicePersonalitiesDeviceSubClassKey:
+ personality->SetDeviceSubClass(ReadKeyL( key ));
+ break;
+ case KUsbManDevicePersonalitiesProtocolKey:
+ personality->SetDeviceProtocol(ReadKeyL( key ));
+ break;
+ case KUsbManDevicePersonalitiesNumConfigKey:
+ personality->SetNumConfigurations(ReadKeyL( key ));
+ break;
+ case KUsbManDevicePersonalitiesProductIdKey:
+ personality->SetProductId(ReadKeyL( key ));
+ break;
+ case KUsbManDevicePersonalitiesBcdDeviceKey:
+ personality->SetBcdDevice(ReadKeyL( key ));
+ break;
+ case KUsbManDevicePersonalitiesFeatureIdKey:
+ personality->SetFeatureId(ReadKeyL( key ));
+ break;
+ case KUsbManDevicePersonalitiesPersonalityIdKey:
+ personality->SetPersonalityId(ReadKeyL( key ));
+ ReadConfigurationsForPersonalityL( personality->PersonalityId(), *personality );
+ break;
+ case KUsbManDevicePersonalitiesPropertyKey:
+ personality->SetProperty(ReadKeyL( key ));
+ break;
+ case KUsbManDevicePersonalitiesDescriptionKey:
+ {
+ HBufC* description;
+ description = ReadStringKeyLC( key );
+ personality->SetDescription( description );
+ CleanupStack::PopAndDestroy( description );
+ break;
+ }
+ default:
+ _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError );
+ break;
+ }
+ }
+
+ personality->SetVersion(iSignature);
+
+ //The following code is to check whether we support this personality.
+ if(personality->FeatureId() != KUsbManFeatureNotConfigurable)
+ {
+ if(!IsFeatureSupportedL(personality->FeatureId()))
+ {
+ CleanupStack::PopAndDestroy(personality);
+ continue;
+ }
+ }
+
+ //The following code is to check whether we support this personality. It will not include:
+ //1)the personality which contains single class which is not supported
+ //2)the personality which contains multiple classes which are all not supported
+ TBool isPersonalitySupport = EFalse;
+ TInt configurationCount = personality->PersonalityConfigs().Count();
+ for(TInt configurationIdx = 0; configurationIdx < configurationCount; ++configurationIdx)
+ {
+ const RPointerArray<CPersonalityConfigurations>& personalityConfigs = personality->PersonalityConfigs();
+ CPersonalityConfigurations *personalityConfigurations = personalityConfigs[configurationIdx];
+ TInt classesCount = personalityConfigurations->Classes().Count();
+ if(0 != classesCount)
+ {
+ isPersonalitySupport = ETrue;
+ break;
+ }
+ }
+
+ if(isPersonalitySupport)
+ {
+ LOGTEXT2( _L("CUsbManCenRepManager::ReadPersonalitiesL Personality ID: %d is supported"), personality->PersonalityId() );
+ aPersonalities.Append( personality );
+ CleanupStack::Pop( personality );
+ }
+ else
+ {
+ LOGTEXT2( _L("CUsbManCenRepManager::ReadPersonalitiesL Personality ID: %d is not supported"), personality->PersonalityId() );
+ CleanupStack::PopAndDestroy(personality);
+ }
+ }
+ CleanupStack::PopAndDestroy( &keyArray );
+ }
+
+// ---------------------------------------------------------------------------
+// Read configuration table for specific personality
+// ---------------------------------------------------------------------------
+//
+void CUsbManCenRepManager::ReadConfigurationsForPersonalityL(TInt aPersonalityId, CPersonality& aPersonality)
+ {
+ LOG_FUNC
+ RArray<TUint32> configArray;
+ CleanupClosePushL(configArray);
+
+ //Only support version four right now.
+ __ASSERT_DEBUG( ( TUsbManagerSupportedVersionFour == iSignature ), _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError ) );
+
+ LEAVEIFERRORL( iRepository->FindEqL( KUsbManDeviceConfigurationsPartialKey, KUsbManConfigFirstEntryMask, aPersonalityId, configArray ) );
+
+ // Get the configuration count.
+ TUint32 configCount = configArray.Count();
+ TUint32 totalConfigCount = ReadKeyL( KUsbManDeviceConfigurationsCountIndexKey );
+
+ LOGTEXT4( _L("ReadConfigurationsForPersonalityL: aPersonalityId = %d total configCount = %d configArray.Count() = %d"), aPersonalityId, totalConfigCount, configArray.Count());
+
+ //This is intend to handle one special case that key 0x2ff00's value
+ // equal our target personality id.
+ if(totalConfigCount == aPersonalityId)
+ {
+ --configCount;
+ }
+
+ TInt keyCount = 0;
+ if(TUsbManagerSupportedVersionFour == iSignature)
+ {
+ keyCount = KUsbManDeviceConfigurationsKeyCountVersionFour;
+ }
+
+ // Go through all configurations belonging to this personality 'aPersonalityId'
+ for ( TInt configIdx = 0; configIdx < configCount; configIdx++ )
+ {
+ CPersonalityConfigurations* config = new ( ELeave ) CPersonalityConfigurations;
+ CleanupStack::PushL( config );
+ TUint32 key = configArray[configIdx];
+
+ // Get each key value in the configuration and store it
+ for ( TInt keyIdx = 0; keyIdx < keyCount; keyIdx++ )
+ {
+ TUint32 fieldId = ( (key + keyIdx ) & KUsbManConfigFieldMask );
+ TInt keyValue = -1;
+ LOGTEXT4( _L("ReadConfigurationsForPersonalityL fieldId = %d configIdx = %d keyIdx = %d"), fieldId, configIdx, keyIdx );
+
+ if(KUsbManDeviceConfigurationsPersonalityIdKey == fieldId)
+ {
+ TRAPD( err, keyValue = ReadKeyL( key + keyIdx ) );
+ if( err == KErrNone )
+ {
+ __ASSERT_DEBUG( ( keyValue == aPersonalityId ), _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError ) );
+ config->SetPersonalityId( keyValue );
+ }
+ }
+ else if(KUsbManDeviceConfigurationsIdKey == fieldId)
+ {
+ TRAPD( err, keyValue = ReadKeyL( key + keyIdx ) );
+ if( err == KErrNone )
+ {
+ config->SetConfigId(keyValue);
+ }
+ }
+ else if(KUsbManDeviceConfigurationsClassUidsKey == fieldId)
+ {
+ HBufC* keyValueBuf = ReadStringKeyLC( key + keyIdx );
+ TPtr keyPtr = keyValueBuf->Des();
+
+ RArray<TUint> classUids;
+ CleanupClosePushL( classUids );
+
+ iUsbDevice.ConvertUidsL( keyPtr, classUids );
+ TInt uidsCnt = classUids.Count();
+
+ // Get featureId of each class and store each class.
+ TInt featureId = KUsbManFeatureNotConfigurable;
+ CPersonalityConfigurations::TUsbClasses usbClass;
+ for ( TInt uidIdx = 0; uidIdx < uidsCnt; uidIdx++ )
+ {
+ usbClass.iClassUid = TUid::Uid( classUids[uidIdx] );
+ usbClass.iFeatureId = featureId; // By default
+ if ( IsClassConfigurableL( classUids[uidIdx], featureId ) )
+ {
+ usbClass.iFeatureId = featureId;
+ if(IsFeatureSupportedL(featureId))
+ {
+ config->AppendClassesL( usbClass );
+ }
+ }
+ else
+ {
+ config->AppendClassesL( usbClass );
+ }
+ }
+
+ CleanupStack::PopAndDestroy( &classUids ); // close uid array
+ CleanupStack::PopAndDestroy( keyValueBuf );
+ }
+ else
+ {
+ _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError );
+ }
+ }
+ aPersonality.AppendPersonalityConfigsL( config );
+
+ CleanupStack::Pop( config );
+ }
+
+ CleanupStack::PopAndDestroy( &configArray );
+ }
+
+// ---------------------------------------------------------------------------
+// Check the class belonging to a personality configurable or not.
+// ---------------------------------------------------------------------------
+//
+TBool CUsbManCenRepManager::IsClassConfigurableL(TUint aClassId, TInt& aFeatureId)
+ {
+ LOG_FUNC
+ TBool classConfigurable = EFalse;
+ RArray<TUint32> keyArray;
+ CleanupClosePushL(keyArray);
+
+ TInt err = iRepository->FindEqL( KUsbManDeviceConfigurableClassesPartialKey, KUsbManConfigFirstEntryMask, (TInt)aClassId, keyArray );
+ LOGTEXT3( _L("CUsbManCenRepManager::IsClassConfigurableL: aClassId = 0x%x err = %d "), aClassId, err);
+ switch ( err )
+ {
+ case KErrNotFound:
+ break;
+ case KErrNone:
+ {
+ __ASSERT_DEBUG( ( keyArray.Count() == 1 ), _USB_PANIC( KUsbCenRepPanic, ECenRepConfigError ) );
+ // The array size always is 1, so here using 0 as index.
+ aFeatureId = ReadKeyL( keyArray[0] | KUsbManDeviceConfigurableClassesFeatureIdKey );
+ classConfigurable = ETrue;
+ break;
+ }
+ default:
+ LEAVEL( err );
+ break;
+ }
+
+ CleanupStack::PopAndDestroy( &keyArray );
+ return classConfigurable;
+ }
+
+// ---------------------------------------------------------------------------
+// Check the class belonging to a personality support or not.
+// ---------------------------------------------------------------------------
+//
+TBool CUsbManCenRepManager::IsFeatureSupportedL(TInt aFeatureId)
+ {
+ LOG_FUNC
+#ifdef SYMBIAN_FEATURE_MANAGER
+ if(CFeatureDiscovery::IsFeatureSupportedL(TUid::Uid(aFeatureId)))
+ {
+ LOGTEXT2( _L("CUsbManCenRepManager::IsFeatureSupportedL featureId = 0x%x supported"), aFeatureId );
+ return ETrue;
+ }
+ else
+ {
+ LOGTEXT2( _L("CUsbManCenRepManager::IsFeatureSupportedL featureId = 0x%x not supported"), aFeatureId );
+ return EFalse;
+ }
+#else
+ _USB_PANIC( KUsbCenRepPanic, ECenRepFeatureManagerError )
+#endif
+ }
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbmanlubbockobex.rss Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
-* Copyright (c) 2005-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:
-* Resource file for usbman configuration.
-*
-*/
-
-/**
- @file
-*/
-
-NAME USBM
-
-#include <badef.rh>
-#include "usbman.rh"
-#ifdef LANGUAGE_01 // UK English
- #include "usbman_01.rls"
-#elif LANGUAGE_02 // French
- #include "usbman_02.rls"
-#elif defined LANGUAGE_03 // German
- #include "usbman_03.rls"
-#elif defined LANGUAGE_10 // US English
- #include "usbman_10.rls"
-#else // default to UK English strings in usbman.rsc
- #include "usbman_01.rls"
-#endif
-
-RESOURCE BA_RSS_SIGNATURE
- {
- signature = 3;
- }
-
-RESOURCE usb_configuration usb_config
- {
- }
-
-
-RESOURCE PERSONALITY_ARRAY device_personalities
- {
- personalities =
- {
- PERSONALITY
- {
- bDeviceClass = 02;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000b;
- bcdDevice = 0;
- manufacturer = per_manufacturer1;
- product = per_product1;
- id = 1;
- class_uids = "101FBF22";
- description = per_description1;
- detailedDescription = per_detailedDescription1;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 1;
- bDeviceSubClass = 2;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000d; // instead of 0x000c
- bcdDevice = 2;
- manufacturer= per_manufacturer2;
- product = per_product2;
- id = 2;
- class_uids = "101fbf24";
- description = per_description2;
- detailedDescription = per_detailedDescription2;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1111;
- bcdDevice = 0;
- manufacturer = per_manufacturer3;
- product = per_product3;
- id = 3;
- class_uids = "10204bbc";
- description = per_description3;
- detailedDescription = per_detailedDescription3;
- property = 0x00000000;
- }
-
- };
- }
-
-
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbmanmtp.rss Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
-* Copyright (c) 2005-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:
-* Resource file for usbman configuration.
-*
-*/
-
-/**
- @file
-*/
-
-NAME USBM
-
-#include <badef.rh>
-#include "usbman.rh"
-
-#ifdef LANGUAGE_01 // UK English
- #include "usbman_01.rls"
-#elif LANGUAGE_02 // French
- #include "usbman_02.rls"
-#elif defined LANGUAGE_03 // German
- #include "usbman_03.rls"
-#elif defined LANGUAGE_10 // US English
- #include "usbman_10.rls"
-#else // default to UK English strings in usbman.rsc
- #include "usbman_01.rls"
-#endif
-
-RESOURCE BA_RSS_SIGNATURE
- {
- signature = 3;
- }
-
-RESOURCE usb_configuration usb_config
- {
- }
-
-
-RESOURCE PERSONALITY_ARRAY device_personalities
- {
- personalities =
- {
- PERSONALITY
- {
- bDeviceClass = 02;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000b;
- bcdDevice = 0;
- manufacturer = per_manufacturer1;
- product = per_product1;
- id = 1;
- class_uids = "101FBF22";
- description = per_description1;
- detailedDescription = per_detailedDescription1;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 1;
- bDeviceSubClass = 2;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000c;
- bcdDevice = 2;
- manufacturer= per_manufacturer2;
- product = per_product2;
- id = 2;
- class_uids = "101fbf24";
- description = per_description2;
- detailedDescription = per_detailedDescription2;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1113;
- bcdDevice = 0;
- manufacturer = per_manufacturer3;
- product = per_product3;
- id = 3;
- class_uids = "10204bbc";
- description = per_description3;
- detailedDescription = per_detailedDescription3;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0x00;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1114;
- bcdDevice = 0x0100;
- manufacturer = per_manufacturer4;
- product = per_product4;
- id = 4;
- class_uids = "102827B3";
- description = per_description4;
- detailedDescription = per_detailedDescription4;
- property = 0x00000000;
- }
-
- // The productId's value of personalities to be implemented in the
- // future should be > 0x1115, to avoid conflict with IDs used by
- // other drivers or applications
-
- };
- }
-
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbmanmtprndis.rss Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +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:
-* Resource file for usbman configuration.
-*
-*/
-
-/**
-@file
- */
-
-NAME USBM
-
-#include <badef.rh>
-#include "usbman.rh"
-
-#ifdef LANGUAGE_01 // UK English
- #include "usbman_01.rls"
-#elif LANGUAGE_02 // French
- #include "usbman_02.rls"
-#elif defined LANGUAGE_03 // German
- #include "usbman_03.rls"
-#elif defined LANGUAGE_10 // US English
- #include "usbman_10.rls"
-#else // default to UK English strings in usbman.rsc
- #include "usbman_01.rls"
-#endif
-
-RESOURCE BA_RSS_SIGNATURE
- {
- signature = 3;
- }
-
-RESOURCE usb_configuration usb_config
- {
- }
-
-
-RESOURCE PERSONALITY_ARRAY device_personalities
- {
- personalities =
- {
- PERSONALITY
- {
- bDeviceClass = 02;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000b;
- bcdDevice = 0;
- manufacturer = per_manufacturer1;
- product = per_product1;
- id = 1;
- class_uids = "101FBF22";
- description = per_description1;
- detailedDescription = per_detailedDescription1;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 1;
- bDeviceSubClass = 2;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000c;
- bcdDevice = 2;
- manufacturer= per_manufacturer2;
- product = per_product2;
- id = 2;
- class_uids = "101fbf24";
- description = per_description2;
- detailedDescription = per_detailedDescription2;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1113;
- bcdDevice = 0;
- manufacturer = per_manufacturer3;
- product = per_product3;
- id = 3;
- class_uids = "10204bbc";
- description = per_description3;
- detailedDescription = per_detailedDescription3;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0x00;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1114;
- bcdDevice = 0x0100;
- manufacturer = per_manufacturer4;
- product = per_product4;
- id = 4;
- class_uids = "102827B3";
- description = per_description4;
- detailedDescription = per_detailedDescription4;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0x02;
- bDeviceSubClass = 0x00;
- protocol = 0x00;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1115;
- bcdDevice = 0x0100;
- manufacturer = per_manufacturer5;
- product = per_product5;
- id = 5;
- class_uids = "20013d2f";
- description = per_description5;
- detailedDescription = per_detailedDescription5;
- property = 0x00000000;
- }
-
- // The productId's value of personalities to be implemented in the
- // future should be > 0x1115, to avoid conflict with IDs used by
- // other drivers or applications
-
- };
- }
-
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbmanrndis.rss Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +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:
-* Resource file for usbman configuration.
-*
-*/
-
-/**
-@file
- */
-
-NAME USBM
-
-#include <badef.rh>
-#include "usbman.rh"
-
-#ifdef LANGUAGE_01 // UK English
- #include "usbman_01.rls"
-#elif LANGUAGE_02 // French
- #include "usbman_02.rls"
-#elif defined LANGUAGE_03 // German
- #include "usbman_03.rls"
-#elif defined LANGUAGE_10 // US English
- #include "usbman_10.rls"
-#else // default to UK English strings in usbman.rsc
- #include "usbman_01.rls"
-#endif
-
-RESOURCE BA_RSS_SIGNATURE
- {
- signature = 3;
- }
-
-RESOURCE usb_configuration usb_config
- {
- }
-
-
-RESOURCE PERSONALITY_ARRAY device_personalities
- {
- personalities =
- {
- PERSONALITY
- {
- bDeviceClass = 02;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000b;
- bcdDevice = 0;
- manufacturer = per_manufacturer1;
- product = per_product1;
- id = 1;
- class_uids = "101FBF22";
- description = per_description1;
- detailedDescription = per_detailedDescription1;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 1;
- bDeviceSubClass = 2;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x000c;
- bcdDevice = 2;
- manufacturer= per_manufacturer2;
- product = per_product2;
- id = 2;
- class_uids = "101fbf24";
- description = per_description2;
- detailedDescription = per_detailedDescription2;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0;
- bDeviceSubClass = 0;
- protocol = 0;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1113;
- bcdDevice = 0;
- manufacturer = per_manufacturer3;
- product = per_product3;
- id = 3;
- class_uids = "10204bbc";
- description = per_description3;
- detailedDescription = per_detailedDescription3;
- property = 0x00000000;
- },
- PERSONALITY
- {
- bDeviceClass = 0x02;
- bDeviceSubClass = 0x00;
- protocol = 0x00;
- numConfigurations = 1;
- vendorId = 0x0e22;
- productId = 0x1115;
- bcdDevice = 0x0100;
- manufacturer = per_manufacturer5;
- product = per_product5;
- id = 4;
- class_uids = "20013d2f";
- description = per_description5;
- detailedDescription = per_detailedDescription5;
- property = 0x00000000;
- }
-
- // The productId's value of personalities to be implemented in the
- // future should be > 0x1115, to avoid conflict with IDs used by
- // other drivers or applications
-
- };
- }
-
Binary file usbmgmt/usbmgr/usbman/server/conf/usbmanager_101fe1db.crml has changed
--- a/usbmgmt/usbmgr/usbman/server/data/demo_mcci_usbman.rh Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2004-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:
-* Resource header for usbman configuration.
-* this file can be renamed usbman.rh and pasted to ser-comms\usb\usbman\inc
-*
-*/
-
-STRUCT usb_configuration
- {
- WORD vendorId = 0x040E; //values matching demo mcci inf files on PC
- WORD productId = 0xF10F; // use those to have the symbian device using mcci drivers
- WORD bcdDevice = 0x0000;
- LTEXT manufacturer = "Symbian Ltd.";
- LTEXT product = "Symbian OS";
- }
--- a/usbmgmt/usbmgr/usbman/server/group/BLD.INF Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/group/BLD.INF Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -21,13 +21,13 @@
PRJ_EXPORTS
../public/Usb_std.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb_std.h)
../public/MUsbDeviceNotify.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(musbdevicenotify.h)
-../public/usbman.rh /epoc32/include/usbman.rh
../public/usberrors.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usberrors.h)
../public/UsbClassUids.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usbclassuids.h)
../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
+./backup_registration.xml /epoc32/data/z/private/101fe1db/backup_registration.xml
+../conf/usbmanager_101fe1db.crml OS_LAYER_EXPORTS_CRML(usbmanager_101fe1db.crml)
PRJ_TESTEXPORTS
--- a/usbmgmt/usbmgr/usbman/server/group/usbsvrbase.mmp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/group/usbsvrbase.mmp Thu Jul 22 16:49:39 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -37,43 +37,13 @@
source CUsbDeviceStateWatcher.cpp
source UsbUtils.cpp
source CPersonality.cpp
+source usbmancenrepmanager.cpp
userinclude ../INC
userinclude ../public
userinclude ../../../host/fdf/production/client/public
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-lang sc 01 02 03 10 // UK English, French, German, US English
-
-START RESOURCE usbman.rss
-TARGETPATH /private/101fe1db
-HEADER
-END
-
-#ifdef SYMBIAN_USB_RNDIS
-START RESOURCE usbmanrndis.rss
-TARGETPATH /private/101fe1db
-HEADER
-END
-#endif
-
-START RESOURCE usbmanmtp.rss
-TARGETPATH /private/101fe1db
-HEADER
-END
-
-#ifdef SYMBIAN_USB_RNDIS
-START RESOURCE usbmanmtprndis.rss
-TARGETPATH /private/101fe1db
-HEADER
-END
-#endif
-
-START RESOURCE usbmanlubbockobex.rss
-TARGETPATH /private/101fe1db
-HEADER
-END
-
library euser.lib
library usbclasscontroller.lib
library ecom.lib
@@ -81,5 +51,10 @@
library bafl.lib
library usbmanextensionplugin.lib
library sysutil.lib
+library centralrepository.lib
+
+#ifdef SYMBIAN_FEATURE_MANAGER
+library featdiscovery.lib
+#endif
#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/usbman/server/public/rusb.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgr/usbman/server/public/rusb.h Thu Jul 22 16:49:39 2010 +0100
@@ -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"
@@ -35,7 +35,11 @@
const TInt KUsbMaxSupportedPersonalities = 64; // Max number of supported personalities
+#ifndef __OVER_DUMMYUSBDI__
_LIT(KUsbServerName, "!usbman");
+#else
+_LIT(KUsbServerName, "!usbman_over_dummyusbdi");
+#endif
enum TUsbMessages
{
@@ -81,7 +85,6 @@
EUsbGetOtgDescriptor,
EUsbDbgAlloc,
EUsbRequestSession,
- EUsbGetDetailedDescription,
EUsbGetPersonalityProperty
};
--- a/usbmgmt/usbmgr/usbman/server/public/usbman.rh Fri Jun 11 16:29:16 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
-* Copyright (c) 2003-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:
-* Resource header for usbman configuration.
-*
-*/
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-STRUCT usb_configuration
- {
- /**
- vendorId is the 16-bit number that is assigned by USB-ORG.
- */
- WORD vendorId = 0x0e22;
-
- /**
- productId is a 16-bit number that is assigned by the licensee to
- uniquely identify this particular type of device.
- */
- WORD productId = 0x000b;
-
- /**
- bcdDevice may be optionally used during enumeration, this depends on
- the licensee's policy regarding device upgrades (new versions of a
- device may require to use new host driver files)
- */
- WORD bcdDevice = 0x0000;
-
- /**
- manufacturerString is displayed on the Windows screen during first
- enumeration of the device, and should identify the same company that
- owns the USB vendorId given above
- */
- LTEXT manufacturer = "Symbian Ltd.";
-
- /**
- productString is displayed on the Windows screen during first
- enumeration of the device, and should identify the same device that is
- implied by the productId given above
- */
- LTEXT product = "Symbian OS";
- }
-
-STRUCT PERSONALITY
- {
- /** Class code (assigned by the USB-IF). If this field is set to zero, each interface within
- a configuration specifies its own class information and the various interfaces operate independently.
-
- If this field is set to a value between 1 and FEH, the device supports different class
- specifications on different interfaces and the interfaces may not operate independently.
- This value identifies the class definition used for the aggregate interfaces.
-
- If this field is set to FFH, the device class is vendor-specific. */
- BYTE bDeviceClass;
-
- /** Subclass code (assigned by the USB-IF). These codes are qualified by the value of the bDeviceClass field.
- If the bDeviceClass field is set to zero, this field must also be set to zero.
- If the bDeviceClass field is not set to FFH, all values are reserved for assignment by the USB-IF. */
- BYTE bDeviceSubClass;
-
- /** Protocol code (assigned by the USB-IF). These codes are qualified by the value of the bDeviceClass and the
- bDeviceSubClass fields. If a device supports class-specific protocols on a device basis as opposed to an
- interface basis, this code identifies the protocols that the device uses as defined by the specification of the device class.
- If this field is set to zero, the device does not use class-specific protocols on a device basis. However, it may use
- classspecific protocols on an interface basis.
- If this field is set to FFH, the device uses a vendor-specific protocol on a device basis. */
- BYTE protocol;
-
- /** Number of possible configurations */
- BYTE numConfigurations;
-
- /** vendorId is the 16-bit number that is assigned by USB-ORG. */
- WORD vendorId;
-
- /** productId is a 16-bit number that is assigned by the licensee to
- uniquely identify this particular personality as type of device . */
- WORD productId;
-
- /** bcdDevice may be optionally used during enumeration, this depends on
- the licensee's policy regarding device upgrades */
- WORD bcdDevice;
-
- /** manufacturerString is displayed on the Windows screen during first
- enumeration of the device, and should identify the same company that
- owns the USB vendorId given above */
- LTEXT manufacturer;
-
- /** productString is displayed on the Windows screen during first
- enumeration of the device, and should identify the same device that is
- implied by the productId given above */
- LTEXT product;
-
- /** personality id - UID which identified this personality */
- WORD id;
-
- /** list of Class Controllers UIDs associated with this personality.
- UIDs shoud be provided as list of hexadecimal numbers separated by space or comma.
- Note Do not provide leading 0x or any trailing characters!
- Example "1Abc3422, 12345678 FE43bc33"
- Incorrect example "1abc3422, 0x12345678," */
- LTEXT class_uids;
-
- /** free text description of this personality. */
- LTEXT description;
-
- /** free text detailed description of this personality. */
- LTEXT detailedDescription;
-
- /** personality property - the property of this personality */
- LONG property;
-
- }
-
-STRUCT PERSONALITY_ARRAY
- {
- STRUCT personalities[]; // STRUCT PERSONALITY
- }
--- a/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexApp.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexApp.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -455,33 +455,33 @@
CleanupStack::PushL(myScheduler);
CActiveScheduler::Install(myScheduler);
- CConsoleBase* aConsole =
+ CConsoleBase* console =
Console::NewL(_L("Obex Program"),TSize(KConsFullScreen, KConsFullScreen));
// Load Device drivers
TInt err;
// Start C32 now
- aConsole->Printf(_L("Loading C32...\n"));
+ console->Printf(_L("Loading C32...\n"));
err=StartC32();
if (err!=KErrNone && err!=KErrAlreadyExists)
- aConsole->Printf(_L(" Failed %d\n"), err);
+ console->Printf(_L(" Failed %d\n"), err);
else
- aConsole->Printf(_L(" Sucess\n"));
+ console->Printf(_L(" Sucess\n"));
// If running on PC emulator
// Load drivers for using Serial communication
#ifdef __WINS__
TInt load = User::LoadLogicalDevice(KWinsLddName);
- aConsole->Printf(_L("Load LDD : %d\n"), load);
+ console->Printf(_L("Load LDD : %d\n"), load);
load = User::LoadPhysicalDevice(KWinsPddName);
- aConsole->Printf(_L("Load PDD : %d\n"), load);
+ console->Printf(_L("Load PDD : %d\n"), load);
#endif //__WINS__
- CleanupStack::PushL(aConsole);
- CActiveConsole* my_console = CActiveConsole::NewLC(aConsole);// New active console
+ CleanupStack::PushL(console);
+ CActiveConsole* my_console = CActiveConsole::NewLC(console);// New active console
my_console->RequestCharacter();
CActiveScheduler::Start();
CleanupStack::PopAndDestroy(3);
--- a/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexClient.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexClient.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -119,16 +119,16 @@
// Create file session and create a new private path on drive C
RFs fileSession;
- fileSession.Connect();
+ User::LeaveIfError(fileSession.Connect());
- fileSession.CreatePrivatePath(EDriveC);
- fileSession.SetSessionToPrivate(EDriveC);
- fileSession.SessionPath(iSessionPath);
+ User::LeaveIfError(fileSession.CreatePrivatePath(EDriveC));
+ User::LeaveIfError(fileSession.SetSessionToPrivate(EDriveC));
+ User::LeaveIfError(fileSession.SessionPath(iSessionPath));
// Copy the files from oby file ro the newly created path
- BaflUtils::CopyFile(fileSession, KFilePath1, KFilename1,0);
- BaflUtils::CopyFile(fileSession, KFilePath2, KFilename2,0);
- BaflUtils::CopyFile(fileSession, KFilePath3, KFilename3,0);
+ User::LeaveIfError(BaflUtils::CopyFile(fileSession, KFilePath1, KFilename1,0));
+ User::LeaveIfError(BaflUtils::CopyFile(fileSession, KFilePath2, KFilename2,0));
+ User::LeaveIfError(BaflUtils::CopyFile(fileSession, KFilePath3, KFilename3,0));
fileSession.Close();
--- a/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexServer.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexServer.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -63,7 +63,7 @@
{
// Start bluetooth socket and set security
RSocketServ socketServ;
- socketServ.Connect();
+ User::LeaveIfError(socketServ.Connect());
RSocket listen;
TInt test = listen.Open(socketServ, KRFCOMMDesC);
@@ -129,6 +129,7 @@
// Update attribute
iSdpdb.UpdateAttributeL(ftphandle, KProtocolDescriptorListUUID, *iProtDescList); // put into both records
delete iProtDescList;
+ iProtDescList = NULL;
User::LeaveIfError(listen.Bind(addr));
--- a/usbmgmt/usbmgrtest/csy/t_ecacm/src/t_csyaccess.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/csy/t_ecacm/src/t_csyaccess.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -24,12 +24,10 @@
#ifndef __WINS__
_LIT(KCommDriverName, "EUSBC");
-//_LIT(KCommDeviceName, "USBC");
#else
_LIT(KCommPhysDriverName, "ECDRV");
_LIT(KCommPhysDeviceName, "Comm.Wins");
_LIT(KCommDriverName, "ECOMM");
-//_LIT(KCommDeviceName, "Comm");
#endif
LOCAL_D RTest gTest(_L("T_CSYACCESS"));
@@ -467,21 +465,6 @@
if ( !err )
{
gTest.Printf(_L("\tsuccessful result from RComm::Open\n"));
-
- /* TCommServerConfigV01 serverConfig;
- TCommServerConfig serverConfigBuf(serverConfig);
- comm.Mode(serverConfigBuf);
-
- const TUint KBufSize = 0x1000;
- serverConfig.iBufSize = KBufSize;
-
- err = comm.SetMode(serverConfig);
- if ( !err )
- {
- gTest.Printf(_L("\tsuccessful result from RComm::SetMode\n"));
- // End of use case.
- }
- */
comm.Close();
}
}
@@ -751,7 +734,10 @@
TInt error = KErrNone;
RCommServ sess;
- sess.Connect();
+ gTest.Next(_L("Connecting to Comm Server"));
+ r = sess.Connect();
+ gTest(r == KErrNone);
+
sess.__DbgMarkHeap();
switch (key )
@@ -830,7 +816,9 @@
void RunAll()
{
RCommServ sess;
- sess.Connect();
+ gTest.Next(_L("Connecting to Comm Server"));
+ TInt r = sess.Connect();
+ gTest(r == KErrNone);
for ( TInt ii = 0 ; ii < 9 ; ii++ ) // TODO: keep 9 up-to-date with number of tests.
{
--- a/usbmgmt/usbmgrtest/t_acm/src/t_acm.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_acm/src/t_acm.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -34,7 +34,6 @@
const TInt KReceiveBufferLength = 4096;
const TInt KMaxAcmPortNameLength = 8;
-//_LIT(KUsbCsyName, "ECACM");
_LIT(KUsbPortName, "ACM::0");
_LIT(KUsbPortNameAcm1, "ACM::1");
@@ -943,8 +942,6 @@
_printf(_L("Writing data\n"));
for (timeout = 10; timeout<100; timeout++)
{
-// FillBuffer(readBuf);
-
port.Write(status, readBuf);
// Wait before cancelling
@@ -1774,19 +1771,7 @@
_printf(_L("a. Event notification, flow control (test 2.8.2)\n"));
_printf(_L("b. Event notification, config change (test 2.8.3)\n"));
_printf(_L("c. Second client (test 2.9)\n"));
-/* _printf(_L("d. ACM request, encapsulated command (test 2.10.1)\n"));
- _printf(_L("e. ACM request, break (test 2.10.2)\n"));
- _printf(_L("f. ACM request, setting feature (test 2.10.3)\n"));
- _printf(_L("g. ACM request, clearing feature (test 2.10.4)\n"));
- _printf(_L("h. ACM request, setting line coding (test 2.10.5)\n"));
- _printf(_L("i. ACM request, control line state (test 2.10.6)\n"));
- _printf(_L("j. ACM request, encapsualted response (test 2.10.7)\n"));
- _printf(_L("k. ACM request, comms feature (test 2.10.8)\n"));
- _printf(_L("l. ACM request, getting line coding (test 2.10.9)\n"));
- _printf(_L("m. ACM Notifications, send serial state (test 2.11.1)\n"));
- _printf(_L("n. ACM Notifications, network status (test 2.11.2)\n"));
- _printf(_L("o. ACM Notifications, response available (test 2.11.3)\n"));
-*/ _printf(_L("p. Loopback test (test 2.12)\n"));
+ _printf(_L("p. Loopback test (test 2.12)\n"));
_printf(_L("q. Main menu\n"));
ch = (char) _getch();
--- a/usbmgmt/usbmgrtest/t_acm_cc/src/t_acm_cc.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_acm_cc/src/t_acm_cc.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -119,17 +119,6 @@
current_test_state = EUSBManConnected;
break;
case EUSBManConnected:
- // Register as primary client.
- // *** Obsolete ***
- /*
- r = usbman->RegisterAsPrimarySession();
- if (r != KErrNone)
- {
- test.Printf(_L(" Failed to register as primary client. Error = %d\n"), r);
- return r;
- }
- test.Printf(_L(" Registered as primary client.\n"));
- */
current_test_state = EPrimaryRegistered;
break;
default:
@@ -162,8 +151,6 @@
current_test_state = EPrimaryRegistered;
break;
case EPrimaryRegistered:
- // *** Obsolete ***
- // usbman->DeregisterAsPrimarySession();
current_test_state = EUSBManConnected;
break;
case EUSBManConnected:
@@ -240,44 +227,6 @@
}
/**
- * Executes test B2 (as detailed in the USB Manager Test Specification).
- * No longer a relevant test.
- */
-/*static TInt RunTest_B2()
- {
- TInt r;
-
- test.Next(_L("Test B2.\n"));
-
- // Perform common startup
- current_test_state = EStart;
- r = CommonStart();
- if (r != KErrNone)
- return r;
-
- // Start the USB Manager
- TRequestStatus status;
- test.Printf(_L("Starting.\n"));
- usbman->Start(status);
-
- // Wait for specific time (has to be less than the time to process a start request)
- timer.After(status, CANCEL_START_REQ_DELAY);
- User::WaitForRequest(status);
-
- // Cancel the start request
- test.Printf(_L("Cancelling.\n"));
- usbman->StartCancel();
-
- // Check service status
- test.Printf(_L("Checking service status.\n"));
- r = CheckServiceState(EUsbServiceIdle);
- if ( r != KErrNone)
- return r;
-
- return KErrNone;
- }
-*/
-/**
* Executes test B3 (as detailed in the USB Manager Test Specification).
*/
static TInt RunTest_B3()
@@ -314,47 +263,6 @@
}
/**
- * Executes test B4 (as detailed in the USB Manager Test Specification).
- * No longer a relevant test.
- */
-/*static TInt RunTest_B4()
- {
- TInt r;
-
- test.Next(_L("Test B4.\n"));
-
- // Perform common startup
- current_test_state = EStart;
- r = CommonStart();
- if (r != KErrNone)
- return r;
-
- // Start the USB Manager
- TRequestStatus status, timerStatus;
- usbman->Start(status);
- User::WaitForRequest(status);
- test.Printf(_L("Start completed with status %d\n"), status.Int());
- current_test_state = EUSBManStarted;
-
- // Stop the USB Manager
- usbman->Stop(status);
-
- // Wait for specific time (has to be less than the time to process a start request)
- timer.After(timerStatus, CANCEL_STOP_REQ_DELAY);
- User::WaitForRequest(status, timerStatus);
-
- // Cancel the stop request
- usbman->StopCancel();
-
- // Check service status
- r = CheckServiceState(EUsbServiceStarted);
- if ( r != KErrNone)
- return r;
-
- return KErrNone;
- }
-*/
-/**
* Executes test B5 (as detailed in the USB Manager Test Specification).
*/
static TInt RunTest_B5()
@@ -507,16 +415,6 @@
test.Printf(_L("Test B1 passed.\n\n"));
CommonCleanup();
-/* Depreciated test.
- err=RunTest_B2();
- if (err != KErrNone)
- {
- test.Printf(_L("Test B2 failed, code: %d\n\n"), err);
- }
- else
- test.Printf(_L("Test B2 passed.\n\n"));
- CommonCleanup();
-*/
err=RunTest_B3();
if (err != KErrNone)
{
@@ -526,16 +424,6 @@
test.Printf(_L("Test B3 passed.\n\n"));
CommonCleanup();
-/* Depreciated test.
- err=RunTest_B4();
- if (err != KErrNone)
- {
- test.Printf(_L("Test B4 failed, code: %d\n\n"), err);
- }
- else
- test.Printf(_L("Test B4 passed.\n\n"));
- CommonCleanup();
-*/
err=RunTest_B5();
if (err != KErrNone)
{
--- a/usbmgmt/usbmgrtest/t_acm_pub_sub/src/t_acm_pub_sub.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_acm_pub_sub/src/t_acm_pub_sub.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -344,7 +344,7 @@
}
//Connect to the file server
- gFs.Connect();
+ User::LeaveIfError(gFs.Connect());
TInt result = KErrNone;
TRAPD(error, result = TestCase1L());
if(error)
--- a/usbmgmt/usbmgrtest/t_acm_spec/src/t_acm_spec.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_acm_spec/src/t_acm_spec.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -35,7 +35,6 @@
const TInt KReceiveBufferLength = 8192;
-//_LIT(KUsbCsyName, "ECACM");
_LIT(KUsbPortName, "ACM::0");
_LIT(KUsbLddName, "EUSBC");
@@ -421,8 +420,6 @@
_printf(_L("Writing data\n"));
for (timeout = 10; timeout<100; timeout++)
{
-// FillBuffer(readBuf);
-
port.Write(status, readBuf);
// Wait before cancelling
@@ -527,7 +524,6 @@
if (status != KErrNone) // Error code ? TODO
{
- //LEAVE(status.Int());
_printf(_L("Read failed\n"));
}
@@ -985,7 +981,6 @@
break;
}
-// _printf(_L("Read %d bytes\n"), readBuf.Length());
port.Write(status, readBuf);
User::WaitForRequest(status, consoleStatus);
@@ -1135,14 +1130,6 @@
port.SetConfig(TheConfigBuf);
-// _printf(_L("----------------------------------------\n"));
-// _printf(_L("Initial port config:\n"));
-// _printf(_L(" Rate: %d bps\n"), TheConfig.iRate);
-// _printf(_L(" Data bits: %d. Parity type: %d. Stop bits: %d\n"),
-// TheConfig.iStopBits, TheConfig.iParity, TheConfig.iStopBits);
-// _printf(_L(" Handshaking options: 0x%X\n"), TheConfig.iHandshake);
-// _printf(_L("----------------------------------------\n\n"));
-
CleanupStack::PopAndDestroy(); // port
TBool noExit = ETrue;
@@ -1185,19 +1172,7 @@
_printf(_L("a. Event notification, flow control (test 2.8.2)\n"));
_printf(_L("b. Event notification, config change (test 2.8.3)\n"));
_printf(_L("c. Second client (test 2.9)\n"));
-/* _printf(_L("d. ACM request, encapsulated command (test 2.10.1)\n"));
- _printf(_L("e. ACM request, break (test 2.10.2)\n"));
- _printf(_L("f. ACM request, setting feature (test 2.10.3)\n"));
- _printf(_L("g. ACM request, clearing feature (test 2.10.4)\n"));
- _printf(_L("h. ACM request, setting line coding (test 2.10.5)\n"));
- _printf(_L("i. ACM request, control line state (test 2.10.6)\n"));
- _printf(_L("j. ACM request, encapsualted response (test 2.10.7)\n"));
- _printf(_L("k. ACM request, comms feature (test 2.10.8)\n"));
- _printf(_L("l. ACM request, getting line coding (test 2.10.9)\n"));
- _printf(_L("m. ACM Notifications, send serial state (test 2.11.1)\n"));
- _printf(_L("n. ACM Notifications, network status (test 2.11.2)\n"));
- _printf(_L("o. ACM Notifications, response available (test 2.11.3)\n"));
-*/ _printf(_L("p. Loopback test (test 2.12)\n"));
+ _printf(_L("p. Loopback test (test 2.12)\n"));
_printf(_L("q. Main menu\n"));
ch = (char) _getch();
--- a/usbmgmt/usbmgrtest/t_acm_wins/src/t_acm_wins.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_acm_wins/src/t_acm_wins.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -758,7 +758,6 @@
memset(writeBufbig, i, MAX_BUFFER_SIZE); // fill the write buffer with known data
_printf(_L("%d: "), (TInt)i);
WriteData(writeBufbig, 64);
- //FlushFileBuffers(hSerial);
ReadData(readBufbig, 64);
for (int j=0; j<64; j++)
{
@@ -806,19 +805,7 @@
_printf(_L("a. Event notification, flow control (test 2.8.2)\n"));
_printf(_L("b. Event notification, config change (test 2.8.3)\n"));
_printf(_L("c. Second client (test 2.9)\n"));
-/* _printf(_L("d. ACM request, encapsulated command (test 2.10.1)\n"));
- _printf(_L("e. ACM request, break (test 2.10.2)\n"));
- _printf(_L("f. ACM request, setting feature (test 2.10.3)\n"));
- _printf(_L("g. ACM request, clearing feature (test 2.10.4)\n"));
- _printf(_L("h. ACM request, setting line coding (test 2.10.5)\n"));
- _printf(_L("i. ACM request, control line state (test 2.10.6)\n"));
- _printf(_L("j. ACM request, encapsualted response (test 2.10.7)\n"));
- _printf(_L("k. ACM request, comms feature (test 2.10.8)\n"));
- _printf(_L("l. ACM request, getting line coding (test 2.10.9)\n"));
- _printf(_L("m. ACM Notifications, send serial state (test 2.11.1)\n"));
- _printf(_L("n. ACM Notifications, network status (test 2.11.2)\n"));
- _printf(_L("o. ACM Notifications, response available (test 2.11.3)\n"));
-*/ _printf(_L("p. Loopback test (test 2.12)\n"));
+ _printf(_L("p. Loopback test (test 2.12)\n"));
_printf(_L("\n"));
_printf(_L("\nSelection (x to exit): "));
--- a/usbmgmt/usbmgrtest/t_catc/src/t_catc.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_catc/src/t_catc.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -37,12 +37,10 @@
TCommConfigV01& TheConfig = TheConfigBuf();
const TInt KReceiveBufferLength = 65536/*16384*/; // TODO: speed enhancement!
-//const TInt KMaxBufferSize = 8192; // TODO: speed enhancement!
const TUint KChunkSize = 65536;
////////////////////////////////////////////////////////////////////////////////
-//_LIT(KUsbCsyName, "ECACM");
_LIT(KUsbPortName, "ACM::0");
_LIT(KUsbLddName, "EUSBC");
@@ -137,7 +135,6 @@
TRequestStatus status;
RComm port;
-// static TBuf8<1024> OUT_Buf; // TODO: speed enhancement!
static TBuf8<KChunkSize> OUT_Buf;
_printf(_L("\n"));
@@ -162,7 +159,6 @@
console->Read(consoleStatus);
TInt uReadCount = 0 ;
- //TInt uThermoBar = 0 ; // TODO: speed enhancement! (remove ThermoBar fnality)
_printf(_L("\tWatch : "));
@@ -216,25 +212,6 @@
}
uReadCount += OUT_Buf.Length() ;
-
-/* if( uReadCount >= 1024 )
- {
- // uThermoBar runs from 0..63
-
- uThermoBar = ( uThermoBar + 1 ) & 0x3F ;
-
- if( uThermoBar < 32 )
- {
- _printf(_L("*"));
- }
- else
- {
- _printf(_L("\b \b"));
- }
-
- uReadCount -= 1024 ;
- }
- */
}
else
{
@@ -270,7 +247,6 @@
TRequestStatus status;
RComm port;
-//#define uInBufSize 4096 // TODO: speed enhancement! reduce number of IPC calls
#define uInBufSize 65536
static TBuf8<uInBufSize> IN_Buf;
@@ -337,7 +313,6 @@
TInt bNeedZLP = bUseZLP && ((IN_Buf.Length()%64)==0);
TInt uWriteCount = 0 ;
-// TInt uThermoBar = 0 ; // TODO: speed enhancement!
_printf(_L("\tWatch : "));
@@ -378,24 +353,6 @@
// reassure watcher that there is something happening...
-/* while( uWriteCount >= 1024 )
- {
- // uThermoBar runs from 0..63
-
- uThermoBar = ( uThermoBar + 1 ) & 0x3F ;
-
- if( uThermoBar < 32 )
- {
- _printf(_L("*"));
- }
- else
- {
- _printf(_L("\b \b"));
- }
-
- uWriteCount -= 1024 ;
- }
- */
}
else
{
@@ -498,49 +455,7 @@
_printf(_L("Restarted USB.\n"));
}
-////////////////////////////////////////////////////////////////////////////////
-/*void ThermoBar()
- {
- TUint uCol = 0 ;
-
- TTime now;
-
- TDateTime WasDT;
- TDateTime NowDT;
-
- now.HomeTime();
- WasDT = now.DateTime();
-
- for( TUint line = 0 ; line < 30 ; )
- {
- for( TUint dotO = 0 ; dotO < 1000 ; dotO++ )
- {
- for( TUint dotI = 0 ; dotI < 1000 ; dotI++ )
- {
- ;
- }
- }
-
- _printf(_L("*"));
-
- now.HomeTime();
- NowDT = now.DateTime();
-
- if( ( ++uCol >= 79 ) || ( WasDT.Second() != NowDT.Second() ) )
- {
- _printf(_L("\n"));
-
- uCol = 0 ;
-
- line++ ;
-
- WasDT = now.DateTime() ;
- }
- }
- }
-*/
-////////////////////////////////////////////////////////////////////////////////
void ToggleTermL()
{
@@ -659,7 +574,6 @@
_printf(_L("2. Bulk IN test \n"));
_printf(_L("3. Set handshaking \n"));
_printf(_L("4. Restart USB \n"));
-// _printf(_L("5. Run ThermoBar \n"));
_printf(_L("6. Swap Read Method \n"));
_printf(_L("7. Swap ZLP Method \n"));
_printf(_L("8. Swap Term Method \n"));
@@ -675,7 +589,6 @@
case '2': Bulk_IN_TestL(); break;
case '3': SetHandshakingL(); break;
case '4': RestartUsbL(); break;
-// case '5': ThermoBar(); break;
case '6': bReadCall = ( bReadCall == EFalse ) ; break;
case '7': bUseZLP = ( bUseZLP == EFalse ) ; break;
case '8': ToggleTermL() ; break;
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/dummyldd.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/dummyldd.h Thu Jul 22 16:49:39 2010 +0100
@@ -42,7 +42,7 @@
inline TInt RDevUsbcClient::GetConfigurationDescriptor(TDes8& aConfigurationDescriptor)
{
// 8th byte is bMaxPower
- aConfigurationDescriptor.Copy(iConfigDesc);//[8] = iConfigDesc[8];
+ aConfigurationDescriptor.Copy(iConfigDesc);
return KErrNone;
}
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h Thu Jul 22 16:49:39 2010 +0100
@@ -120,7 +120,6 @@
RTest iTest;
RTimer iTimer;
- //CRepository* iRepository;
TPtr8 iPtr; // data file
TPtr8 iLine; // current line
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/tpropertybatterycharging.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/tpropertybatterycharging.h Thu Jul 22 16:49:39 2010 +0100
@@ -56,9 +56,7 @@
CActivePropertyReadChargingCurrent* iActiveReadChargingCurrent;
CRepository* iRepository;
- //RProperty iPropertyWrittenToRepositoryAck;
- //RProperty iPropertyReadChargingCurrentAck;
RProperty iProperty; // only one protected needed ?
- };
\ No newline at end of file
+ };
--- a/usbmgmt/usbmgrtest/t_charging_emu/src/1020DEA7.rss Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_charging_emu/src/1020DEA7.rss Thu Jul 22 16:49:39 2010 +0100
@@ -29,7 +29,7 @@
{
INTERFACE_INFO
{
- interface_uid = 0x10208DD6;
+ interface_uid = 0xE0208DD6;
implementations =
{
IMPLEMENTATION_INFO
--- a/usbmgmt/usbmgrtest/t_charging_emu/src/tbatterycharging.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_charging_emu/src/tbatterycharging.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -21,7 +21,6 @@
#include <e32svr.h>
#include <e32base.h>
#include <e32std.h>
-#include <usbman.rsg>
#include <f32file.h>
#include <barsc.h>
#include <barsread.h>
--- a/usbmgmt/usbmgrtest/t_multi_acm/src/t_multiple_acm.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_multi_acm/src/t_multiple_acm.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -33,7 +33,6 @@
const TInt KReceiveBufferLength = 4096;
const TInt KMaxAcmPortNameLength = 8;
-//_LIT(KUsbCsyName, "ECACM");
_LIT(KUsbPortName, "ACM::0");
_LIT(KUsbPortNameAcm1, "ACM::1");
--- a/usbmgmt/usbmgrtest/t_termusb/src/t_termusb.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_termusb/src/t_termusb.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -205,11 +205,6 @@
aBuf.Append(_L("DSR/DTR "));
if (aConfig.iHandshake&KConfigWriteBufferedComplete)
aBuf.Append(_L("Early "));
- //|KConfigObeyDCD|KConfigFailDCD|))
-
-
-// if (aConfig.iBreak==TEiger::EBreakOn)
-// aBuf.Append(_L("Brk "));
if (aConfig.iFifo==EFifoEnable)
aBuf.Append(_L("Fifo "));
@@ -223,10 +218,6 @@
aBuf.Append(_L("LpBk"));
else if ((aSettings.iRxMode&~ECapture)==ECountChars)
aBuf.Append(_L("CtCh"));
- //else if (aSettings.iRxMode==ERxOff)
- //{
- //aBuf.Append(_L("NoRx"));
- //}
aBuf.Append(_L(" "));
aBuf.AppendNum((TInt)(RThread().Priority()));
if (aSettings.iInfraRed==1)
@@ -357,23 +348,6 @@
aWait=ETrue;
}
-/*LOCAL_C void GetBreak(const TDesC &aDes)
- {
-
- if (aDes==_L(""))
- {
- if (data.iBreak==TEiger::EBreakOn)
- data.iBreak=TEiger::EBreakOff;
- else
- data.iBreak=TEiger::EBreakOn;
- }
- if (aDes.FindF(_L("N"))>=0)
- data.iBreak=TEiger::EBreakOn;
- if (aDes.FindF(_L("F"))>=0)
- data.iBreak=TEiger::EBreakOff;
- SetConfig();
- }
-*/
LOCAL_C void GetFifo(TUint& aFifo, const TDesC &aDes)
{
@@ -468,8 +442,6 @@
TPtrC s(&a,1);
dialog.Write(s);
aSettings.iDumpData.Append(k.Code());
- //if (a=='\r')
- // dialog.Write(_L("\n"));
} while (aSettings.iDumpData.Length()<KMaxDumpLength);
dialog.Destroy();
@@ -528,8 +500,6 @@
GetStopBit(aConfig.iStopBits, right);
if (des[0]=='L')
GetLength(aConfig.iDataBits, right);
-// if (des[0]=='K')
-// GetBreak(aSettings.iBreak, right);
if (des[0]=='F')
GetFifo(aConfig.iFifo, right);
if (des[0]=='I')
@@ -747,7 +717,7 @@
TheWindow.Write(_L("Opened USB Comm Port\r\n"));
TheCommPort.Config(TheConfigBuf); // get config
- TheConfig.iHandshake=0; //KConfigObeyXoff|KConfigSendXoff;
+ TheConfig.iHandshake=0;
TheCommPort.SetConfig(TheConfigBuf);
TheCommPort.SetReceiveBufferLength(8192);
--- a/usbmgmt/usbmgrtest/t_termusb2/src/t_termusb2.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_termusb2/src/t_termusb2.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -203,11 +203,6 @@
aBuf.Append(_L("DSR/DTR "));
if (aConfig.iHandshake&KConfigWriteBufferedComplete)
aBuf.Append(_L("Early "));
- //|KConfigObeyDCD|KConfigFailDCD|))
-
-
-// if (aConfig.iBreak==TEiger::EBreakOn)
-// aBuf.Append(_L("Brk "));
if (aConfig.iFifo==EFifoEnable)
aBuf.Append(_L("Fifo "));
@@ -221,10 +216,6 @@
aBuf.Append(_L("LpBk"));
else if ((aSettings.iRxMode&~ECapture)==ECountChars)
aBuf.Append(_L("CtCh"));
- //else if (aSettings.iRxMode==ERxOff)
- //{
- //aBuf.Append(_L("NoRx"));
- //}
aBuf.Append(_L(" "));
aBuf.AppendNum((TInt)(RThread().Priority()));
if (aSettings.iInfraRed==1)
@@ -355,23 +346,6 @@
aWait=ETrue;
}
-/*LOCAL_C void GetBreak(const TDesC &aDes)
- {
-
- if (aDes==_L(""))
- {
- if (data.iBreak==TEiger::EBreakOn)
- data.iBreak=TEiger::EBreakOff;
- else
- data.iBreak=TEiger::EBreakOn;
- }
- if (aDes.FindF(_L("N"))>=0)
- data.iBreak=TEiger::EBreakOn;
- if (aDes.FindF(_L("F"))>=0)
- data.iBreak=TEiger::EBreakOff;
- SetConfig();
- }
-*/
LOCAL_C void GetFifo(TUint& aFifo, const TDesC &aDes)
{
@@ -466,8 +440,6 @@
TPtrC s(&a,1);
dialog.Write(s);
aSettings.iDumpData.Append(k.Code());
- //if (a=='\r')
- // dialog.Write(_L("\n"));
} while (aSettings.iDumpData.Length()<KMaxDumpLength);
dialog.Destroy();
@@ -526,8 +498,6 @@
GetStopBit(aConfig.iStopBits, right);
if (des[0]=='L')
GetLength(aConfig.iDataBits, right);
-// if (des[0]=='K')
-// GetBreak(aSettings.iBreak, right);
if (des[0]=='F')
GetFifo(aConfig.iFifo, right);
if (des[0]=='I')
@@ -652,17 +622,6 @@
// Initialisation
-/*
- // I don't belive this section of code is being used anymore and
- // has been replaced with PORT_NAME.
- // I'm not sure so I've left it here ...
-
- TBuf <0x100> cmd;
- User::CommandLine(cmd);
- TInt port=0;
- if ((cmd.Length()>0) && (cmd[0]>='1' && cmd[0]<='4'))
- port=(TInt)(cmd[0]-'0');
-*/
// Load Device Drivers
TInt r;
@@ -761,7 +720,7 @@
RDebug::Print(_L("E32Main: Open USB Comm Port"));
TheCommPort.Config(TheConfigBuf); // get config
- TheConfig.iHandshake=0; //KConfigObeyXoff|KConfigSendXoff;
+ TheConfig.iHandshake=0;
TheConfig.iTerminator[0] = 'Z';
TheConfig.iTerminatorCount = 1;
TheCommPort.SetConfig(TheConfigBuf);
--- a/usbmgmt/usbmgrtest/t_usb_cable_detect/src/t_usb_cable_detect.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usb_cable_detect/src/t_usb_cable_detect.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -136,7 +136,7 @@
TUsbServiceState serviceState;
User::LeaveIfError(iUsbMan.GetServiceState(serviceState));
-// RDebug::Print(_L("Service state: %d. Device state: %d"), serviceState, iDeviceState);
+
if ((serviceState != EUsbServiceIdle) &&
(iDeviceState == EUsbDeviceStateUndefined))
--- a/usbmgmt/usbmgrtest/t_usbman/src/t_usbman.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usbman/src/t_usbman.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -41,8 +41,6 @@
RUsb TheSecondUsbSession;
TBool ThePrimaryClient;
-//_LIT(KUsbCsyName, "ECACM");
-//_LIT(KUsbPortName, "ACM::0");
_LIT(KUsbLddName, "EUSBC");
// These are used in the startup stress test.
@@ -656,19 +654,7 @@
TheSecondUsbSession.Close();
}
-/*
-void RegisterAsPrimaryClientL()
- {
- LEAVEIFERROR(TheUsb.RegisterAsPrimarySession());
- ThePrimaryClient = ETrue;
- }
-void DeregisterAsPrimaryClientL()
- {
- LEAVEIFERROR(TheUsb.DeregisterAsPrimarySession());
- ThePrimaryClient = EFalse;
- }
-*/
void DbgCheckHeapL()
{
_printf(_L("Expected number of allocated heap cells: "));
@@ -1050,9 +1036,7 @@
case '5': SetUsbSerialNumberL(); break;
case 's': case 'S': SanityTestL(); break;
#ifndef HURRICANE
-/* case 'r': RegisterAsPrimaryClientL(); break;
- case 'd': DeregisterAsPrimaryClientL(); break;
-*/ case 'm': MemoryTestsL(); break;
+ case 'm': MemoryTestsL(); break;
#endif // HURRICANE
case 'c': case 'C': CloseUsbL(); break;
case 'o': case 'O': OpenUsbL(); break;
@@ -1105,9 +1089,7 @@
_printf(_L("5. Publish Serial Number\n"));
_printf(_L("S. Sanity test- quickly calls all APIs to make sure they don't panic\n"));
#ifndef HURRICANE
-/* _printf(_L("R. Register as primary client\n"));
- _printf(_L("D. Deregister as primary client\n"));
-*/ _printf(_L("M. Memory tests\n"));
+ _printf(_L("M. Memory tests\n"));
#endif // HURRICANE
_printf(_L("C. Close connection to USB Manager\n"));
_printf(_L("O. Connect to USB Manager\n"));
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/inc/Stub1CC.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/inc/Stub1CC.h Thu Jul 22 16:49:39 2010 +0100
@@ -40,12 +40,7 @@
const TInt Kstub1NumberOfInterfacesPerstub1Function = 2; // data and control interfaces
-// The name of the ini file specifying the number of functions required different from default
-/*
-_LIT(Kstub1FunctionsIniFileName, "NumberOfstub1Functions.ini");
-_LIT(Kstub1ConfigSection,"stub1_CONF");
-_LIT(KNumberOfstub1FunctionsKeyWord,"NumberOfstub1Functions");
-*/
+
// Lengths of the various bits of the descriptor. Taken from the USB
// WMCDC specification, v1.0.
const TInt Kstub1InterfaceDescriptorLength = 3;
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/inc/Stub2CC.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/inc/Stub2CC.h Thu Jul 22 16:49:39 2010 +0100
@@ -40,12 +40,7 @@
const TInt Kstub2NumberOfInterfacesPerstub2Function = 2; // data and control interfaces
-// The name of the ini file specifying the number of functions required different from default
-/*
-_LIT(Kstub2FunctionsIniFileName, "NumberOfstub2Functions.ini");
-_LIT(Kstub2ConfigSection,"stub2_CONF");
-_LIT(KNumberOfstub2FunctionsKeyWord,"NumberOfstub2Functions");
-*/
+
// Lengths of the various bits of the descriptor. Taken from the USB
// WMCDC specification, v1.0.
const TInt Kstub2InterfaceDescriptorLength = 3;
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/inc/Stub3CC.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/inc/Stub3CC.h Thu Jul 22 16:49:39 2010 +0100
@@ -40,12 +40,7 @@
const TInt Kstub3NumberOfInterfacesPerstub3Function = 2; // data and control interfaces
-// The name of the ini file specifying the number of functions required different from default
-/*
-_LIT(Kstub3FunctionsIniFileName, "NumberOfstub3Functions.ini");
-_LIT(Kstub3ConfigSection,"stub3_CONF");
-_LIT(KNumberOfstub3FunctionsKeyWord,"NumberOfstub3Functions");
-*/
+
// Lengths of the various bits of the descriptor. Taken from the USB
// WMCDC specification, v1.0.
const TInt Kstub3InterfaceDescriptorLength = 3;
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/CUsbComponentTest.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/CUsbComponentTest.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -403,7 +403,6 @@
INFO_PRINTF1(_L("Can't get class id from config file"));
SetTestStepResult(EFail);
}
-// TUid temp = uidArray[k];
TEST(uidArray[k] ==TUid::Uid(classID));
}
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/T_UsbManagerServer.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/T_UsbManagerServer.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -53,7 +53,6 @@
// Server Logging.
server->StartL(KServerName);
- //server-> ConstructL(KServerName);
CleanupStack::Pop(server);
return server;
}
--- a/usbmgmt/usbmgrtest/t_usbmodem/inc/t_usbmodem.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usbmodem/inc/t_usbmodem.h Thu Jul 22 16:49:39 2010 +0100
@@ -146,7 +146,7 @@
RComm* iCommPort;
};
-class CDuplex : public MTransferNotifier, CBase
+class CDuplex : public CBase, MTransferNotifier
{
public:
// Construction
--- a/usbmgmt/usbmgrtest/t_usbmodem/src/t_usbmodem.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_usbmodem/src/t_usbmodem.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -46,7 +46,6 @@
RDebug::Print(_L(": CSimplexRead::StartL Warning - Already active\n"));
return;
}
- //iBuffer.SetMax();
iCommPort->ReadOneOrMore(iStatus, iBuffer);
SetActive();
}
@@ -56,8 +55,6 @@
#ifdef _DEBUG
RDebug::Print(_L(": CSimplexRead::RunL - iStatus:%d iBuffer.Length:%d TotalAmount Left:%d\n"),iStatus.Int(),iBuffer.Length(),iTotalAmount);
#endif
- //RDebug::Print(_L(">%S<\n"),&iBuffer);
- //Notify Duplex object
iDuplex.NotifyRead(iStatus.Int(),iBuffer.Length(), iBuffer);
}
@@ -342,7 +339,6 @@
RDebug::Print(_L(": Serial RTS on"));
#endif
TheSerialPort.SetSignals( KSignalRTS, 0 );
- //TheUsbPort.SetSignals( KSignalCTS, 0 );
}
else
{
@@ -350,7 +346,6 @@
RDebug::Print(_L(": Serial RTS off"));
#endif
TheSerialPort.SetSignals( 0, KSignalRTS );
- //TheUsbPort.SetSignals( 0, KSignalCTS );
}
}
@@ -362,7 +357,6 @@
RDebug::Print(_L(": Serial DTR on"));
#endif
TheSerialPort.SetSignals( KSignalDTR, 0 );
- //TheUsbPort.SetSignals( KSignalDSR, 0 );
}
else
{
@@ -370,7 +364,6 @@
RDebug::Print(_L(": Serial DTR off"));
#endif
TheSerialPort.SetSignals( 0, KSignalDTR );
- //TheUsbPort.SetSignals( 0, KSignalDSR );
}
}
@@ -534,7 +527,6 @@
iUsbConfigChangeNotifier->Cancel();
iSerialSignalChangeNotifier->Cancel();
iUsbSignalChangeNotifier->Cancel();
- //iUsbFControlNotifier->Cancel();
iUsbToSerial->Cancel();
iSerialToUsb->Cancel();
@@ -571,7 +563,6 @@
iSerialSignalChangeNotifier = CSignalChangeNotifier::NewL(EFalse);
iUsbSignalChangeNotifier = CSignalChangeNotifier::NewL(ETrue);
-// iUsbFControlNotifier = CFControlChangeNotifier::NewL();
iUsbConfigChangeNotifier = CConfigChangeNotifier::NewL();
}
@@ -590,7 +581,6 @@
TRAP(ignoreErr, iUsbConfigChangeNotifier->StartL());
TRAP(ignoreErr, iSerialSignalChangeNotifier->StartL());
TRAP(ignoreErr, iUsbSignalChangeNotifier->StartL());
-// iUsbFControlNotifier->StartL();
TRAP(ignoreErr, iUsbToSerial->StartL());
TRAP(ignoreErr, iSerialToUsb->StartL());
@@ -701,107 +691,6 @@
}
}
-/*
-LOCAL_C TInt RateToInt(TBps aRate)
- {
- switch (aRate)
- {
- case EBps115200: return 115200;
- case EBps57600: return 57600;
- case EBps38400: return 38400;
- case EBps19200: return 19200;
- case EBps9600: return 9600;
- case EBps7200: return 7200;
- case EBps4800: return 4800;
- case EBps3600: return 3600;
- case EBps2400: return 2400;
- case EBps2000: return 2000;
- case EBps1800: return 1800;
- case EBps1200: return 1200;
- case EBps600: return 600;
- case EBps300: return 300;
- case EBps150: return 150;
- case EBps134: return 134;
- case EBps110: return 110;
- case EBps75: return 75;
- case EBps50: return 50;
- default: return -1;
- }
- }
-
-LOCAL_C void ConfigString(TDes &aBuf, const TCommNotificationV01 &aConfig)
- {
- // Config
- aBuf.Format(_L(" %d "), RateToInt(aConfig.iRate));
- switch (aConfig.iParity)
- {
- case EParityEven: aBuf.Append(_L("E")); break;
- case EParityOdd: aBuf.Append(_L("O")); break;
- case EParityNone: aBuf.Append(_L("N")); break;
- default: break;
- }
- switch (aConfig.iDataBits)
- {
- case EData5: aBuf.Append(_L("5")); break;
- case EData6: aBuf.Append(_L("6")); break;
- case EData7: aBuf.Append(_L("7")); break;
- case EData8: aBuf.Append(_L("8")); break;
- default: break;
- }
- if (aConfig.iStopBits==EStop1)
- aBuf.Append(_L("1 "));
- else
- aBuf.Append(_L("2 "));
-
- aBuf.Append(_L("Use:"));
- if (aConfig.iHandshake==0)
- aBuf.Append(_L("NoControl "));
- if (aConfig.iHandshake&(KConfigObeyXoff|KConfigSendXoff))
- aBuf.Append(_L("XonXoff "));
- if (aConfig.iHandshake&KConfigObeyCTS)
- aBuf.Append(_L("CTS/RTS "));
- if (aConfig.iHandshake&KConfigObeyDSR)
- aBuf.Append(_L("DSR/DTR "));
- if (aConfig.iHandshake&KConfigWriteBufferedComplete)
- aBuf.Append(_L("Early "));
- //|KConfigObeyDCD|KConfigFailDCD|))
-
-// if (aConfig.iBreak==TEiger::EBreakOn)
-// aBuf.Append(_L("Brk "));
-// if (aConfig.iFifo==EFifoEnable)
-// aBuf.Append(_L("Fifo "));
- }
-
-LOCAL_C void PrintCaps()
- {
- TCommCaps2 caps;
- TheUsbPort.Caps(caps);
- TUint notifycaps = caps().iNotificationCaps;
- RDebug::Print(_L("Capabilities:\n"));
- if (notifycaps&KNotifySignalsChangeSupported)
- RDebug::Print(_L("Notify Signals Change supported\n"));
- if (notifycaps&KNotifyRateChangeSupported)
- RDebug::Print(_L("Notify Rate Change supported\n"));
- if (notifycaps&KNotifyDataFormatChangeSupported)
- RDebug::Print(_L("Notify Data Format Change supported\n"));
- if (notifycaps&KNotifyHandshakeChangeSupported)
- RDebug::Print(_L("Notify Handshake Change supported\n"));
- if (notifycaps&KNotifyBreakSupported)
- RDebug::Print(_L("Notify Break supported\n"));
- if (notifycaps&KNotifyFlowControlChangeSupported)
- RDebug::Print(_L("Notify Flow Control Change supported\n"));
- if (notifycaps&KNotifyDataAvailableSupported)
- RDebug::Print(_L("Notify Data Available supported\n"));
- if (notifycaps&KNotifyOutputEmptySupported)
- RDebug::Print(_L("Notify Output Empty supported\n"));
- RDebug::Print(_L("\n"));
- if ((caps().iRoleCaps)&KCapsRoleSwitchSupported)
- RDebug::Print(_L("Role switching is supported\n"));
- RDebug::Print(_L("\n"));
- if ((caps().iFlowControlCaps)&KCapsFlowControlStatusSupported)
- RDebug::Print(_L("Retrieve flow control status is supported\n"));
- }
-*/
LOCAL_C void DoInitL()
{
// Do the necessary initialisation of the C32, 2 comm ports, USB stuff.
@@ -901,8 +790,6 @@
}
RDebug::Print(_L("E32Main: Opened Serial Comm Port"));
- // Print the caps
- //PrintCaps();
RDebug::Print(_L("E32Main: Reading Serial Comm Port config"));
TheSerialPort.Config(TheSerialConfigBuf); // get config
@@ -911,12 +798,10 @@
TBuf<80> buf;
buf.FillZ();
- //ConfigString(buf, TheUsbConfig);
RDebug::Print(_L("E32Main: Old USB Port Settings"));
RDebug::Print(buf);
RDebug::Print(_L(""));
buf.FillZ();
- //ConfigString(buf, TheSerialConfig);
RDebug::Print(_L("E32Main: Old Serial Port Settings"));
RDebug::Print(buf);
RDebug::Print(_L(""));
--- a/usbmgmt/usbmgrtest/t_whcm_cc/src/t_whcm_cc.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/t_whcm_cc/src/t_whcm_cc.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -117,17 +117,6 @@
current_test_state = EUSBManConnected;
break;
case EUSBManConnected:
- // Register as primary client.
- // *** Obsolete ***
- /*
- r = usbman->RegisterAsPrimarySession();
- if (r != KErrNone)
- {
- test.Printf(_L(" Failed to register as primary client. Error = %d\n"), r);
- return r;
- }
- test.Printf(_L(" Registered as primary client.\n"));
- */
current_test_state = EPrimaryRegistered;
break;
default:
@@ -160,8 +149,6 @@
current_test_state = EPrimaryRegistered;
break;
case EPrimaryRegistered:
- // *** Obsolete ***
- // usbman->DeregisterAsPrimarySession();
current_test_state = EUSBManConnected;
break;
case EUSBManConnected:
@@ -237,45 +224,6 @@
return KErrNone;
}
-
-/**
- * Executes test A2 (as detailed in the USB Manager Test Specification).
- * No longer a relevant test.
- */
-/*static TInt RunTest_A2()
- {
- TInt r;
-
- test.Next(_L("Test A2.\n"));
-
- // Perform common startup
- current_test_state = EStart;
- r = CommonStart();
- if (r != KErrNone)
- return r;
-
- // Start the USB Manager
- TRequestStatus status;
- test.Printf(_L("Starting.\n"));
- usbman->Start(status);
-
- // Wait for specific time (has to be less than the time to process a start request)
- timer.After(status, CANCEL_START_REQ_DELAY);
- User::WaitForRequest(status);
-
- // Cancel the start request
- test.Printf(_L("Cancelling.\n"));
- usbman->StartCancel();
-
- // Check service status
- test.Printf(_L("Checking service status.\n"));
- r = CheckServiceState(EUsbServiceIdle);
- if ( r != KErrNone)
- return r;
-
- return KErrNone;
- }
-*/
/**
* Executes test A3 (as detailed in the USB Manager Test Specification).
*/
@@ -313,47 +261,6 @@
}
/**
- * Executes test A4 (as detailed in the USB Manager Test Specification).
- * No longer a relevant test.
- */
-/*static TInt RunTest_A4()
- {
- TInt r;
-
- test.Next(_L("Test A4.\n"));
-
- // Perform common startup
- current_test_state = EStart;
- r = CommonStart();
- if (r != KErrNone)
- return r;
-
- // Start the USB Manager
- TRequestStatus status, timerStatus;
- usbman->Start(status);
- User::WaitForRequest(status);
- test.Printf(_L("Start completed with status %d\n"), status.Int());
- current_test_state = EUSBManStarted;
-
- // Stop the USB Manager
- usbman->Stop(status);
-
- // Wait for specific time (has to be less than the time to process a start request)
- timer.After(timerStatus, CANCEL_STOP_REQ_DELAY);
- User::WaitForRequest(status, timerStatus);
-
- // Cancel the stop request
- usbman->StopCancel();
-
- // Check service status
- r = CheckServiceState(EUsbServiceStarted);
- if ( r != KErrNone)
- return r;
-
- return KErrNone;
- }
-*/
-/**
* Main function.
*
* Runs all the tests in order.
@@ -373,16 +280,6 @@
test.Printf(_L("Test A1 passed.\n\n"));
CommonCleanup();
-/* Depreciated test.
- err=RunTest_A2();
- if (err != KErrNone)
- {
- test.Printf(_L("Test A2 failed, code: %d\n\n"), err);
- }
- else
- test.Printf(_L("Test A2 passed.\n\n"));
- CommonCleanup();
-*/
err=RunTest_A3();
if (err != KErrNone)
{
@@ -392,16 +289,7 @@
test.Printf(_L("Test A3 passed.\n\n"));
CommonCleanup();
-/* Depreciated test.
- err=RunTest_A4();
- if (err != KErrNone)
- {
- test.Printf(_L("Test A4 failed, code: %d\n\n"), err);
- }
- else
- test.Printf(_L("Test A4 passed.\n\n"));
- CommonCleanup();
-*/
+
// Tests finished
}
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/inc/usbms_stub.h Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/inc/usbms_stub.h Thu Jul 22 16:49:39 2010 +0100
@@ -40,12 +40,7 @@
const TInt Kstub3NumberOfInterfacesPerstub3Function = 2; // data and control interfaces
-// The name of the ini file specifying the number of functions required different from default
-/*
-_LIT(Kstub3FunctionsIniFileName, "NumberOfstub3Functions.ini");
-_LIT(Kstub3ConfigSection,"stub3_CONF");
-_LIT(KNumberOfstub3FunctionsKeyWord,"NumberOfstub3Functions");
-*/
+
// Lengths of the various bits of the descriptor. Taken from the USB
// WMCDC specification, v1.0.
const TInt Kstub3InterfaceDescriptorLength = 3;
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/src/usbms_stub.cpp Fri Jun 11 16:29:16 2010 +0100
+++ b/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/src/usbms_stub.cpp Thu Jul 22 16:49:39 2010 +0100
@@ -80,11 +80,6 @@
Cancel();
iTimer.Close();
-
-#ifndef __WINS__
-// iLdd.Close();
-#endif
-
}
@@ -255,7 +250,7 @@
* endpoint and, if found, configuring the interface.
*/
{
-return 0;
+ return 0;
}