diff -r 594d59766373 -r 7d48bed6ce0c convergedcallengine/csplugin/src/cspsssettingshandler.cpp --- a/convergedcallengine/csplugin/src/cspsssettingshandler.cpp Thu Aug 19 10:28:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,321 +0,0 @@ -/* -* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: implementation of CSPSsSettingsHandler class. -* -*/ - - -// INCLUDES -#include "cspsssettingshandler.h" -#include "csplogger.h" -#include "csppanic.pan" - -#include -#include - - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::CSPSsSettingsHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSPSsSettingsHandler::CSPSsSettingsHandler( const MCCPSsObserver& aObs ) : - iObserver( const_cast(aObs) ) - { - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::CSPSsSettingsHandler" ); - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSPSsSettingsHandler::ConstructL() - { - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::ConstructL <" ); - User::LeaveIfError( iSSSettings.Open() ); - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::ConstructL Reg " ); - TInt errorCode = iSSSettings.Register( ESSSettingsAls, *this ); - CSPLOGSTRING2( CSPINT, - "CSPSsSettingsHandler::ConstructL > iSSSettings.Register, errorCode: %d", - errorCode ); - if ( errorCode == KErrNotSupported ) - { - CSPLOGSTRING( CSPINT, "CSPSsSettingsHandler::ConstructL, ALS not supported" ); - } - else if ( errorCode == KErrNotReady ) - { - // Try again after idle - iRegisterAlsNofify = CIdle::NewL( CActive::EPriorityHigh ); - RegisterAfterIdle(); - } - - RMobilePhone::TMobilePhoneALSLine alsLine; - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::ConstructL GetALS" ); - GetALSLineL( alsLine ); - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::ConstructL Notify " ); - iObserver.NotifyCurrentActiveALSLine( (TInt) alsLine ); - - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::ConstructL >" ); - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSPSsSettingsHandler* CSPSsSettingsHandler::NewL( const MCCPSsObserver& aObs ) - { - CSPSsSettingsHandler* self = new ( ELeave ) CSPSsSettingsHandler( aObs ); - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop( self ); - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::NewL" ); - return self; - } - -// Destructor -CSPSsSettingsHandler::~CSPSsSettingsHandler() - { - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::~CSPSsSettingsHandler <" ); - iSSSettings.Close(); - CSPLOGSTRING( CSPOBJECT, "CSPSsSettingsHandler::~CSPSsSettingsHandler >" ); - if ( iRegisterAlsNofify ) - { - delete iRegisterAlsNofify; - } - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::GetALSLineL -// Sends synchronous request to get the ALS line and returns handle to access -// the status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSPSsSettingsHandler::GetALSLineL( - RMobilePhone::TMobilePhoneALSLine& aALSLine ) - { - TInt value; - User::LeaveIfError( iSSSettings.Get( ESSSettingsAls, value ) ); - - TSSSettingsAlsValue alsValue = - static_cast< TSSSettingsAlsValue > ( value ); - - switch( alsValue ) - { - case ESSSettingsAlsNotSupported: - aALSLine = RMobilePhone::EAlternateLineNotAvailable; - break; - case ESSSettingsAlsPrimary: - aALSLine = RMobilePhone::EAlternateLinePrimary; - break; - case ESSSettingsAlsAlternate: - aALSLine = RMobilePhone::EAlternateLineAuxiliary; - break; - default: - break; - } - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::SetALSLineL -// Sends synchronous request to set the ALS line and returns handle to access -// the status. -// ----------------------------------------------------------------------------- -// -void CSPSsSettingsHandler::SetALSLineL( - RMobilePhone::TMobilePhoneALSLine& aALSLine ) - { - TSSSettingsAlsValue alsValue = - static_cast ( aALSLine ); - - switch( aALSLine ) - { - case RMobilePhone::EAlternateLineUnknown: - case RMobilePhone::EAlternateLineNotAvailable: - alsValue = ESSSettingsAlsNotSupported; - break; - case RMobilePhone::EAlternateLinePrimary: - alsValue = ESSSettingsAlsPrimary; - break; - case RMobilePhone::EAlternateLineAuxiliary: - alsValue = ESSSettingsAlsAlternate; - break; - default: - CSPLOGSTRING( CSPINT, - "CSPSsSettingsHandler::SetALSLineL: Not valid value" ); - __ASSERT_DEBUG( EFalse, Panic( ECSPPanicInvalidRequest ) ); - break; - } - User::LeaveIfError( iSSSettings.Set( ESSSettingsAls, alsValue ) ); - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::GetClirL -// Sends synchronous request to get the CLIR value and returns handle to access -// the status. -// ----------------------------------------------------------------------------- -// -void CSPSsSettingsHandler::GetClirL( - RMobileCall::TMobileCallIdRestriction& aClir ) - { - TInt value; - User::LeaveIfError( iSSSettings.Get( ESSSettingsClir, value ) ); - - TSSSettingsClirValue clir = - static_cast ( value ); - CSPLOGSTRING2( CSPERROR, - "CSPSsSettingsHandler::GetClirL, clir: %d", clir ); - - switch( clir ) - { - case ESSSettingsClirNetworkDefault: - aClir = RMobileCall::EIdRestrictDefault; - break; - case ESSSettingsClirExplicitInvoke: - aClir = RMobileCall::EDontSendMyId; - break; - case ESSSettingsClirExplicitSuppress: - aClir = RMobileCall::ESendMyId; - break; - default: - CSPLOGSTRING2( CSPERROR, - "CSPSsSettingsHandler::GetClirL, NOT VALID aClir: %d", aClir ); - __ASSERT_DEBUG( EFalse, Panic( ECSPPanicInvalidRequest ) ); - break; - } - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::GetCugL -// Sends synchronous request to get the CUG index and returns handle to access -// the status. -// ----------------------------------------------------------------------------- -// -void CSPSsSettingsHandler::GetCugL( TInt& aCugIndex ) - { - CSPLOGSTRING2( CSPINT, - "CSPSsSettingsHandler::GetCugL, aCugIndex: %d", aCugIndex ); - User::LeaveIfError( iSSSettings.Get( ESSSettingsCug, aCugIndex ) ); - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::GetDefaultCugL -// Sends synchronous request to get the default CUG index -// ----------------------------------------------------------------------------- -// -void CSPSsSettingsHandler::GetDefaultCugL( TInt& aDefCug ) - { - User::LeaveIfError( iSSSettings.Get( ESSSettingsDefaultCug, aDefCug ) ); - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::IsValueValidCugIndex -// Sends synchronous request to check the CUG index -// ----------------------------------------------------------------------------- -// -TBool CSPSsSettingsHandler::IsValueValidCugIndex( const TInt& aValue ) const - { - return iSSSettings.IsValueValidCugIndex( aValue ); - } - -// --------------------------------------------------------- -// CSPSsSettingsHandler::PhoneSettingChanged -// --------------------------------------------------------- -// -void CSPSsSettingsHandler::PhoneSettingChanged( - TSSSettingsSetting aSetting, - TInt aNewValue ) - { - CSPLOGSTRING2( CSPINT, - "CSPSsSettingsHandler::PhoneSettingChanged, aNewValue : %d", - aNewValue ); - if ( aSetting == ESSSettingsAls ) - { - TSSSettingsAlsValue alsValue = - static_cast< TSSSettingsAlsValue > ( aNewValue ); - - RMobilePhone::TMobilePhoneALSLine - alsLine( RMobilePhone::EAlternateLineUnknown ); - - switch( alsValue ) - { - case ESSSettingsAlsNotSupported: - alsLine = RMobilePhone::EAlternateLineNotAvailable; - break; - case ESSSettingsAlsPrimary: - alsLine = RMobilePhone::EAlternateLinePrimary; - break; - case ESSSettingsAlsAlternate: - alsLine = RMobilePhone::EAlternateLineAuxiliary; - break; - default: - break; - } - - iObserver.NotifyCurrentActiveALSLine( (TInt) alsLine ); - } - } - -// ----------------------------------------------------------------------------- -// CSPSsSettingsHandler::RegisterAfterIdle -// ----------------------------------------------------------------------------- -// -void CSPSsSettingsHandler::RegisterAfterIdle() - { - CSPLOGSTRING( CSPINT, "CSPSsSettingsHandler::RegisterAfterIdle" ); - if ( !iRegisterAlsNofify->IsActive() ) - { - CSPLOGSTRING( CSPINT, "CSPSsSettingsHandler::RegisterAfterIdle > iRegisterAlsNofify->Star" ); - iRegisterAlsNofify->Start( - TCallBack( CIdleCallBack, this ) ); - } - } - -// ----------------------------------------------------------------------------- -// CSProvider::CIdleCallBack -// ----------------------------------------------------------------------------- -// -TInt CSPSsSettingsHandler::CIdleCallBack( TAny* aAny ) - { - CSPLOGSTRING( CSPINT, "CSPSsSettingsHandler::CIdleCallBack" ); - static_cast< CSPSsSettingsHandler* >( aAny )->Register(); - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSProvider::Register -// ----------------------------------------------------------------------------- -// -void CSPSsSettingsHandler::Register() - { - CSPLOGSTRING( CSPINT, "CSPSsSettingsHandler::Register" ); - TInt errorCode( KErrNotReady ); - - errorCode = iSSSettings.Register( ESSSettingsAls, *this ); - CSPLOGSTRING2( CSPINT, - "CSPSsSettingsHandler::Register > iSSSettings.Register, errorCode: %d", - errorCode ); - - if ( errorCode == KErrNotReady ) - { - // Try again - RegisterAfterIdle(); - } - } - -// End of file