# HG changeset patch # User William Roberts # Date 1268570137 0 # Node ID cee235f8aa574c981eb0fdab2757a9fe2968ddcf # Parent 78dea7994cf2c038abc27c3ec8ae2db71f137ac2# Parent 08c4f946d508d9037e2191e347f2a498255fa34b Merge from PDK_3.0.h diff -r 08c4f946d508 -r cee235f8aa57 systemswstubs/hwrmhapticsstubplugin/data/2001CB6D.rss --- a/systemswstubs/hwrmhapticsstubplugin/data/2001CB6D.rss Fri Feb 26 17:34:53 2010 +0000 +++ b/systemswstubs/hwrmhapticsstubplugin/data/2001CB6D.rss Sun Mar 14 12:35:37 2010 +0000 @@ -1,51 +1,51 @@ -/* -* 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: Haptics (adaptation) stub plugin ECom resource file -* -*/ - - -#include "registryinfov2.rh" - -// Declares info for implementations -RESOURCE REGISTRY_INFO SA_HAPTICS_ADAPTATION - { - resource_format_version = RESOURCE_FORMAT_VERSION_2; - dll_uid = 0x2001CB6D; // Haptics adaptation DLL UID - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x2001CBE4; // KCHWRMHapticsPluginServiceInterfaceUid - implementations = - { - // Haptics adaptation implementation - IMPLEMENTATION_INFO - { - implementation_uid = 0x2001CB6E; // Haptics Adaptation Plugin Implementation UID - version_no = 1; - display_name = "Haptics Stub plugin"; - default_data = "EHWRMLogicalActuatorAny"; - opaque_data = ""; - rom_only = 0; - } - }; - } - }; - } - -// End of File - - - +/* +* 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: Haptics (adaptation) stub plugin ECom resource file +* +*/ + + +#include "registryinfov2.rh" + +// Declares info for implementations +RESOURCE REGISTRY_INFO SA_HAPTICS_ADAPTATION + { + resource_format_version = RESOURCE_FORMAT_VERSION_2; + dll_uid = 0x2001CB6D; // Haptics adaptation DLL UID + interfaces = + { + INTERFACE_INFO + { + interface_uid = 0x2001CBE4; // KCHWRMHapticsPluginServiceInterfaceUid + implementations = + { + // Haptics adaptation implementation + IMPLEMENTATION_INFO + { + implementation_uid = 0x2001CB6E; // Haptics Adaptation Plugin Implementation UID + version_no = 1; + display_name = "Haptics Stub plugin"; + default_data = "EHWRMLogicalActuatorAny"; + opaque_data = ""; + rom_only = 0; + } + }; + } + }; + } + +// End of File + + + diff -r 08c4f946d508 -r cee235f8aa57 systemswstubs/hwrmhapticsstubplugin/group/bld.inf --- a/systemswstubs/hwrmhapticsstubplugin/group/bld.inf Fri Feb 26 17:34:53 2010 +0000 +++ b/systemswstubs/hwrmhapticsstubplugin/group/bld.inf Sun Mar 14 12:35:37 2010 +0000 @@ -1,30 +1,30 @@ -/* -* Copyright (c) 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: Haptics adaptation stub plugin bld file -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -../group/hwrmhapticsstubplugin.mmp - - -// End of File +/* +* Copyright (c) 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: Haptics adaptation stub plugin bld file +* +*/ + + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS + +PRJ_MMPFILES +../group/hwrmhapticsstubplugin.mmp + + +// End of File diff -r 08c4f946d508 -r cee235f8aa57 systemswstubs/hwrmhapticsstubplugin/group/hwrmhapticsstubplugin.mmp --- a/systemswstubs/hwrmhapticsstubplugin/group/hwrmhapticsstubplugin.mmp Fri Feb 26 17:34:53 2010 +0000 +++ b/systemswstubs/hwrmhapticsstubplugin/group/hwrmhapticsstubplugin.mmp Sun Mar 14 12:35:37 2010 +0000 @@ -1,50 +1,50 @@ -/* -* Copyright (c) 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: Haptics (adaptation) stub plugin project definition file -* -*/ - - -#include - -TARGET hapticsadaptation.dll -TARGETTYPE PLUGIN - -UID 0x10009D8D 0x2001CB6D - -VENDORID VID_DEFAULT - -CAPABILITY CAP_ECOM_PLUGIN - -SOURCEPATH ../src -SOURCE proxy.cpp -SOURCE hwrmhapticsstubplugin.cpp -SOURCE hwrmhapticsstubpluginidleresponder.cpp - -START RESOURCE ../data/2001CB6D.rss -TARGET hapticsadaptation.rsc -END - -USERINCLUDE ../inc - -OS_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom - -LIBRARY euser.lib -LIBRARY ecom.lib -LIBRARY estor.lib -LIBRARY hwrmhapticspluginservice.lib - -LANG SC - +/* +* Copyright (c) 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: Haptics (adaptation) stub plugin project definition file +* +*/ + + +#include + +TARGET hapticsadaptation.dll +TARGETTYPE PLUGIN + +UID 0x10009D8D 0x2001CB6D + +VENDORID VID_DEFAULT + +CAPABILITY CAP_ECOM_PLUGIN + +SOURCEPATH ../src +SOURCE proxy.cpp +SOURCE hwrmhapticsstubplugin.cpp +SOURCE hwrmhapticsstubpluginidleresponder.cpp + +START RESOURCE ../data/2001CB6D.rss +TARGET hapticsadaptation.rsc +END + +USERINCLUDE ../inc + +OS_LAYER_SYSTEMINCLUDE +SYSTEMINCLUDE /epoc32/include/ecom + +LIBRARY euser.lib +LIBRARY ecom.lib +LIBRARY estor.lib +LIBRARY hwrmhapticspluginservice.lib + +LANG SC + diff -r 08c4f946d508 -r cee235f8aa57 systemswstubs/hwrmhapticsstubplugin/inc/hwrmhapticsstubplugin.h --- a/systemswstubs/hwrmhapticsstubplugin/inc/hwrmhapticsstubplugin.h Fri Feb 26 17:34:53 2010 +0000 +++ b/systemswstubs/hwrmhapticsstubplugin/inc/hwrmhapticsstubplugin.h Sun Mar 14 12:35:37 2010 +0000 @@ -1,137 +1,137 @@ -/* -* Copyright (c) 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: Haptics test (adaptation) plugin header file. -* -*/ - - -#ifndef __HWRMHAPTICSSTUBPLUGIN_H_ -#define __HWRMHAPTICSSTUBPLUGIN_H_ - -#include -#include "hwrmhapticsstubpluginidleresponder.h" - -/** - * Haptics stub plugin. - * Stub implementation of Haptics adaptation ECom plugin for clean build(s). - * - * @since Series S60 5.1 - */ -class CHWRMHapticsStubPlugin : public CHWRMHapticsPluginService - { -public: - /** - * Static method for instantiating stub plugin objects used by - * ECom framework. - * - * @aCallback Haptics plugin callback instance. - * @return Pointer to a new CHWRMHapticsStubPlugin instance. - */ - static CHWRMHapticsStubPlugin* NewL( - MHWRMHapticsPluginCallback* aCallback ); - - /** - * Destructor - */ - virtual ~CHWRMHapticsStubPlugin(); - - /** - * Method to invoke a particular command in the plugin. - * Dummy implementation of the CHWRMHapticsPluginService::ProcessCommandL - * abstract interface method. - * - * @see CHWRMHapticsPluginService - */ - virtual void ProcessCommandL( TInt aCommandId, - TUint8 aTransId, - TDesC8& aData ); - - /** - * Method to cancel a particular command. - * Dummy implementation the CHWRMHapticsPluginService::CancelCommandL - * abstract interface method. - * - * @see CHWRMHapticsPluginService - */ - virtual void CancelCommandL( TUint8 aTransId, - TInt aCommandId ); - - - /** - * The actual response generation method (called from idle responder - * object) - * - * @param aTransId Transaction Id of the command for which the response - * generation is requested. - * @param aData Pointer to the data received in command (based on - * which the command-specific response is generated). - */ - void GenerateResponseL( TUint8 aTransId, - TUint8* aData ); - - /** - * Static method that CIdle calls as callback to remove "spent" responder - * objects from their pointer array - * - * @param aObjectPtr Pointer to the CHWRMHapticsStubPlugin object that - * started the CIdle runner whose RunL calls this - * method as callback. - * @return TInt Always returns KErrNone. Required by - * CIdle( TCallBack ). - */ - static TInt CollectGarbageIdle( TAny* aObjectPtr ); - - /** - * Method that does the actual garbage collection of spent responder - * objects - */ - void CollectGarbage(); - -private: - - /** - * Constructor. - * - * @aCallback Haptics plugin callback instance. - */ - CHWRMHapticsStubPlugin( MHWRMHapticsPluginCallback* aCallback ); - - /** - * Two-phase construction ConstructL - */ - void ConstructL(); - - /** - * Method for removing a specific responder object from internal - * RPointerArray - * - * @param aTransId Transaction Id of the responder that is to be removed. - */ - void RemoveResponder( TUint8 aTransId ); - -private: // data - - /** - * Array of pointers to running idle responder objects - */ - RPointerArray iResponders; - - /** - * CIdle object through which the responders are cleaned (kind of garbage - * collection) - */ - CIdle *iIdle; - }; - -#endif // __HWRMHAPTICSSTUBPLUGIN_H_ +/* +* Copyright (c) 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: Haptics test (adaptation) plugin header file. +* +*/ + + +#ifndef __HWRMHAPTICSSTUBPLUGIN_H_ +#define __HWRMHAPTICSSTUBPLUGIN_H_ + +#include +#include "hwrmhapticsstubpluginidleresponder.h" + +/** + * Haptics stub plugin. + * Stub implementation of Haptics adaptation ECom plugin for clean build(s). + * + * @since Series S60 5.1 + */ +class CHWRMHapticsStubPlugin : public CHWRMHapticsPluginService + { +public: + /** + * Static method for instantiating stub plugin objects used by + * ECom framework. + * + * @aCallback Haptics plugin callback instance. + * @return Pointer to a new CHWRMHapticsStubPlugin instance. + */ + static CHWRMHapticsStubPlugin* NewL( + MHWRMHapticsPluginCallback* aCallback ); + + /** + * Destructor + */ + virtual ~CHWRMHapticsStubPlugin(); + + /** + * Method to invoke a particular command in the plugin. + * Dummy implementation of the CHWRMHapticsPluginService::ProcessCommandL + * abstract interface method. + * + * @see CHWRMHapticsPluginService + */ + virtual void ProcessCommandL( TInt aCommandId, + TUint8 aTransId, + TDesC8& aData ); + + /** + * Method to cancel a particular command. + * Dummy implementation the CHWRMHapticsPluginService::CancelCommandL + * abstract interface method. + * + * @see CHWRMHapticsPluginService + */ + virtual void CancelCommandL( TUint8 aTransId, + TInt aCommandId ); + + + /** + * The actual response generation method (called from idle responder + * object) + * + * @param aTransId Transaction Id of the command for which the response + * generation is requested. + * @param aData Pointer to the data received in command (based on + * which the command-specific response is generated). + */ + void GenerateResponseL( TUint8 aTransId, + TUint8* aData ); + + /** + * Static method that CIdle calls as callback to remove "spent" responder + * objects from their pointer array + * + * @param aObjectPtr Pointer to the CHWRMHapticsStubPlugin object that + * started the CIdle runner whose RunL calls this + * method as callback. + * @return TInt Always returns KErrNone. Required by + * CIdle( TCallBack ). + */ + static TInt CollectGarbageIdle( TAny* aObjectPtr ); + + /** + * Method that does the actual garbage collection of spent responder + * objects + */ + void CollectGarbage(); + +private: + + /** + * Constructor. + * + * @aCallback Haptics plugin callback instance. + */ + CHWRMHapticsStubPlugin( MHWRMHapticsPluginCallback* aCallback ); + + /** + * Two-phase construction ConstructL + */ + void ConstructL(); + + /** + * Method for removing a specific responder object from internal + * RPointerArray + * + * @param aTransId Transaction Id of the responder that is to be removed. + */ + void RemoveResponder( TUint8 aTransId ); + +private: // data + + /** + * Array of pointers to running idle responder objects + */ + RPointerArray iResponders; + + /** + * CIdle object through which the responders are cleaned (kind of garbage + * collection) + */ + CIdle *iIdle; + }; + +#endif // __HWRMHAPTICSSTUBPLUGIN_H_ diff -r 08c4f946d508 -r cee235f8aa57 systemswstubs/hwrmhapticsstubplugin/inc/hwrmhapticsstubpluginidleresponder.h --- a/systemswstubs/hwrmhapticsstubplugin/inc/hwrmhapticsstubpluginidleresponder.h Fri Feb 26 17:34:53 2010 +0000 +++ b/systemswstubs/hwrmhapticsstubplugin/inc/hwrmhapticsstubpluginidleresponder.h Sun Mar 14 12:35:37 2010 +0000 @@ -1,130 +1,130 @@ -/* -* Copyright (c) 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: Haptics test (adaptation) plugin idle responder header file. -* -*/ - - -#ifndef __HWRMHAPTICSSTUBPLUGINIDLERESPONDER_H_ -#define __HWRMHAPTICSSTUBPLUGINIDLERESPONDER_H_ - -#include - -class CHWRMHapticsStubPlugin; - -/** - * Haptics stub plugin idle responder. - * Class that initiates response generation after embedded - * CIdle AO gets runtime. - * - * @since Series S60 5.1 - */ -class CHWRMHapticsStubPluginIdleResponder : public CBase - { -public: - /** - * Static method for instantiating stub plugin objects used by - * ECom framework. - * - * @param aPlugin Pointer to the stub plugin object that calls - * this instantiation method. - * @param aTransId Transaction Id of the command (that is to be - * responded when the embedded CIdle object is - * scheduled to run). - * @param aDataPacket Pointer to the received command data. - * @return Pointer to a new instance of idle responder. - */ - static CHWRMHapticsStubPluginIdleResponder* NewL( - CHWRMHapticsStubPlugin* aPlugin, - TUint8 aTransId, - TUint8* aDataPacket ); - - /** - * Destructor - */ - virtual ~CHWRMHapticsStubPluginIdleResponder(); - - /** - * Response generation method (called as callback from CIdle) - * - * @param aSelf TAny pointer to the object that started the CIdle - * whose callback method this is. - * @return TInt Always returns KErrNone. Required by CIdle(TCallBack). - */ - static TInt GenerateResponse( TAny* aSelf ); - - /** - * The actual response generation method. - */ - void GenerateResponseL(); - - /** - * Getter for transId - * - * @return TUint8 The transaction Id. - */ - TUint8 TransId() const; - - /** - * Getter for 'active' state - * - * @return TBool True iff the embedded CIdle AO is currently active. - */ - TBool Active() const; - -private: - - /** - * Constructor - * - * @param aPlugin See the above NewL method. - * @param aTransId See the above NewL method. - * @param aDataPacket See the above NewL method. - */ - CHWRMHapticsStubPluginIdleResponder( - CHWRMHapticsStubPlugin* aPlugin, - TUint8 aTransId, - TUint8* aDataPacket ); - - /** - * Two-phase construction ConstructL - */ - void ConstructL(); - -private: // data - - /** - * CIdle active object (through which response generation is done) - */ - CIdle* iIdle; - - /** - * Pointer to the stub plugin object that created this idle responder - * and through which the actual response to stub client (i.e., to - * HapticsPluginManager) is sent. - */ - CHWRMHapticsStubPlugin* iPlugin; - - /** - * Transaction Id (of the received command) - */ - TUint8 iTransId; - - /** - * Pointer to raw command data (not owned) - */ - TUint8* iDataPacket; - }; - -#endif // __HWRMHAPTICSSTUBPLUGINIDLERESPONDER_H_ +/* +* Copyright (c) 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: Haptics test (adaptation) plugin idle responder header file. +* +*/ + + +#ifndef __HWRMHAPTICSSTUBPLUGINIDLERESPONDER_H_ +#define __HWRMHAPTICSSTUBPLUGINIDLERESPONDER_H_ + +#include + +class CHWRMHapticsStubPlugin; + +/** + * Haptics stub plugin idle responder. + * Class that initiates response generation after embedded + * CIdle AO gets runtime. + * + * @since Series S60 5.1 + */ +class CHWRMHapticsStubPluginIdleResponder : public CBase + { +public: + /** + * Static method for instantiating stub plugin objects used by + * ECom framework. + * + * @param aPlugin Pointer to the stub plugin object that calls + * this instantiation method. + * @param aTransId Transaction Id of the command (that is to be + * responded when the embedded CIdle object is + * scheduled to run). + * @param aDataPacket Pointer to the received command data. + * @return Pointer to a new instance of idle responder. + */ + static CHWRMHapticsStubPluginIdleResponder* NewL( + CHWRMHapticsStubPlugin* aPlugin, + TUint8 aTransId, + TUint8* aDataPacket ); + + /** + * Destructor + */ + virtual ~CHWRMHapticsStubPluginIdleResponder(); + + /** + * Response generation method (called as callback from CIdle) + * + * @param aSelf TAny pointer to the object that started the CIdle + * whose callback method this is. + * @return TInt Always returns KErrNone. Required by CIdle(TCallBack). + */ + static TInt GenerateResponse( TAny* aSelf ); + + /** + * The actual response generation method. + */ + void GenerateResponseL(); + + /** + * Getter for transId + * + * @return TUint8 The transaction Id. + */ + TUint8 TransId() const; + + /** + * Getter for 'active' state + * + * @return TBool True iff the embedded CIdle AO is currently active. + */ + TBool Active() const; + +private: + + /** + * Constructor + * + * @param aPlugin See the above NewL method. + * @param aTransId See the above NewL method. + * @param aDataPacket See the above NewL method. + */ + CHWRMHapticsStubPluginIdleResponder( + CHWRMHapticsStubPlugin* aPlugin, + TUint8 aTransId, + TUint8* aDataPacket ); + + /** + * Two-phase construction ConstructL + */ + void ConstructL(); + +private: // data + + /** + * CIdle active object (through which response generation is done) + */ + CIdle* iIdle; + + /** + * Pointer to the stub plugin object that created this idle responder + * and through which the actual response to stub client (i.e., to + * HapticsPluginManager) is sent. + */ + CHWRMHapticsStubPlugin* iPlugin; + + /** + * Transaction Id (of the received command) + */ + TUint8 iTransId; + + /** + * Pointer to raw command data (not owned) + */ + TUint8* iDataPacket; + }; + +#endif // __HWRMHAPTICSSTUBPLUGINIDLERESPONDER_H_ diff -r 08c4f946d508 -r cee235f8aa57 systemswstubs/hwrmhapticsstubplugin/src/hwrmhapticsstubplugin.cpp --- a/systemswstubs/hwrmhapticsstubplugin/src/hwrmhapticsstubplugin.cpp Fri Feb 26 17:34:53 2010 +0000 +++ b/systemswstubs/hwrmhapticsstubplugin/src/hwrmhapticsstubplugin.cpp Sun Mar 14 12:35:37 2010 +0000 @@ -1,612 +1,612 @@ -/* -* Copyright (c) 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: Haptics test (adaptation) plugin implementation. -* -*/ - - -#include -#include -#include "hwrmhapticsstubplugin.h" - -// --------------------------------------------------------------------------- -// Static instantiation method. -// --------------------------------------------------------------------------- -// -CHWRMHapticsStubPlugin* CHWRMHapticsStubPlugin::NewL( - MHWRMHapticsPluginCallback* aCallback ) - { - CHWRMHapticsStubPlugin* self = - new ( ELeave ) CHWRMHapticsStubPlugin( aCallback ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CHWRMHapticsStubPlugin::~CHWRMHapticsStubPlugin() - { - iResponders.ResetAndDestroy(); - - if ( iIdle ) - { - iIdle->Cancel(); - delete iIdle; - } - } - -// --------------------------------------------------------------------------- -// Implementation of ProcessCommandL. Creates an idle responder and appends it -// to the array of idle responders. (Later then, when the responder gets -// runtime, it will initiate the response generation). -// --------------------------------------------------------------------------- -// -void CHWRMHapticsStubPlugin::ProcessCommandL( TInt aCommandId, - TUint8 aTransId, - TDesC8& aData ) - { - if ( aCommandId != HWRMHapticsCommand::EHapticsCmdId || - aData.Size() < 2 ) // minimum length check - { - User::Leave( KErrBadDescriptor ); - } - - TUint8* dataPtr = const_cast( aData.Ptr() ); - - if ( !dataPtr ) - { - User::Leave( KErrBadDescriptor ); - } - - CHWRMHapticsStubPluginIdleResponder* responder = - CHWRMHapticsStubPluginIdleResponder::NewL( this, aTransId, dataPtr ); - CleanupStack::PushL( responder ); - iResponders.AppendL( responder ); - CleanupStack::Pop ( responder ); - } - -// --------------------------------------------------------------------------- -// Implementation of CancelCommandL. Just removes the corresponding idle -// responder. -// --------------------------------------------------------------------------- -// -void CHWRMHapticsStubPlugin::CancelCommandL( TUint8 aTransId, - TInt /* aCommandId */ ) - { - RemoveResponder( aTransId ); - } - - -// --------------------------------------------------------------------------- -// Method that does the actual response generation towards the issuer of -// command i.e., the HapticsPluginManager -// --------------------------------------------------------------------------- -// -void CHWRMHapticsStubPlugin::GenerateResponseL( TUint8 aTransId, - TUint8* aData ) - { - // Hardcoded responses generated based on the command code (first 2 bytes - // of the aData data packet, but since at the moment the 2nd byte is - // always 0x00, we just use the 1st one) - TUint8 command = aData[0]; - - TBuf8 binRespData; - binRespData.SetLength( KHWRMHapticsRespMaxSize ); - - TInt i( 0 ); - // For each command the response data's first two bytes are copy of - // the received command code (first 2 bytes of aData). - - binRespData[i++] = aData[0]; // command code bits 0..7 - binRespData[i++] = aData[1]; // command code bits 8..15 - - switch ( command ) - { - case 0x00: // API version query - { - // Response to API version query contains: - // 1 byte major version number - // 1 byte minor version number - // 2 bytes for build version - binRespData[i++] = 0x02; // major version - binRespData[i++] = 0x00; // minor version - binRespData[i++] = 0x53; // build version bits 0..7 - binRespData[i++] = 0x04; // build version bits 8..15 - break; - } - - case 0x01: // Initialize - case 0x02: // Terminate - case 0x06: // Modify basis effect - case 0x07: // Stop effect - case 0x08: // Stop all effects - case 0x0B: // Reset debug buffer - case 0x0C: // Stop designed bridge - case 0x13: // Close device - case 0x14: // Start designed bridge - case 0x16: // Play streaming sample - case 0x18: // Destroy streaming effect - case 0x19: // Pause playing effect - case 0x1A: // Resume playing effect - case 0x1E: // Modify magsweep effect - case 0x1F: // Modify periodic effect - { - // For these commands the response only contains status byte - // (set to 0x00 ("Success") in this stub). - binRespData[i++] = 0x00; // status - break; - } - - case 0x03: // Play basis effect - case 0x04: // Play IVT effect (with IVT data) - case 0x05: // Play IVT effect (without IVT data) - case 0x17: // Create streaming effect - case 0x1C: // Play magsweep effect - case 0x1D: // Play periodic effect - { - // The response consists of status byte (0x00) and 4-byte long - // effectHandle (here hardcoded as 0x01000000) - binRespData[i++] = 0x00; // status - binRespData[i++] = 0x01; // effectHandle bits 0..7 - binRespData[i++] = 0x00; // effectHandle bits 8..15 - binRespData[i++] = 0x00; // effectHandle bits 16..23 - binRespData[i++] = 0x00; // effectHandle bits 24..31 - break; - } - - case 0x09: // Get device capabilities - { - // The response consists of status byte (0x00), 4-byte long - // capability type (copied from the received command (bytes - // 7..10)), 1-byte capability value type (copied from the - // received command (byte 2), 1-byte size byte and "size" bytes - // long value - binRespData[i++] = 0x00; // status - binRespData[i++] = aData[7]; // capability type bits 0..7 - binRespData[i++] = aData[8]; // capability type bits 8..15 - binRespData[i++] = aData[9]; // capability type bits 16..23 - binRespData[i++] = aData[10]; // capability type bits 24..31 - binRespData[i++] = aData[2]; // capability value type - // The size and value depend on what exactly is being queried - // Note: Currently only the lowest (0..7) bytes of capability - // type have meaning, thus the switch case below is - // simplified.. - // Note: Since all values, except device name, are actually 32-bit - // integers, their size is always 4. - TUint8 capabilityType = aData[7]; - switch ( capabilityType ) - { - case 0: // device category - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0x02; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // value - virtual device - break; - } - case 1: // max nested repeats - case 2: // num of actuators - case 4: // num of effect slots - case 6: // min period - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0x01; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // value - 0x1 - break; - } - case 3: // actuator type - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // value - ERM actuator - break; - } - case 5: // supported styles - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0x07; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // value - all styles - break; - } - case 7: // max period - case 8: // max effect duration - case 11: // max envelope time - case 13: // max IVT file size (tethered) - case 14: // max IVT file size - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0xFF; - binRespData[i++] = 0xFF; - binRespData[i++] = 0x00; // - binRespData[i++] = 0x00; // value => 0xFFFF. - break; - } - case 9: // supported effects - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0x07; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // value - mag|per|timeline - break; - } - case 10: // device name - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0x52; // value - byte 1, ascii "S" - binRespData[i++] = 0x53; // value - byte 2, ascii "T" - binRespData[i++] = 0x54; // value - byte 3, ascii "U" - binRespData[i++] = 0x42; // value - byte 4, ascoo "B" - break; - } - case 12: // API version number - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0x02; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // value - API version - // Note: same as major version in - // specific API version query - // 0x2 - break; - } - default: - { - // Here status byte changed to -6 (0xFA) - // ("incompatible capability type") - binRespData[2] = 0xFA; // status (re-assigned) - binRespData[i++] = 0x00; // value size set to zero - break; - } - } // inner switch ends - break; - } - - case 0x0A: // Get debug buffer - { - // The response consists of status byte (0x00) and 2 bytes - // indicating the buffer size followed by the buffer itself. - // Here buffer size zero is used => thus this only consists of - // 3 bytes - // FFS: This may have to be changed if the zero-length is not ok. - binRespData[i++] = 0x00; // status - binRespData[i++] = 0x00; // buffer size bits 0..7 - binRespData[i++] = 0x00; // buffer size bits 8..15 - break; - } - - case 0x0D: // Get device state - { - // The response consists of status byte (0x00) and 4 bytes that - // indicate the device state (the bytes used here mean - // "device attached to the system") - binRespData[i++] = 0x00; // status - binRespData[i++] = 0x01; // device state bits 0..7 - binRespData[i++] = 0x00; // device state bits 8..15 - binRespData[i++] = 0x00; // device state bits 16..23 - binRespData[i++] = 0x00; // device state bits 24..31 - break; - } - - case 0x0E: // Set kernel param - { - // The response consists of status byte (0x00) and 2 bytes that - // are the kernel param Id's copied from the received command - // (bytes 6 and 7) - binRespData[i++] = 0x00; // status - binRespData[i++] = aData[6]; // kernel param Id bits 0..7 - binRespData[i++] = aData[7]; // kernel param Id bits 8..15 - break; - } - - case 0x0F: // Get kernel param - { - // The response consists of status byte (0x00), 2 bytes that are - // the kernel param Id's copied from the received command - // (bytes 6&7) and two bytes for (here dummy 0x00) values - binRespData[i++] = 0x00; // status - binRespData[i++] = aData[6]; // kernel param Id bits 0..7 - binRespData[i++] = aData[7]; // kernel param Id bits 8..15 - binRespData[i++] = 0x00; // kernel param value bits 0..7 - binRespData[i++] = 0x00; // kernel param value bits 8..15 - break; - } - - case 0x10: // Set device property - { - // The response consists of status byte (0x00), 4 bytes indicating - // the property type (copied from the received command's bytes - // 6..9) and 1 byte indicating the property value type (copied - // from the received command's byte 10). - binRespData[i++] = 0x00; // status - binRespData[i++] = aData[6]; // property type bits 0..7 - binRespData[i++] = aData[7]; // property type bits 8..15 - binRespData[i++] = aData[8]; // property type bits 16..23 - binRespData[i++] = aData[9]; // property type bits 24..31 - binRespData[i++] = aData[10]; // property value type - break; - } - - case 0x11: // Get device property - { - // The response consists of 1-byte status (0x00), 4-byte long - // property type (copied from the received command bytes 7..10), - // 1-byte property value type (copied from the received command - // byte 2), 1-byte size byte and "size" bytes long value part - binRespData[i++] = 0x00; // status - binRespData[i++] = aData[7]; // property type bits 0..7 - binRespData[i++] = aData[8]; // property type bits 8..15 - binRespData[i++] = aData[9]; // property type bits 16..23 - binRespData[i++] = aData[10]; // property type bits 24..31 - binRespData[i++] = aData[2]; // property value type - // The size and value depend on what exactly is being queried - // Note: Currently only the lowest (0..7) bytes of capability type - // have meaning, thus the switch case below is simplified - TUint8 propertyType = aData[7]; - switch ( propertyType ) - { - case 0: - // license key.. not feasible as GET device property type - { - // re-assign the status - binRespData[2] = 0xF9; // status - incompatible property - // type - binRespData[i++] = 0x00; // value size == 0 (=> no value) - break; - } - case 1: // priority - { - binRespData[i++] = 0x04; // size (32-bit integer takes 4 - // bytes) - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // value - 0x0 is lowest priority - break; - } - case 2: // disable effects - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // value - 0x0 means not disabled - break; - } - case 3: // strength - case 4: // master strength - { - binRespData[i++] = 0x04; // size - binRespData[i++] = 0xFF; - binRespData[i++] = 0xFF; - binRespData[i++] = 0x00; - binRespData[i++] = 0x00; // => value 0xFFFF - break; - } - default: - { - // Pehaps it's best to change the status byte to -7 (0xF9) - // ("incompatible property type") - binRespData[2] = 0xF9; // status (re-assigned) - binRespData[i++] = 0x00; // value size, set to zero - break; - } - } // inner switch ends - break; - } - - case 0x12: // Open device - { - // The response consists of status byte (0x00) and 4-byte long - // deviceHandle (here hardcoded as 0x01000000) - binRespData[i++] = 0x00; // status - binRespData[i++] = 0x01; // deviceHandle bits 0..7 - binRespData[i++] = 0x00; // deviceHandle bits 8..15 - binRespData[i++] = 0x00; // deviceHandle bits 16..23 - binRespData[i++] = 0x00; // deviceHandle bits 24..31 - break; - } - - case 0x15: // Device count - { - // The response only contains the device count (here value == 1) - binRespData[i++] = 0x01; - break; - } - - case 0x1B: // Get effect state - { - // The response consists of status byte (0x00) and one byte effect - // state (0x00 used here meaning "Not playing") - binRespData[i++] = 0x00; // status - binRespData[i++] = 0x00; // effect state - break; - } - - case 0x20: // Load IVT data - { - // The response consists of status byte (0x00) and 4-byte long - // fileHandle (here hardcoded as 0x01000000) - binRespData[i++] = 0x00; // status - binRespData[i++] = 0x01; // fileHandle bits 0..7 - binRespData[i++] = 0x00; // fileHandle bits 8..15 - binRespData[i++] = 0x00; // fileHandle bits 16..23 - binRespData[i++] = 0x00; // fileHandle bits 24..31 - break; - } - - case 0x30: // Get license key - { - binRespData[i++] = 0x00; // status - binRespData[i++] = 0x20; // size - for( TInt n=0; n<0x20; ) - { - binRespData[i++] = 0x53; // S - n++; - binRespData[i++] = 0x54; // T - n++; - binRespData[i++] = 0x55; // U - n++; - binRespData[i++] = 0x42; // B - n++; - } - break; - } - - case 0xFF: // Protocol version query - { - // Response to Protocol version query contains: - // 1 byte minor version number - // 1 byte major version number - binRespData[i++] = 0x00; // minor version - binRespData[i++] = 0x03; // major version - break; - } - - default: - { - // Unknown command.. - break; - } - } // switch ends - - // set the lenght of the raw response data - binRespData.SetLength( i ); - - // create Haptics response data. This is done by externalizing - // (with RDesWriteStream whose sink is the Haptics response data) - TInt32 respDataErr( KErrNone ); - CHWRMHapticsRespData* respData = - CHWRMHapticsRespData::NewLC( respDataErr, binRespData ); - HWRMHapticsCommand::RHWRMHapticsRespData resp; - resp.CreateL( KHWRMHapticsRespMaxSize ); - CleanupClosePushL( resp ); - RDesWriteStream streamWriter( resp ); - CleanupClosePushL( streamWriter ); - streamWriter << *respData; - // This commits to stream's sink (i.e., to 'resp') - CleanupStack::PopAndDestroy( &streamWriter ); - - // Call the ProcessResponseL of the HapticsPluginManager - // object that created this stub plugin instance. - iResponseCallback->ProcessResponseL - ( HWRMHapticsCommand::EHapticsCmdId, aTransId, resp ); - - CleanupStack::PopAndDestroy( &resp ); - CleanupStack::PopAndDestroy( respData ); - // Order garbage collection of "spent" responder(s), if not already - // waiting for scheduling - if ( !iIdle->IsActive() ) - { - iIdle->Start( TCallBack ( CollectGarbageIdle, this ) ); - } - } - -// --------------------------------------------------------------------------- -// Static method called as CIdle TCallBack in order to remove obsolete -// responder from the array of responder pointers -// --------------------------------------------------------------------------- -// -TInt CHWRMHapticsStubPlugin::CollectGarbageIdle( TAny* aObjectPtr ) - { - CHWRMHapticsStubPlugin* self = - reinterpret_cast( aObjectPtr ); - if ( self ) - { - self->CollectGarbage(); - } - return KErrNone; - } - -// --------------------------------------------------------------------------- -// Removes all responders that have finished their work from iResponders array -// --------------------------------------------------------------------------- -// -void CHWRMHapticsStubPlugin::CollectGarbage() - { - for( TInt i( 0 ); i < iResponders.Count(); ) - { - if ( iResponders[i]->Active() ) - { - ++i; // skip this, it's still active.. - } - else - { - delete iResponders[i]; - iResponders.Remove( i ); - // note: array index i is not incremented as in the next round - // it already is the position of next item.. - // obviously the iResponders.Count() will be then one less - // than in this round. - } - } - } - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CHWRMHapticsStubPlugin::CHWRMHapticsStubPlugin( - MHWRMHapticsPluginCallback* aCallback ) - { - // set callback to baseclass' member variable - iResponseCallback = aCallback; - } - -// --------------------------------------------------------------------------- -// Two-phase construction ConstructL -// --------------------------------------------------------------------------- -// -void CHWRMHapticsStubPlugin::ConstructL() - { - iIdle = CIdle::NewL( CActive::EPriorityIdle ); - - // inform haptics of the plugin state - iResponseCallback->PluginEnabled( EHWRMLogicalActuatorAny, ETrue ); - iResponseCallback->PluginEnabled( EHWRMLogicalActuatorDevice, ETrue ); - } - -// --------------------------------------------------------------------------- -// Removes a specific responder (based on transId) from iResponders array -// --------------------------------------------------------------------------- -// -void CHWRMHapticsStubPlugin::RemoveResponder( TUint8 aTransId ) - { - TInt count( iResponders.Count() ); - - for( TInt i( 0 ); i < count; ++i ) - { - if ( iResponders[i]->TransId() == aTransId ) - { - delete iResponders[i]; - iResponders.Remove( i ); - break; - } - } - } - -// end of file - +/* +* Copyright (c) 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: Haptics test (adaptation) plugin implementation. +* +*/ + + +#include +#include +#include "hwrmhapticsstubplugin.h" + +// --------------------------------------------------------------------------- +// Static instantiation method. +// --------------------------------------------------------------------------- +// +CHWRMHapticsStubPlugin* CHWRMHapticsStubPlugin::NewL( + MHWRMHapticsPluginCallback* aCallback ) + { + CHWRMHapticsStubPlugin* self = + new ( ELeave ) CHWRMHapticsStubPlugin( aCallback ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CHWRMHapticsStubPlugin::~CHWRMHapticsStubPlugin() + { + iResponders.ResetAndDestroy(); + + if ( iIdle ) + { + iIdle->Cancel(); + delete iIdle; + } + } + +// --------------------------------------------------------------------------- +// Implementation of ProcessCommandL. Creates an idle responder and appends it +// to the array of idle responders. (Later then, when the responder gets +// runtime, it will initiate the response generation). +// --------------------------------------------------------------------------- +// +void CHWRMHapticsStubPlugin::ProcessCommandL( TInt aCommandId, + TUint8 aTransId, + TDesC8& aData ) + { + if ( aCommandId != HWRMHapticsCommand::EHapticsCmdId || + aData.Size() < 2 ) // minimum length check + { + User::Leave( KErrBadDescriptor ); + } + + TUint8* dataPtr = const_cast( aData.Ptr() ); + + if ( !dataPtr ) + { + User::Leave( KErrBadDescriptor ); + } + + CHWRMHapticsStubPluginIdleResponder* responder = + CHWRMHapticsStubPluginIdleResponder::NewL( this, aTransId, dataPtr ); + CleanupStack::PushL( responder ); + iResponders.AppendL( responder ); + CleanupStack::Pop ( responder ); + } + +// --------------------------------------------------------------------------- +// Implementation of CancelCommandL. Just removes the corresponding idle +// responder. +// --------------------------------------------------------------------------- +// +void CHWRMHapticsStubPlugin::CancelCommandL( TUint8 aTransId, + TInt /* aCommandId */ ) + { + RemoveResponder( aTransId ); + } + + +// --------------------------------------------------------------------------- +// Method that does the actual response generation towards the issuer of +// command i.e., the HapticsPluginManager +// --------------------------------------------------------------------------- +// +void CHWRMHapticsStubPlugin::GenerateResponseL( TUint8 aTransId, + TUint8* aData ) + { + // Hardcoded responses generated based on the command code (first 2 bytes + // of the aData data packet, but since at the moment the 2nd byte is + // always 0x00, we just use the 1st one) + TUint8 command = aData[0]; + + TBuf8 binRespData; + binRespData.SetLength( KHWRMHapticsRespMaxSize ); + + TInt i( 0 ); + // For each command the response data's first two bytes are copy of + // the received command code (first 2 bytes of aData). + + binRespData[i++] = aData[0]; // command code bits 0..7 + binRespData[i++] = aData[1]; // command code bits 8..15 + + switch ( command ) + { + case 0x00: // API version query + { + // Response to API version query contains: + // 1 byte major version number + // 1 byte minor version number + // 2 bytes for build version + binRespData[i++] = 0x02; // major version + binRespData[i++] = 0x00; // minor version + binRespData[i++] = 0x53; // build version bits 0..7 + binRespData[i++] = 0x04; // build version bits 8..15 + break; + } + + case 0x01: // Initialize + case 0x02: // Terminate + case 0x06: // Modify basis effect + case 0x07: // Stop effect + case 0x08: // Stop all effects + case 0x0B: // Reset debug buffer + case 0x0C: // Stop designed bridge + case 0x13: // Close device + case 0x14: // Start designed bridge + case 0x16: // Play streaming sample + case 0x18: // Destroy streaming effect + case 0x19: // Pause playing effect + case 0x1A: // Resume playing effect + case 0x1E: // Modify magsweep effect + case 0x1F: // Modify periodic effect + { + // For these commands the response only contains status byte + // (set to 0x00 ("Success") in this stub). + binRespData[i++] = 0x00; // status + break; + } + + case 0x03: // Play basis effect + case 0x04: // Play IVT effect (with IVT data) + case 0x05: // Play IVT effect (without IVT data) + case 0x17: // Create streaming effect + case 0x1C: // Play magsweep effect + case 0x1D: // Play periodic effect + { + // The response consists of status byte (0x00) and 4-byte long + // effectHandle (here hardcoded as 0x01000000) + binRespData[i++] = 0x00; // status + binRespData[i++] = 0x01; // effectHandle bits 0..7 + binRespData[i++] = 0x00; // effectHandle bits 8..15 + binRespData[i++] = 0x00; // effectHandle bits 16..23 + binRespData[i++] = 0x00; // effectHandle bits 24..31 + break; + } + + case 0x09: // Get device capabilities + { + // The response consists of status byte (0x00), 4-byte long + // capability type (copied from the received command (bytes + // 7..10)), 1-byte capability value type (copied from the + // received command (byte 2), 1-byte size byte and "size" bytes + // long value + binRespData[i++] = 0x00; // status + binRespData[i++] = aData[7]; // capability type bits 0..7 + binRespData[i++] = aData[8]; // capability type bits 8..15 + binRespData[i++] = aData[9]; // capability type bits 16..23 + binRespData[i++] = aData[10]; // capability type bits 24..31 + binRespData[i++] = aData[2]; // capability value type + // The size and value depend on what exactly is being queried + // Note: Currently only the lowest (0..7) bytes of capability + // type have meaning, thus the switch case below is + // simplified.. + // Note: Since all values, except device name, are actually 32-bit + // integers, their size is always 4. + TUint8 capabilityType = aData[7]; + switch ( capabilityType ) + { + case 0: // device category + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0x02; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // value - virtual device + break; + } + case 1: // max nested repeats + case 2: // num of actuators + case 4: // num of effect slots + case 6: // min period + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0x01; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // value - 0x1 + break; + } + case 3: // actuator type + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // value - ERM actuator + break; + } + case 5: // supported styles + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0x07; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // value - all styles + break; + } + case 7: // max period + case 8: // max effect duration + case 11: // max envelope time + case 13: // max IVT file size (tethered) + case 14: // max IVT file size + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0xFF; + binRespData[i++] = 0xFF; + binRespData[i++] = 0x00; // + binRespData[i++] = 0x00; // value => 0xFFFF. + break; + } + case 9: // supported effects + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0x07; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // value - mag|per|timeline + break; + } + case 10: // device name + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0x52; // value - byte 1, ascii "S" + binRespData[i++] = 0x53; // value - byte 2, ascii "T" + binRespData[i++] = 0x54; // value - byte 3, ascii "U" + binRespData[i++] = 0x42; // value - byte 4, ascoo "B" + break; + } + case 12: // API version number + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0x02; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // value - API version + // Note: same as major version in + // specific API version query + // 0x2 + break; + } + default: + { + // Here status byte changed to -6 (0xFA) + // ("incompatible capability type") + binRespData[2] = 0xFA; // status (re-assigned) + binRespData[i++] = 0x00; // value size set to zero + break; + } + } // inner switch ends + break; + } + + case 0x0A: // Get debug buffer + { + // The response consists of status byte (0x00) and 2 bytes + // indicating the buffer size followed by the buffer itself. + // Here buffer size zero is used => thus this only consists of + // 3 bytes + // FFS: This may have to be changed if the zero-length is not ok. + binRespData[i++] = 0x00; // status + binRespData[i++] = 0x00; // buffer size bits 0..7 + binRespData[i++] = 0x00; // buffer size bits 8..15 + break; + } + + case 0x0D: // Get device state + { + // The response consists of status byte (0x00) and 4 bytes that + // indicate the device state (the bytes used here mean + // "device attached to the system") + binRespData[i++] = 0x00; // status + binRespData[i++] = 0x01; // device state bits 0..7 + binRespData[i++] = 0x00; // device state bits 8..15 + binRespData[i++] = 0x00; // device state bits 16..23 + binRespData[i++] = 0x00; // device state bits 24..31 + break; + } + + case 0x0E: // Set kernel param + { + // The response consists of status byte (0x00) and 2 bytes that + // are the kernel param Id's copied from the received command + // (bytes 6 and 7) + binRespData[i++] = 0x00; // status + binRespData[i++] = aData[6]; // kernel param Id bits 0..7 + binRespData[i++] = aData[7]; // kernel param Id bits 8..15 + break; + } + + case 0x0F: // Get kernel param + { + // The response consists of status byte (0x00), 2 bytes that are + // the kernel param Id's copied from the received command + // (bytes 6&7) and two bytes for (here dummy 0x00) values + binRespData[i++] = 0x00; // status + binRespData[i++] = aData[6]; // kernel param Id bits 0..7 + binRespData[i++] = aData[7]; // kernel param Id bits 8..15 + binRespData[i++] = 0x00; // kernel param value bits 0..7 + binRespData[i++] = 0x00; // kernel param value bits 8..15 + break; + } + + case 0x10: // Set device property + { + // The response consists of status byte (0x00), 4 bytes indicating + // the property type (copied from the received command's bytes + // 6..9) and 1 byte indicating the property value type (copied + // from the received command's byte 10). + binRespData[i++] = 0x00; // status + binRespData[i++] = aData[6]; // property type bits 0..7 + binRespData[i++] = aData[7]; // property type bits 8..15 + binRespData[i++] = aData[8]; // property type bits 16..23 + binRespData[i++] = aData[9]; // property type bits 24..31 + binRespData[i++] = aData[10]; // property value type + break; + } + + case 0x11: // Get device property + { + // The response consists of 1-byte status (0x00), 4-byte long + // property type (copied from the received command bytes 7..10), + // 1-byte property value type (copied from the received command + // byte 2), 1-byte size byte and "size" bytes long value part + binRespData[i++] = 0x00; // status + binRespData[i++] = aData[7]; // property type bits 0..7 + binRespData[i++] = aData[8]; // property type bits 8..15 + binRespData[i++] = aData[9]; // property type bits 16..23 + binRespData[i++] = aData[10]; // property type bits 24..31 + binRespData[i++] = aData[2]; // property value type + // The size and value depend on what exactly is being queried + // Note: Currently only the lowest (0..7) bytes of capability type + // have meaning, thus the switch case below is simplified + TUint8 propertyType = aData[7]; + switch ( propertyType ) + { + case 0: + // license key.. not feasible as GET device property type + { + // re-assign the status + binRespData[2] = 0xF9; // status - incompatible property + // type + binRespData[i++] = 0x00; // value size == 0 (=> no value) + break; + } + case 1: // priority + { + binRespData[i++] = 0x04; // size (32-bit integer takes 4 + // bytes) + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // value - 0x0 is lowest priority + break; + } + case 2: // disable effects + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // value - 0x0 means not disabled + break; + } + case 3: // strength + case 4: // master strength + { + binRespData[i++] = 0x04; // size + binRespData[i++] = 0xFF; + binRespData[i++] = 0xFF; + binRespData[i++] = 0x00; + binRespData[i++] = 0x00; // => value 0xFFFF + break; + } + default: + { + // Pehaps it's best to change the status byte to -7 (0xF9) + // ("incompatible property type") + binRespData[2] = 0xF9; // status (re-assigned) + binRespData[i++] = 0x00; // value size, set to zero + break; + } + } // inner switch ends + break; + } + + case 0x12: // Open device + { + // The response consists of status byte (0x00) and 4-byte long + // deviceHandle (here hardcoded as 0x01000000) + binRespData[i++] = 0x00; // status + binRespData[i++] = 0x01; // deviceHandle bits 0..7 + binRespData[i++] = 0x00; // deviceHandle bits 8..15 + binRespData[i++] = 0x00; // deviceHandle bits 16..23 + binRespData[i++] = 0x00; // deviceHandle bits 24..31 + break; + } + + case 0x15: // Device count + { + // The response only contains the device count (here value == 1) + binRespData[i++] = 0x01; + break; + } + + case 0x1B: // Get effect state + { + // The response consists of status byte (0x00) and one byte effect + // state (0x00 used here meaning "Not playing") + binRespData[i++] = 0x00; // status + binRespData[i++] = 0x00; // effect state + break; + } + + case 0x20: // Load IVT data + { + // The response consists of status byte (0x00) and 4-byte long + // fileHandle (here hardcoded as 0x01000000) + binRespData[i++] = 0x00; // status + binRespData[i++] = 0x01; // fileHandle bits 0..7 + binRespData[i++] = 0x00; // fileHandle bits 8..15 + binRespData[i++] = 0x00; // fileHandle bits 16..23 + binRespData[i++] = 0x00; // fileHandle bits 24..31 + break; + } + + case 0x30: // Get license key + { + binRespData[i++] = 0x00; // status + binRespData[i++] = 0x20; // size + for( TInt n=0; n<0x20; ) + { + binRespData[i++] = 0x53; // S + n++; + binRespData[i++] = 0x54; // T + n++; + binRespData[i++] = 0x55; // U + n++; + binRespData[i++] = 0x42; // B + n++; + } + break; + } + + case 0xFF: // Protocol version query + { + // Response to Protocol version query contains: + // 1 byte minor version number + // 1 byte major version number + binRespData[i++] = 0x00; // minor version + binRespData[i++] = 0x03; // major version + break; + } + + default: + { + // Unknown command.. + break; + } + } // switch ends + + // set the lenght of the raw response data + binRespData.SetLength( i ); + + // create Haptics response data. This is done by externalizing + // (with RDesWriteStream whose sink is the Haptics response data) + TInt32 respDataErr( KErrNone ); + CHWRMHapticsRespData* respData = + CHWRMHapticsRespData::NewLC( respDataErr, binRespData ); + HWRMHapticsCommand::RHWRMHapticsRespData resp; + resp.CreateL( KHWRMHapticsRespMaxSize ); + CleanupClosePushL( resp ); + RDesWriteStream streamWriter( resp ); + CleanupClosePushL( streamWriter ); + streamWriter << *respData; + // This commits to stream's sink (i.e., to 'resp') + CleanupStack::PopAndDestroy( &streamWriter ); + + // Call the ProcessResponseL of the HapticsPluginManager + // object that created this stub plugin instance. + iResponseCallback->ProcessResponseL + ( HWRMHapticsCommand::EHapticsCmdId, aTransId, resp ); + + CleanupStack::PopAndDestroy( &resp ); + CleanupStack::PopAndDestroy( respData ); + // Order garbage collection of "spent" responder(s), if not already + // waiting for scheduling + if ( !iIdle->IsActive() ) + { + iIdle->Start( TCallBack ( CollectGarbageIdle, this ) ); + } + } + +// --------------------------------------------------------------------------- +// Static method called as CIdle TCallBack in order to remove obsolete +// responder from the array of responder pointers +// --------------------------------------------------------------------------- +// +TInt CHWRMHapticsStubPlugin::CollectGarbageIdle( TAny* aObjectPtr ) + { + CHWRMHapticsStubPlugin* self = + reinterpret_cast( aObjectPtr ); + if ( self ) + { + self->CollectGarbage(); + } + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Removes all responders that have finished their work from iResponders array +// --------------------------------------------------------------------------- +// +void CHWRMHapticsStubPlugin::CollectGarbage() + { + for( TInt i( 0 ); i < iResponders.Count(); ) + { + if ( iResponders[i]->Active() ) + { + ++i; // skip this, it's still active.. + } + else + { + delete iResponders[i]; + iResponders.Remove( i ); + // note: array index i is not incremented as in the next round + // it already is the position of next item.. + // obviously the iResponders.Count() will be then one less + // than in this round. + } + } + } + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +CHWRMHapticsStubPlugin::CHWRMHapticsStubPlugin( + MHWRMHapticsPluginCallback* aCallback ) + { + // set callback to baseclass' member variable + iResponseCallback = aCallback; + } + +// --------------------------------------------------------------------------- +// Two-phase construction ConstructL +// --------------------------------------------------------------------------- +// +void CHWRMHapticsStubPlugin::ConstructL() + { + iIdle = CIdle::NewL( CActive::EPriorityIdle ); + + // inform haptics of the plugin state + iResponseCallback->PluginEnabled( EHWRMLogicalActuatorAny, ETrue ); + iResponseCallback->PluginEnabled( EHWRMLogicalActuatorDevice, ETrue ); + } + +// --------------------------------------------------------------------------- +// Removes a specific responder (based on transId) from iResponders array +// --------------------------------------------------------------------------- +// +void CHWRMHapticsStubPlugin::RemoveResponder( TUint8 aTransId ) + { + TInt count( iResponders.Count() ); + + for( TInt i( 0 ); i < count; ++i ) + { + if ( iResponders[i]->TransId() == aTransId ) + { + delete iResponders[i]; + iResponders.Remove( i ); + break; + } + } + } + +// end of file + diff -r 08c4f946d508 -r cee235f8aa57 systemswstubs/hwrmhapticsstubplugin/src/hwrmhapticsstubpluginidleresponder.cpp --- a/systemswstubs/hwrmhapticsstubplugin/src/hwrmhapticsstubpluginidleresponder.cpp Fri Feb 26 17:34:53 2010 +0000 +++ b/systemswstubs/hwrmhapticsstubplugin/src/hwrmhapticsstubpluginidleresponder.cpp Sun Mar 14 12:35:37 2010 +0000 @@ -1,132 +1,132 @@ -/* -* Copyright (c) 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: Haptics test (adaptation) plugin idle responder -* implementation. -* -*/ - - -#include "hwrmhapticsstubplugin.h" -#include "hwrmhapticsstubpluginidleresponder.h" - -// --------------------------------------------------------------------------- -// Static instantiation method. -// --------------------------------------------------------------------------- -// -CHWRMHapticsStubPluginIdleResponder* - CHWRMHapticsStubPluginIdleResponder::NewL( - CHWRMHapticsStubPlugin* aPlugin, - TUint8 aTransId, - TUint8* aDataPacket) - { - CHWRMHapticsStubPluginIdleResponder* self = - new ( ELeave ) CHWRMHapticsStubPluginIdleResponder( aPlugin, - aTransId, - aDataPacket ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CHWRMHapticsStubPluginIdleResponder::~CHWRMHapticsStubPluginIdleResponder() - { - if ( iIdle ) - { - iIdle->Cancel(); - delete iIdle; - } - } - -// --------------------------------------------------------------------------- -// Method for starting response generation from CIdle callback -// This is used as TCallBack object in CIdle AO. -// --------------------------------------------------------------------------- -// -TInt CHWRMHapticsStubPluginIdleResponder::GenerateResponse( TAny* aSelf ) - { - CHWRMHapticsStubPluginIdleResponder* self = - reinterpret_cast( aSelf ); - if ( self ) - { - TRAP_IGNORE( self->GenerateResponseL() ); - } - return KErrNone; - } - -// --------------------------------------------------------------------------- -// Method that does the actual response generation towards the issuer of -// command i.e., the HapticsPluginManager -// --------------------------------------------------------------------------- -// -void CHWRMHapticsStubPluginIdleResponder::GenerateResponseL() - { - if ( iPlugin ) - { - iPlugin->GenerateResponseL( iTransId, iDataPacket ); - } - } - -// --------------------------------------------------------------------------- -// Getter for iTransId -// --------------------------------------------------------------------------- -// -TUint8 CHWRMHapticsStubPluginIdleResponder::TransId() const - { - return iTransId; - } - -// --------------------------------------------------------------------------- -// Method for enquiring whether the contained CIdle AO is active or not -// --------------------------------------------------------------------------- -// -TBool CHWRMHapticsStubPluginIdleResponder::Active() const - { - return ( iIdle && iIdle->IsActive() ); - } - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CHWRMHapticsStubPluginIdleResponder::CHWRMHapticsStubPluginIdleResponder( - CHWRMHapticsStubPlugin* aPlugin, - TUint8 aTransId, - TUint8* aDataPacket ) - : iPlugin( aPlugin ), - iTransId ( aTransId ), - iDataPacket ( aDataPacket ) - { - // empty - } - -// --------------------------------------------------------------------------- -// Two-phase construction ConstructL -// --------------------------------------------------------------------------- -// -void CHWRMHapticsStubPluginIdleResponder::ConstructL() - { - // Create and start the CIdle AO - iIdle = CIdle::NewL( CActive::EPriorityLow ); - iIdle->Start( TCallBack( GenerateResponse, this ) ); - } - -// end of file - +/* +* Copyright (c) 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: Haptics test (adaptation) plugin idle responder +* implementation. +* +*/ + + +#include "hwrmhapticsstubplugin.h" +#include "hwrmhapticsstubpluginidleresponder.h" + +// --------------------------------------------------------------------------- +// Static instantiation method. +// --------------------------------------------------------------------------- +// +CHWRMHapticsStubPluginIdleResponder* + CHWRMHapticsStubPluginIdleResponder::NewL( + CHWRMHapticsStubPlugin* aPlugin, + TUint8 aTransId, + TUint8* aDataPacket) + { + CHWRMHapticsStubPluginIdleResponder* self = + new ( ELeave ) CHWRMHapticsStubPluginIdleResponder( aPlugin, + aTransId, + aDataPacket ); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CHWRMHapticsStubPluginIdleResponder::~CHWRMHapticsStubPluginIdleResponder() + { + if ( iIdle ) + { + iIdle->Cancel(); + delete iIdle; + } + } + +// --------------------------------------------------------------------------- +// Method for starting response generation from CIdle callback +// This is used as TCallBack object in CIdle AO. +// --------------------------------------------------------------------------- +// +TInt CHWRMHapticsStubPluginIdleResponder::GenerateResponse( TAny* aSelf ) + { + CHWRMHapticsStubPluginIdleResponder* self = + reinterpret_cast( aSelf ); + if ( self ) + { + TRAP_IGNORE( self->GenerateResponseL() ); + } + return KErrNone; + } + +// --------------------------------------------------------------------------- +// Method that does the actual response generation towards the issuer of +// command i.e., the HapticsPluginManager +// --------------------------------------------------------------------------- +// +void CHWRMHapticsStubPluginIdleResponder::GenerateResponseL() + { + if ( iPlugin ) + { + iPlugin->GenerateResponseL( iTransId, iDataPacket ); + } + } + +// --------------------------------------------------------------------------- +// Getter for iTransId +// --------------------------------------------------------------------------- +// +TUint8 CHWRMHapticsStubPluginIdleResponder::TransId() const + { + return iTransId; + } + +// --------------------------------------------------------------------------- +// Method for enquiring whether the contained CIdle AO is active or not +// --------------------------------------------------------------------------- +// +TBool CHWRMHapticsStubPluginIdleResponder::Active() const + { + return ( iIdle && iIdle->IsActive() ); + } + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +CHWRMHapticsStubPluginIdleResponder::CHWRMHapticsStubPluginIdleResponder( + CHWRMHapticsStubPlugin* aPlugin, + TUint8 aTransId, + TUint8* aDataPacket ) + : iPlugin( aPlugin ), + iTransId ( aTransId ), + iDataPacket ( aDataPacket ) + { + // empty + } + +// --------------------------------------------------------------------------- +// Two-phase construction ConstructL +// --------------------------------------------------------------------------- +// +void CHWRMHapticsStubPluginIdleResponder::ConstructL() + { + // Create and start the CIdle AO + iIdle = CIdle::NewL( CActive::EPriorityLow ); + iIdle->Start( TCallBack( GenerateResponse, this ) ); + } + +// end of file + diff -r 08c4f946d508 -r cee235f8aa57 systemswstubs/hwrmhapticsstubplugin/src/proxy.cpp --- a/systemswstubs/hwrmhapticsstubplugin/src/proxy.cpp Fri Feb 26 17:34:53 2010 +0000 +++ b/systemswstubs/hwrmhapticsstubplugin/src/proxy.cpp Sun Mar 14 12:35:37 2010 +0000 @@ -1,42 +1,42 @@ -/* -* Copyright (c) 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: Haptics adaptation stub plugin ECom implementation proxy definition file -* -*/ - - -#include -#include - -#include "hwrmhapticsstubplugin.h" - -/** - * Mapping of the interface implementation UIDs to implementation factory - * functions - */ -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY( 0x2001CB6E, CHWRMHapticsStubPlugin::NewL ) - }; - -/** - * Exported proxy for instantiation method resolution. - */ -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) - { - aTableCount = - sizeof( ImplementationTable ) / sizeof( TImplementationProxy ); - return ImplementationTable; - } +/* +* Copyright (c) 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: Haptics adaptation stub plugin ECom implementation proxy definition file +* +*/ + + +#include +#include + +#include "hwrmhapticsstubplugin.h" + +/** + * Mapping of the interface implementation UIDs to implementation factory + * functions + */ +const TImplementationProxy ImplementationTable[] = + { + IMPLEMENTATION_PROXY_ENTRY( 0x2001CB6E, CHWRMHapticsStubPlugin::NewL ) + }; + +/** + * Exported proxy for instantiation method resolution. + */ +EXPORT_C const TImplementationProxy* ImplementationGroupProxy( + TInt& aTableCount ) + { + aTableCount = + sizeof( ImplementationTable ) / sizeof( TImplementationProxy ); + return ImplementationTable; + } diff -r 08c4f946d508 -r cee235f8aa57 wlanhwinit_stub/bwins/wlanhwinitU.DEF --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlanhwinit_stub/bwins/wlanhwinitU.DEF Sun Mar 14 12:35:37 2010 +0000 @@ -0,0 +1,9 @@ +EXPORTS + ??1CWlanHwInit@@UAE@XZ @ 1 NONAME ; CWlanHwInit::~CWlanHwInit(void) + ?GetHwInitData@CWlanHwInit@@UAEXPAPBEAAI01@Z @ 2 NONAME ; void CWlanHwInit::GetHwInitData(unsigned char const * *, unsigned int &, unsigned char const * *, unsigned int &) + ?GetHwTestData@CWlanHwInit@@UAEHIAAVTDes8@@@Z @ 3 NONAME ; int CWlanHwInit::GetHwTestData(unsigned int, class TDes8 &) + ?GetHwTestInitData@CWlanHwInit@@UAEXPAPBEAAI01@Z @ 4 NONAME ; void CWlanHwInit::GetHwTestInitData(unsigned char const * *, unsigned int &, unsigned char const * *, unsigned int &) + ?GetMacAddress@CWlanHwInit@@UAEHAAUTMacAddr@@@Z @ 5 NONAME ; int CWlanHwInit::GetMacAddress(struct TMacAddr &) + ?NewL@CWlanHwInit@@SAPAV1@XZ @ 6 NONAME ; class CWlanHwInit * CWlanHwInit::NewL(void) + ?SetHwTestData@CWlanHwInit@@UAEHIAAVTDesC8@@@Z @ 7 NONAME ; int CWlanHwInit::SetHwTestData(unsigned int, class TDesC8 &) + diff -r 08c4f946d508 -r cee235f8aa57 wlanhwinit_stub/bwinscw/wlanhwinitU.DEF --- a/wlanhwinit_stub/bwinscw/wlanhwinitU.DEF Fri Feb 26 17:34:53 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -EXPORTS - ??1CWlanHwInit@@UAE@XZ @ 1 NONAME ; CWlanHwInit::~CWlanHwInit(void) - ?GetHwInitData@CWlanHwInit@@UAEXPAPBEAAI01@Z @ 2 NONAME ; void CWlanHwInit::GetHwInitData(unsigned char const * *, unsigned int &, unsigned char const * *, unsigned int &) - ?GetHwTestData@CWlanHwInit@@UAEHIAAVTDes8@@@Z @ 3 NONAME ; int CWlanHwInit::GetHwTestData(unsigned int, class TDes8 &) - ?GetHwTestInitData@CWlanHwInit@@UAEXPAPBEAAI01@Z @ 4 NONAME ; void CWlanHwInit::GetHwTestInitData(unsigned char const * *, unsigned int &, unsigned char const * *, unsigned int &) - ?GetMacAddress@CWlanHwInit@@UAEHAAUTMacAddr@@@Z @ 5 NONAME ; int CWlanHwInit::GetMacAddress(struct TMacAddr &) - ?NewL@CWlanHwInit@@SAPAV1@XZ @ 6 NONAME ; class CWlanHwInit * CWlanHwInit::NewL(void) - ?SetHwTestData@CWlanHwInit@@UAEHIAAVTDesC8@@@Z @ 7 NONAME ; int CWlanHwInit::SetHwTestData(unsigned int, class TDesC8 &) - diff -r 08c4f946d508 -r cee235f8aa57 wlanhwinit_stub/group/wlanhwinit.mmp --- a/wlanhwinit_stub/group/wlanhwinit.mmp Fri Feb 26 17:34:53 2010 +0000 +++ b/wlanhwinit_stub/group/wlanhwinit.mmp Sun Mar 14 12:35:37 2010 +0000 @@ -28,15 +28,7 @@ CAPABILITY CAP_GENERAL_DLL VENDORID VID_DEFAULT -#if defined( ARMCC ) -DEFFILE ../eabi/ -#elif defined( WINSCW ) -DEFFILE ../bwinscw/ -#elif defined( WINS ) -DEFFILE ../bwins/ -#else -DEFFILE ../bmarm/ -#endif +DEFFILE wlanhwinit.def SOURCEPATH ../src SOURCE wlanhwinit.cpp