--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/telephonysettings/src/PSetUtility.cpp Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,343 @@
+/*
+* Copyright (c) 2003 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: Utility class to switch between ETEL internal enumerations and
+* codes defined in the GSM standard.
+*
+*/
+
+
+// INCLUDE FILES
+#include "PSetUtility.h"
+#include <RSSSettings.h>
+#include "PhoneSettingsLogger.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// ---------------------------------------------------------------------------
+//
+// Translates given basic service code from code used in GSM standards to
+// ETEL internal code.
+// ---------------------------------------------------------------------------
+//
+RMobilePhone::TMobileService PSetUtility::ChangeToEtelInternal( const TBasicServiceGroups& aBsc )
+ {
+ switch ( aBsc )
+ {
+ case EAllTeleAndBearer:
+ return RMobilePhone::EAllServices;
+ case EAllTele:
+ return RMobilePhone::EAllTele;
+ case ETelephony:
+ return RMobilePhone::ETelephony;
+ case EAllDataTele:
+ return RMobilePhone::EAllDataTele;
+ case EFax:
+ return RMobilePhone::EFaxService;
+ case ESms:
+ return RMobilePhone::EShortMessageService;
+ case EAllDataExSms:
+ return RMobilePhone::EAllDataExSms;
+ case EAllTeleExcSms:
+ return RMobilePhone::EAllTeleExcSms;
+ case EAllPlmnTele:
+ return RMobilePhone::EAllPlmnTele;
+ case EPlmnTele1:
+ return RMobilePhone::EPlmnTele1;
+ case EPlmnTele2:
+ return RMobilePhone::EPlmnTele2;
+ case EPlmnTele3:
+ return RMobilePhone::EPlmnTele3;
+ case EPlmnTele4:
+ return RMobilePhone::EPlmnTele4;
+ case EPlmnTele5:
+ return RMobilePhone::EPlmnTele5;
+ case EPlmnTele6:
+ return RMobilePhone::EPlmnTele6;
+ case EPlmnTele7:
+ return RMobilePhone::EPlmnTele7;
+ case EPlmnTele8:
+ return RMobilePhone::EPlmnTele8;
+ case EPlmnTele9:
+ return RMobilePhone::EPlmnTele9;
+ case EPlmnTeleA:
+ return RMobilePhone::EPlmnTeleA;
+ case EPlmnTeleB:
+ return RMobilePhone::EPlmnTeleB;
+ case EPlmnTeleC:
+ return RMobilePhone::EPlmnTeleC;
+ case EPlmnTeleD:
+ return RMobilePhone::EPlmnTeleD;
+ case EPlmnTeleE:
+ return RMobilePhone::EPlmnTeleE;
+ case EPlmnTeleF:
+ return RMobilePhone::EPlmnTeleF;
+ case EAllBearer:
+ return RMobilePhone::EAllBearer;
+ case EAllAsync:
+ return RMobilePhone::EAllAsync;
+ case EAllSync:
+ return RMobilePhone::EAllSync;
+ case ESyncData:
+ return RMobilePhone::ESyncData;
+ case EAsyncData:
+ return RMobilePhone::EAsyncData;
+ case EPacketData:
+ return RMobilePhone::EPacketDataService;
+ case EPadAccess:
+ return RMobilePhone::EPadAccess;
+ case EAllPlmnBearer:
+ return RMobilePhone::EAllPlmnBearer;
+ case EPlmnBearerServ1:
+ return RMobilePhone::EPlmnBearerServ1;
+ case EPlmnBearerServ2:
+ return RMobilePhone::EPlmnBearerServ2;
+ case EPlmnBearerServ3:
+ return RMobilePhone::EPlmnBearerServ3;
+ case EPlmnBearerServ4:
+ return RMobilePhone::EPlmnBearerServ4;
+ case EPlmnBearerServ5:
+ return RMobilePhone::EPlmnBearerServ5;
+ case EPlmnBearerServ6:
+ return RMobilePhone::EPlmnBearerServ6;
+ case EPlmnBearerServ7:
+ return RMobilePhone::EPlmnBearerServ7;
+ case EPlmnBearerServ8:
+ return RMobilePhone::EPlmnBearerServ8;
+ case EPlmnBearerServ9:
+ return RMobilePhone::EPlmnBearerServ9;
+ case EPlmnBearerServA:
+ return RMobilePhone::EPlmnBearerServA;
+ case EPlmnBearerServB:
+ return RMobilePhone::EPlmnBearerServB;
+ case EPlmnBearerServC:
+ return RMobilePhone::EPlmnBearerServC;
+ case EPlmnBearerServD:
+ return RMobilePhone::EPlmnBearerServD;
+ case EPlmnBearerServE:
+ return RMobilePhone::EPlmnBearerServE;
+ case EPlmnBearerServF:
+ return RMobilePhone::EPlmnBearerServF;
+ case EAltTele:
+ return RMobilePhone::EAuxVoiceService;
+ case EUnknown:
+ default:
+ return RMobilePhone::EServiceUnspecified;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+// Translates given basic service code from ETEL internal code to
+// the ones used in GSM standards.
+// ---------------------------------------------------------------------------
+//
+TBasicServiceGroups PSetUtility::ChangeToGSM( const RMobilePhone::TMobileService& aBsc )
+ {
+ switch ( aBsc )
+ {
+ case RMobilePhone::EAllServices:
+ return EAllTeleAndBearer;
+ case RMobilePhone::EAllTele:
+ return EAllTele;
+ case RMobilePhone::EVoiceService:
+ case RMobilePhone::ETelephony:
+ return ETelephony;
+ case RMobilePhone::EAllDataTele:
+ return EAllDataTele;
+ case RMobilePhone::EFaxService:
+ return EFax;
+ case RMobilePhone::EShortMessageService:
+ return ESms;
+ case RMobilePhone::EAllDataExSms:
+ return EAllDataExSms;
+ case RMobilePhone::EAllTeleExcSms:
+ return EAllTeleExcSms;
+ case RMobilePhone::EAllPlmnTele:
+ return EAllPlmnTele;
+ case RMobilePhone::EPlmnTele1:
+ return EPlmnTele1;
+ case RMobilePhone::EPlmnTele2:
+ return EPlmnTele2;
+ case RMobilePhone::EPlmnTele3:
+ return EPlmnTele3;
+ case RMobilePhone::EPlmnTele4:
+ return EPlmnTele4;
+ case RMobilePhone::EPlmnTele5:
+ return EPlmnTele5;
+ case RMobilePhone::EPlmnTele6:
+ return EPlmnTele6;
+ case RMobilePhone::EPlmnTele7:
+ return EPlmnTele7;
+ case RMobilePhone::EPlmnTele8:
+ return EPlmnTele8;
+ case RMobilePhone::EPlmnTele9:
+ return EPlmnTele9;
+ case RMobilePhone::EPlmnTeleA:
+ return EPlmnTeleA;
+ case RMobilePhone::EPlmnTeleB:
+ return EPlmnTeleB;
+ case RMobilePhone::EPlmnTeleC:
+ return EPlmnTeleC;
+ case RMobilePhone::EPlmnTeleD:
+ return EPlmnTeleD;
+ case RMobilePhone::EPlmnTeleE:
+ return EPlmnTeleE;
+ case RMobilePhone::EPlmnTeleF:
+ return EPlmnTeleF;
+ case RMobilePhone::EAllBearer:
+ return EAllBearer;
+ case RMobilePhone::ECircuitDataService:
+ case RMobilePhone::EAllAsync:
+ return EAllAsync;
+ case RMobilePhone::EAllSync:
+ return EAllSync;
+ case RMobilePhone::ESyncData:
+ return ESyncData;
+ case RMobilePhone::EAsyncData:
+ return EAsyncData;
+ case RMobilePhone::EPacketDataService:
+ case RMobilePhone::EPacketData:
+ return EPacketData;
+ case RMobilePhone::EPadAccess:
+ return EPadAccess;
+ case RMobilePhone::EAllPlmnBearer:
+ return EAllPlmnBearer;
+ case RMobilePhone::EPlmnBearerServ1:
+ return EPlmnBearerServ1;
+ case RMobilePhone::EPlmnBearerServ2:
+ return EPlmnBearerServ2;
+ case RMobilePhone::EPlmnBearerServ3:
+ return EPlmnBearerServ3;
+ case RMobilePhone::EPlmnBearerServ4:
+ return EPlmnBearerServ4;
+ case RMobilePhone::EPlmnBearerServ5:
+ return EPlmnBearerServ5;
+ case RMobilePhone::EPlmnBearerServ6:
+ return EPlmnBearerServ6;
+ case RMobilePhone::EPlmnBearerServ7:
+ return EPlmnBearerServ7;
+ case RMobilePhone::EPlmnBearerServ8:
+ return EPlmnBearerServ8;
+ case RMobilePhone::EPlmnBearerServ9:
+ return EPlmnBearerServ9;
+ case RMobilePhone::EPlmnBearerServA:
+ return EPlmnBearerServA;
+ case RMobilePhone::EPlmnBearerServB:
+ return EPlmnBearerServB;
+ case RMobilePhone::EPlmnBearerServC:
+ return EPlmnBearerServC;
+ case RMobilePhone::EPlmnBearerServD:
+ return EPlmnBearerServD;
+ case RMobilePhone::EPlmnBearerServE:
+ return EPlmnBearerServE;
+ case RMobilePhone::EPlmnBearerServF:
+ return EPlmnBearerServF;
+ case RMobilePhone::EAuxVoiceService:
+ case RMobilePhone::EAltTele:
+ return EAltTele;
+ case RMobilePhone::EServiceUnspecified:
+ default:
+ return EUnknown;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Returns change information status, status is provided as TDivertingStatus,
+// not as TSY's MAdvGsmLineForwarding enumeration.
+//
+// ---------------------------------------------------------------------------
+//
+TDivertingStatus PSetUtility::GetChangeInfoStatus(
+ RMobilePhone::TMobilePhoneServiceAction& aAction )
+ {
+ switch ( aAction )
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ case RMobilePhone::EServiceActionActivate:
+ case RMobilePhone::EServiceActionRegister:
+ return EDivertingStatusActive;
+ case RMobilePhone::EServiceActionDeactivate:
+ return EDivertingStatusInactive;
+ case RMobilePhone::EServiceActionErase:
+ return EDivertingStatusNotRegistered;
+ default:
+ return EDivertingStatusUnknown;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+// Returns divert reason, reason is provided as TSY's TCallForwardingReasonGet.
+//
+// ---------------------------------------------------------------------------
+//
+RMobilePhone::TMobilePhoneCFCondition PSetUtility::GetDivertReason(
+ TCallDivertingCondition aCondition )
+ {
+ switch ( aCondition )
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ case EDivertConditionAllConditionalCases:
+ return RMobilePhone::ECallForwardingAllConditionalCases;
+ case EDivertConditionAllCalls:
+ return RMobilePhone::ECallForwardingAllCases;
+ case EDivertConditionUnconditional:
+ return RMobilePhone::ECallForwardingUnconditional;
+ case EDivertConditionBusy:
+ return RMobilePhone::ECallForwardingBusy;
+ case EDivertConditionNoReply:
+ return RMobilePhone::ECallForwardingNoReply;
+ case EDivertConditionNotReachable:
+ return RMobilePhone::ECallForwardingNotReachable;
+ default:
+ return RMobilePhone::ECallForwardingUnspecified;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Verify that ALS is really used.
+// ---------------------------------------------------------------------------
+//
+RMobilePhone::TMobileService PSetUtility::VerifyAltLineUseL()
+ {
+ __PHSLOGSTRING("[PHS]--> PSetUtility::VerifyAltLineUseL");
+ RSSSettings* ssSettings = new (ELeave) RSSSettings;
+ CleanupStack::PushL( ssSettings );
+ TInt usedLine;
+ User::LeaveIfError( ssSettings->Open() );
+ User::LeaveIfError( ssSettings->Get( ESSSettingsAls, usedLine ) );
+ __PHSLOGSTRING1("[PHS] PSetUtility::VerifyAltLineUseL: usedLine: %d", usedLine );
+
+ if ( usedLine == ESSSettingsAlsNotSupported )
+ {
+ User::Leave( KErrNotSupported );
+ }
+ ssSettings->Close();
+ CleanupStack::PopAndDestroy();
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ __PHSLOGSTRING("[PHS] <--PSetUtility::VerifyAltLineUseL");
+
+ return RMobilePhone::EAuxVoiceService;
+ }
+
+// End of File