diff -r ebdbd102c78a -r 2eacb6118286 phoneapp/phoneuicontrol/src/cphoneaccessorybthandler.cpp --- a/phoneapp/phoneuicontrol/src/cphoneaccessorybthandler.cpp Fri May 14 15:51:57 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,283 +0,0 @@ -/* -* 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: Acessory and Bluetooth handler. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include - -#include "cphoneaccessorybthandler.h" -#include "cphonecenrepproxy.h" -#include "cphonemainresourceresolver.h" -#include "mphoneneclearedhandler.h" -#include "mphonestatemachine.h" -#include "mphoneviewcommandhandle.h" -#include "phoneconstants.h" -#include "phonelogger.h" -#include "phoneui.pan" -#include "phonerssbase.h" -#include "tphonecmdparamnote.h" - -// CONSTANTS - -const TInt KPhoneBtAddressTextLength = 64; - -// ============================ MEMBER FUNCTIONS =============================== - -CPhoneAccessoryBTHandler::CPhoneAccessoryBTHandler( - MPhoneViewCommandHandle* aViewCommandHandle, - MPhoneStateMachine* aStateMachine, - MPhoneNEClearedHandler* aNEClearedHandler ) : - iViewCommandHandle( aViewCommandHandle ), - iStateMachine( aStateMachine ), - iNEClearedHandler( aNEClearedHandler ) - { - } - -// ----------------------------------------------------------- -// CPhoneAccessoryBTHandler::NewLC() -// Constructor -// (other items were commented in a header). -// ----------------------------------------------------------- -// -CPhoneAccessoryBTHandler* CPhoneAccessoryBTHandler::NewLC( - MPhoneViewCommandHandle* aViewCommandHandle, - MPhoneStateMachine* aStateMachine, - MPhoneNEClearedHandler* aNEClearedHandler ) - { - CPhoneAccessoryBTHandler* self = new (ELeave) CPhoneAccessoryBTHandler( - aViewCommandHandle, aStateMachine, aNEClearedHandler ); - CleanupStack::PushL( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneAccessoryBTHandler::~CPhoneAccessoryBTHandler -// ----------------------------------------------------------------------------- -// -CPhoneAccessoryBTHandler::~CPhoneAccessoryBTHandler() - { - } - -// ----------------------------------------------------------- -// CPhoneAccessoryBTHandler::SetBTDebugModeL -// Handling for message EPEMessageBTDebugMode. -// Sets BT debug mode PS key on. -// ----------------------------------------------------------- -// -void CPhoneAccessoryBTHandler::SetBTDebugModeL() - { - __LOGMETHODSTARTEND(EPhoneControl, "CPhoneAccessoryBTHandler::SetBTDebugModeL( ) "); - if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) ) - { - iViewCommandHandle->ExecuteCommandL( EPhoneViewClearNumberEntryContent ); - } - else - { - // Remove number entry from screen - iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); - } - iNEClearedHandler->HandleNumberEntryClearedL(); - if ( RProperty::Set( KPSUidBluetoothDutMode, KBTSspDebugmode, EBTSspDebugModeOn )) - { - __PHONELOG( EOnlyFatal, EPhoneControl, "CPhoneAccessoryBTHandler::SetBTDebugModeL PS key not defined" ); - } - } - -// --------------------------------------------------------- -// CPhoneAccessoryBTHandler::SetBTHandsfreeModeL -// --------------------------------------------------------- -// -TBool CPhoneAccessoryBTHandler::SetBTHandsfreeModeL( TBool aHandsfreeMode ) - { - return DoSetHandsfreeModeL( aHandsfreeMode, aHandsfreeMode ? EPEBTAudioAccessory : EPEHandset ); - } - -// --------------------------------------------------------- -// CPhoneAccessoryBTHandler::SetHandsfreeModeL -// --------------------------------------------------------- -// -TBool CPhoneAccessoryBTHandler::SetHandsfreeModeL( TBool aHandsfreeMode ) - { - return DoSetHandsfreeModeL( aHandsfreeMode, aHandsfreeMode ? EPELoudspeaker : EPEHandset ); - } - -// --------------------------------------------------------- -// CPhoneAccessoryBTHandler::ShowBTAddressL -// --------------------------------------------------------- -// -void CPhoneAccessoryBTHandler::ShowBTAddressL() - { - __LOGMETHODSTARTEND(EPhoneControl, "CPhoneAccessoryBTHandler::ShowBTAddressL( ) "); - if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer )) - { - iViewCommandHandle->ExecuteCommandL( EPhoneViewClearNumberEntryContent ); - } - else - { - // Remove number entry from screen - iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); - } - - // Get BT address - TBuf addressBuffer; - - CPhoneCenRepProxy::Instance()->GetString( - KCRUidBluetoothLocalDeviceAddress, - KBTLocalDeviceAddress, - addressBuffer ); - - // BT address was empty. BT is not turned on. - if ( addressBuffer.Length() == 0 ) - { - __PHONELOG( EBasic, EPhoneControl, "CPhoneAccessoryBTHandler::ShowBTAddressL.NoAddress" ); - } - - // So we got the address. Now we need the localised text: - HBufC* buf = StringLoader::LoadLC( - CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( EPhonePhoneBtDevAddress ) , - addressBuffer ); - - TPhoneCmdParamNote noteParam; - noteParam.SetType( EPhoneNoteCustom ); - noteParam.SetResourceId( CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( EPhoneInformationWaitNote ) ); - noteParam.SetText( *buf ); - - // Display note - iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNote, ¬eParam ); - - CleanupStack::PopAndDestroy( buf ); - } - -// ----------------------------------------------------------- -// CPhoneAccessoryBTHandler::ShowBTLoopbackL -// Handling for message EPEMessageShowBTLoopback. -// Shows BT loopback status note. -// ----------------------------------------------------------- -// -void CPhoneAccessoryBTHandler::ShowBTLoopbackL() - { - __LOGMETHODSTARTEND(EPhoneControl, "CPhoneAccessoryBTHandler::ShowBTLoopbackL( ) "); - if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer )) - { - iViewCommandHandle->ExecuteCommandL( EPhoneViewClearNumberEntryContent ); - } - else - { - // Remove number entry from screen - iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); - } - TInt btLoopback( EBTDutOff ); - - // Get current status of BT loopback - TInt err = RProperty::Get( KPSUidBluetoothDutMode, KBTDutEnabled, - btLoopback ); - - // If loopback was disabled enable it. According to current knowledge - // disabling BT test loop is not possible. If error getting the value - // assume that it is disabled. - if ( btLoopback == EBTDutOff || err != KErrNone ) - { - // Safe to overwrite the previous error code since it is nolonger needed - err = RProperty::Set( KPSUidBluetoothDutMode, - KBTDutEnabled, - EBTDutOn ); - if( !err ) - { - btLoopback = EBTDutOn; - } - } - - HBufC* btLoopbackString( NULL ); - - // Get localised text according to setting status - btLoopbackString = StringLoader::LoadLC( - CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( btLoopback == EBTDutOn ? - EPhoneBtLoopbackEnabled : EPhoneBtLoopbackDisabled ) ); - - TPhoneCmdParamNote noteParam; - noteParam.SetType( EPhoneNoteCustom ); - noteParam.SetResourceId( CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( EPhoneInformationWaitNote ) ); - noteParam.SetText( *btLoopbackString ); - noteParam.SetTone( CAknNoteDialog::EConfirmationTone ); - - // Display note - iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNote, ¬eParam ); - - CleanupStack::PopAndDestroy( btLoopbackString ); - } - -// ----------------------------------------------------------- -// CPhoneAccessoryBTHandler::ShowBTActivatedL -// Shows BT activated note. -// ----------------------------------------------------------- -// -void CPhoneAccessoryBTHandler::ShowBTActivatedL() - { - // Get localised text - HBufC* buf = StringLoader::LoadLC( - CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( EPhoneInfoBTAccActivated ) ); - - TPhoneCmdParamNote noteParam; - noteParam.SetType( EPhoneNoteConfirmation ); - noteParam.SetText( *buf ); - - // Display note - iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNote, ¬eParam ); - CleanupStack::PopAndDestroy( buf ); - } - -// --------------------------------------------------------- -// CPhoneAccessoryBTHandler::DoSetHandsfreeModeL -// --------------------------------------------------------- -// -TBool CPhoneAccessoryBTHandler::DoSetHandsfreeModeL( - TBool aHandsfreeMode, TPEAudioOutput aAudioOutput ) - { - __LOGMETHODSTARTEND(EPhoneControl, "CPhoneAccessoryBTHandler::DoSetHandsfreeModeL( ) "); - __ASSERT_DEBUG( iStateMachine->PhoneEngineInfo(), - Panic( EPhoneCtrlInvariant )); - - TBool allowed; - // Only toggle the handsfree mode if there is no wired accessory connected - if( iStateMachine->PhoneEngineInfo()->AudioOutput() != EPEWiredAudioAccessory ) - { - TBool showNote = aHandsfreeMode || - !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ); - - iStateMachine->PhoneEngineInfo()->SetAudioOutputCommand( - aAudioOutput, showNote ); - iStateMachine->SendPhoneEngineMessage( - MPEPhoneModel::EPEMessageSetAudioOutput ); - allowed = ETrue; - } - else - { - allowed = EFalse; - } - return allowed; - } - -// End of File