# HG changeset patch # User hgs # Date 1272825011 -10800 # Node ID 7e2761e776bd66e0664291ed5b3c30e53ff829e0 # Parent 6c10323ce807e67d28c9c2d679422f2a0f216787 201017 diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btbearer/inc/btpluginnotifier.h --- a/bluetoothengine/bteng/btbearer/inc/btpluginnotifier.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btbearer/inc/btpluginnotifier.h Sun May 02 21:30:11 2010 +0300 @@ -89,6 +89,11 @@ * @since S60 v3.2 */ void SubscribeL(); + + /** + * Handles service load/unload when BT power changes. + */ + void HandleBtPowerChanged( TBTPowerStateValue aPower ); // from base class CActive diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btbearer/src/btpluginnotifier.cpp --- a/bluetoothengine/bteng/btbearer/src/btpluginnotifier.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btbearer/src/btpluginnotifier.cpp Sun May 02 21:30:11 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -23,6 +23,7 @@ #include "btpluginnotifier.h" #include "debug.h" #include +#include // ======== MEMBER FUNCTIONS ======== @@ -68,9 +69,9 @@ TRACE_INFO( ( _L( "Turning BT on" ) ) ) TInt err = settings->SetPowerState( EBTPowerOn ); TRACE_INFO( ( _L( "SetPowerState returned %d" ), err ) ) - if( !err ) + if ( !err ) { - iHandler.NotifyBearerStatus( ELocodBearerBT, power ); + HandleBtPowerChanged( EBTPowerOn ); } } else @@ -129,6 +130,30 @@ SetActive(); } +// --------------------------------------------------------------------------- +// Handles power state change. Inform Locod. In addition, if BT is on, start +// btnotifier server. +// --------------------------------------------------------------------------- +// +void CBTPluginNotifier::HandleBtPowerChanged( TBTPowerStateValue aPower ) + { + TRACE_FUNC_ARG( ( _L( " to %d" ), aPower ) ) + TInt err (KErrNone ); + if ( aPower == EBTPowerOn ) + { + // Start BT notifier server by creating a session with it: + RBTNotifier btnotif; + err = btnotif.Connect(); + TRACE_INFO( ( _L( "start bt notifier server %d" ), err ) ) + // btnotif server manages its lifecycle. no need + // to keep this session: + btnotif.Close(); + } + if ( !err ) + { + iHandler.NotifyBearerStatus( ELocodBearerBT, aPower ); + } + } // --------------------------------------------------------------------------- // From class CActive. @@ -162,9 +187,12 @@ case EKeyInt: { TRACE_INFO( ( _L( "[CBTPluginNotifier::RunL2 %d]" ), status ) ) - TInt newValue = 1; - iSession->Get( iId, newValue ); - iHandler.NotifyBearerStatus( ELocodBearerBT, newValue ); + TInt newValue = EBTPowerOff; + TInt err = iSession->Get( iId, newValue ); + if ( !err ) + { + HandleBtPowerChanged( static_cast( newValue ) ); + } } break; default: diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btengconnman/inc/btengconnhandler.h --- a/bluetoothengine/bteng/btengconnman/inc/btengconnhandler.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btengconnman/inc/btengconnhandler.h Sun May 02 21:30:11 2010 +0300 @@ -146,18 +146,7 @@ * @since S60 v3.2 * @return ?description */ - TInt CancelNotifyConnectionEvents(); - - /** - * Set a pairing observer in BTEngine. - * - * @since S60 v3.2 - * @param aAddr The address of the remote device that is being paired. - * @param aActivate If ETrue, the observer will be activated, otherwise - * the observer will be removed. - * @return KErrNone on success, otherwise a system-wide error code. - */ - static TInt SetPairingObserver( const TBTDevAddr& aAddr, TBool aActivate ); + void CancelNotifyConnectionEvents(); /** * ?description @@ -166,22 +155,6 @@ * @return ?description */ inline TInt PrepareDiscovery(); - - - /** - * Pair a device - * - * @since S60 v5.1 - * @param aAddr the address of the device to pair with - * @param aDeviceClass the device class of the device to pair with - * @return KErrNone if this request has been accepted; an error situation otherwise. - */ - TInt StartPairing( const TBTDevAddr& aAddr, const TBTDeviceClass& aDeviceClass ); - - /** - * cancel the outstanding pairing request. - */ - void CancelPairing(); private: // from base class MBTEngActiveObserver @@ -192,15 +165,22 @@ * * @since S60 v3.2 */ - virtual void RequestCompletedL( CBTEngActive* aActive, TInt aId, TInt aStatus ); + virtual void RequestCompletedL( CBTEngActive* aActive, TInt aStatus ); /** + * Callback for handling cancelation of an outstanding request. + * + * @param aId The ID that identifies the outstanding request. + */ + virtual void CancelRequest( TInt aRequestId ); + + /** * From MBTEngActiveObserver. * Handles an error during processing of connection status event. * * @since S60 v3.2 */ - virtual void HandleError( CBTEngActive* aActive, TInt aId, TInt aError ); + virtual void HandleError( CBTEngActive* aActive, TInt aError ); private: @@ -222,16 +202,6 @@ * Client-server package to which the event result is copied. */ TBTEngEventPkg iEventPkg; - - /** - * Address of the remote device to pair with. - */ - TBTDevAddrPckgBuf iPairAddr; - - /** - * The CoD of the remote device to pair with. - */ - TUint32 iPairDevCod; /** * Session with BTEng server side. @@ -243,12 +213,6 @@ * Own. */ CBTEngActive* iConnEventActive; - - /** - * The actual active object for pairing a device. - * Own. - */ - CBTEngActive* iPairActive; /** * Reference to receiver of connection events. diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btengconnman/src/btengconnhandler.cpp --- a/bluetoothengine/bteng/btengconnman/src/btengconnhandler.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btengconnman/src/btengconnhandler.cpp Sun May 02 21:30:11 2010 +0300 @@ -83,7 +83,6 @@ { TRACE_FUNC_ENTRY CancelNotifyConnectionEvents(); - CancelPairing(); iBTEng.Close(); } @@ -146,128 +145,52 @@ // ?implementation_description // --------------------------------------------------------------------------- // -TInt CBTEngConnHandler::CancelNotifyConnectionEvents() - { - TRACE_FUNC_ENTRY - TInt err = KErrNone; - if( iConnEventActive && iConnEventActive->IsActive() ) - { - err = iBTEng.CancelNotifyConnectionEvents(); - iConnEventActive->CancelRequest(); - } - delete iConnEventActive; - iConnEventActive = NULL; - return err; - } - -// ----------------------------------------------------------------------------- -// Request server side to activate/deactivate a pair observer -// ----------------------------------------------------------------------------- -// -TInt CBTEngConnHandler::SetPairingObserver( const TBTDevAddr& aAddr, - TBool aActivate ) - { - RBTEng bteng; - TInt err = bteng.Connect(); - if ( !err ) - { - err = bteng.SetPairingObserver( aAddr, aActivate ); - } - bteng.Close(); - return err; - } - -// --------------------------------------------------------------------------- -// Request BTEng to pair the device -// --------------------------------------------------------------------------- -// -TInt CBTEngConnHandler::StartPairing( const TBTDevAddr& aAddr, - const TBTDeviceClass& aDeviceClass ) +void CBTEngConnHandler::CancelNotifyConnectionEvents() { TRACE_FUNC_ENTRY - TInt err( KErrNone ); - if( iPairActive && iPairActive->IsActive() ) - { - err = KErrServerBusy; - } - - if( !iPairActive ) - { - // Use a higher prioritty than normal, because we want - // to be notified fast (e.g. to update the UI). - TRAP( err, iPairActive = CBTEngActive::NewL( *this, EPairDeviceId, - CActive::EPriorityUserInput ) ); - } - if ( !err ) - { - iPairAddr() = aAddr; - iPairDevCod = aDeviceClass.DeviceClass(); - iBTEng.PairDevice( iPairAddr, iPairDevCod, iPairActive->RequestStatus() ); - iPairActive->GoActive(); - } - TRACE_FUNC_EXIT - return err; + delete iConnEventActive; + iConnEventActive = NULL; } // --------------------------------------------------------------------------- -// Cancel any outstanding operation, free resources. -// --------------------------------------------------------------------------- -// -void CBTEngConnHandler::CancelPairing() - { - TRACE_FUNC_ENTRY - if( iPairActive && iPairActive->IsActive() ) - { - iBTEng.CancelPairDevice(); - } - delete iPairActive; - iPairActive = NULL; - TRACE_FUNC_EXIT - } - - -// --------------------------------------------------------------------------- // From class MBTEngActiveObserver. // Called by the active object when a change in connection status has occured. // --------------------------------------------------------------------------- // -void CBTEngConnHandler::RequestCompletedL( CBTEngActive* aActive, TInt aId, +void CBTEngConnHandler::RequestCompletedL( CBTEngActive* aActive, TInt aStatus ) { - TRACE_FUNC_ARG( ( _L( "ID: %d status: %d" ), aId, aStatus ) ) - + TRACE_FUNC_ARG( ( _L( "ID: %d status: %d" ), aActive->RequestId(), aStatus ) ) (void) aActive; - switch ( aId ) - { - case EConnectionEventId: - { - HandleConnectionEvent( aStatus ); - break; - } - case EPairDeviceId: - { - if ( iObserver ) - { - iObserver->PairingComplete( iPairAddr(), aStatus ); - } - } - } - + ASSERT( aActive->RequestId() == EConnectionEventId ); + HandleConnectionEvent( aStatus ); TRACE_FUNC_EXIT } +// --------------------------------------------------------------------------- +// From class MBTEngActiveObserver. +// Handles cancelation of an outstanding request +// --------------------------------------------------------------------------- +// +void CBTEngConnHandler::CancelRequest( TInt aRequestId ) + { + TRACE_FUNC_ARG( ( _L( "reqID %d" ), aRequestId ) ) + ASSERT( aRequestId == EConnectionEventId ); + ( void ) aRequestId; + iBTEng.CancelNotifyConnectionEvents(); + TRACE_FUNC_EXIT + } // --------------------------------------------------------------------------- // From class MBTEngActiveObserver. // Called when RequestCompletedL/RunL leaves. // --------------------------------------------------------------------------- // -void CBTEngConnHandler::HandleError( CBTEngActive* aActive, TInt aId, TInt aError ) +void CBTEngConnHandler::HandleError( CBTEngActive* aActive, TInt aError ) { TRACE_FUNC_ARG( ( _L( "error: %d" ), aError ) ) // Should any info be passed to the client?? (void) aActive; - (void) aId; (void) aError; } diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btengconnman/src/btengconnman.cpp --- a/bluetoothengine/bteng/btengconnman/src/btengconnman.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btengconnman/src/btengconnman.cpp Sun May 02 21:30:11 2010 +0300 @@ -23,6 +23,7 @@ #include "btengconnman.h" #include "btengconnhandler.h" +#include "btengpairinghandler.h" #include "debug.h" // ======== MEMBER FUNCTIONS ======== @@ -92,6 +93,7 @@ { TRACE_FUNC_ENTRY delete iConnHandler; + delete iPairingHandler; } @@ -224,10 +226,21 @@ EXPORT_C TInt CBTEngConnMan::PairDevice( const TBTDevAddr& aAddr, TBTDeviceClass aDeviceClass ) { TRACE_FUNC_ENTRY - return iConnHandler->StartPairing( aAddr, aDeviceClass ); + TInt err = KErrNone; + if( !iPairingHandler ) + { + TRAP( err, iPairingHandler = CBTEngPairingHandler::NewL( iObserver, this ) ); + } + if( !err ) + { + iPairingHandler->CancelPairing(); + + TRAP( err, iPairingHandler->StartPairingL( aAddr, aDeviceClass ) ); + } + TRACE_FUNC_RES( ( _L( "result: %d" ), err ) ) + return err; } - // --------------------------------------------------------------------------- // Cancels an ongoing pairing. // --------------------------------------------------------------------------- @@ -235,21 +248,25 @@ EXPORT_C void CBTEngConnMan::CancelPairDevice() { TRACE_FUNC_ENTRY - if( iConnHandler ) + if( iPairingHandler ) { - iConnHandler->CancelPairing(); + iPairingHandler->CancelPairing(); + delete iPairingHandler; + iPairingHandler = NULL; } } // --------------------------------------------------------------------------- // Tell BTEng to start observing the status of an ongoing pairing. +// Deprecated since Symbian^4. // --------------------------------------------------------------------------- // EXPORT_C TInt CBTEngConnMan::StartPairingObserver( const TBTDevAddr& aAddr ) { TRACE_FUNC_ENTRY - return CBTEngConnHandler::SetPairingObserver( aAddr, ETrue ); + (void) aAddr; + return KErrNone; } @@ -264,13 +281,14 @@ } // --------------------------------------------------------------------------- -// ?implementation_description +// Deprecated since Symbian^4. // --------------------------------------------------------------------------- // EXPORT_C TInt CBTEngConnMan::StopPairingObserver( const TBTDevAddr& aAddr ) { TRACE_FUNC_ENTRY - return CBTEngConnHandler::SetPairingObserver( aAddr, EFalse ); + (void) aAddr; + return KErrNone; } // --------------------------------------------------------------------------- diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btengdiscovery/inc/btengdevicesearch.h --- a/bluetoothengine/bteng/btengdiscovery/inc/btengdevicesearch.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btengdiscovery/inc/btengdevicesearch.h Sun May 02 21:30:11 2010 +0300 @@ -89,16 +89,23 @@ * @since S60 v3.2 * @param ?arg1 ?description */ - virtual void RequestCompletedL( CBTEngActive* aActive, TInt aId, + virtual void RequestCompletedL( CBTEngActive* aActive, TInt aStatus ); - + + /** + * Callback for handling cancelation of an outstanding request. + * + * @param aId The ID that identifies the outstanding request. + */ + virtual void CancelRequest( TInt aRequestId ); + /** * Callback to notify that an error has occurred in RunL. * * @since S60 v3.2 * @param ?arg1 ?description */ - virtual void HandleError( CBTEngActive* aActive, TInt aId, TInt aError ); + virtual void HandleError( CBTEngActive* aActive, TInt aError ); private: diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btengdiscovery/src/btengdevicesearch.cpp --- a/bluetoothengine/bteng/btengdiscovery/src/btengdevicesearch.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btengdiscovery/src/btengdevicesearch.cpp Sun May 02 21:30:11 2010 +0300 @@ -72,11 +72,6 @@ // CBTEngDeviceSearch::~CBTEngDeviceSearch() { - if( iNotifier.Handle()&& iActive->IsActive()) - { - iNotifier.CancelNotifier( KDeviceSelectionNotifierUid ); - iActive->CancelRequest(); - } delete iActive; iNotifier.Close(); iHostResolver.Close(); @@ -132,20 +127,17 @@ TRACE_FUNC_ENTRY if( iActive->IsActive() && iClientReq == EDeviceSearch) { + iActive->Cancel(); if (iActive->RequestId() == KDevSearchAoReqId) { - iNotifier.CancelNotifier( KDeviceSelectionNotifierUid ); - iActive->CancelRequest(); iNotifier.Close(); NotifyClient(KErrAbort); } else if (iActive->RequestId() == KDevEirServiceListAoReqId) { - iHostResolver.Cancel(); iHostResolver.Close(); } } - TRACE_FUNC_EXIT } @@ -182,7 +174,7 @@ TRACE_FUNC_ENTRY if( iActive->IsActive() && iClientReq == EGetDeviceEir) { - iHostResolver.Cancel(); + iActive->Cancel(); iHostResolver.Close(); } TRACE_FUNC_EXIT @@ -193,16 +185,16 @@ // Callback to notify that an outstanding request has completed. // --------------------------------------------------------------------------- // -void CBTEngDeviceSearch::RequestCompletedL( CBTEngActive* aActive, TInt aId, +void CBTEngDeviceSearch::RequestCompletedL( CBTEngActive* aActive, TInt aStatus ) { TRACE_FUNC_ARG( ( _L( "status: %d") , aStatus ) ) (void) aActive; - if ( aId == KDevSearchAoReqId ) + if ( aActive->RequestId() == KDevSearchAoReqId ) { HandleDeviceSelectionResultL(aStatus); } - else if (aId == KDevEirServiceListAoReqId) + else if ( aActive->RequestId() == KDevEirServiceListAoReqId ) { HandleDeviceEirDataResult( aStatus ); } @@ -211,15 +203,33 @@ // --------------------------------------------------------------------------- // From class MBTEngActiveObserver. +// Handles cancelation of an outstanding request +// --------------------------------------------------------------------------- +// +void CBTEngDeviceSearch::CancelRequest( TInt aRequestId ) + { + TRACE_FUNC_ARG( ( _L( "reqID %d" ), aRequestId ) ) + if ( aRequestId == KDevSearchAoReqId ) + { + iNotifier.CancelNotifier( KDeviceSelectionNotifierUid ); + } + else if ( aRequestId == KDevEirServiceListAoReqId ) + { + iHostResolver.Cancel(); + } + TRACE_FUNC_EXIT + } + +// --------------------------------------------------------------------------- +// From class MBTEngActiveObserver. // Callback to notify that an error has occurred in RunL. // --------------------------------------------------------------------------- // -void CBTEngDeviceSearch::HandleError( CBTEngActive* aActive, TInt aId, +void CBTEngDeviceSearch::HandleError( CBTEngActive* aActive, TInt aError ) { TRACE_FUNC_ARG( ( _L( "error: %d") , aError ) ) (void) aActive; - (void) aId; iNotifier.Close(); iHostResolver.Close(); NotifyClient(aError); diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btengsettings/inc/btengsettingsnotify.h --- a/bluetoothengine/bteng/btengsettings/inc/btengsettingsnotify.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btengsettings/inc/btengsettingsnotify.h Sun May 02 21:30:11 2010 +0300 @@ -78,17 +78,24 @@ * @since S60 v3.2 * @param ?arg1 ?description */ - virtual void RequestCompletedL( CBTEngActive* aActive, TInt aId, + virtual void RequestCompletedL( CBTEngActive* aActive, TInt aStatus ); /** + * Callback for handling cancelation of an outstanding request. + * + * @param aId The ID that identifies the outstanding request. + */ + virtual void CancelRequest( TInt aRequestId ); + + /** * From MBTEngActiveObserver. * Handle an error in the setting change handling. * * @since S60 v3.2 * @param ?arg1 ?description */ - virtual void HandleError( CBTEngActive* aActive, TInt aId, TInt aError ); + virtual void HandleError( CBTEngActive* aActive, TInt aError ); private: diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/btengsettings/src/btengsettingsnotify.cpp --- a/bluetoothengine/bteng/btengsettings/src/btengsettingsnotify.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/btengsettings/src/btengsettingsnotify.cpp Sun May 02 21:30:11 2010 +0300 @@ -90,22 +90,11 @@ // CBTEngSettingsNotify::~CBTEngSettingsNotify() { - if ( iPowerKeyCenRep ) - { - iPowerKeyCenRep->NotifyCancel( KBTPowerState ); - } - delete iPowerKeyWatcher; // Will call Cancel() + delete iPowerKeyWatcher; delete iPowerKeyCenRep; - if ( iVisiKeyCenRep ) - { - iVisiKeyCenRep->NotifyCancel( KBTDiscoverable ); - } - delete iVisiKeyWatcher; // Will call Cancel() + delete iVisiKeyWatcher; delete iVisiKeyCenRep; - if( iBTeng.Handle() ) - { - iBTeng.Close(); - } + iBTeng.Close(); } @@ -138,12 +127,12 @@ // Handles notification of a setting change, and informs our observer. // --------------------------------------------------------------------------- // -void CBTEngSettingsNotify::RequestCompletedL( CBTEngActive* aActive, TInt aId, +void CBTEngSettingsNotify::RequestCompletedL( CBTEngActive* aActive, TInt aStatus ) { - TRACE_FUNC_ARG( ( _L( "Id(%d), status(%d)" ), aId, aStatus ) ) + TRACE_FUNC_ARG( ( _L( "Id(%d), status(%d)" ), aActive->RequestId(), aStatus ) ) - if( aId == KPowerKeyReqId && aStatus == KBTPowerState ) + if( aActive->RequestId() == KPowerKeyReqId && aStatus == KBTPowerState ) { iPowerKeyCenRep->NotifyRequest( KBTPowerState, iPowerKeyWatcher->RequestStatus() ); @@ -155,7 +144,7 @@ iObserver->PowerStateChanged( (TBTPowerStateValue) value ); } } - else if( aId == KVisibilityKeyReqId && aStatus == KBTDiscoverable ) + else if( aActive->RequestId() == KVisibilityKeyReqId && aStatus == KBTDiscoverable ) { iVisiKeyCenRep->NotifyRequest( KBTDiscoverable, iVisiKeyWatcher->RequestStatus() ); @@ -172,23 +161,42 @@ // Coudl be a repository-wide reset (KInvalidNotificationId), // or an invalid key ID. Anyway we know the ID of the active // object, so we can just reset the watcher. - HandleError( aActive, aId, aStatus ); + HandleError( aActive, aStatus ); } TRACE_FUNC_EXIT } +// --------------------------------------------------------------------------- +// From class MBTEngActiveObserver. +// Handles cancelation of an outstanding request +// --------------------------------------------------------------------------- +// +void CBTEngSettingsNotify::CancelRequest( TInt aRequestId ) + { + TRACE_FUNC_ARG( ( _L( "reqID %d" ), aRequestId ) ) + + if( aRequestId == KPowerKeyReqId ) + { + iPowerKeyCenRep->NotifyCancel( KBTPowerState ); + } + else if( aRequestId == KVisibilityKeyReqId ) + { + iVisiKeyCenRep->NotifyCancel( KBTDiscoverable ); + } + TRACE_FUNC_EXIT + } // --------------------------------------------------------------------------- // From class MBTEngCenRepNotify. // Handles error situation by just re-ordering notification from CenRep. // --------------------------------------------------------------------------- // -void CBTEngSettingsNotify::HandleError( CBTEngActive* aActive, TInt aId, +void CBTEngSettingsNotify::HandleError( CBTEngActive* aActive, TInt aError ) { - TRACE_FUNC_ARG( ( _L( "Id(%d), status(%d)" ), aId, aError ) ) + TRACE_FUNC_ARG( ( _L( "Id(%d), status(%d)" ), aActive->RequestId(), aError ) ) (void) aError; - if( aId == KPowerKeyReqId ) + if( aActive->RequestId() == KPowerKeyReqId ) { delete iPowerKeyCenRep; iPowerKeyCenRep = NULL; @@ -201,7 +209,7 @@ aActive->GoActive(); } } - else if( aId == KVisibilityKeyReqId ) + else if( aActive->RequestId() == KVisibilityKeyReqId ) { delete iVisiKeyCenRep; iVisiKeyCenRep = NULL; diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/bttoggle/src/bttoggle.cpp --- a/bluetoothengine/bteng/bttoggle/src/bttoggle.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/bttoggle/src/bttoggle.cpp Sun May 02 21:30:11 2010 +0300 @@ -360,7 +360,8 @@ // TInt CBTToggle::RunError(TInt aError) { - TRACE_INFO((_L("[BTENG][BTTOGGLE] RunError %d"), aError )) + TRACE_INFO((_L("[BTENG][BTTOGGLE] RunError %d"), aError )) + (void) aError; iActiveNotifier = ENoneQuery; CActiveScheduler::Stop(); return KErrNone; diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/group/bld.inf --- a/bluetoothengine/bteng/group/bld.inf Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/group/bld.inf Sun May 02 21:30:11 2010 +0300 @@ -26,8 +26,8 @@ PRJ_EXPORTS ../inc/btengprivatecrkeys.h |../../inc/btengprivatecrkeys.h ../inc/btengprivatepskeys.h |../../inc/btengprivatepskeys.h -../inc/btotgpairpub.inl |../../inc/btotgpairpub.inl ../inc/btengutil.h |../../inc/btengutil.h + ../rom/bteng.iby CORE_MW_LAYER_IBY_EXPORT_PATH(bteng.iby) ../data/10204DA9.xml z:/private/2000B187/10204DA9.xml diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/group/btbearer.mmp --- a/bluetoothengine/bteng/group/btbearer.mmp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/group/btbearer.mmp Sun May 02 21:30:11 2010 +0300 @@ -37,7 +37,7 @@ TARGET btbearer.rsc END // RESOURCE -USERINCLUDE ../inc +USERINCLUDE ../inc ../../inc USERINCLUDE ../btbearer/inc MW_LAYER_SYSTEMINCLUDE @@ -49,4 +49,5 @@ LIBRARY centralrepository.lib LIBRARY btengsettings.lib LIBRARY btfeatures.lib +LIBRARY btnotifclient.lib DEBUGLIBRARY flogger.lib // File logging services diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/group/bteng.mmp --- a/bluetoothengine/bteng/group/bteng.mmp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/group/bteng.mmp Sun May 02 21:30:11 2010 +0300 @@ -35,10 +35,6 @@ SOURCE btengsrvbbconnectionmgr.cpp SOURCE btengsdpdbhandler.cpp SOURCE btengsrvkeywatcher.cpp -SOURCE btengpairman.cpp -SOURCE btengpairbase.cpp -SOURCE btengincpair.cpp -SOURCE btengotgpair.cpp SOURCE btengsrvsettingsmgr.cpp START RESOURCE ../data/btengsdp.rss HEADER diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/group/btengconnman.mmp --- a/bluetoothengine/bteng/group/btengconnman.mmp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/group/btengconnman.mmp Sun May 02 21:30:11 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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,17 +29,19 @@ SOURCEPATH ../btengconnman/src SOURCE btengconnman.cpp SOURCE btengconnhandler.cpp +SOURCE btengpairinghandler.cpp SOURCEPATH ../src SOURCE btengclient.cpp USERINCLUDE ../inc USERINCLUDE ../btengconnman/inc +SYSTEMINCLUDE ../../inc MW_LAYER_SYSTEMINCLUDE LIBRARY euser.lib LIBRARY btdevice.lib LIBRARY bluetooth.lib -LIBRARY esock.lib +LIBRARY btnotifclient.lib LIBRARY featmgr.lib LIBRARY centralrepository.lib // Central Repository DEBUGLIBRARY flogger.lib diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/inc/btengactive.h --- a/bluetoothengine/bteng/inc/btengactive.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/inc/btengactive.h Sun May 02 21:30:11 2010 +0300 @@ -40,7 +40,6 @@ */ class MBTEngActiveObserver { - public: /** @@ -48,25 +47,27 @@ * * @since S60 v3.2 * @param aActive Pointer to the active object that completed. - * @param aId The ID that identifies the outstanding request. * @param aStatus The status of the completed request. */ - virtual void RequestCompletedL( CBTEngActive* aActive, TInt aId, - TInt aStatus ) = 0; + virtual void RequestCompletedL( CBTEngActive* aActive, TInt aStatus ) = 0; + + /** + * Callback for handling cancelation of an outstanding request. + * + * @since Symbian^4 + * @param aId The ID that identifies the outstanding request. + */ + virtual void CancelRequest( TInt aRequestId ) = 0; /** * Callback to notify that an error has occurred in RunL. * * @param aActive Pointer to the active object that completed. - * @param aId The ID that identifies the outstanding request. - * @param aStatus The status of the completed request. + * @param aError The error occurred in RunL. */ - virtual void HandleError( CBTEngActive* aActive, TInt aId, - TInt aError ) = 0; - + virtual void HandleError( CBTEngActive* aActive, TInt aError ) = 0; }; - /** * Class CBTEngActive * @@ -122,13 +123,6 @@ inline void GoActive(); /** - * Cancel an outstanding request. - * - * @since S60 v3.2 - */ - inline void CancelRequest(); - - /** * Get a reference to the active object request status. * * @since S60 v3.2 @@ -136,6 +130,7 @@ */ TRequestStatus& RequestStatus(); +private: // from base class CActive /** diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/inc/btengactive.inl --- a/bluetoothengine/bteng/inc/btengactive.inl Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/inc/btengactive.inl Sun May 02 21:30:11 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -73,10 +73,9 @@ // inline void CBTEngActive::DoCancel() { + iObserver.CancelRequest( iRequestId ); } - - // ----------------------------------------------------------------------------- // Get the identifier of this instance. // ----------------------------------------------------------------------------- @@ -106,17 +105,6 @@ SetActive(); } - -// ----------------------------------------------------------------------------- -// Cancel an outstanding request. -// ----------------------------------------------------------------------------- -// -inline void CBTEngActive::CancelRequest() - { - Cancel(); - } - - // ----------------------------------------------------------------------------- // Get a reference to the active object request status. // ----------------------------------------------------------------------------- @@ -126,7 +114,6 @@ return iStatus; } - // --------------------------------------------------------------------------- // From class CActive. // Called by the active scheduler when the request has been completed. @@ -134,7 +121,7 @@ // inline void CBTEngActive::RunL() { - iObserver.RequestCompletedL( this, iRequestId, iStatus.Int() ); + iObserver.RequestCompletedL( this, iStatus.Int() ); } @@ -145,6 +132,6 @@ // inline TInt CBTEngActive::RunError( TInt aError ) { - iObserver.HandleError( this, iRequestId, aError ); + iObserver.HandleError( this, aError ); return KErrNone; } diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/inc/btengclient.h --- a/bluetoothengine/bteng/inc/btengclient.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/inc/btengclient.h Sun May 02 21:30:11 2010 +0300 @@ -158,17 +158,6 @@ * @return ?description */ TInt CancelNotifyConnectionEvents(); - - /** - * Set a pairing observer in BTEngine. - * - * @since S60 v3.2 - * @param aAddr The address of the remote device that is being paired. - * @param aActivate If ETrue, the observer will be activated, otherwise - * the observer will be removed. - * @return KErrNone on success, otherwise a system-wide error code. - */ - TInt SetPairingObserver( const TBTDevAddr& aAddr, TBool aActivate ); /** * ?description @@ -178,21 +167,6 @@ */ TInt PrepareDiscovery(); - /** - * Pair a device. - * @param aAddr The address of the remote device to be paired. - * @param aDeviceClass the CoD of the device to be paired. - * @param aStatus contains the pair result at request completion. - */ - void PairDevice( const TBTDevAddrPckgBuf& aAddr, - const TUint32& aDeviceClass, - TRequestStatus& aStatus ); - - /** - * Cancels an outstanding pair request - */ - void CancelPairDevice(); - }; diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/inc/btengclientserver.h --- a/bluetoothengine/bteng/inc/btengclientserver.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/inc/btengclientserver.h Sun May 02 21:30:11 2010 +0300 @@ -55,9 +55,6 @@ EBTEngNotifyConnectionEvents, // 41 EBTEngCancelEventNotifier, // 42 EBTEngPrepareDiscovery, // 43 - EBTEngSetPairingObserver, // 44 - EBTEngPairDevice, // 45 - EBTEngCancelPairDevice, // 46 }; /** TBTDevAddr class size */ diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/inc/btengserver.h --- a/bluetoothengine/bteng/inc/btengserver.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/inc/btengserver.h Sun May 02 21:30:11 2010 +0300 @@ -32,7 +32,6 @@ class CBTEngSrvBBConnMgr; class CBTEngSrvKeyWatcher; class CBTEngSdpDbHandler; -class CBTEngPairMan; class CPolicyServer; class TEComResolverParams; class CImplementationInformation; @@ -150,14 +149,6 @@ inline CBTEngSrvBBConnMgr* BasebandConnectionManager() const { return iBBConnMgr; } - /** - * Getter for pairing manager. Ownership is not transferred. - * - * @since Symbian^3 - * @return Pointer to instance of baseband connection manager. - */ - inline CBTEngPairMan* PairManager() const - { return iPairMan; } /** * Getter for socket server session. @@ -170,16 +161,6 @@ { return iSocketServ; } /** - * Getter for registry server session. - * This handle can be used for creating subsessions. - * - * @since Symbian^3 - * @return Reference to session with the registry server. - */ - inline RBTRegServ& RegistrServer() - { return iBTRegServ; } - - /** * Set Bluetooth on or off * * @since S60 v3.2 @@ -405,11 +386,6 @@ * Callback for expiry of Simple Pairing debug mode. */ TDeltaTimerEntry iDebugModeCallBack; - - /** - * Pairing manager. - */ - CBTEngPairMan* iPairMan; /** * Socket Server instance for this and other classes to access Bluetooth socket APIs. @@ -417,11 +393,6 @@ RSocketServ iSocketServ; /** - * Registry Server instance for bteng to access Bluetooth registry APIs. - */ - RBTRegServ iBTRegServ; - - /** * Our state machine for handling power on/off. * Own. */ diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/inc/btengsrvbbconnectionmgr.h --- a/bluetoothengine/bteng/inc/btengsrvbbconnectionmgr.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/inc/btengsrvbbconnectionmgr.h Sun May 02 21:30:11 2010 +0300 @@ -149,22 +149,27 @@ * * @since S60 v3.2 * @param aActive Pointer to the active object that completed. - * @param aId The ID that identifies the outstanding request. * @param aStatus The status of the completed request. */ - virtual void RequestCompletedL( CBTEngActive* aActive, TInt aId, + virtual void RequestCompletedL( CBTEngActive* aActive, TInt aStatus ); /** + * Callback for handling cancelation of an outstanding request. + * + * @param aId The ID that identifies the outstanding request. + */ + virtual void CancelRequest( TInt aRequestId ); + + /** * From MBTEngActiveObserver. * Callback to notify that an error has occurred in RunL. * * @since S60 v3.2 * @param aActive Pointer to the active object that completed. - * @param aId The ID that identifies the outstanding request. * @param aStatus The status of the completed request. */ - virtual void HandleError( CBTEngActive* aActive, TInt aId, + virtual void HandleError( CBTEngActive* aActive, TInt aError ); private: diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/inc/btengsrvkeywatcher.h --- a/bluetoothengine/bteng/inc/btengsrvkeywatcher.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/inc/btengsrvkeywatcher.h Sun May 02 21:30:11 2010 +0300 @@ -60,17 +60,24 @@ * @since S60 v3.2 * @param ?arg1 ?description */ - virtual void RequestCompletedL( CBTEngActive* aActive, TInt aId, + virtual void RequestCompletedL( CBTEngActive* aActive, TInt aStatus ); /** + * Callback for handling cancelation of an outstanding request. + * + * @param aId The ID that identifies the outstanding request. + */ + virtual void CancelRequest( TInt aRequestId ); + + /** * From MBTEngActiveObserver. * Notification that a key value has changed. * * @since S60 v3.2 * @param ?arg1 ?description */ - virtual void HandleError( CBTEngActive* aActive, TInt aId, TInt aError ); + virtual void HandleError( CBTEngActive* aActive, TInt aError ); private: @@ -142,11 +149,6 @@ RProperty iSspDebugModeKey; /** - * Property containing the BT registry change monitoring key - */ - RProperty iBtRegistryKey; - - /** * Session with the central repository for BT SAP mode setting. * We load/unload BT SAP plugin. * Own. @@ -208,12 +210,6 @@ CBTEngActive* iSspDebugModeWatcher; /** - * Active object for subscribing to BT registry property changes. - * Own. - */ - CBTEngActive* iBtRegistryWatcher; - - /** * Pointer to our parent. * Not own. */ diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/inc/btengsrvsettingsmgr.h --- a/bluetoothengine/bteng/inc/btengsrvsettingsmgr.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/inc/btengsrvsettingsmgr.h Sun May 02 21:30:11 2010 +0300 @@ -112,12 +112,13 @@ void StopBTStackL(); /** - * Update the central repository key for Bluetooth power state. + * Handles a power event that HW power is going to turn off or + * has been changed turned on. * - * @since Symbian^3 - * @param aValue The new Bluetooth power state. + * @since Symbian^4 + * @param aValue The new Bluetooth HW power state. */ - void UpdateCenRepPowerKeyL( TBTPowerState aValue ); + void HandleHwPowerChangeL( TBTPowerState aValue ); /** * ?description @@ -199,21 +200,26 @@ * * @since Symbian^3 * @param aActive Pointer to the active object that completed. - * @param aId The ID that identifies the outstanding request. * @param aStatus The status of the completed request. */ - virtual void RequestCompletedL( CBTEngActive* aActive, TInt aId, TInt aStatus ); - + virtual void RequestCompletedL( CBTEngActive* aActive, TInt aStatus ); + + /** + * Callback for handling cancelation of an outstanding request. + * + * @param aId The ID that identifies the outstanding request. + */ + virtual void CancelRequest( TInt aRequestId ); + /** * From MBTEngActiveObserver. * Callback to notify that an error has occurred in RunL. * * @since Symbian^3 * @param aActive Pointer to the active object that completed. - * @param aId The ID that identifies the outstanding request. * @param aStatus The status of the completed request. */ - virtual void HandleError( CBTEngActive* aActive, TInt aId, TInt aError ); + virtual void HandleError( CBTEngActive* aActive, TInt aError ); private: @@ -245,7 +251,7 @@ * @param aTemporary Indicates if this is about a tempororary state change. */ void CheckTemporaryPowerStateL( TBTPowerState& aCurrentState, - TBTPowerState aNewState, TBool aTemporary ); + TBTPowerState aNewState, TBool aTemporary ); private: // data diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/src/btengclient.cpp --- a/bluetoothengine/bteng/src/btengclient.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/src/btengclient.cpp Sun May 02 21:30:11 2010 +0300 @@ -255,17 +255,6 @@ // --------------------------------------------------------------------------- -// Set a pairing observer in BTEngine. -// --------------------------------------------------------------------------- -// -TInt RBTEng::SetPairingObserver( const TBTDevAddr& aAddr, TBool aActivate ) - { - TBTDevAddrPckgBuf addrPkg( aAddr ); - return SendReceive( EBTEngSetPairingObserver, TIpcArgs( &addrPkg, aActivate ) ); - } - - -// --------------------------------------------------------------------------- // ?implementation_description // --------------------------------------------------------------------------- // @@ -273,22 +262,3 @@ { return SendReceive( EBTEngPrepareDiscovery, TIpcArgs() ); } - -// --------------------------------------------------------------------------- -// Start to pair a device in BTEngine. -// --------------------------------------------------------------------------- -// -void RBTEng::PairDevice( const TBTDevAddrPckgBuf& aAddr, - const TUint32& aDeviceClass, TRequestStatus& aStatus ) - { - SendReceive( EBTEngPairDevice, TIpcArgs( &aAddr, aDeviceClass ), aStatus ); - } - -// --------------------------------------------------------------------------- -// cancel pairing request -// --------------------------------------------------------------------------- -// -void RBTEng::CancelPairDevice( ) - { - (void) SendReceive( EBTEngCancelPairDevice); - } diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/src/btengserver.cpp --- a/bluetoothengine/bteng/src/btengserver.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/src/btengserver.cpp Sun May 02 21:30:11 2010 +0300 @@ -37,7 +37,6 @@ #include "btengsecpolicy.h" #include "btengprivatepskeys.h" #include "btengplugin.h" -#include "btengpairman.h" #include "debug.h" /** Bluetooth Engine server thread name */ @@ -167,8 +166,6 @@ iPluginMgr = CBTEngSrvPluginMgr::NewL( this ); iBBConnMgr = CBTEngSrvBBConnMgr::NewL( this, iSocketServ ); - User::LeaveIfError( iBTRegServ.Connect() ); - iPairMan = CBTEngPairMan::NewL( *this ); TCallBack idleCb( IdleTimerCallBack, this ); iIdleCallBack.Set( idleCb ); @@ -225,9 +222,7 @@ delete iPluginMgr; delete iBBConnMgr; delete iServerState; - delete iPairMan; iSocketServ.Close(); - iBTRegServ.Close(); } // --------------------------------------------------------------------------- @@ -315,7 +310,6 @@ TRACE_INFO( ( _L( "[CBTEngServer]\t iSessionCount %d"), iSessionCount )) iSessionCount--; iSettingsMgr->SessionClosed( aSession ); - iPairMan->SessionClosed( aSession ); if( aAutoOff ) { TRAP_IGNORE( SetPowerStateL( EBTOff, ETrue ) ); diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/src/btengsrvbbconnectionmgr.cpp --- a/bluetoothengine/bteng/src/btengsrvbbconnectionmgr.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/src/btengsrvbbconnectionmgr.cpp Sun May 02 21:30:11 2010 +0300 @@ -92,15 +92,13 @@ // CBTEngSrvBBConnMgr::~CBTEngSrvBBConnMgr() { - Unsubscribe(); + delete iLinkCountWatcher; + delete iWlanWatcher; iLinkCountProperty.Close(); iWlanStatusProperty.Close(); - delete iLinkCountWatcher; - delete iWlanWatcher; delete iPhyLinks; } - // --------------------------------------------------------------------------- // Start listening to the relevant properties. // --------------------------------------------------------------------------- @@ -126,19 +124,10 @@ // void CBTEngSrvBBConnMgr::Unsubscribe() { - if( iLinkCountWatcher->IsActive() ) - { - iLinkCountProperty.Cancel(); - iLinkCountWatcher->CancelRequest(); - } - if( iWlanWatcher && iWlanWatcher->IsActive() ) - { - iWlanStatusProperty.Cancel(); - iWlanWatcher->CancelRequest(); - } + iLinkCountWatcher->Cancel(); + iWlanWatcher->Cancel(); } - // --------------------------------------------------------------------------- // ?implementation_description // --------------------------------------------------------------------------- @@ -364,22 +353,20 @@ // ?implementation_description // --------------------------------------------------------------------------- // -void CBTEngSrvBBConnMgr::RequestCompletedL( CBTEngActive* aActive, TInt aId, +void CBTEngSrvBBConnMgr::RequestCompletedL( CBTEngActive* aActive, TInt aStatus ) { - TRACE_FUNC_ARG( ( _L( "id: %d; status: %d" ), aId, aStatus ) ) - ASSERT( aId == KBTEngSrvBBConnId || aId == KBTEngSrvWlanStatusId ); - (void) aActive; - (void) aId; + TRACE_FUNC_ARG( ( _L( "id: %d; status: %d" ), aActive->RequestId(), aStatus ) ) + ASSERT( aActive->RequestId() == KBTEngSrvBBConnId || aActive->RequestId() == KBTEngSrvWlanStatusId ); if( aStatus != KErrPermissionDenied ) { - // Ignore any other errors. - // First subscribe again, so that we don't miss any updates. - Subscribe(); + // Ignore any other errors. + // First subscribe again, so that we don't miss any updates. + Subscribe(); } (void) ManageTopology( EFalse ); // Ignore result; nothing to do // about it here. - if( aId == KBTEngSrvBBConnId ) + if( aActive->RequestId() == KBTEngSrvBBConnId ) { TRACE_INFO( ( _L( "[BTENG] PHY count key changed, update UI connection status" ) ) ) iServer->SettingsManager()->SetUiIndicatorsL(); @@ -387,6 +374,24 @@ TRACE_FUNC_EXIT } +// --------------------------------------------------------------------------- +// From class MBTEngActiveObserver. +// Handles cancelation of an outstanding request +// --------------------------------------------------------------------------- +// +void CBTEngSrvBBConnMgr::CancelRequest( TInt aRequestId ) + { + TRACE_FUNC_ARG( ( _L( "reqID %d" ), aRequestId ) ); + if ( aRequestId == KBTEngSrvBBConnId ) + { + iLinkCountProperty.Cancel(); + } + else if ( aRequestId == KBTEngSrvWlanStatusId ) + { + iWlanStatusProperty.Cancel(); + } + TRACE_FUNC_EXIT + } // --------------------------------------------------------------------------- // From class MBTEngActiveObserver. @@ -394,12 +399,11 @@ // RunL cannot actually leave. // --------------------------------------------------------------------------- // -void CBTEngSrvBBConnMgr::HandleError( CBTEngActive* aActive, TInt aId, +void CBTEngSrvBBConnMgr::HandleError( CBTEngActive* aActive, TInt aError ) { - TRACE_FUNC_ARG( ( _L( "id: %d; status: %d" ), aId, aError ) ) + TRACE_FUNC_ARG( ( _L( "id: %d; status: %d" ), aActive->RequestId(), aError ) ) (void) aActive; - (void) aId; (void) aError; } diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/src/btengsrvkeywatcher.cpp --- a/bluetoothengine/bteng/src/btengsrvkeywatcher.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/src/btengsrvkeywatcher.cpp Sun May 02 21:30:11 2010 +0300 @@ -27,7 +27,6 @@ #include "btengserver.h" #include "btengsrvpluginmgr.h" #include "btengsrvsettingsmgr.h" -#include "btengpairman.h" #include "btengprivatepskeys.h" #include "btengprivatecrkeys.h" #include "debug.h" @@ -48,8 +47,7 @@ const TInt KBTEngSapWatcher = 22; /** Identification for active object */ const TInt KBTEngAddrWatcher = 23; -/** Identification for active object */ -const TInt KBTEngRegistryWatcher = 24; + /** Identification for active object */ const TInt KBTEngSspDebugWatcher = 25; /** Buffer size for BT device address as stored in CenRep */ @@ -129,16 +127,6 @@ iEmergencyCallKey.Subscribe( iEmergencyCallWatcher->RequestStatus() ); iEmergencyCallWatcher->GoActive(); } - - err = iBtRegistryKey.Attach( KPropertyUidBluetoothCategory, KPropertyKeyBluetoothGetRegistryTableChange ); - if( !err ) - { - iBtRegistryWatcher = CBTEngActive::NewL( *this, KBTEngRegistryWatcher, - CActive::EPriorityStandard ); - iBtRegistryKey.Subscribe( iBtRegistryWatcher->RequestStatus() ); - iBtRegistryWatcher->GoActive(); - } - err = iSspDebugModeKey.Attach( KPSUidBluetoothTestingMode, KBTSspDebugmode ); if( !err ) { @@ -192,75 +180,32 @@ // CBTEngSrvKeyWatcher::~CBTEngSrvKeyWatcher() { - if( iDutModeKey.Handle() ) - { - iDutModeKey.Cancel(); - } delete iDutModeWatcher; iDutModeKey.Close(); #ifdef RD_REMOTELOCK - if( iPhoneLockKey.Handle() ) - { - iPhoneLockKey.Cancel(); - } delete iPhoneLockWatcher; iPhoneLockKey.Close(); #endif //RD_REMOTELOCK - if( iSystemStateKey.Handle() ) - { - iSystemStateKey.Cancel(); - } delete iSystemStateWatcher; - iSystemStateKey.Close(); - - if( iBtConnectionKey.Handle() ) - { - iBtConnectionKey.Cancel(); - } + iSystemStateKey.Close(); + delete iBtConnectionWatcher; iBtConnectionKey.Close(); - - if( iBtScanningKey.Handle() ) - { - iBtScanningKey.Cancel(); - } + delete iBtScanningWatcher; iBtScanningKey.Close(); - if( iEmergencyCallKey.Handle() ) - { - iEmergencyCallKey.Cancel(); - } delete iEmergencyCallWatcher; iEmergencyCallKey.Close(); - - if( iSspDebugModeKey.Handle() ) - { - iSspDebugModeKey.Cancel(); - } + delete iSspDebugModeWatcher; iSspDebugModeKey.Close(); - if( iBtRegistryKey.Handle() ) - { - iBtRegistryKey.Cancel(); - } - delete iBtRegistryWatcher; - iBtRegistryKey.Close(); - - if( iSapKeyCenRep ) - { - iSapKeyCenRep->NotifyCancel( KBTSapEnabled ); - } delete iSapModeWatcher; delete iSapKeyCenRep; - if( iBdaddrKey.Handle() ) - { - iBdaddrKey.Cancel(); - } delete iBdaddrWatcher; iBdaddrKey.Close(); } @@ -271,13 +216,13 @@ // Processes a changed key value. // --------------------------------------------------------------------------- // -void CBTEngSrvKeyWatcher::RequestCompletedL( CBTEngActive* aActive, TInt aId, +void CBTEngSrvKeyWatcher::RequestCompletedL( CBTEngActive* aActive, TInt aStatus ) { TRACE_FUNC_ARG( ( _L( "status %d" ), aStatus ) ) ASSERT( aStatus != KErrPermissionDenied ); TInt val = 0; - switch( aId ) + switch( aActive->RequestId() ) { case KBTEngDutWatcher: { @@ -360,22 +305,6 @@ } break; } - case KBTEngRegistryWatcher: - { - TRACE_INFO( ( _L( "BT Registry key changed" ) ) ) - TInt myChangedTable; - - iBtRegistryKey.Subscribe( aActive->RequestStatus() ); - aActive->GoActive(); - - TInt err = iBtRegistryKey.Get( myChangedTable ); - if( !err && myChangedTable == KRegistryChangeRemoteTable ) - { - TRACE_INFO( ( _L("BT Remote registry key changed") ) ) - iServer->PairManager()->RemoteRegistryChangeDetected(); - } - break; - } case KBTEngSapWatcher: { TRACE_INFO( ( _L( "SAP mode key changed" ) ) ) @@ -428,7 +357,7 @@ break; default: { - TRACE_INFO( ( _L( "[BTENG]\t wrong key notification! id=%d" ), aId ) ) + TRACE_INFO( ( _L( "[BTENG]\t wrong key notification! id=%d" ), aActive->RequestId() ) ) } break; @@ -436,6 +365,73 @@ TRACE_FUNC_EXIT } +// --------------------------------------------------------------------------- +// From class MBTEngActiveObserver. +// Handles cancelation of an outstanding request +// --------------------------------------------------------------------------- +// +void CBTEngSrvKeyWatcher::CancelRequest( TInt aRequestId ) + { + TRACE_FUNC_ARG( ( _L( "reqID %d" ), aRequestId ) ) + switch( aRequestId ) + { + case KBTEngDutWatcher: + { + iDutModeKey.Cancel(); + break; + } + case KBTEngLockWatcher: + { + iPhoneLockKey.Cancel(); + break; + } + case KBTEngSysWatcher: + { + iSystemStateKey.Cancel(); + break; + } + case KBTEngBtConnectionWatcher: + { + iBtConnectionKey.Cancel(); + break; + } + + case KBTEngScanningWatcher: + { + iBtScanningKey.Cancel(); + break; + } + + case KBTEngEmergencyWatcher: + { + iEmergencyCallKey.Cancel(); + break; + } + + case KBTEngSspDebugWatcher: + { + iSspDebugModeKey.Cancel(); + break; + } + case KBTEngSapWatcher: + { + iSapKeyCenRep->NotifyCancel( KBTSapEnabled ); + break; + } + + case KBTEngAddrWatcher: + { + iBdaddrKey.Cancel(); + break; + } + default: + { + TRACE_INFO( ( _L( "[BTENG]\t wrong key notification! id=%d" ), aRequestId ) ) + break; + } + } + TRACE_FUNC_EXIT + } // --------------------------------------------------------------------------- // From class MBTEngActiveObserver. @@ -443,14 +439,14 @@ // the subscriptions are active. // --------------------------------------------------------------------------- // -void CBTEngSrvKeyWatcher::HandleError( CBTEngActive* aActive, TInt aId, +void CBTEngSrvKeyWatcher::HandleError( CBTEngActive* aActive, TInt aError ) { TRACE_FUNC_ARG( ( _L( "status %d" ), aError ) ) (void) aError; if( !aActive->IsActive() ) { - switch( aId ) + switch( aActive->RequestId() ) { case KBTEngDutWatcher: { @@ -483,7 +479,7 @@ break; default: { - TRACE_INFO( ( _L( "[BTENG]\t wrong key notification! id=%d" ), aId ) ) + TRACE_INFO( ( _L( "[BTENG]\t wrong key notification! id=%d" ), aActive->RequestId() ) ) } return; // we don't want to go active without subscribing } diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/src/btengsrvpluginmgr.cpp --- a/bluetoothengine/bteng/src/btengsrvpluginmgr.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/src/btengsrvpluginmgr.cpp Sun May 02 21:30:11 2010 +0300 @@ -83,6 +83,7 @@ { iPluginInfoArray.Close(); iPluginArray.ResetAndDestroy(); + REComSession::FinalClose(); } diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/src/btengsrvsession.cpp --- a/bluetoothengine/bteng/src/btengsrvsession.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/src/btengsrvsession.cpp Sun May 02 21:30:11 2010 +0300 @@ -21,7 +21,6 @@ #include "btengsrvsession.h" #include "btengserver.h" #include "btengsrvbbconnectionmgr.h" -#include "btengpairman.h" #include "btengsrvsettingsmgr.h" #include "btengclientserver.h" #include "debug.h" @@ -158,7 +157,6 @@ if( !aMessage.IsNull() && ( err || ( aMessage.Function() != EBTEngNotifyConnectionEvents && - aMessage.Function() != EBTEngPairDevice && aMessage.Function() != EBTEngSetPowerState ) ) ) { // Return the error code to the client. @@ -258,25 +256,6 @@ Server()->BasebandConnectionManager()->ManageTopology( ETrue ); } break; - case EBTEngSetPairingObserver: - { - CheckPowerOnL(); - // Simply forward it to the pairing manager - Server()->PairManager()->ProcessCommandL( aMessage ); - break; - } - case EBTEngPairDevice: - { - CheckPowerOnL(); - // Simply forward it to the pairing manager - Server()->PairManager()->ProcessCommandL( aMessage ); - break; - } - case EBTEngCancelPairDevice: - { - Server()->PairManager()->ProcessCommandL( aMessage ); - break; - } default: { TRACE_INFO( ( _L( "[BTENG]\t DispatchMessageL: bad request (%d)" ), aMessage.Function() ) ) diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/src/btengsrvsettingsmgr.cpp --- a/bluetoothengine/bteng/src/btengsrvsettingsmgr.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/src/btengsrvsettingsmgr.cpp Sun May 02 21:30:11 2010 +0300 @@ -23,8 +23,7 @@ #include #include #include -#include - +//#include #include "btengserver.h" #include "btengsrvpluginmgr.h" #include "btengsrvbbconnectionmgr.h" @@ -93,11 +92,6 @@ // CBTEngSrvSettingsMgr::~CBTEngSrvSettingsMgr() { - if( iActive && iActive->IsActive() ) - { - // Cancel the outstanding request. - iPowerMgr.Cancel(); - } delete iActive; iPowerMgr.Close(); } @@ -184,11 +178,11 @@ if ( currentState == aState ) { // Make sure that the CenRep key is in sync. - // During boot-up, the pwoer is set from the CenRep key, so we could + // During boot-up, the power is set from the CenRep key, so we could // end up out-of-sync. TRACE_INFO( ( _L( "SetPowerStateL: currentState == aState" ) ) ) - UpdateCenRepPowerKeyL( aState ); - } + HandleHwPowerChangeL( aState ); + } return; } if ( aState == EBTOn ) @@ -318,21 +312,20 @@ // --------------------------------------------------------------------------- -// Update the power state CenRep key. +// Update the power state CenRep key, and start BTNotif server if BT is on. // --------------------------------------------------------------------------- // -void CBTEngSrvSettingsMgr::UpdateCenRepPowerKeyL( TBTPowerState aState ) +void CBTEngSrvSettingsMgr::HandleHwPowerChangeL( TBTPowerState aState ) { TRACE_FUNC_ENTRY CRepository* cenrep = CRepository::NewLC( KCRUidBluetoothPowerState ); // TBTPowerState power state type is inverted from TBTPowerStateValue... - TBTPowerStateValue power = (TBTPowerStateValue) !aState; + TBTPowerStateValue power = ( aState == EBTOn ) ? EBTPowerOn : EBTPowerOff; User::LeaveIfError( cenrep->Set( KBTPowerState, (TInt) power ) ); CleanupStack::PopAndDestroy( cenrep ); TRACE_FUNC_EXIT } - // --------------------------------------------------------------------------- // ?implementation_description // --------------------------------------------------------------------------- @@ -654,9 +647,9 @@ // Callback to notify that an outstanding request has completed. // --------------------------------------------------------------------------- // -void CBTEngSrvSettingsMgr::RequestCompletedL( CBTEngActive* aActive, TInt aId, TInt aStatus ) +void CBTEngSrvSettingsMgr::RequestCompletedL( CBTEngActive* aActive, TInt aStatus ) { - __ASSERT_ALWAYS( aId == KBTEngSettingsActive, PanicServer( EBTEngPanicCorrupt ) ); + __ASSERT_ALWAYS( aActive->RequestId() == KBTEngSettingsActive, PanicServer( EBTEngPanicCorrupt ) ); TRACE_FUNC_ENTRY (void) aActive; if ( aStatus != KErrNone && aStatus != KErrAlreadyExists && aStatus != KErrCancel ) @@ -664,7 +657,6 @@ // Something went wrong, so we turn BT off again. SetPowerStateL( EBTOff, EFalse ); } - if ( !iMessage.IsNull()) { iMessage.Complete( aStatus ); @@ -672,16 +664,29 @@ TRACE_FUNC_EXIT } +// --------------------------------------------------------------------------- +// From class MBTEngActiveObserver. +// Handles cancelation of an outstanding request +// --------------------------------------------------------------------------- +// +void CBTEngSrvSettingsMgr::CancelRequest( TInt aRequestId ) + { + TRACE_FUNC_ARG( ( _L( "reqID %d" ), aRequestId ) ); + if ( aRequestId == KBTEngSettingsActive ) + { + iPowerMgr.Cancel(); + } + TRACE_FUNC_EXIT + } // --------------------------------------------------------------------------- // From class MBTEngActiveObserver. // Callback to notify that an error has occurred in RunL. // --------------------------------------------------------------------------- // -void CBTEngSrvSettingsMgr::HandleError( CBTEngActive* aActive, TInt aId, TInt aError ) +void CBTEngSrvSettingsMgr::HandleError( CBTEngActive* aActive, TInt aError ) { (void) aActive; - (void) aId; if ( !iMessage.IsNull()) { iMessage.Complete( aError ); @@ -729,10 +734,11 @@ if( powerState == EBTPowerOff ) { - SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateOff ); + // To be migrated + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateOff ); } else { @@ -748,56 +754,59 @@ { if ( connecting ) // BT connecting and hidden { - SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateAnimate ); + // To be migrated to QT + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateAnimate ); } else if ( phys > 0 ) // BT connection active and hidden { - SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateOn ); + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateOn ); } else // BT connection not active and hidden { - SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOn ); - SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOn ); + //SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateOff ); } - SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateOff ); } else if( visibilityMode == EBTVisibilityModeGeneral || visibilityMode == EBTVisibilityModeTemporary ) { if ( connecting ) // BT connecting and visible { - SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateAnimate ); + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateAnimate ); } else if ( phys > 0 ) // BT connection active and visible { - SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateOn ); + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateOn ); } else // BT connection not active and visible { - SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOn ); - SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOnVisible, EAknIndicatorStateOn ); + //SetIndicatorStateL( EAknIndicatorBluetoothVisible, EAknIndicatorStateOff ); } - SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOff ); - SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetoothModuleOn, EAknIndicatorStateOff ); + //SetIndicatorStateL( EAknIndicatorBluetooth, EAknIndicatorStateOff ); } } TRACE_FUNC_EXIT } - // --------------------------------------------------------------------------- // ?implementation_description // --------------------------------------------------------------------------- // void CBTEngSrvSettingsMgr::SetIndicatorStateL( const TInt aIndicator, const TInt aState ) { - CAknSmallIndicator* indicator = CAknSmallIndicator::NewLC( TUid::Uid( aIndicator ) ); - indicator->SetIndicatorStateL( aState ); - CleanupStack::PopAndDestroy( indicator ); //indicator + // To be migrated to QT + (void) aIndicator; + (void) aState; + //CAknSmallIndicator* indicator = CAknSmallIndicator::NewLC( TUid::Uid( aIndicator ) ); + //indicator->SetIndicatorStateL( aState ); + //CleanupStack::PopAndDestroy( indicator ); //indicator } @@ -886,3 +895,4 @@ } TRACE_FUNC_EXIT } + diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bteng/src/btengsrvstate.cpp --- a/bluetoothengine/bteng/src/btengsrvstate.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bteng/src/btengsrvstate.cpp Sun May 02 21:30:11 2010 +0300 @@ -108,7 +108,7 @@ // Power off, starting state is to disconnect the plug-ins iState = EDisconnectPlugins; iOperation = EPowerOff; - iServer->SettingsManager()->UpdateCenRepPowerKeyL( EBTOff ); + iServer->SettingsManager()->HandleHwPowerChangeL( EBTOff ); iServer->SettingsManager()->SetUiIndicatorsL(); } ChangeState(); @@ -212,7 +212,7 @@ { if( iOperation == EPowerOn ) { - iServer->SettingsManager()->UpdateCenRepPowerKeyL( EBTOn ); + iServer->SettingsManager()->HandleHwPowerChangeL( EBTOn ); iServer->SettingsManager()->SetUiIndicatorsL(); } iOperation = ESrvOpIdle; diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bthid/bthidkbdsettings/group/bld.inf --- a/bluetoothengine/bthid/bthidkbdsettings/group/bld.inf Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bthid/bthidkbdsettings/group/bld.inf Sun May 02 21:30:11 2010 +0300 @@ -21,17 +21,7 @@ PRJ_EXPORTS -PRJ_EXTENSIONS -START EXTENSION s60/mifconv -OPTION TARGETFILE btkeyboard.mif -OPTION TARGETFILE btkeyboard_aif.mif -OPTION HEADERFILE btkeyboard.mbg -OPTION SOURCEDIR ../aif -OPTION SOURCES -c8,8 qgn_wka_cxt -END - PRJ_MMPFILES bthidsettings.mmp -bthidkbdsettings.mmp diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bthid/rom/btkeyboard.iby --- a/bluetoothengine/bthid/rom/btkeyboard.iby Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bthid/rom/btkeyboard.iby Sun May 02 21:30:11 2010 +0300 @@ -38,7 +38,6 @@ ECOM_PLUGIN(hidkeyboard.dll, hidkeyboard.rsc) ECOM_PLUGIN(hidmouse.dll, hidmouse.rsc) ECOM_PLUGIN(kbdlayout.dll, kbdlayout.rsc) -ECOM_PLUGIN(bthidkbdsettings.dll, bthidkbdsettings.rsc) ECOM_PLUGIN(bthidengplugin.dll, bthidengplugin.rsc) data=DATAZ_\APP_BITMAP_DIR\BTMouseBitMaps.mbm APP_BITMAP_DIR\BTMouseBitMaps.mbm diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/bthid/rom/btkeyboard_resources.iby --- a/bluetoothengine/bthid/rom/btkeyboard_resources.iby Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/bthid/rom/btkeyboard_resources.iby Sun May 02 21:30:11 2010 +0300 @@ -20,7 +20,6 @@ #ifndef BTKEYBOARD_RESOURCES_IBY #define BTKEYBOARD_RESOURCES_IBY -data=DATAZ_\RESOURCE_FILES_DIR\BthidResource.rsc RESOURCE_FILES_DIR\BthidResource.rsc data=DATAZ_\APP_RESOURCE_DIR\PaintCursor.rsc APP_RESOURCE_DIR\PaintCursor.rsc #endif //BTKEYBOARD_RESOURCES_IBY diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/btmac/group/BTMonoCmdHandler.mmp --- a/bluetoothengine/btmac/group/BTMonoCmdHandler.mmp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/btmac/group/BTMonoCmdHandler.mmp Sun May 02 21:30:11 2010 +0300 @@ -69,6 +69,7 @@ LIBRARY customapi.lib LIBRARY bluetooth.lib LIBRARY atextclient.lib +LIBRARY charconv.lib LIBRARY mmfdevsound.lib LIBRARY telephonyservice.lib diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/btmac/inc/atcodec/ATCodecDefs.h --- a/bluetoothengine/btmac/inc/atcodec/ATCodecDefs.h Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/btmac/inc/atcodec/ATCodecDefs.h Sun May 02 21:30:11 2010 +0300 @@ -141,14 +141,14 @@ {EATCIEV, EATUnsolicitedResult, 2, KIntList2}, {EATCREG, EATReadResult, 2, KIntList2}, {EATCREG, EATUnsolicitedResult, 2, KIntList1}, - {EATCGSN, EATReadResult, 1, KStrList1}, - {EATCSQ, EATReadResult, 2, KIntList2}, - {EATCIMI, EATReadResult, 1, KStrList1}, - {EATCGMI, EATReadResult, 1, KStrList1}, - {EATCGMM, EATReadResult, 1, KStrList1}, - {EATCGMR, EATReadResult, 1, KStrList1}, - {EATCOLP, EATReadResult, 1, KIntList1}, - {EATCOLP, EATUnsolicitedResult, 2, KDQStrIntList2}, + {EATCGSN, EATActionResult, 1, KStrList1}, + {EATCSQ, EATActionResult, 2, KIntList2}, + {EATCIMI, EATActionResult, 1, KStrList1}, + {EATCGMI, EATActionResult, 1, KStrList1}, + {EATCGMM, EATActionResult, 1, KStrList1}, + {EATCGMR, EATActionResult, 1, KStrList1}, + {EATCOLP, EATReadResult, 1, KIntList1}, + {EATCOLP, EATUnsolicitedResult, 2, KDQStrIntList2}, }; const TInt KResultCodeParamTableSize = (sizeof(KResultCodeParamTable) / sizeof(SResultCodeParamDef)); diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/btmac/src/BTMonoCmdHandler/btmcprotocol.cpp --- a/bluetoothengine/btmac/src/BTMonoCmdHandler/btmcprotocol.cpp Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/btmac/src/BTMonoCmdHandler/btmcprotocol.cpp Sun May 02 21:30:11 2010 +0300 @@ -290,7 +290,7 @@ { TBuf8 buf; buf.Copy(iId); - CATResult* cimi = CATResult::NewLC(EATCIMI, EATReadResult, TATParam(buf)); + CATResult* cimi = CATResult::NewLC(EATCIMI, EATActionResult, TATParam(buf)); SendResponseL(*cimi); CleanupStack::PopAndDestroy(cimi); CATResult* ok = CATResult::NewLC(EATOK); @@ -789,56 +789,7 @@ break; }; break; - } - case EATCSQ: - { - TRACE_INFO(_L("Requesting Signal strength")); - LEAVE_IF_ERROR(params.Append(TATParam(iPhoneStatus->GetRssiStrength()))) - LEAVE_IF_ERROR(params.Append(TATParam(KBerUnknown))) - code = CATResult::NewL(EATCSQ, EATReadResult, ¶ms); - TRACE_INFO(_L("done")); - break; - } - - case EATCGSN: - { - TBuf8 buf; - buf.Copy(iIdentity.iSerialNumber); - LEAVE_IF_ERROR(params.Append(TATParam(buf))) - code = CATResult::NewL(EATCGSN, EATReadResult, ¶ms); - break; - } - case EATCGMI: - { - TBuf8 buf; - buf.Copy(iIdentity.iManufacturer); - LEAVE_IF_ERROR(params.Append(TATParam(buf))) - code = CATResult::NewL(EATCGMI, EATReadResult, ¶ms); - break; - } - case EATCGMM: - { - TBuf8 buf; - buf.Copy(iIdentity.iModel); - LEAVE_IF_ERROR(params.Append(TATParam(buf))) - code = CATResult::NewL(EATCGMM, EATReadResult, ¶ms); - break; - } - case EATCGMR: - { - TBuf8 buf; - buf.Copy(iIdentity.iRevision); - LEAVE_IF_ERROR(params.Append(TATParam(buf))) - code = CATResult::NewL(EATCGMR, EATReadResult, ¶ms); - break; - } - case EATCIMI: - { - iEtelQuery->SetServiceId(KQueryIMSI); - iPhone.GetSubscriberId(iEtelQuery->iStatus, iId); - iEtelQuery->GoActive(); - break; - } + } case EATCOLP: { LEAVE_IF_ERROR(params.Append(TATParam(TInt(iProtocolStatus->iOutgoingCallNotif)))) @@ -1040,7 +991,11 @@ void CBtmcProtocol::HandleActionCommandL(const CATCommand& aCmd) { TRACE_FUNC - + RATResultPtrArray resarr; + ATObjArrayCleanupResetAndDestroyPushL(resarr); + CATResult* code = NULL; + RATParamArray params; + CleanupClosePushL(params); switch (aCmd.Id()) { case EATCNUM: @@ -1054,33 +1009,71 @@ iCallStatus->HandleClccL(); break; } + case EATCSQ: + { + TRACE_INFO(_L("Requesting Signal strength")); + LEAVE_IF_ERROR(params.Append(TATParam(iPhoneStatus->GetRssiStrength()))) + LEAVE_IF_ERROR(params.Append(TATParam(KBerUnknown))) + code = CATResult::NewL(EATCSQ, EATActionResult, ¶ms); + TRACE_INFO(_L("done")); + break; + } + case EATCGMI: + { + TBuf8 buf; + buf.Copy(iIdentity.iManufacturer); + LEAVE_IF_ERROR(params.Append(TATParam(buf))) + code = CATResult::NewL(EATCGMI, EATActionResult, ¶ms); + break; + } + case EATCGMM: + { + TBuf8 buf; + buf.Copy(iIdentity.iModel); + LEAVE_IF_ERROR(params.Append(TATParam(buf))) + code = CATResult::NewL(EATCGMM, EATActionResult, ¶ms); + break; + } + case EATCGMR: + { + TBuf8 buf; + buf.Copy(iIdentity.iRevision); + LEAVE_IF_ERROR(params.Append(TATParam(buf))) + code = CATResult::NewL(EATCGMR, EATActionResult, ¶ms); + break; + } + case EATCIMI: + { + iEtelQuery->SetServiceId(KQueryIMSI); + iPhone.GetSubscriberId(iEtelQuery->iStatus, iId); + iEtelQuery->GoActive(); + break; + } case EATCGSN: { - CATResult* code = NULL; - RATResultPtrArray resarr; - ATObjArrayCleanupResetAndDestroyPushL(resarr); - RATParamArray params; - CleanupClosePushL(params); TBuf8 buf; buf.Copy(iIdentity.iSerialNumber); LEAVE_IF_ERROR(params.Append(TATParam(buf))) code = CATResult::NewL(EATCGSN, EATActionResult, ¶ms); - CleanupStack::PopAndDestroy(¶ms); - CleanupStack::PushL(code); - resarr.AppendL(code); - CleanupStack::Pop(code); - CATResult* ok = CATResult::NewL(EATOK); - CleanupStack::PushL(ok); - resarr.AppendL(ok); - CleanupStack::Pop(ok); - SendResponseL(resarr); - CleanupStack::PopAndDestroy(&resarr); - CmdHandlingCompletedL(); break; } default: LEAVE(KErrNotSupported); + } + CleanupStack::PopAndDestroy(¶ms); + if (code) + { + CleanupStack::PushL(code); + resarr.AppendL(code); + CleanupStack::Pop(code); + CATResult* ok = CATResult::NewL(EATOK); + CleanupStack::PushL(ok); + resarr.AppendL(ok); + CleanupStack::Pop(ok); + SendResponseL(resarr); + CmdHandlingCompletedL(); } + CleanupStack::PopAndDestroy(&resarr); } void CBtmcProtocol::DoSendProtocolDataL() diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/btnotif/group/bld.inf --- a/bluetoothengine/btnotif/group/bld.inf Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/btnotif/group/bld.inf Sun May 02 21:30:11 2010 +0300 @@ -19,33 +19,20 @@ #include PRJ_PLATFORMS -//DEFAULT +DEFAULT PRJ_EXPORTS -../loc/btnotif.loc MW_LAYER_LOC_EXPORT_PATH(btnotif.loc) -../rom/Btnotif.iby CORE_MW_LAYER_IBY_EXPORT_PATH(Btnotif.iby) -../rom/BtnotifResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(BtnotifResources.iby) -../inc/devui_const.h |../../inc/devui_const.h -PRJ_EXTENSIONS - -START EXTENSION s60/mifconv -OPTION TARGETFILE btnotif.mif -OPTION HEADERFILE btnotif.mbg -OPTION SOURCES -c8,8 qgn_note_bt_popup -c8,8 qgn_note_bt_popup_2 \ - -c8,8 qgn_note_bt_popup_3 -c8,8 qgn_indi_bt_blocked \ - -c8,8 qgn_indi_bt_signal_good_add \ - -c8,8 qgn_indi_bt_signal_low_add \ - -c8,8 qgn_indi_bt_signal_med_add -END - +../rom/btnotif.iby CORE_MW_LAYER_IBY_EXPORT_PATH(btnotif.iby) PRJ_MMPFILES -// gnumakefile btnotif_icons_dc.mk - -../group/BTNotif.mmp -../ecom/BtnotifWrapper.mmp +btnotifsrv.mmp +btnotifwrapper.mmp PRJ_TESTMMPFILES -// End of File +//../btnotifsrv/tsrc/btnotifsrvtest/group/btnotifsrvtest.mmp +../btnotifsrv/tsrc/btnotifsrvtest/group/btnotifserversessiontest.mmp +../btnotifwrapper/tsrc/btnotifwrappertest/group/btnotifwrappertest.mmp + +PRJ_TESTEXPORTS diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/btnotif/rom/Btnotif.iby --- a/bluetoothengine/btnotif/rom/Btnotif.iby Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/btnotif/rom/Btnotif.iby Sun May 02 21:30:11 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 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" @@ -11,18 +11,21 @@ * * Contributors: * -* Description: +* Description: Image description file for project btnotif * */ -#ifndef __BTNOTIF_IBY__ -#define __BTNOTIF_IBY__ -REM Bluetooth notifiers library +#ifndef BTNOTIF_IBY +#define BTNOTIF_IBY + +#include -file=ABI_DIR\BUILD_DIR\btnotif.dll SHARED_LIB_DIR\btnotif.dll -SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,btnotif) +#ifdef __BT -ECOM_PLUGIN(btnotifwrapper.dll,101FD68F.rsc) +file=ABI_DIR/BUILD_DIR/btnotifsrv.exe SHARED_LIB_DIR/btnotifsrv.exe +ECOM_PLUGIN( btnotifwrapper.dll, btnotifwrapper.rsc ) -#endif +#endif // __BT + +#endif // BTNOTIF_IBY diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/btui/rom/btui.iby --- a/bluetoothengine/btui/rom/btui.iby Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/btui/rom/btui.iby Sun May 02 21:30:11 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -11,26 +11,23 @@ * * Contributors: * -* Description: +* Description: * */ -#ifndef __BTUI_IBY__ -#define __BTUI_IBY__ +#ifndef __BTCPPLUGIN_IBY__ +#define __BTCPPLUGIN_IBY__ +#include +#include #ifdef __BT -// BTUI Application(EXE) -//S60_APP_EXE(BtUi) -//SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,BtUi) -//S60_APP_AIF_ICONS(BtUi) -//S60_APP_AIF_RSC(BtUi) +file=ABI_DIR/BUILD_DIR/btuimodel.dll SHARED_LIB_DIR/btuimodel.dll +file=ABI_DIR/BUILD_DIR/btuidelegate.dll SHARED_LIB_DIR/btuidelegate.dll -// BTUI Model(DLL) -//file=ABI_DIR\BUILD_DIR\btdevmodel.dll SHARED_LIB_DIR\btdevmodel.dll - -//ECOM plugin(Ecom DLL) -// CP plugin API removed. Do not export ECOM_PLUGIN( BtuiPlugin.dll, BtuiPlugin.rsc ) +file=ABI_DIR/BUILD_DIR/btcpplugin.dll SHARED_LIB_DIR/btcpplugin.dll +data=/epoc32/data/c/resource/qt/plugins/controlpanel/btcpplugin.qtplugin resource/qt/plugins/controlpanel/btcpplugin.qtplugin #endif //__BT -#endif //__BTUI_IBY__ +#endif // __BTCPPLUGIN_IBY__ + diff -r 6c10323ce807 -r 7e2761e776bd bluetoothengine/group/bld.inf --- a/bluetoothengine/group/bld.inf Wed Apr 28 08:52:24 2010 +0300 +++ b/bluetoothengine/group/bld.inf Sun May 02 21:30:11 2010 +0300 @@ -19,15 +19,18 @@ PRJ_PLATFORMS DEFAULT +// This is to break cyclic building dependency between these logical components. +// A better source structure will be implemented in future. +#include "../btnotif/btnotifclient/group/bld.inf" #include "../bteng/group/bld.inf" +#include "../btserviceutil/group/bld.inf" #include "../btnotif/group/bld.inf" #include "../btaudioman/group/bld.inf" #include "../btmac/group/bld.inf" #include "../btsac/group/bld.inf" #include "../btaudiostreamer/group/bld.inf" #include "../btsap/group/bld.inf" -#include "../btui/group/bld.inf" #include "../btpbap/group/bld.inf" #include "../bthid/group/bld.inf" #include "../btctrldcmoadapter/group/bld.inf" diff -r 6c10323ce807 -r 7e2761e776bd btservices_plat/bluetooth_engine_connection_management_api/inc/btengconnman.h --- a/btservices_plat/bluetooth_engine_connection_management_api/inc/btengconnman.h Wed Apr 28 08:52:24 2010 +0300 +++ b/btservices_plat/bluetooth_engine_connection_management_api/inc/btengconnman.h Sun May 02 21:30:11 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -23,6 +23,7 @@ #include class CBTEngConnHandler; +class CBTEngPairingHandler; /** * Class MBTEngConnObserver @@ -449,10 +450,10 @@ CBTEngConnHandler* iConnHandler; /** - * This field is NOT used. Reserved for future extension. + * For handling pairing requests * Own. */ - TAny* iReserved; + CBTEngPairingHandler* iPairingHandler; /** * Reference to receiver of connection events. diff -r 6c10323ce807 -r 7e2761e776bd btservices_plat/bluetooth_secondary_display_notification_api/group/bld.inf --- a/btservices_plat/bluetooth_secondary_display_notification_api/group/bld.inf Wed Apr 28 08:52:24 2010 +0300 +++ b/btservices_plat/bluetooth_secondary_display_notification_api/group/bld.inf Sun May 02 21:30:11 2010 +0300 @@ -24,5 +24,5 @@ PRJ_EXPORTS -../inc/secondarydisplay/BTnotifSecondaryDisplayAPI.h MW_LAYER_PLATFORM_EXPORT_PATH(secondarydisplay/BTnotifSecondaryDisplayAPI.h) -../inc/secondarydisplay/BtuiSecondaryDisplayAPI.h MW_LAYER_PLATFORM_EXPORT_PATH(secondarydisplay/BtuiSecondaryDisplayAPI.h) +../inc/secondarydisplay/BTnotifSecondaryDisplayAPI.h MW_LAYER_PLATFORM_EXPORT_PATH(SecondaryDisplay/BTnotifSecondaryDisplayAPI.h) +../inc/secondarydisplay/BtuiSecondaryDisplayAPI.h MW_LAYER_PLATFORM_EXPORT_PATH(SecondaryDisplay/BtuiSecondaryDisplayAPI.h) diff -r 6c10323ce807 -r 7e2761e776bd cbsatplugin/atmisccmdplugin/rom/atmisccmdplugin.iby --- a/cbsatplugin/atmisccmdplugin/rom/atmisccmdplugin.iby Wed Apr 28 08:52:24 2010 +0300 +++ b/cbsatplugin/atmisccmdplugin/rom/atmisccmdplugin.iby Sun May 02 21:30:11 2010 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). + * 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" @@ -17,7 +17,6 @@ #define ATMISCCMDPLUGIN_IBY ECOM_PLUGIN(atmisccmdplugin.dll, atmisccmdplugin.rsc) -S60_APP_RESOURCE(atmisccmdpluginresource) #endif // ATMISCCMDPLUGIN_IBY diff -r 6c10323ce807 -r 7e2761e776bd layers.sysdef.xml --- a/layers.sysdef.xml Wed Apr 28 08:52:24 2010 +0300 +++ b/layers.sysdef.xml Sun May 02 21:30:11 2010 +0300 @@ -1,14 +1,20 @@ - ]> - + + + + + + + diff -r 6c10323ce807 -r 7e2761e776bd package_definition.xml --- a/package_definition.xml Wed Apr 28 08:52:24 2010 +0300 +++ b/package_definition.xml Sun May 02 21:30:11 2010 +0300 @@ -5,7 +5,12 @@ + + + + +